多数大学生出来选择的工作和专业无关
首页 > 专业知识

PHP比你想象的好得多的方面有哪些

时间:2018-02-10 16:21:51 [来源]:郑州PHP培训学校

   PHP比你想象的好得多的方面有哪些

  PHP5.0(2004年发布)带来了很实用的对象模型…等等,我在说8年前发布的东西。快进到现在的PHP5.4,即PHP最近的版本,带来了对于现代web语言你梦寐以求的东西:是的,PHP支持了命名空间(namespaces);是的,PHP支持闭包(closure);是的,PHP支持traits。
  尽管需要花费一些时间,但是PHP5.4带来了一些语法糖使得整体体验比以往更好:是的,PHP支持用[ ]定义数组;是的,PHP支持新创建的对象这样调用函数:(new Foo())->bar();是的,PHP支持数组这样获取元素:$foo->bar()[1]。
  PHP甚至向它自己曾犯过的错误学习:register_globals 和 magic_quotes被彻底删除了。
  PHP有了内置web服务器以方便本地测试,它能以微秒级的速度启动。
 
  接下来的挑战:我们怎样更新在网络上的讲解PHP的教程?在PHP程序中最好的支持WebSocket的技术是什么?
  PHP生态系统
  拥有一个好的语言是很好的,但是拥有一个好的生态系统更棒。在过去的几年PHP生态系统演变了很多。
  Git
  对于Git我不想讨论太多,Git被到处使用,PHP很快拥抱了Git。几乎所有PHP类库、框架和产品都在使用Git,包括PHP本身。
  国外PHP大师给初学者的8条建议
  学习一门新语言可能会是一件很艰巨的任务,最好的办法就是借鉴前辈的经验已达到事半功倍,下面就是为PHP新手们准备的一些经验餐(笔者也还是新手)。
  AD:51CTO 网+ 第十二期沙龙:大话数据之美_如何用数据驱动用户体验如果你还不清楚PHP是什么,可以留意下那些你天天使用的web应用,例如Facebook、Wordpress都是用PHP构建起来的。
  学习一门新语言可能会是一件很艰巨的任务,最好的办法就是借鉴前辈的经验已达到事半功倍,下面就是为PHP新手们准备的一些经验餐(笔者也还是新手)。
  如果你是个PHP开发者,无论是新手还是高手,笔者都希望你能在此讨论下自己对PHP的想法或者技巧。
  1. 从OOP开始
  Naramore是SourceForge员工以及PHPWomen.org的创办人。对于初学者,她建议在学PHP之前先了解清楚OOP(Object-Oriented Programming)即面向对象编程思想。
  如果你来自非高科技行业,很有必要花一些时间去学习软件开发的基础流程。例如面向对象程序设计、测试驱动开发、版本控制、调试、设计模式等。”
  如果你已经尝试过了但无法解决问题,不要害怕开口问人。很多PHP社区的气氛都是非常友好的,并且提供了大量初学者可用得上的资源,这些都你来说都会大有帮助的。找一个适合自己的稳定的社区,一个本地用户组或一个开源项目社区,或者是一个freenode上的相关IRC聊天频道。”
  2. 随时Google
  Casey创立了一个软件商店,并且在unconference流程方面做了很多研究。
  他的建议是在PHP社区找到自己的位置以及遵循发问前先Google一下”。
  马上找到一个用户组加入,全世界有很多聪明的人聚集一起聊天、开拓思路、互相帮助的PHP群。”
  记住,在提问之前先尝试在google上搜索。没人喜欢懒惰的人。”
  3. 加入开源项目
  Leonard 在运营一家爱尔兰软件公司echolibre,同时还是CloudSplit(一个云计算分析服务)的联合创始人。和他的很多同龄人一样,他建议应该积极尝试加入开源项目,即使你是个新手。
  通过参加开源项目你有机会看到那些源代码,并可以向资深的前辈学习。”
  帮助开源项目团队做一些事,例如寻找和记录重复性的bug这样的耗时任务,他们会对你心存感激。当我们想要雇用开发人员时,如果他曾经参与过OSS项目,我们会更多地考虑他对公司的潜在贡献。”
  4. 想了就做
  Lornajane 他在网上的身份Mitchell更为出名,是一个PHP顾问、开发者、作家和演说家。
  她给出了一句简短的建议:想了就做。
  PHP是一种非常易懂、可以进行快速开发的语言。想知道一件事是否可行的最佳方法就是去做这件事。”
  任何人都可以用PHP编程。低门槛意味着会有很多糟糕的PHP作品。但很多糟糕的PHP作品却是非常有用的,即使它看起来并不漂亮。我个人认为如果你能用PHP解决问题,就大胆去实行,即便做出来的东西可能并不完美。”
  5. 避免编码倦怠
  Cornutt 运营PHPDeveloper.org和Joind.in,他从1998年开始一直在使用PHP。他给PHP初学者的建议是千万不要产生编码疲劳和倦怠。
  我认为新手PHP开发人员很容易陷入一种不堪重负的境地...初学者往往是对语言有兴趣,但总是被一种能运行即可”的心态误导,以至事倍功半。”
  试图找到一位导师来引导你进行这些初步的学习步骤。当你真正去同他人沟通时,会发现世界很多不同的东西。IRC是一个很好的选择,但找一个牛人做老师肯定是最佳选择。"PHP开发也是一种需要磨练的技能,没人可以在一夜之间变成一名高手。”
  关于PHP实现异步操作的研究
  1.为啥PHP需要异步操作?
  一般来说PHP适用的场合是web页面展示等耗时比较短的任务,如果对于比较花时间的操作如resize图片、大数据导入、批量发送EDM、SMS等,就很容易出现操作超时情况。你可以说我可以设置无限超时时间,等等你也要知道PHP有一个工作模式是fastcgi,PHP无限不超时,不代表 fastcgi相应不超时……如果你还想说要fastcgi相应永不超时,我建议你应该跟你们的运维人员讨论去……这个时候异步的操作就发挥他的作用了,由于是非阻塞操作,操作会即时返回,然后在后台再慢慢干活。管你超时不超时的,我就没有在当前的进程/线程下干活。看吧是不是很美好,不过其实这也是个坑……2.PHP可以实现异步操作吗?
  答案是肯定的,不过网上各种的纯PHP实现得就有点别扭了。socket模式、挂起进程模式、有的还直接fork进程。很好,各路神仙各显神通。如果运维人员看到的话,一定会×××××你们的,不把web server跑死才怪……那还有其他更好的方法去实现这个异步操作的可能么?有,现在我们只有想怎么开外挂了。查一下PECL主流的外挂方案有一堆的××MQ(消息队列),其中有个用于任务分配的外挂进入了我们的视线Gearman(其实这家伙才是角,我就不详细介绍了,点连接看介绍)。
  3.为啥选择Gearman?
  别的不说,就说他的client多,支持很多语言的client,你可以使用大部分你喜欢的语言去写worker。我个人是很烦语言之争,你喜欢用神码语言写worker都随你喜欢。有数据持久化支持(就是把队列保存到数据库介质中,那故障恢复也好做),有群集支持(其实很多××MQ都有这些功能)。 PECL上有扩展,也有纯PHP实现扩展。反正这个Gearman也活了很久了,杂七杂八的问题都基本上解决了。
  4.基本思路
  有了Gearman这外挂就简单多了。就是向gearman发送一个任务,把执行的任务发出去,然后等待worker去调用PHP cli去运行我们的php代码。
  我就写了一下一个python的worker(别问我为啥用python,1.我会python,2.linux下不用装runtime),你可以自己根据思路写一个PHP的worker,不过嘛,本人是不太信得过PHP跑的worker。其他语言饭可以用java、node.js 或者其他语言实现一个worker试试。对用Golang写worker有兴趣的朋友可以找我。
 

上一篇:经常用到的PHP正则表达达式

下一篇:10位顶级PHP大师的开发原则(1)