现在做PHP还有前景吗?
PHP和Python应该如何选择?
总是有人在黑php,这是怎样的一群人?
PHP现在名声不好,因为它曾经是"可怕"。
这篇文章试图回答一些关于PHP的常见论断,以便向非技术人员说明PHP并没有很多人说的那么差。
1.它是否鼓励不良做法?
不再是了。以前很多开发者都是被书本教会了非常不好的做法,所以PHP代码质量非常差。PHP曾经允许你做一些非常奇怪的事情,这使得构建非常容易,但是维护起来却是一场噩梦。
这些不再是常见的问题。随着高质量学习资料的引入,这些资料很容易学习和获取,一个新的开发者可以用正确的方法学习PHP。这可以防止初级开发人员编写一些维护起来非常痛苦的代码,因为他们没有我不知道建造东西的正确方法。
随着框架的引入,大部分导致许多糟糕体验的常见代码现在都自动完成了;所以开发者只需要使用框架,框架就能正确编码。
而且这些年来,一些不好的做法都是因为缺失了特性,导致了一些不应该被允许的事情。现在大多数情况下,甚至无法意识到之前写的东西会导致这个名声。
总结
它不再鼓励不良行为...
使用框架可以避免不好的实践。
现在有很多关于语言特性的讨论。不再支持不好的功能。
PHP添加了其他语言中存在的大部分(如果不是全部)功能。
2.它的安全性差吗?
过去,PHP应用程序的安全性通常很差,因为语言允许这样做。这些东西已经不用了,因为现在PHP应用的开发已经完全不同了。
通过使用自动加载器来包含文件,而不是动态地包含文件,远程和本地文件包含(PHP从原始地址以外的其他地址读取文件)。
通过广泛使用模板系统(可以自动处理显示动态内容的转义和安全问题),避免了在PHP中直接使用HTML(一个用户将Javascript脚本添加到要显示给另一个用户的地方)导致的跨站脚本攻击。
通过在SQL中使用预处理语句,可以避免SQL注入攻击(这是由于需要构建SQL查询并一起发送查询和数据,用户可以在查询中添加额外的SQL命令)。另外,ORM的应用也很广泛,它保证了用户数据和查询是分开发送的,SQL不能把它当成一个单独的命令。
通过广泛使用和采用nonce系统的表单库,避免了跨站点请求伪造(其中用户可能被欺骗在你的网站上做点什么)。
总结
通过使用autoloader(所有主流框架的标准),避免了远程和本地文件包含。
通过使用模板语言作为标准或前端框架(如React),可以避免跨站点脚本(XSS)攻击。
通过使用ORM和广泛使用预准备语句来避免SQL注入。
通过使用nonce令牌(所有主流框架都自动支持),可以避免跨站点请求伪造(CRSF)攻击。
3.真的很慢吗?
那要看你拿它和什么比了。如果拿PHP和Java,C或者Go比,就慢一些。但是如果你拿PHP和Python,Ruby之类的比较,并不慢。PHP是同类语言中速度最快的语言之一,而且它还在不断提高自己的性能。
在大多数情况下,您的应用程序很慢是因为服务器过载或数据库查询很慢。这些问题在任何语言中都会存在。
总结
PHP比编译语言慢。
PHP比其他脚本语言更快。
网站慢通常不是因为没有快速语言,而是服务器或数据库造成的性能问题。
4.它的扩展性真的很差吗?
事实上,任何语言都是可以缩放的。编译语言(如Go、C或Rust)的扩展成本比脚本语言(如PHP)低。但是,它们不是为同一任务而设计的。其实都一样;这仅仅取决于您使用的服务器数量。如果您使用足够多的服务器,您可以扩展任何应用程序。PHP比其他脚本语言的扩展成本更低,因为它启动运行需要的资源更少,可以运行在CPU更多内存更小的服务器上。
此外,对于可伸缩性,数据库很重要。如果可以扩展数据库,就可以扩展应用程序。数据库比应用服务器更难扩展。很容易添加另一个读取数据库的客户机;然而,使数据库快速运行要困难得多。
总结
任何语言都可以是可扩展的;这取决于您使用多少台服务器。
扩展的真正问题是数据库,而不是使用的应用程序语言。
如果你能扩展你的数据,你就能扩展你的应用。
5.我应该一直用它吗?
不是。每种编程语言都有自己的专业领域。PHP非常适合Web应用。你应该用它来构建网站和API。
如果您正在构建一个系统应用程序,其中每一毫秒都很重要,请使用Rust或c。
如果你正在构建一个人工智能应用,Python是一个很好的选择。
如果您正在构建一个SaaS应用程序,PHP是一个不错的选择。
如果你正在建造Kotlin是构建Android应用程序的一个好选择。
如果您正在构建一个运行在多个平台上的应用程序,Java是一个不错的选择。
总结
每种语言都有其最佳用例。
PHP的最佳用例是Web应用程序。
Go,Rust,c适合系统应用。
Python适合人工智能。
Kotlin适用于Android应用程序。
Java适合于平台无关的应用程序。
6.结论
每年都讲php,但是你的PHP现在是不是过期了?很多关于PHP的说法已经过时10年了。在我看来,如果有人给你一个过期10年的技术主题的信息,那么这个人可能不是你想要信任的技术专家。
PHP是创建Web应用程序的一种很好的编程语言,我认为它是开发Web应用程序的最佳语言。