PHP到底问题出在哪里的呢?

2012-03-11 11:33:03 +08:00
 binarymann
最近在学习web development,遵循网上一边倒的声音,尝试了ror以及python web框架,前者那个复杂啊,对于新手完全找不到北,新的ror还加入了很多如coffeescript的新技术,更是火上焦油,python相对而言要温柔的多,我学习的是gae自带的框架,据说是最简单最少魔幻的。最后看了下台湾中原大学的PHP视频教程,那叫个讲的透彻,就易学来说无人出其二,主机资源也多又好部署,Facebook,微薄不也都是PHP写的吗,看来生命力旺盛啊
5937 次点击
所在节点    问与答
19 条回复
Vim
2012-03-11 11:56:25 +08:00
坊间对 PHP 的不满主要是针对其语言中的一些不一致,比如一会儿 str_replace,一会儿又是 strlen。还有函数的冗余问题,比如 str_replace 和 str_ireplace,其实给 str_replace 加个参数就完了,完全没必要再来一个函数,而功能基本没啥大变化。5.4 之前连 array dereference 这样的功能都没有。关于其他针对语言设计上的讨论可以看 http://phpsadness.com/

另外 PHP 本身门槛不高,因此很多没经过良好编程习惯的新手写出了一坨坨诡异的 PHP 代码,这也让坊间对 PHP 产生了不好的感觉。其实我倒觉得 PHP 作为一门入门语言还行,掌握一门语言再学其他语言会轻松很多。而且 PHP 本身也有像 SPL 这样的高级特性,PEAR 和 PECL 这样的好东西,以及可以说编程语言中最好的文档资源。

所以与其说是 PHP 有问题倒不如说是很多使用 PHP 的人有问题。
iblogger
2012-03-11 12:12:26 +08:00
我在用php+codeinteger很好
現在還有像ruby gem的東西可用 (http://getsparks.org/)
binarymann
2012-03-11 12:28:18 +08:00
本以为会招骂的,看来还是有觉得PHP好的哈
qiayue
2012-03-11 12:36:37 +08:00
@iblogger +1 我们也在用这个框架

其实吧,你要想快速实现某个小功能,用PHP就很好(这个对比是基于我只会php和java),能够便捷的开发。

比如我这个秋玉米 域名批量查询工具 http://www.qiuyumi.com 就是用PHP开发的,因为只是我一个人,而且是那种想快速试错的,所以选择了PHP
sutar
2012-03-11 12:39:05 +08:00
CodeIgniter +1
Yii也很不错
YvetteM
2012-03-11 12:40:36 +08:00
问题在使用者的滥用和……好吧我承认php的语法的确比较ugly。

所以……我转投Python的怀抱了。
binarymann
2012-03-11 12:45:54 +08:00
那就PHP学习材料各位有推荐的吗,我在看php 和mysql web开发
freefcw
2012-03-11 12:51:15 +08:00
其实我是觉得PHP还是挺好的,但关键就在于PHP的混乱。。。而且这几年的发展好像总是会招来骂声的样子

其实Python也有混乱的地方,不过整体来说还是很优秀的,话说Python的部署依然是个麻烦的问题
insraq
2012-03-11 12:53:54 +08:00
1L说的不错,补充一点关于框架。框架分成两种:

第一种是Micro framework,这种框架充分的照顾了初学者,一般只有MVC和Route,初学者很容易上手,但是缺点是要重复造的轮子太多,开发不够快速。这类的框架比如:Sliex, Sinatra, Web.py

第二种是Full stack framework,这种框架是可以用于大规模开发的,组件很多,一般包括ORM和Template,耦合度也比较高,缺点是入门较难,而且很依赖框架本身,这类框架比如:Rails, Django, Symfony
Hyperion
2012-03-11 13:06:43 +08:00
记得我以前一个帖子里, 说PHP乱, 还被人说我喷PHP.

说实话, PHP是我用的最顺手的语言 (想了很久, 这里几十个字还是删了吧. 不小心喷着java神马的我才不会再干呢, 后遗症太严重了.)

看文档, 看手册, 看一些带丰富实例的教程就成了. 个人视频教程不推荐, 一直觉得看着别人打代码来学习语言是一件非常诡异的事情, 戳开记事本自己打完跑一下不是更好?...
lizheming
2012-03-11 13:28:59 +08:00
台湾中原大学..好的..谢谢楼主推荐~
binarymann
2012-03-11 20:06:31 +08:00
而且还有点比较好的就是学习材料多,书一摞裸的
lch21
2012-03-11 20:29:51 +08:00
PHP 很好用。

支持PHP的虚拟主机很便宜.

代码质量是写代码的人决定的,而不是语言决定的。

Yii 框架的代码就写得很好
muxi
2012-03-11 23:23:14 +08:00
作为一个使用PHP作为主要编程语言5年的人,这里表达一下我的观点

1、任何语言都有自己的擅长的领域,说什么好,什么不好,都太绝对了,你不能拿LISP和JAVA去比谁更面向对象
2、没有一种语言可以通吃所有的应用场景,你不能指望用一种语言实现所有的功能
3、每一种语言都有诟病的地方,Java啰嗦,Python社区混乱,Ruby过多的语法糖,Javascript过于灵活等等

楼主说PHP挺好,为什么那么多人还诟病它,是的,在一个WEB化CMS的领域我觉得PHP是一个非常优秀的工具,简单,直接,性能可以接受,社区活跃,解决方案非常多。但他无论怎样总有不擅长的领域。楼主可以自己去发现那些批判的人都是哪种类型,我总结了一下,大概有如下类型

1、某种非PHP语言的粉丝,像iteye老大Robbin Fan这种对Ruby执迷的人,这种争论我个人觉得很无聊,没有孰高孰低,只是看你的系统,如果你曾经用PHP写的系统,那继续用PHP也没什么问题,如果你只是想尝试一下Ruby也没有错,反正都能实现相同的东西
2、纯理论研究者。这种人没有啥实践经验,但是了解不少编程语言,大脑里总是想有一种语言集百家之所长,但是迫于现实又不得不使用php的人
3、维护别人留下来烂摊子的人,很多抱怨的人都是经受过这种折磨,php有时候真的不适合大规模协作的项目,或者需要一个很好的机制或者控制着来规避一些问题,而整个产业里面,这种掌控能力的人非常少,也没有大规模协作的范本或者指导性措施(JAVA领域就有),导致大多数活着的PHP语言开发项目质量非常的差
4、CMS只是一个很小的一个功能。当你的业务在不仅仅是发布,展示,这么简单的时候,或许PHP就不适合了,或者只适应其中的某一个模块,最典型的就是电子商务领域、金融领域等等,比如你发布一个商品,会触发一些列的操作,比如要去做搜索,要去计算权重,要去分析关键词,要去检测黑名单,要去做通知……等等,所有的这些都是一服务的形式在运行的,这时候就会有人抱怨PHP不能多线程,不能很好的做分词,不能很好的做Server,不能更高效的执行,不能xxx,当PHP在整个项目里变得无足轻重的时候,抱怨就来了
5、最后一种人就是小白,没事就跟风吐糟
dongbeta
2012-03-11 23:45:46 +08:00
@lch21 从代码规范来说,yii并不怎么样。我是yiidoc组的,我不是来黑的。。。。。
lch21
2012-03-11 23:49:55 +08:00
@dongbeta 你觉得哪个PHP 项目代码比较规范。我想学习一下。

Yii 框架我觉得比较顺手。MVC 分得比较清晰,有点类似struts
dongbeta
2012-03-11 23:52:58 +08:00
@lch21 代码规范和设计模式看Zend Framework 2。实际项目优先使用Yii。
lossdante
2012-03-11 23:58:07 +08:00
siny?ror比较火一部分是因为mvc吧,同时对ajax支持更好,再加上php没有纯oop特性,但是大家都知道,到底谁牛逼看的是使用者,就像不管硬件空谈ruby和php网站的效率和速度一样荒唐
fature
2012-03-12 20:33:01 +08:00
@dongbeta re.代码风格不是很统一

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/29320

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX