大家好,今天来为大家解答php简易博客网站源码分享这个问题的一些问题点,包括简单的php个人博客也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~
你可以像以前一样对PHP自由吐槽。虽然,你可能会对PHP在过去的几年里的一些改进感到惊讶。
–Brent(作者)
你还记得篇流行的博客文章《PHP:设计糟糕的分形》吗?我第一次读到它时,我在一个有很多遗留的PHP项目的糟糕地方工作。这篇文章让我觉得我是否应该放弃,并去做与编程完全不同的事情。
还好,我之后很快就换了工作,更重要的是,自从5.x版本以来,PHP成功地进步了很多。今天,我在向那些不再使用PHP编程,或者陷入遗留项目的人们致意。
剧透:今天有些事情仍然很糟糕,就像几乎每种编程语言都有它的怪癖一样。许多核心功能仍然有不一致的调用方法,仍然有令人困惑的配置设置,仍然有许多开发人员在那里写蹩脚的代码——因为他们必须如此,或是他们不知道更好的写法。
今天我想看看好的一面:让我们关注已经发生变化的事情,以及编写干净而可维护的PHP代码的方法。在此之前,我想请你暂时搁置任何偏见。
然后,你可以像以前一样对PHP自由吐槽。虽然,你可能会对PHP在过去的几年里的一些改进感到惊讶。(LCTT译注:说实话,我是真的感到吃惊)
提前看结论
PHP在积极地开发,每年都有新版本自PHP5时代以来的性能已经翻倍,如果不是三倍的话有一个非常活跃的框架、包和平台的生态系统PHP在过去几年中添加了许多新功能,并且这种语言在不断发展像静态分析这样的工具在过去几年中已经成熟,并且一直保持增长更新:人们让我展示一些实际的代码。我觉得这没问题!这是我的一个业余项目的源代码,用PHP和Laravel编写的;这里列出了我们在办公室维护的几百个自由开源软件包。这两者都是现代PHP项目的好例子。
那让我们开始吧。
历史总结
出于更好地衡量的目的,让我们快速回顾一下如今的PHP发布周期。我们现在的PHP为7.3,预计在2019年底为7.4。PHP8.0将是7.4之后的下一个版本。
自从5.x时代以来,核心团队试图保持每年发布一个版本的周期,并且他们在过去的四年中成功地做到了这一点。
一般来说,每个新版本都会在两年内得到积极支持,并再获得一年以上的“安全修复”。其目标是激励PHP开发人员尽可能保持最新:例如,每年进行小规模升级比在5.4到7.0之间跳转更容易。
可以在这里找到PHP时间轴的活动概述。
最后,PHP5.6是最新的5.x版本,而8.0是当前的下一个大版本。如果你想知道PHP6发生了什么,你可以听听PHPRoundtable播客。
了解了这个,让我们揭穿一些关于现代PHP的常见误解。
PHP的性能
早在5.x时代,PHP的表现就是……嗯,平均水平。但是在7.0版本中,PHP从头开始重写了核心部分,导致其性能提升了两到三倍!
但光是嘴说是不够的。让我们来看看基准测试。幸运的是,人们花了很多时间对PHP性能进行了基准测试。我发现Kinsta有一个很好的更新的测试列表。
自7.0升级以来,性能就一直在提升而没有回退。PHPWeb应用程序的性能可与其它语言中的Web框架相提并论,甚至在某些情况下更好。你可以看看这个广泛的基准测试套件。
当然PHP框架不会胜过C和Rust,但它们比Rails或Django要好得多,并且与ExpressJS相当。
框架和生态系统
说到框架:PHP可不仅仅是WordPress。让我告诉你——某些专业的PHP开发人员:WordPress绝不代表当代的PHP生态系统。
一般来说,有两个主要的Web应用程序框架,Symfony和Laravel,以及一些较小的应用程序框架。当然还有Zend、Yii、Cake、CodeIgniter等等,但是如果你想知道现代PHP开发是怎么样的,这两者之一都是很好的选择。
这两个框架都有一个庞大的包和产品的生态系统。从管理面板和CRM到独立软件包,从CI到分析器,以及几个Web套接字服务器、队列管理器、支付集成等众多服务。老实说,要列出的内容太多了。
这些框架虽然适用于实际开发。如果你只是需要个内容管理系统(CMS),WordPress和CraftCMS等平台就够了。
衡量PHP生态系统当前状态的一种方法是查看Packagist,这是PHP主要的软件包存储库。它现在呈指数级增长。每天下载量达到了2500万次,可以说PHP生态系统已不再是以前的小型弱势群体了。
请查看此图表,它列出一段时间内的软件包和版本数量变化。它也可以在Packagist网站上找到它。
除了应用程序框架和CMS之外,我们还看到过去几年里异步框架的兴起。
这些是用PHP或其他语言编写的框架和服务器,允许用户运行真正的异步PHP,这些例子包括Swoole(创始人韩天峰),以及Amp和ReactPHP。
我们已经进入了异步的世界,像Web套接字和具有大量I/O的应用程序之类的东西在PHP世界中已经变得非常重要。
在内部邮件列表里(PHP核心开发人员讨论语言开发的地方)已经谈到了将libuv添加到核心。如果你还不知道libuv:Node.js全有赖它提供异步性。
语言本身
虽然尚未提供async和await,但在过去几年中,PHP语言本身已经有了很多改进。这是PHP中新功能的非详尽列表:
短闭包(箭头函数)Null合并操作符(??)Trait(一种代码重用方式)属性类型展开操作符(参数解包…)JIT编译器(即时编译器)FFI(外部函数接口)匿名类返回类型声明现代化的加密支持生成器等等
当我们讨论语言功能时,我们还要谈谈当今该语言的发展过程。虽然社区可以提出RFC,但是得有一个活跃的志愿者核心团队才能推着它前进。
接下来,这些RFC将在“内部”邮件列表中进行讨论,这个邮件列表也可以在线阅读。在添加新的语言特性之前,必须进行投票。只有得到了至少2/3多数同意的RFC才能进入核心。
可能有大约100人能够投票,但不需要每个人对每个RFC进行投票。核心团队的成员当然可以投票,他们是维护代码库的人。除了他们之外,还有一群人从PHP社区中被单独挑选出来。这些人包括PHP文档的维护者,对PHP项目整体有贡献的人,以及PHP社区中的杰出开发人员。
虽然大多数核心开发都是在自愿的基础上完成的,但其中一位核心PHP开发人员NikitaPopov最近受雇于JetBrains全职从事于PHP语言的开发。另一个例子是Linux基金会最近决定投资Zend框架。像这样的雇佣和收购确保了PHP未来发展的稳定性。
工具
除了核心本身,我们看到过去几年中围绕它的工具有所增加。首先浮现于我脑海中的是静态分析器,比如由Vimeo创建Psalm,以及Phan和PHPStan。
这些工具将静态分析你的PHP代码并报告任何类型错误和可能的错误等。在某种程度上,它们提供的功能可以与TypeScript进行比较,但是现在这种语言不能转译(transpiling),因此不支持使用自定义语法。
尽管这意味着我们需要依赖docblocks,但是PHP之父RasmusLerdorf确实提到了添加静态分析引擎到核心的想法。虽然会有很多潜力,但这是一项艰巨的任务。
说到转译,以及受到JavaScript社区的启发;他们已经努力在用户领域中扩展PHP语法。一个名为Pre的项目正是如此:允许将新的PHP语法转译为普通的PHP代码。
虽然这个思路已经在JavaScript世界中被证明了,但如果提供了适当的IDE和静态分析支持,它就能在PHP中工作了。这是一个非常有趣的想法,但必须发展起来才能称之为“主流”。
结语
尽管如此,你仍然可以将PHP视为一种糟糕的语言。虽然这种语言肯定有它的缺点和背负了20年的遗产;但我可以放胆地说,我喜欢用它工作。
根据我的经验,我能够创建可靠、可维护和高质量的软件。我工作的客户对最终结果感到满意,“俺也一样”。
尽管仍然可以用PHP做很多乱七八糟的事情,但我认为如果明智和正确地使用的话,它是Web开发的绝佳选择。
你不同意吗?让我知道为什么!你可以通过Twitter或电子邮件与我联系。
via:https://stitcher.io/blog/php-in-2019
作者:Brent选题:lujun9972译者:wxy校对:wxy
本文由LCTT原创编译,Linux中国荣誉推出
点击“了解更多”可访问文内链接
好了,关于php简易博客网站源码分享和简单的php个人博客的问题到这里结束啦,希望可以解决您的问题哈!
