关于PHP的冷门观点 | AI生成和翻译
问题:关于 PHP 有哪些不受欢迎或非主流的观点或想法?
答案:
以下是一些关于 PHP 的真正不受欢迎或与主流开发者讨论相悖的观点,你很少能在主流开发者讨论中看到它们受到赞扬:
-
PHP 从未真正需要类型系统 严格类型(PHP 7 中添加)尤其是标量类型提示通常被过度使用,让这门语言感觉像一个更糟糕的 TypeScript。PHP 最初的动态的、鸭子类型的特性非常适合它所设计的快速和简陋的 Web 胶水代码。添加类型主要使 IDE 和大型团队受益,但对于大多数中小型网站和脚本来说,这是一种仪式性的开销,它减慢了原型开发的速度,却没有提供相应的安全性。
-
Composer 和 PSR 标准破坏了 PHP 的“开箱即用”精神 在 Composer 之前,你所需的一切要么在核心中,要么是一个你可以直接引入的单文件。现在,生态系统要求一个包管理器、自动加载,并遵守半打 PSRs,才能在现代框架中
echo "Hello World"。这门语言变得更加“专业”,却牺牲了最初让它在网络中占据主导地位的轻松可修改性。 -
对于普通的微型网站开发者来说,PHP 8+ 客观上不如 PHP 5.6 PHP 5.6(带安全补丁)是稳定性、性能和简洁性的巅峰。现代 PHP 版本不断添加语法糖(属性、match 表达式、readonly 类等),主要使框架作者和企业代码库受益,而升级路径却破坏了无数仍停留在旧版本上的遗留应用程序和主机环境。
-
Laravel 阻碍 PHP 的发展多于帮助 Laravel 的主导地位创造了一种单一文化,其中“现代 PHP”基本上意味着“Laravel + Vue/Inertia/Livewire”。它阻止人们学习语言本身,并鼓励庞大的抽象层,这些抽象层隐藏了 PHP 的优势(简洁性、直接访问 $_GET/$_POST、在需要时使用原始 SQL)。大多数 Laravel 应用程序如果用纯 PHP 或微框架编写,可以小 10 倍,快 10 倍。
-
PHP 在 2000 年代至 2010 年代受到的憎恨在很大程度上是合理和健康的 这门语言理应受到嘲笑。糟糕的内置函数命名、不一致的参数顺序、魔术引号、register_globals 以及一个看起来像周末由委员会设计的核心库。这种轻蔑迫使社区进行清理(PHP 7 性能飞跃、命名空间采用等)。今天修正主义的“PHP 现在实际上很好”的叙述忘记了,我们花了十年的公开羞辱才走到这一步。
-
WordPress 是 PHP 发生过的最好的事(也是最坏的事) 一个不受欢迎的两面性观点:WordPress 保持了 PHP 的相关性,并为数百万开发者和托管公司带来了收入,阻止了这门语言像 Perl 一样逐渐消失。与此同时,它将生态系统锁定在古老的模式中,并给 PHP 带来了“代码马虎”的永久性声誉,现代 PHP 开发者仍在为此而奋斗。
-
全局函数和超全局变量是优雅的,而不是丑陋的
strlen()、json_encode()、$_SESSION、$_POST全局可用是一个特性,而不是一个 bug。当你编写一个 200 行的脚本时,将所有东西“正确”地命名空间只会增加噪音。PHP 是为嵌入 HTML 模板而设计的;假装它应该看起来像 Java 只会与语言作对。 -
PHP 应该永远保持单线程和无共享 尝试使 PHP 异步(ReactPHP、Swoole、RoadRunner)都没有抓住重点。PHP 的美妙之处在于简单的请求-响应生命周期,它完美地映射到廉价的 Apache/Nginx + PHP-FPM 托管。试图将其变成 Node.js 或 Go 只会创建这些工具的更糟糕版本,同时放弃了 PHP 最擅长的东西。
这些观点往往会在 PHP 圈子中引起强烈反响,尤其是在“现代 PHP”人群中,但许多经历了 4 → 5 → 7 → 8 过渡的资深 PHP 开发者都在私下持有这些观点。