当前位置:学者斋 >

计算机 >php语言 >

新手怎么入门PHP

新手怎么入门PHP

学习PHP的新手对于这门语言一定有很多疑问,能够自己查的基础知识就自己查,不要先问人。以下是本站小编精心为大家整理的新手入门PHP的一些套路,希望对大家有所帮助!更多内容请关注应届毕业生网!

新手怎么入门PHP

如何贡献

帮助我们让本网站作为 PHP 新手的最佳资源!在 GitHub 上贡献

推广

您可以在网站上放置 PHP之道 的横幅来支持我们,让 PHP 的新人知道哪里可以获取到好的资料!

广告横幅

Back to Top

 入门指南

使用当前稳定版本 (5.6)

如果你刚开始学习 PHP,请使用最新的稳定版本 PHP 5.6。PHP 近年来有了巨大的改进,增加了许多强大的 新特性。虽然 5.2 和 5.6 之间增加的版本号似乎很小, 但它代表了 重大的 改进。如果你想查找一个函数及其用法,可以去官方手册 中查找。

内置的 web 服务器

PHP 5.4 之后, 你可以不用安装和配置功能齐全的 Web 服务器,就可以开始学习 PHP。 要启动内置的 Web 服务器,需要从你的命令行终端进入项目的 Web 根目录,执行下面的命令:

> php -S localhost:8000

了解更多内置的命令行服务器

  Mac 安装

OS X 系统会预装 PHP, 只是一般情况下版本会比最新稳定版低一些。目前 Lion 是 5.3.10, Mavericks 是 5.4.17, Yosemite 则是 5.5.9, 但在 PHP 5.6 出来之后, 这些往往是不够的。

这里有许多方式在 OS X 上安装 PHP 。

通过 Homebrew 安装 PHP

Homebrew 是一个强大的 OS X 专用包管理器, 它可以帮助你轻松的安装 PHP 和各种扩展。 Homebrew PHP 是一个包含与 PHP 相关的 Formulae,能让你通过 homebrew 安装 PHP 的仓库。

也就是说, 你可以通过 brew install 命令安装 php53, php54, php55 或者 php56 ,并且通过修改 PATH 变量来切换各个版本。或者你也可以使用 brew-php-switcher 来自动切换。

通过 Macports 安装 PHP

MacPorts 是一个开源的,社区发起的项目,它的目的在于设计一个易于使用的系统,方便编译,安装以及升级 OS X 系统上的 command-line, X11 或者基于 Aqua 的开源软件。

MacPorts 支持预编译的二进制文件,因此你不必每次都重新从源码压缩包编译,如果你的系统没有安装这些包,它会节省你很多时间。

此时,你可以通过 port install 命名来安装 php53,php54,php55 或者 php56,比如:

sudo port install php54

sudo port install php55

你也可以执行 select 命令来切换当前的 php 版本:

sudo port select --set php php55

 通过 phpbrew 安装 PHP

phpbrew 是一个安装与管理多个 PHP 版本的工具。它在应用程序或者项目需要不同版本的 PHP 时非常有用,让你不再需要使用虚拟机来处理这些情况。

 通过 Liip’s binary installer 安装 PHP

是另一种流行的选择,它提供了从5.3到5.6版本的单行安装功能。 它并不会覆盖Apple集成的PHP文件,而是将其安装在了一个独立的目录中(/usr/local/php5)。

 源码编译

另一个让你控制安装 PHP 版本的选择就是 自行编译。 如果使用这种方法, 你必须先确认是否已经通过 “Apple’s Mac Developer Center” 下载、安装 Xcode 或者 “Command Line Tools for XCode”。

集成包 (All-in-One Installers)

上面列出的解决方案主要是针对 PHP 本身, 并不包含:比如 Apache,Nginx 或者 SQL 服务器。 集成包比如 MAMP 和 XAMPP会安装这些软件并且将他们绑在一起,不过易于安装的背后也牺牲了一定的弹性。

 Windows 安装

你可以从 下载二进制包。 解压后, 最好为你的 PHP 所在的根目录( 所在的文件夹)设置PATH,这样就可以从命令行中直接执行 PHP。

Windows 下有多种安装 PHP 的方式,你可以 下载二进制安装包 并使用 安装程序。从 PHP 5.3.0 之后,这个安装程序将不再提供下载支持。

如果只是学习或者本地开发,可以直接使用 PHP 5.4+ 内置的 Web 服务器, 还能省去配置服务器的麻烦。如果你想要包含有网页服务器以及 MySql 的集成包,那么像是Web Platform Installer, XAMPP, EasyPHP 和 WAMP 这类工具将会帮助你快速建立 Windows 开发环境。不过这些工具将会与线上环境有些许差别,如果你是在 Windows 下开发,而生产环境则部署至 Linux ,请小心。

如果你需要将生产环境部署在 Windows 上,那 IIS7 将会提供最稳定和最佳的性能。你可以使用 phpmanager (IIS7 的图形化插件) 让你简单的设置并管理 PHP。IIS7 也有内置的 FastCGI ,你只需要将 PHP 配置为它的处理器即可。更多详情请见dedicated area on 。

Back to Top

代码风格指南

PHP 社区百花齐放,拥有大量的函数库、框架和组件。PHP 开发者通常会在自己的项目中使用若干个外部库,因此 PHP 代码遵循(尽可能接近)同一个代码风格就非常重要,这让开发者可以轻松地将多个代码库整合到自己的项目中。

PHP标准组 提出并发布了一系列的风格建议。其中有部分是关于代码风格的,即 PSR-0, PSR-1, PSR-2 和 PSR-4。这些推荐只是一些被其他项目所遵循的规则,如 Drupal, Zend, Symfony, CakePHP, phpBB, AWS SDK, FuelPHP, Lithium 等。你可以把这些规则用在自己的项目中,或者继续使用自己的风格。

通常情况下,你应该遵循一个已知的标准来编写 PHP 代码。可能是 PSR 的组合或者是 PEAR 或 Zend 编码准则中的一个。这代表其他开发者能够方便的阅读和使用你的代码,并且使用这些组件的应用程序可以和其他第三方的组件保持一致。

阅读 PSR-0

阅读 PSR-1

阅读 PSR-2

阅读 PSR-4

阅读 PEAR 编码准则

阅读 Symfony 编码准则

你可以使用 PHP_CodeSniffer 来检查代码是否符合这些准则,文本编辑器 Sublime Text 的插件也可以提供实时检查。

你可以通过以下两个工具来自动修正你的程序语法,让它符合标准。 一个是 PHP Coding Standards Fixer,它具有良好的测试。 另外一个工具是 s, 它是 sublime text 的一个非常流行的插件sublime-phpfmt,虽然比较新,但是在性能上有了很大的提高,这意味着实时的修复语法会更加的流畅。

你也可以手动运行 phpcs 命令:

phpcs -sw --standard=PSR2

它会显示出相应的错误以及如何修正的方法。同样地,这条命令也可以用在 git hook 中,如果你的分支代码不符合选择的代码标准则无法提交。

所有的变量名称以及代码结构建议用英文编写。注释可以使用任何语言,只要让现在以及未来的小伙伴能够容易阅读理解即可。

Back to Top

 语言亮点

  编程范式

PHP 是一个灵活的动态语言,支持多种编程技巧。这几年一直不断的发展,重要的里程碑包含 PHP 5.0 (2004) 增加了完善的面向对象模型,PHP 5.3 (2009) 增加了匿名函数与命名空间以及 PHP 5.4 (2012) 增加的 traits。

  面向对象编程

PHP 拥有完整的面向对象编程的特性,包括类,抽象类,接口,继承,构造函数,克隆和异常等。

阅读 PHP 面向对象编程

阅读 Traits

函数式编程 Functional Programming

PHP 支持函数是”第一等公民”,即函数可以被赋值给一个变量,包括用户自定义的或者是内置函数,然后动态调用它。函数可以作为参数传递给其他函数(称为高阶函数),也可以作为函数返回值返回。

PHP 支持递归,也就是函数自己调用自己,但多数 PHP 代码使用迭代。

自从 PHP 5.3 (2009) 之后开始引入对闭包以及匿名函数的支持。

PHP 5.4 增加了将闭包绑定到对象作用域中的特性,并改善其可调用性,如此即可在大部分情况下使用匿名函数取代一般的函数。

学习更多 PHP 函数式编程

 阅读匿名函数

  阅读闭包类

更多关于 Closures RFC

阅读 Callables

阅读动态调用函数 call_user_func_array()

元编程

PHP 通过反射 API 和魔术方法,可以实现多种方式的元编程。开发者通过魔术方法,如 __get(), __set(), __clone(),__toString(), __invoke(),等等,可以改变类的行为。Ruby 开发者常说 PHP 没有 method_missing 方法,实际上通过__call() 和 __callStatic() 就可以完成相同的功能。

  阅读魔术方法

  阅读反射

  阅读重载

  命名空间

如前所述,PHP 社区已经有许多开发者开发了大量的代码。这意味着一个类库的 PHP 代码可能使用了另外一个类库中相同的类名。如果他们使用同一个命名空间,那将会产生冲突导致异常。

命名空间 解决了这个问题。如 PHP 手册里所描述,命名空间好比操作系统中的目录,两个同名的文件可以共存在不同的目录下。同理两个同名的 PHP 类可以在不同的 PHP 命名空间下共存,就这么简单。

因此把你的代码放在你的命名空间下就非常重要,避免其他开发者担心与第三方类库冲突。

PSR-4 提供了一种命名空间的'推荐使用方式,它提供一个标准的文件、类和命名空间的使用惯例,进而让代码做到随插即用。

2014 年 10 月,PHP-FIG 废弃了上一个自动加载标准: PSR-0,而采用新的自动加载标准 PSR-4。但 PSR-4 要求 PHP 5.3 以上的版本,而许多项目都还是使用 PHP 5.2,所以目前两者都能使用。如果你在新应用或扩展包中使用自动加载标准,应优先考虑使用 PSR-4。

  阅读命名空间

阅读 PSR-0

阅读 PSR-4

PHP 标准库

PHP 标准库 (SPL) 随着 PHP 一起发布,提供了一组类和接口。包含了常用的数据结构类 (堆栈,队列,堆等等),以及遍历这些数据结构的迭代器,或者你可以自己实现 SPL 接口。

阅读 SPL

上的 SPL 视频教程(付费)

命令行接口

PHP 是为开发 Web 应用而创建,不过它的命令行脚本接口(CLI)也非常有用。PHP 命令行编程可以帮你完成自动化的任务,如测试,部署和应用管理。

CLI PHP 编程非常强大,可以直接调用你自己的程序代码而无需创建 Web 图形界面,需要注意的是不要把 CLI PHP 脚本放在公开的 web 目录下!

在命令行下运行 PHP :

> php -i

选项 -i 将会打印 PHP 配置,类似于 phpinfo() 函数。

选项 -a 提供交互式 shell,和 Ruby 的 IRB 或 python 的交互式 shell 相似,此外还有很多其他有用的命令行选项。

接下来写一个简单的 “Hello, $name” CLI 程序,先创建名为 的脚本:

if($argc != 2) {

echo "Usage: php [name].n";

exit(1);

}

$name = $argv[1];

echo "Hello, $namen";

PHP 会在脚本运行时根据参数设置两个特殊的变量,$argc 是一个整数,表示参数个数,$argv 是一个数组变量,包含每个参数的值, 它的第一个元素一直是 PHP 脚本的名称,如本例中为 。

命令运行失败时,可以通过 exit() 表达式返回一个非 0 整数来通知 shell,常用的 exit 返回码可以查看列表.

运行上面的脚本,在命令行输入:

> php

Usage: php [name]

> php world

Hello, world

学习如何在命令行运行 PHP

学习如何在 Windows 环境下运行 PHP 命令行程序

Xdebug

合适的调试器是软件开发中最有用的工具之一,它使你可以跟踪程序执行结果并监视程序堆栈中的信息。 Xdebug 是一个 php 的调试器,它可以被用来在很多 IDE(集成开发环境) 中做断点调试以及堆栈检查。它还可以像 PHPUnit 和 KCacheGrind 一样,做代码覆盖检查或者程序性能跟踪。

如果你仍在使用 var_dump()/print_r() 调错,经常会发现自己处于困境,并且仍然找不到解决办法。这时,你该使用调试器了。

安装 Xdebug 可能很费事,但其中一个最重要的“远程调试”特性 —— 如果你在本地开发,并在虚拟机或者其他服务器上测试,远程调试可能是你想要的一种方式。

通常,你需要修改你的 Apache VHost 或者 cess 文件的这些值:

php_value te_host=192.168.?.?

php_value te_port=9000

“remote host” 和 “remote port” 这两项对应和你本地开发机监听的地址和端口。然后将你的 IDE 设置成“listen for connections”模式,并访问网址:

_SESSION_START=1

你的 IDE 将会拦截当前执行的脚本状态,运行你设置的断点并查看内存中的值。

图形化的调试器可以让你非常容易的逐步的查看代码、变量,以及运行时的 evel 代码。许多 IDE 已经内置或提供了插件支持 XDebug 图形化调试器。比如 MacGDBp 是 Mac 上的一个免费,开源的单机调试器。

学习更多 Xdebug

  学习更多 MacGDBp

Back to Top

  依赖管理

PHP 有很多可供使用的库、框架和组件。通常你的项目都会使用到其中的若干项 - 这些就是项目的依赖。直到最近,PHP 也没有一个很好的方式来管理这些项目依赖。即使你通过手动的方式去管理,你依然会为自动加载器而担心。但现在这已经不再是问题了。

目前 PHP 有两个使用较多的包管理系统 - Composer 和 PEAR。Composer 是 PHP 所使用的主要的包管理器,然而在很长的一段时间里,PEAR 曾经扮演着这个角色。你应该了解 PEAR 是什么,因为即使你从来没有使用过它,你依然有可能会碰到对它的引用。

Composer 与 Packagist

Composer 是一个杰出 的依赖管理器。在 文件中列出你项目所需的依赖包,加上一点简单的命令,Composer 将会自动帮你下载并设置你的项目依赖。

现在已经有许多 PHP 第三方包已兼容 Composer,随时可以在你的项目中使用。这些“packages(包)”都已列在 Packagist,这是一个官方的 Composer 兼容包仓库。

如何安装 Composer

你可以安装 Composer 到局部 (在你当前工作目录;这里不是很推荐)或是全局(e.g. /usr/local/bin)。我们假设你想安装 Composer 到局部。在你的项目根目录输入:

curl -s | php

这条命令将会下载 (一个 PHP 二进制档)。你可以使用 php 执行这个文件用来管理你的项目依赖。 请注意: 假如你是直接下载代码来编译,请先在线阅读代码确保它是安全的。

  Windows环境下安装

对于Windows 的用户而言最简单的获取及执行方法就是使用 ComposerSetup 安装程序,它会执行一个全局安装并设置你的$PATH,所以你在任意目录下在命令行中使用 composer。

如何手动安装 Composer

手动安装 Compose r是一个高端的技术;仅管如此还是有许多开发者有各种原因喜欢使用这种交互式的应用程序安装 Composer。在安装前请先确认你的PHP安装项目如下:

  正在使用一个满足条件的 PHP 版本

文件可以正确的被执行

相关的目录有足够的权限

相关有问题的扩展没有被载入

相关的 设置已完成

由于手动安装没有执行这些检查,你必须自已衡量决定是否值得做这些事,以下是如何手动安装 Composer :

curl -s -o $HOME/local/bin/composer

chmod +x $HOME/local/bin/composer

路径 $HOME/local/bin (或是你选择的路径) 应该在你的 $PATH 环境变量中。这将会影响 composer 这个命令是否可用.

当你遇到文档指出执行 Composer 的命令是 php install时,你可以使用下面命令替代:

composer install

本章节会假设你已经安装了全局的 Composer。

  如何设置及安装依赖

Composer 会通过一个 文件持续的追踪你的项目依赖。 如果你喜欢,你可以手动管理这个文件,或是使用 Composer 自己管理。composer require 这个指令会增加一个项目依赖,如果你还没有 文件, 将会创建一个。这里有个例子为你的项目加入 Twig 依赖。

composer require twig/twig:~1.8

另外 composer init 命令将会引导你创建一个完整的 文件到你的项目之中。无论你使用哪种方式,一旦你创建了 文件,你可以告诉 Composer 去下载及安装你的依赖到 vendors/ 目录中。这命令也适用于你已经下载并已经提供了一个 的项目:

composer install

接下来,添加这一行到你应用的主要 PHP 文件中,这将会告诉 PHP 为你的项目依赖使用 Composer 的自动加载器。

require 'vendor/';

现在你可以使用你项目中的依赖,且它们会在需要时自动完成加载。

  更新你的依赖

Composer 会建立一个 文件,在你第一次执行 php install 时,存放下载的每个依赖包精确的版本编号。假如你要分享你的项目给其他开发者,并且 文件也在你分享的文件之中的话。 当他们执行 php install 这个命令时,他们将会得到与你一样的依赖版本。 当你要更新你的依赖时请执行 php update。

当你需要灵活的定义你所需要的依赖版本时,这是最有用。 举例来说需要一个版本为 ~1.8 时,意味着 “任何大于 1.8.0 ,但小于 2.0.x-dev 的版本”。你也可以使用通配符 * 在 1.8.* 之中。现在Composer在composer update 时将升级你的所有依赖到你限制的最新版本。

  更新通知

要接收关于新版本的更新通知。你可以注册 VersionEye,这个 web 服务可以监控你的 Github 及 BitBucket 帐号中的 文件,并且当包有新更新时会发送邮件给你。

  检查你的依赖安全问题

Security Advisories Checker 是一个 web 服务和一个命令行工具,二者都会仔细检查你的 文件,并且告诉你任何你需要更新的依赖。

  处理 Composer 全局依赖

Composer 也可以处理全局依赖和他们的二进制文件。用法很直接,你所要做的就是在命令前加上global前缀。如果你想安装 PHPUnit 并使它全局可用,你可以运行下面的命令:

composer global require phpunit/phpunit

这将会创建一个 ~/oser 目录存放全局依赖,要让已安装依赖的二进制命令随处可用,你需要添加 ~/oser/vendor/bin目录到你的 $PATH 变量。

标签: PHP
  • 文章版权属于文章作者所有,转载请注明 https://xuezhezhai.com/jsj/php/d6woqm.html