IT技术博客大学习 共学习 共进步

直到刚才,我才想明白大家对 PHP 的用法是如此迥异

Soulogic 灵魂逻辑 2011-08-03 13:32:12 浏览 5,042 次

    导致一系列悲剧的起因是,大家的母语不同(当然,我是说程序的母语)。

    对于早期的 PHP 使用者来说,大多数人在接触 PHP 之前都早已熟悉了编程,因此他们在接触 PHP 时,关心的不是 PHP 能干什么、该干什么,而是 PHP 跟他之前掌握的语言有何不同、以及怎么消除这种不同。

    例如,Smarty 是最令我疑惑的东西,我完全理解不了为什么要用这种脱裤子放屁的东西,而且想当初模板类有那么多,今天我才明白,基本上是个语言都会有模板类,所以他们在用 PHP 的时候,也理所应当的认为要搞一个,而一直在回避最基本的问题:PHP 是模板语言。所以他们借助 PHP 实现了另外一套叫 Smarty 的语言。搞得我很自卑,因为我一直不会用 Smarty,所以招人的时候总要问一句“会 Smarty”么,我想的是只要有人会就可以了。

    另外一个东西,我不知道应该单独批判 Controller 还是整个 MVC。当我写了几年 PHP 后,突然大家都开始自己解析 $_SERVER["REQUEST_URI"] 并 require 对应的文件,说这叫统一入口,这事也让我很惊奇。我相信有太多的人碰到过为了加个 google webmaster 的验证文件之类的东西而不得不去改动 PHP 文件的情况,这真是自找。后来我才明白,在很多语言中,整个 web server 都要自己实现的,所以解析 URL 是份内要做的事情。但 PHP 是寄生于 web server 上,本来不需要惦记这个问题,最多借助 web server 的 url writer 是为了美化,而不是为了功能。

    还有一些错误的优化方向,例如有人提议不要使用 require_once 而只用 requrie,因为前者会增加一个类似 in_array() 的操作,这真让人崩溃,也许这种开销在操作系统的内核中会被循环给放大,但是对于 web 开销来说,九牛一毛都谈不上,让 facebook 的程序员在他们代码里这么替换,能省出几台机器?对于你实际的应用,能省出两条内存么?够你一上午的工资么?

    这些扯的远了。鉴于 PHP 各种奇怪的方式使用着,我只能猜想这一现象是映射太多不同语种的程序员对 PHP 的不同理解,很多写过点 C 或 Java 的人用 C 或 Java 的方式写 PHP,并教那些新入行的程序员也以这种方式写 PHP,在他们眼里 PHP 是稍微差一点的 C 或 Java,因为 PHP 还实现不了某些特性,但很少会去想,他们为什么要用 PHP,或许仅仅出于被迫,而不是自己的一种选择?

建议继续学习

  1. 我的PHP,Python和Ruby之路 (阅读 12,982)
  2. Nginx+FastCgi+Php 的工作机制 (阅读 10,084)
  3. PHP程序的执行流程 (阅读 9,902)
  4. PHP业务逻辑层和数据访问层设计 (阅读 7,462)
  5. PHP的优势 (阅读 7,062)
  6. 深入了解php底层机制(-) (阅读 6,003)
  7. PHP最佳实践 (阅读 5,883)
  8. PHP将死,何以为继? (阅读 5,803)
  9. 总结的一些PHP开发中的tips (阅读 5,242)
  10. PHP的历史 (阅读 4,241)