当前位置:  开发笔记 > 编程语言 > 正文

学习PHP - 开始使用框架或不?

如何解决《学习PHP-开始使用框架或不?》经验,为你挑选了2个好方法。

我注意到我的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,因此甚至没有触及语言的某些部分.



1> Alfred..:

入门

如果您正在尝试学习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/的大多数幻灯片非常好.

学习PHP

在过去,我偶然发现了Matt Zandstra的PHP书,这本书非常好,我认为你应该阅读它以正确学习PHP.

PHP"最佳"实践:

"清洁"代码:

学习Recess PHP框架.我也非常喜欢这个框架.它将帮助您创建类似休息的应用程序.

学习TDD/PHPunit以正确测试您的代码.

学习MVC.

学习OOP.

性能:

APC:如果可能你应该真的安装apc来加速php.它将PHP操作码存储在内存中(巨大的,巨大的提升).

Memcached:当您的数据库负载很重时,您还需要将查询存储在内存中.

祝好运!


令人惊叹的答案,优秀的参考,爱Rasmus benckmark +1 Amzing看到CackePHP是如此该死的慢.另一个banchmark链接是这个http://www.ruilog.com/blog/view/b6f0e42cf705.html和CackePHP仍然执行orribly.

2> ABach..:

如果你担心在没有框架的情况下学习PHP会在你头脑中打出不好的做法,那么我们就会遇到更大的问题.;)我相信,在熟悉任何类型的框架之前,您应该对语言本身感到满意.作为深入研究许多PHP框架的人,我可以保证使用一个不会自动帮助你学习"好的PHP"(它仍然很可能在控制器中编写糟糕的代码等).

我的建议?如果你已经熟悉OOP,那么你就不会在PHP中获得良好的OOP实践.先做到这一点 - 确保你对语言及其特性感到满意.一旦你达到这一点,你将有更大的基础来欣赏你选择的框架.

(我建议你不要过于关注Zend Framework;是的,它是"灵活的",因为它是围绕MVC概念打包的松散的库集合,但它并没有带来很多真正的MVC功能性并且在很多领域都是不必要的复杂化)

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有