两个月前我几乎完全不会PHP,糊里糊涂的接手了一个手机网游门户的开发,临阵退缩是没有用的,IT技术作为现今工业社会里更新换代最快的一个行业,任凭谁也不可能全部掌握所有的技术,作为一个优秀的开发人员,随时学习新技术并且尽可能的最快掌握应用到项目中,便是必需具备的基本素质。手艺总是多少有一些相通之处和可继承的,琵琶弹得好、学习吉他自然也不难,从钢琴到小提琴跨度是有点大、但是音乐知识也是一样的。快速的学习需要扎实的基础、准确找出共通点的敏锐触角、举一反三的领悟力、锲而不舍寻求答案的毅力。PHP是一只两栖动物,自5.0之后开始支持面向对象,但是同时兼容面向过程的编写。这特性使得PHP容易上手却难以精通。两个月里摸着石头过河,边学边做到最后项目完成,不敢以高手自居,多少掌握了一些PHP学习和编程的小窍门,为了避免如我一样的初学者或项目需求者多走弯路,特地整理一下心得与同行分享。

与国外和香港台湾地区相比,国内的PHP程序员相对较少,精通的更是为数不多。一个很大的原因是中国大陆是盗版大国,大伙都爱用Windows系统,用.Net写程序,用Sqlserver存储数据,反正微软不会上门开罚单。两个月的项目开发周期过去了一个月,后台系统我都几乎写完了还没有招到我满意的PHP程序员。有两个合符标准的,一个因为个性有点特立独行,另外一个要价7K超出公司预算被我Pass掉,导致最后我招了一个编程基础比较好的小伙子进来自己带。当我还在上一家公司做.Net项目时,有个同事曾经对我说他羡慕PHP程序员的薪资高,我当时不以为然,那种程序写得好薪资不高?现在倒有了更深的认识,PHP程序员薪资高,不是因为PHP程序写得好,一般而言相关的技能也得有相当的程度。随便在网上找一份PHP程序员的招聘一起看看。

1. 两年以上PHP开发经验,熟悉smarty模板,熟悉Linux+Apache+Mysql+PHP架构,熟悉Zend架构者尤好;

2. 具有MySQL索引优化、查询优化和存储优化经验、PHP缓存技术、静态化设计方面的经验;

3.熟悉Discuz!,UCHome产品,能做二次开发;

这也是我招人时所要求的。一般而言,PHP的项目不会用微软的windows平台和sqlserver数据库,除非公司足够大,不然linux服务器的管理便是由PHP程序员兼顾。Mysql数据库可不像微软的Sqlserver那么傻瓜化,配置与调优是一门大学问。稍为正式一点的门户都会搭配着上Discuz论坛或者UCHome,整合与二次开发便是无可避免的事情。当一个PHP程序员具备这些技能时,薪资高些也在情理之中。各位学PHP的朋友们,看到这里应该对自己的学习计划有比较清楚的认知了吧。

作为开源世界的前锋,PHP有很多优秀的架构,如Zend, CakePhp, Symfony等等。其实一直到项目开发完毕我才开始接触Zend,一个成熟的架构的确能减轻不少工作量,但是如果在项目启动时就贸然上这么大的框架,而本身对PHP技术没有很深了解的情况下是很难驾驭的了的,势必引发出各种各样棘手的问题。正是考虑到了这一点,所以我步步为营的往前走。先是采用最原始的方式,将PHP与HTML代码混合着编码,做完两个模块后对PHP语法和她的一些特性、怪癖有了清楚的了解后开始加入Smarty模板,将业务逻辑与用户界面进行分离。再做几个模块,搞清楚了Smarty的那套语法、标签和组件后再把数据处理剥离出来形成了MVC架构,一点一点的完善,既保证了开发的进度,也使得系统越来越合理,一直到最后稳当的完成了整个项目,没出大乱子。到了最后再回头来看Zend,CakePhp这些觉得也没什么神秘。

因为开源,所以PHP是个没爹没娘的孩子,不像微软,无论是平台、语言、数据库、IDE全都打上Microsoft Family的烙印,大多数东西微软都封装好了,你不知道为什么,也不需要知道为什么,使用就是了。初用PHP难免会遇到一些奇奇怪怪的问题,例如相对路径与绝对路径、数据库乱码、header跳转报错、session也报错等等。也正是因为开源,所以网络上几乎都有相应的解决方案,只要你真正了解问题的根源,自然能搜索得到相对应的答案。

WEB开发很大的比重是在于数据库的操纵,SQL便是程序员必需精通的一门技能。相信有不少PHP程序员如我一样,是从微软开发平台转行过来的。用习惯了Sqlserver,改用Mysql时也会遇到一些小挫折,毕竟是两家公司不一样的产品。最明显的就是指定行数的关键字top变成了limit,连接符+在mysql中变成了concat等。这些倒都是小事情,记得就是了。有一种SQL却让我有点不爽。如:select * from table1 where userid in (select top 10 id from table2 order by createdate desc),在mysql里因为不支持而改成了select * from table1 where userid in (select id from (select id from table2 order by createDate desc limit 10) as t ) order by createDate desc。这样累赘的语义很让我烦恼总记不住,最后准备了一本mysql cookbook。

PHP是一门优秀的开发语言,以后将会继续大放异彩,特别是在facebook推出hithopPHP之后。真要说到项目开发,那是一本书的篇幅也讲不完的事情。以上只是总结我在开发过程中的感受和经验,真正的应用还得在项目实战中自由发挥。一千个人眼里有一千个哈姆雷特,一千个人就有一千种解决问题的办法,但终究只有一种方法是最有效直接的,编程、就是不停的寻找那种方法。

PHP书籍推荐:

书店里PHP开发的书籍非常多,但真正优秀的却很少。下面推举几本我看过、用过、感觉不错的书供学习参考。

《大道PHP-LAMP+Zend+开源框架整合》 电子工业出版社

这本书是我接手PHP项目后买的第一本PHP书籍,99块人民币,846页的篇幅,一直到项目完成我都没完整看完,只是把它当工具书查阅使用。这本书不太适合初学者,里面有不少案例是错误的,必需修改后才能运行。Zend框架也介绍得太过简单。

《PHP Web2.0开发实战》 人民邮电出版社

老外写的一本书,技术含量比较高,详细介绍Zend架构与Smarty配合使用,所用的案例也是循序渐进步步深入。适合有基础的PHP程序员阅读。

php项目开发经验-2个月学习php经历相关推荐

  1. delphi项目开发经验2008年09月18日 星期四 10:07随着项目的失败,这些天一直在总结失败的原因,到底是为什么?

    delphi项目开发经验 2008年09月18日 星期四 10:07 随着项目的失败,这些天一直在总结失败的原因,到底是为什么? 一.技术层面          1.少用指针类型,多用类.       ...

  2. FPGA项目开发:基于JESD204B的LMK04821芯片项目开发经验分享

    大侠好,阿Q来也,今天头一次和各位见面,请各位大侠多多关照.今天给各位大侠带来一篇项目开发经验分享"基于JESD204B的LMK04821芯片项目开发",这是本人实打实的项目开发经 ...

  3. Unity一个月学习体会

    Unity一个月学习体会 一.资料篇 书 视频 论坛 API手册 初学一个软件,第一步当然是找资料呀,而且应该先找一本书. 虽然在数据爆炸的网络时代寻找各种资料并非难事,但要从中挑选出适合初学者的却要 ...

  4. 移动端 项目开发经验集锦

    移动端 项目开发经验集锦 本次要与大家分享的是,在项目开发过程中,移动端遇到的各种问题~本文主要与大家分享移动端开发经验,主要包括表单兼容(fixed定位的input存在的问题.iPhone.iPad ...

  5. ssm毕设项目基于的少儿编程学习系统2lsiy(java+VUE+Mybatis+Maven+Mysql+sprnig)

    ssm毕设项目基于的少儿编程学习系统2lsiy(java+VUE+Mybatis+Maven+Mysql+sprnig) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + ...

  6. 清凉一夏 5 月学习挑战,得限量勋章冲榜赢现金

    CSDN 清凉一夏 5 月学习挑战活动开始啦!我们为参与用户提供了不同类型的奖励: (1)参与奖:每天答对 1 道题,解锁技能树知识点,连续 14 天,并每天记录 1 篇解题笔记,活动期间累计 7 天 ...

  7. 想在家挣钱,这几个项目可以让你月入过万

    在创业潮正轰轰烈烈的时候,有很多人因为种种原因而无法出门创业.特别是有孩子的年轻妇女,由于时间原因无法参于很多的创业项目.但是也有很多妇女也想在家挣钱,利用闲暇之余可以赚取一部分零花钱,推荐这几个项目 ...

  8. 大前端课程 - 4.5个月学习总结

    大前端课程 - 4.5个月学习总结 文章内容输出来源:大前端高薪训练营 时光匆匆如白驹过隙,4.5个月的大前端课程学习,让我收获了很多,也意识到虽然知识是有限的,但是随着学习的深入,发现自己不会的知识 ...

  9. e智团队实验室项目-第一周-神经网络的学习

    e智团队实验室项目-第一周-神经网络的学习 张钊 *, 赵雅玲* , 李锦玉,迟梦瑶,贾小云,赵尉,潘玉,刘立赛,祝大双,李月,曹海艳, (淮北师范大学计算机科学与技术学院,淮北师范大学经济与管理学院 ...

最新文章

  1. MappedByteBuffer,可以让文件直接在内存(堆外内存)修改,操作系统不需要拷贝一次。而如何同步到文件由NIO来完成
  2. 两台电脑cpu序列号一样_如何正确使用苹果电脑?
  3. ansible自动化部署(一)
  4. ps清理缓存脚本_清理垃圾脚本,让你的电脑丝滑如新!
  5. FFmpeg编码扩展之————编码库的扩展(libfdk-aac)
  6. 今日心得:给自己写信
  7. php自学目录,PHP学习笔记(二) 了解PHP的基本语法以及目录结构
  8. anaconda moviepy_Anaconda使用之安装篇(Windows)
  9. android 动画 translate,Android动画之TranslateAnimation使用
  10. 超简单的HIDPI设置
  11. 依赖搞定 Spring Boot 接口防盗刷
  12. homeassistant搭建_智能家居 篇二:Home Assistant简易智能家居环境搭建
  13. php钉钉机器人,PHP调用钉钉机器人
  14. linux进入桌面后CPU狂转,笔记本风扇狂转+CPU调节问题
  15. OpenStack in containers
  16. 分享三个前端学习方法、十项前端面试笔记:养精蓄锐,为想去的公司努力一把
  17. Java分页查询详解
  18. The run destination iPhone is not valid for running the scheme “xx”
  19. 安装Ubuntu13.10后的首要事情
  20. 人机大战引关注 人工智能概念股有望受追捧

热门文章

  1. 正点原子的ATK-LORA-01调试过程
  2. Linux/macOS的打包、压缩、解压缩
  3. process获取父进程_Windows Process Explorer获取有关进程的详细信息
  4. VS2012中解决方案资源管理器的图标含义
  5. 案例推荐|服务 50+ 业务线,Apache Pulsar 在科大讯飞 SRE 的探索与实践
  6. SAT数学解题方法:逻辑推理
  7. Windows 7 旗舰版 With SP1 OEM 33in1 贺岁版
  8. python电脑下载什么软件-Python编程软件(专业电脑编程工具)V3.9.1 最新版
  9. 网页版时钟动画效果 html模板
  10. Python 爬取腾讯电视剧评论