传奇 php
2003年,传奇我还在用Dreamweaver拖表格做网页。传奇那时候谁要是传奇能在页面上挂一个留言板,简直能在班里横着走。传奇留言板的传奇源码下载下来,清一色是传奇PHP文件。index.php、传奇post.php、传奇conn.php,传奇打开一看,传奇满屏的传奇美元符号和问号。我盯着那段 这就是传奇很多人和PHP的第一次照面。不优雅,传奇不体面,甚至有点土。但它就是能跑。 PHP诞生于1994年,Rasmus Lerdorf写它的时候压根没想搞什么编程语言,就是想统计一下自己简历页面被多少人看过。一套用C写的CGI小程序,塞几个宏,能解析表单,完事。后来他把这东西开源了,有人拿去用,有人往里加功能,雪球就这么滚起来了。到2000年前后,PHP已经成了建站标配。你随便打开一个个人主页、论坛、博客,八成是PHP写的。Discuz、PHPWind、WordPress,全是那个年代的产物。 为什么是PHP?答案简单到有点好笑:因为它就嵌在HTML里。你不需要理解什么是MVC,什么是面向对象,什么是依赖注入。你只需要在HTML文件里写上 但魔法是有代价的。我见过一个跑了八年的老项目,单个PHP文件三千多行,HTML、SQL、业务逻辑、权限判断全搅在一起。改一个按钮的文字,得先翻过两百行数据库查询。函数命名从 PHP社区自己也意识到了这个问题。PHP 5引入了完整的面向对象模型,PHP 7把性能翻了一倍多,PHP 8加了JIT。Composer出现了,Laravel出现了,Symfony出现了。你现在可以用PHP写出结构清晰、测试完备、依赖管理规范的项目,和任何现代语言比都不丢人。但那种“随便写写就能跑”的基因一直没丢。你依然可以在一个Laravel项目里塞一个原生PHP文件进去,它照样能跑。这种兼容性既是优点也是诅咒。 我前阵子翻GitHub,看到一个2012年的PHP项目还在维护。作者在README里写:“我知道应该用Laravel重写,但它在生产环境跑了十一年,没出过事。”底下有人回复:“别动它。”这条回复有四十多个赞。我盯着屏幕笑了一下,然后想起自己那个用PHP 5.2写的、至今还在某台老旧服务器上跑着的小工具。每次想重构,打开代码看到那堆 PHP不是最好的语言。它的函数命名混乱,它的历史包袱沉重,它在类型系统上的设计决策经常让人挠头。但它活下来了,而且活得不算差。全球超过七成的网站还在用它,WordPress驱动着四成以上的网站。你可以说这是路径依赖,也可以说这是实用主义的胜利。反正每次有人问我“新手学什么后端语言”,我还是会说:要不先试试PHP?装个XAMPP,写个 传奇这东西,有时候不是因为它有多强,而是因为它一直在那儿。你换了几台电脑,换了几个编辑器,换了几个东家,回头一看,那个mysql_connect("localhost",传奇"root","")看了整整一个下午,愣是传奇没搞懂为什么连数据库还要填密码——我本地压根没设过密码。<?php echo "hello"; ?>,保存,传到服务器,刷新页面,它就出来了。这个反馈循环短得令人上瘾。对一个刚学会<table>标签的人来说,这几乎是魔法。getUserInfo到get_user_info再到GetUserInfo,三种风格在同一份代码里和平共处。这不是段子,这是2010年前后大量中小公司的真实写照。mysql_query,就默默关掉了编辑器。echo "hello",看看能不能跑起来。跑起来了,再说别的。index.php还在。打开还是那个样子。改两行,传上去,刷新。它还是能跑。
- 最近发表
- 随机阅读
- 搜索
-
- 友情链接
-