1).即PHP Framework Interop Group。這個組織發佈推薦的規範,而不是強制規範。
2).PHP-FIG的使命是實現框架的互操做性。框架的互操做性指的是經過自動加載機制、接口和標準的風格,讓框架互相合做。
3).框架之間經過接口、自動加載和標準的編碼風格進行合做。php
1).即PHP推薦標準。這是上面的組織制定的推薦規範。例以下面的規範:git
<?php ?>
或<??>
標籤中。<?php
$gorilla = new \Animals\Gorilla;
$libs = new \Animals\StrawNeckedIbis;
if ($gorilla->isAwake() === true) {
do {
$gorilla->beatChest();
} while ($libs->isAsleep() === true);
$libs->flyAway();
}複製代碼
PSR-4:自動加載github
本身實現psr-4自動加載器web
<?php
spl_autoload_register(function ($class) {
//這個項目的命名空間前綴
$prefix = 'Foo\\Bar\\';
//這個項目命名空間前綴對應的基目錄
$base_dir = __DIR__ . '/src/';
//參數傳入的類使用這個命名空間前綴嗎?
$len = strlen($prefix);
if (strncmp($prefix, $class, $len) != 0) {
//不使用,交給下一個自動加載器處理
return;
}
//去掉前綴的類名
$relative_class = substr($class, $len);
//把命名空間前換成基目錄
//去掉前綴中的類名,把命名空間分隔符換成目錄分隔符
//而後在後面加上.php
$file = $base_dir . str_replace('\\' , '/', $relative_class) . '.php';
if (file_exists($file)) {
require $file;
}
});複製代碼
這樣的話當咱們使用\Foo\Bar\Baz\Qux
這個類的時候,使用SPL註冊了上面這個函數以後,PHP就會嘗試從/path/to/project/src/Baz/Qux.php
加載這個類。框架
PHP專題系列目錄地址:github.com/xx19941215/…
PHP專題系列預計寫二十篇左右,主要總結咱們平常PHP開發中容易忽略的基礎知識和現代PHP開發中關於規範、部署、優化的一些實戰性建議,同時還有對Javascript語言特色的深刻研究。函數