當前位置:學者齋 >

計算機 >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/zh-hk/jsj/php/d6woqm.html