我用了一天时间学会了php,真的。我现在已经可以流畅的用thinkphp框架开发php了。学习过程是这样的:我接了个php的项目,包括两个部分:老系统添加功能和优化,再新做一个系统。已经答应给人家做了,所以“嘣”一声,我就会了。逼上梁山,没有做不了的事。我接到活儿,白天一整天没能把环境跑通,但是我边想边联系了好几个做php的兄弟。当我自己可以将问题问题定位了,也晚上了,估计大家也都有空了。我开始有针对性的问他们问题。最后一个问题是关于nginx配置的,问了好多php大牛的兄弟都说我配置的没有问题,不知道为啥会那样。当问题没有道理,没有突破口的时候,我就只能怀疑用的开发环境了,下了一个新版本的wnmp,果然问题就消失了。终于可以开始正式写代码了。
当初也用很短的时间接了一个python的项目,一个c#的项目,当时都是项目做成了,效果达到了,但是技术不用就忘了。想想别人抱怨日语不用就忘了的时候,我却是现在也还是可以立即拿的起来的。原因是我思考了很多,联想比较了很多,才稳稳的拿到了每次考试全东软8万人第一的位置。所以我希望这次做php也能达到同样的效果。
先记录一下问题:配置好nginx path_info之后,打开php配置里的cgi.fix_pathinfo=1 。结果所有minsu/index.php/XXXX的链接路径被显示成minsu/.php/XXXX 里面的链接就显示的更乱了。刚刚从一个好使的版本升级之后,配置被重置。配置了一半,没打开cig.fix_pathinfo时似乎也有同样现象发生,以后可以研究下。
写PHP代码是很容易的。我用的是ThinkPHP框架。PHP的架构也是模块化设计,基于模块/控制器/操作。可以支持多入口文件和多级控制器。思想和Spring MVC很像。可以称作多层MVC。对于Java出身的人来说稍微新一点的概念就是CBD(核心Core+行为Behavior+驱动Driver)架构模式。从底层开始,框架就采用核心+行为+驱动的架构体系,核心保留了最关键的部分,并在重要位置设置了标签用以标记。其他功能都采用行为扩展和驱动的方式组合,开发人员可以根据自己的需要,对某个标签位置进行行为扩展或者替换,就可以方便的定制框架底层,也可以在应用层添加自己的标签位置和添加应用行为。标签位置相当于咱们的“切面”。行为都是围绕这个“切面”来进行编程。
我根本不想做一个全才,致力于做专精尖的人才。全才也根本不需要什么能力,对于一个技术的深度达到了,转移到其他技术上本来就是很容易的事儿。只是这是一种天赋,做天赋之内的事情是很舒服很放松的,消遣而已。这种天赋的真正价值在于:永远都不害怕新的东西,新的挑战。永远都有重新开始的勇气。