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

标签: 代码 Coding | 发表时间:2011-08-03 12:29 | 作者:[email protected] (郑凯) Tairan Wang
出处:http://soulogic.com/

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

对于早期的 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,或许仅仅出于被迫,而不是自己的一种选择?

相关 [大家 php] 推荐:

PHP导出excel

- syeye - scofield PHP开发-SEO SEM
最近做一个项目,其中涉及到了数据导成excel的功能. 后来使用了 开源的 PHPExcel  http://phpexcel.codeplex.com/ 目前最新版是1.7.6. PHPExcel 可以生成 .xls 和 .xlsx (office2007). 比如设置 excel的title,keywords,description.

PHP框架 Yaf

- Le - 开源中国社区最新软件
Yaf是一个C语言编写的PHP框架,Yaf 的特点: 用C语言开发的PHP框架, 相比原生的PHP, 几乎不会带来额外的性能开销. 所有的框架类, 不需要编译, 在PHP启动的时候加载, 并常驻内存. 更短的内存周转周期, 提高内存利用率, 降低内存占用率. 支持全局和局部两种加载规则, 方便类库共享.

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

- Tairan Wang - Soulogic 灵魂逻辑
导致一系列悲剧的起因是,大家的母语不同(当然,我是说程序的母语). 对于早期的 PHP 使用者来说,大多数人在接触 PHP 之前都早已熟悉了编程,因此他们在接触 PHP 时,关心的不是 PHP 能干什么、该干什么,而是 PHP 跟他之前掌握的语言有何不同、以及怎么消除这种不同. 例如,Smarty 是最令我疑惑的东西,我完全理解不了为什么要用这种脱裤子放屁的东西,而且想当初模板类有那么多,今天我才明白,基本上是个语言都会有模板类,所以他们在用 PHP 的时候,也理所应当的认为要搞一个,而一直在回避最基本的问题:PHP 是模板语言.

PHP RFC: 让PHP的foreach支持list

- 三马 - 风雪之隅
本文地址: http://www.laruence.com/2011/07/13/2110.html. 上个月, 终于算加入了PHP developer team, 一直以来最大的障碍就是语言, 现在想起来, 当年真应该更加认真努力的去学习英语.. 得到的第一个任务是: 解决一个feature request, 请求在allow foreach($array as list($a,$b).

PHP开发宝典-PHP基础

- - CSDN博客推荐文章
.