为什么说PHP是首选的Web开发语言?
2016.01.08 22:59:56
不知何时开始,程序员把一致的调侃送给了PHP,“尊称”其为“神语言”,并且PHP总被冠以“代码凌乱”、“漏洞不少”的不良名称。在我所接触的Web开发技术如:Rails、 ASP.NET MVC、Java Web、Django、Sinatra以及PHP中,PHP应该是首选Web开发语言。 请注意,这里的“首选”不是“最好”的意思,而是开发工具栈学习选型过程应该优先考虑的技术。
为什么这么说呢?理由一下子在脑袋里冒出了好多条,姑且梳理下吧:
- PHP是为Web而生的,天然与HTML、JavaScript有亲近感,也就是原生味儿十足。即使是PHP与HTML代码混杂,从某种角度而言,也能帮助初学者直观地了解Web技术机理,坏事有时候也是好事。另一方面,开源PHP的C风格、Unix/Linux范儿让其在Apache、Nginx等Web应用服务器上表现优异。 总之,PHP与Web是浑然天成的结合方式。
-
要掌握PHP,我建议从备受诟病的“代码凌乱”编程风格 -- 或许是从PHP与HTML混合编程开始,待直观了解Web开发技术之后,再考虑代码组织和结构的重构,这样有助于自己以更加原生的方式掌握Web的秘密。那么,什么是更加原生的方式呢?随手举个例子:典型的404状态码。
用PHP的实现:
404.php
404.html
404页面。
再看看如 ASP.NET MVC中的实现:
public ActionResult Details(int id){ return HttpNotFound();}
虽然封装得很好,但是,跟PHP方式比较就知道, ASP.NET MVC中的实现确实比较抽象不够直观,而且是在控制器里直接定义和跳转的。 在PHP中,显而易见,一下就明白了代码中header的含义:HTTP-Version、Status-Code、Reason-Phrase。
顺带说说Rails中的处理方式,抽象程度也很高:
render :template => '......', :status => 404
-
与PHP类似的还有JSP,但JSP往往需要与JEE其他技术模块相配合使用,体系足够庞大,需要有长期准备。其他如 ASP.NET MVC、Rails等框架的抽象度较高,也不建议作为首选。
-
不得不提Node.js,Node.js是目前很火的技术,号称“全栈”的希望所在,常拿来跟PHP争论比较:什么并发、线程、进程等等。在这里无意评论孰优孰劣,但至少PHP可以让你多掌握一门技术,而不止是JavaScript。此外,PHP的大型业务的成熟应用案例可是比比皆是吖。
-
那么,是不是该一直坚持指哪打哪的“代码凌乱”方式呢?当然不应该。PHP提供的OOP特性足够强大,在技能与理解程度达到一定高度时,完全可以以OOP的方式来组织代码。在PHP领域,各种框架非常多,比如Laravel、CI、FuelPHP、Yii、Symfony、Zend Framework等等,届时随便选一个都可以进行规范化开发。 “代码凌乱”关键不在于工具本身,而在于人自己!要知道用Java也能写出烂代码。
-
PHP的资料非常丰富。
-
最后,有一个稍稍题外话的看法,早前我还觉得在RESTful方式不断普及下,由于RESTful Web Services使用标准的 HTTP 方法(GET/PUT/POST/DELETE)来抽象Web服务能力,服务端的重点将移至MC,而服务端视图模版的应用会减少,客户端的支撑需求会越来越多。比如各种前端库、框架将得到快速推进,越来越多的需求处理会前置到前端来处理。但现在我感觉这种状态考虑得太过理想了,就像数据频繁大量更迭及处理的场景,更适合服务端(如模版引擎)完成;再具体地,又如大数据量的分页,如果都在浏览器中实现,性能就一定会有很大问题。此外,频繁Ajax调用、客户端缓存机制的缺失,也将引起种种问题,再进一步来看,单页面应用(SPA)也就并非适合每一个业务场景, 服务端视图模版还是有比较多的适用领域的。
上一篇: php将session保存在memcached中的方法
下一篇: mysql的事务运作_MySQL
推荐阅读
-
编程语言PHP在Web开发领域中的优势_PHP教程
-
编程语言 PHP 在Web开发领域的优势分析
-
当说PHP是最好的语言的时候,理由在哪里?
-
为什么说PHP是首选的Web开发语言?
-
为什么说Python是最适合入门的编程语言?详解Python
-
为什么会有人说 C++、Java、PHP 是程序员找工作的硬通货?
-
为什么第一种情况是正确的呢,不是说,继承父类需要放在子类之前吗?(PHP)
-
为什么说python是世界上最好的语言 ?
-
为什么会有人说 C++、Java、PHP 是程序员找工作的硬通货?
-
不显示删除回复显示所有回复显示星级回复显示得分回复 PHP是不是三大Web开发语言(Java、ASP.NET、PHP)中最没素质的一种语言?解决思路