我注意到我的PHP领域有很多工作.我之前从未使用过PHP,如果我拿起它可以获得更多机会,那么这可能是一个好主意.问题是没有任何框架的PHP是丑陋的,而且99%的时间都是非常糟糕的代码.我见过的所有教程和书籍都非常糟糕 - 它从未表现出任何良好的编程习惯,但始终是快速而肮脏的做事方式.我担心尝试以这种方式学习PHP只会将这些不良做法记录在我脑海中,让我在以后试图忘掉它们时会浪费时间.我过去使用过C#,所以我熟悉OOP和软件设计模式以及类似的东西.
我是否应该尝试使用其中一个更为人熟知的框架来学习PHP?到目前为止,我已经看过CakePHP,Symfony和Zend Framework; Zend似乎是最灵活的,没有像Cake和Symfony那样过于拘束(尽管Symfony似乎没有像CakePHP那样受到限制而且很难成为Ruby on Rails),但Zend的许多教程我已经看过假设你已经知道PHP和想学习使用框架.
什么是我学习PHP的最佳机会,但学习使用真正的软件工程技术而不是意大利面条代码的好PHP?似乎所有的PHP书籍和资源都假设你只是使用原始PHP,因此展示了bade实践,或者你已经知道PHP,因此甚至没有触及语言的某些部分.
如果您正在尝试学习PHP(没有PHP经验),我想您应该首先选择像Codeigniter这样的简单框架.在观看截屏时,您会发现使用Codeigniter可以在20分钟内创建一个简单的博客.我不认为你可以用简单的PHP编写这样的代码,因为codeigniter allready具有以下坚实的基础:
MVC:在我看来,这可以帮助您编写干净分离的代码.
MVC是一种将应用程序逻辑与表示分离的软件方法.实际上,它允许您的网页包含最少的脚本,因为演示文稿与PHP脚本分开.
数据库:这个模块可以帮助您解决数据库的痛苦问题.
CodeIgniter带有一个功能齐全且速度非常快的抽象数据库类,它支持传统结构和Active Record模式.数据库函数提供清晰,简单的语法.
简单:codeigniter非常容易上手,这是一个巨大的优势.
CodeIgniter分四步安装:
解压缩包.
将CodeIgniter文件夹和文件上载到您的服务器.通常,index.php文件将位于您的根目录下.
使用文本编辑器打开application/config/config.php文件并设置基本URL.如果您打算使用加密或会话,请设置加密密钥.
如果您打算使用数据库,请使用文本编辑器打开application/config/database.php文件并设置数据库设置.
快速:Rasmus(PHP发明者)确实对许多PHP框架(幻灯片24-32)进行了基准测试,正如您所看到的,Codeigniter与其他一些框架相比表现良好.另外我想注意来自http://talks.php.net/的大多数幻灯片非常好.
在过去,我偶然发现了Matt Zandstra的PHP书,这本书非常好,我认为你应该阅读它以正确学习PHP.
"清洁"代码:
学习Recess PHP框架.我也非常喜欢这个框架.它将帮助您创建类似休息的应用程序.
学习TDD/PHPunit以正确测试您的代码.
学习MVC.
学习OOP.
性能:
APC:如果可能你应该真的安装apc来加速php.它将PHP操作码存储在内存中(巨大的,巨大的提升).
Memcached:当您的数据库负载很重时,您还需要将查询存储在内存中.
祝好运!
如果你担心在没有框架的情况下学习PHP会在你头脑中打出不好的做法,那么我们就会遇到更大的问题.;)我相信,在熟悉任何类型的框架之前,您应该对语言本身感到满意.作为深入研究许多PHP框架的人,我可以保证使用一个不会自动帮助你学习"好的PHP"(它仍然很可能在控制器中编写糟糕的代码等).
我的建议?如果你已经熟悉OOP,那么你就不会在PHP中获得良好的OOP实践.先做到这一点 - 确保你对语言及其特性感到满意.一旦你达到这一点,你将有更大的基础来欣赏你选择的框架.
(我建议你不要过于关注Zend Framework;是的,它是"灵活的",因为它是围绕MVC概念打包的松散的库集合,但它并没有带来很多真正的MVC功能性并且在很多领域都是不必要的复杂化)