学习PHP – 开始使用框架或否?

我注意到我所在地区的 PHP工作很多.我以前从来没有使用过PHP,如果我拿起它可以获得更多的机会,那么这可能是个好主意.问题是PHP没有任何框架是丑陋的,99%的时间真的很糟糕的代码.我看过的所有教程和书都是非常糟糕的 – 它从来没有表现出任何一种好的编程习惯,但总是快速而肮脏的做事方式.恐怕尝试以这种方式学习PHP只会将这些不良做法印在我的脑海里,让我浪费时间,以后再试图解除这些错误.我以前使用C#,所以我熟悉OOP和软件设计模式等等.

我应该尝试通过使用一个更好的已知框架来学习PHP吗?到目前为止,我已经看过了CakePHP,Symfony和Zend框架. Zend似乎是最灵活的,而不是像Cake和Symfony那样受到限制(尽管Symfony似乎比CakePHP更难受限制,而CakePHP的尝试太难以成为Ruby on Rails),但是很多Zend教程都认为你已经知道PHP和想学习使用框架.

学习PHP的最佳机会是什么?但是学习使用真正的软件工程技术而不是意大利面条代码的GOOD PHP?似乎所有的PHP书籍和资源都假设你只是使用原始的PHP,因此展示了bade的做法,或者你已经知道PHP,因此甚至不会触及到语言的一部分.

入门

如果你正在尝试学习PHP(没有PHP经验),我想你应该首先拿起一个简单的框架像Codeigniter.当观看屏幕录像时,您将发现使用Codeigniter,您可以在20分钟内创建一个简单的blog.我不认为你可以用简单的PHP代码代码,因为codeigniter已经有以下坚实的基础:

> MVC:在我看来,这有助于您编写干净分离的代码.

MVC is a software approach that
separates application logic from
presentation. In practice,it permits
your web pages to contain minimal
scripting since the presentation is
separate from the PHP scripting.

> Database:这个模块可以帮助你很多数据库的痛苦.

CodeIgniter comes with a
full-featured and very fast abstracted
database class that supports both
Traditional structures and Active
Record patterns. The database
functions offer clear,simple Syntax.

> Easy:codeigniter真的很容易拿起,这是一个巨大的加分.

CodeIgniter is installed in four steps:

  1. Unzip the package.
  2. Upload the CodeIgniter folders and files to your server. normally the
    index.PHP file will be at your root.
  3. Open the application/config/config.PHP file
    with a text editor and set your base
    URL. If you intend to use encryption
    or sessions,set your encryption key.
  4. If you intend to use a database,open the
    application/config/database.PHP file
    with a text editor and set your
    database settings.

> Fast:Rasmus(PHP发明家)在那里做了许多PHP框架(幻灯片24-32)的基准测试,您可以看到Codeigniter与其他一些框架相比表现良好.另外我想注意到,大多数从http://talks.php.net/幻灯片真的很好.

学习PHP

在过去我偶然发现Matt Zandstra’s PHP book这是非常好的,我想你应该阅读它来正确学习PHP.

PHP“最佳”做法:

“清洁”代码

>学习Recess PHP框架.我也很喜欢这个框架.它将帮助您创建休息类应用程序.
>学习TDD / PHPunit来正确测试你的代码.
>学习MVC.
>学习OOP.

性能

> APC:如果一切可能,你应该真的安装apc来加快PHP.它会将PHP操作码存储在内存中(巨大的巨大提升).
> Memcached:当您的数据库负载过重时,您还需要将查询存储在内存中.

祝你好运!

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...