PHP之道
翻译:wulijun关注我的微博
目前网络上充斥着大量的陈旧信息,让PHP新手误入歧途,传播着错误的实践和糟糕的代码,这必须得到纠正。PHP之道网站的目标就是搜集PHP最佳实践、编码规范和网络上的权威学习指南,给PHP学习者提供一个易于阅读,快速查的入口。
翻译
PHP之道已经翻译成多种语言:
∙English
∙中文版
∙日文版
∙Polish (Coming Soon)
∙Portuguese (Coming Soon)
∙Russian (Coming Soon)
∙西班牙语
Ukrainian (Coming Soon)
免责声明
PHP没有规范化的使用方式,本网站只是展示业界的最佳实践、可用的选项和有用的信息,目的是帮助PHP新手,并对以往的经验进行反思。
本文档会随着相关技术的发展,持续更新其中的信息和示例。
如何参与网站建设
参与我们,让这个网站成为PHP开发者的最好学习资源!去GitHub参与建设网站
推广网站php编程手册
PHP之道有多个banner宣传图片可以放在你的站点上显示,让更多开发者知道这个网站,到权威的学习资料!
查看banner图片
Getting Started
使用当前稳定版本(5.4)
如果你刚开始学习PHP,请使用最新稳定版本PHP 5.4. PHP近年来有了巨大的改进,增加了许多强大的新特性。不要让低版本的PHP如5.2的缺陷误导你,这些新特性是对旧版本的重要改进。如果你想查一个函数及其用法,可以去官方PHP手册php查。
内置的Web服务器
有了它,你可以不用安装和配置功能齐全的Web服务器,就可以开始学习PHP(要求PHP 5.4版本)。要启动内置Web服务器,需要从你的命令行终端进入项目的Web根目录,执行下面的命令:
> php -S localhost:8000
了解更多内置的命令行Web服务器
Mac 安装
OSX系统会预装PHP,只是版本比最新稳定版低一点。目前Lion下是PHP 5.3.6,Mountain Lion下是5.3.10.
要更新OSX中的PHP,你可以通过那些Mac包管理器来安装,推荐使用php-osx by Liip。
另外一种方式是自己编译,不过要确认已经安装Xcode或“Command Line T ools for Xcode”,它们可以从Apple的Mac Developer Center下载。如果想安装包含了PHP、Apache和MySQL的一键安装包,可以试试MAMP,里面包含了相应的图形管理工具。
Windows 安装
Windows下有多种方式来安装PHP,你可以下载二进制安装包。
若只是本地开发和学习,可以直接使用PHP 5.4内置的Web服务器,还能省去配置服务器的麻烦。如果你喜欢包含PHP、Apache和MySQL的一键
安装包,可以下载Web Platform Installer、Zend Server CE、XAMPP或WAMP,它们可以帮你快速搭建出PHP运行环境。不过这些工具和你产品的正式运行环境会有一些差别,特别是你在Windows下开发,而代码最终部署在Linux服务器上的时候。
如果你需要把产品部署在Windows上,那么IIS7将给你最稳定和性能最佳的环境,你可以使用phpmanager(IIS7下的PHP 管理插件)来配置和管理PHP。IIS7已经内置FastCGI,你只需把PHP配置为它的处理器即可。更多详情可以参考dedicated area on iis。
通常情况下,开发环境和部署环境不同的话,容易在产品上线后产生各种奇怪的Bug。如果你是在Windows下开发,但是代码部署在Linux 或其它平台时,可以考虑使用虚拟机来解决。虽然这听起来很Tricky,不过用Vagrant建立简单的Wrapper,你就可以通过Puppet或Chef,把这些虚拟机提供给同事使用,保证大家使用系统的环境进行开发。
代码风格指南
PHP社区百花齐放,拥有大量的函数库、框架和组件。PHP开发者通常会在自己的项目中使用若干个外部库,因而PHP代码遵循或尽量接近同一个代码风格就非常重要,可以让开发者方便地把多个代码库集成在自己的项目中。
框架互操作组(即PHP标准组)发布了一系列代码风格推荐标准,即PSR-0,PSR-1和PSR-2。不要让这些名称所混淆,这些推荐仅是一些被其它项目所遵循的规则,如Drupal, Zend, CakePHP, phpBB, AWS SDK, FuelPHP, Lithium等,你可以把这些规则用在自己的项目中,或者继续使用你自己的风格。通常情况下,你的PHP代码应该遵循其中一项或多项标准,从而其他开发者可以方便地阅读和使
用你的代码。这些标准都是在前一个标准上附加新的规则,所以使用PSR-1就同时要求遵循PSR-0,但可以不遵循PSR-2。
∙阅读PSR-0
∙阅读PSR-1
∙阅读PSR-2
Language Highlights
编程范式
PHP是一个灵活的动态语言,支持多种编程范式。这些年来一直在不断的进化,重要的里程碑包括PHP 5.0 (2004)增加完善的面向对象模型、PHP 5.3 (2009)增加匿名函数和命名空间和PHP 5.4 (2012)增加traits.
面向对象编程
PHP具有完整的面向对象编程特性,如类、抽象类、接口、继承、构造函数、克隆和异常等。
∙学习PHP面向对象编程
∙学习Traits
函数式编程
PHP支持第一类函数(first-class function),即函数可以赋值给变量,包括用户自定义的函数和内置函数,然后动态调用它。函数可以作为参数传递给
其他函数(即高阶函数),也可以作为函数返回值返回。
PHP支持函数递归调用,即函数自己调用自己,不过在实际的PHP代码中,我们更喜欢用迭代来代替递归。
2009年发布的PHP 5.3开始引入支持闭包的匿名函数。
PHP 5.4支持把闭包绑定到对象作用域,并改善其可调用性,从而可以在大部分场景中使用匿名函数替代普通函数。
∙学习更多PHP函数式编程
∙学习匿名函数
∙Read about the Closure class
∙More details in the Closures RFC
∙Read about Callables
∙学习动态调用函数call_user_func_array
元编程
PHP通过反射API和魔术方法机制,支持多种方式的元编程。开发者通过魔术方法,如__get(), __set(), __clone(), __toString(), __invoke()等,可以改变类的行为。Ruby开发者经常说PHP没有method_missing方法,实际上通过__call()和__callStatic()就可以完成同样的功能。
∙学习魔术方法
∙学习反射
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论