php的命名空間必須與絕對路徑一致
類名的首字母必須大寫
除入口檔案外,其它的.php檔案必須只有乙個類
開發乙個符合psr-0規範的框架很簡單,只要滿足下面三個條件就可以了:
全部使用命名空間
php類庫檔案自動載入,不能有include/require
保證有單一入口
spl(standard php library)是php的標準拓展類庫,php實現類自動載入推薦使用spl提供的spl_autoload_register方法註冊乙個類自動載入函式。下面是乙個簡單的例子。
<?php
define('basedir', __dir__);
function autoload($class)
spl_autoload_register('autoload');
?>
demo目錄結構很簡單,只包含唯一入口檔案index.php。我把自動載入函式另外寫到了splautoload資料夾下的乙個類檔案中,通過include_once引入到入口檔案中實現類庫的自動載入。
自動載入函式寫到了splautoload資料夾下的autoload類中的乙個方法裡,根據前邊講到的規範,類的命名空間與絕對路徑保持了一致。autoload類源**如下:
<?php
namespace splautoload;
class autoload
}
<?php
class usercontroller
}
<?php
class logincontroller
}
入口檔案中的內容基本上和前邊簡單的例子一樣,只是將自動載入函式寫到了單獨的檔案裡進行管理,在入口檔案中直接呼叫指定類的中的方法就可以了,無需自動載入了。下面是入口指令碼**和演示結果:
至次,乙個簡單的符合psr-0規範的實現類自動載入的php基礎框架就搭建完成了!
PSR 0 規範例項講解 php 自動載入
psr 0規範 1 命名空間必須與絕對路徑一致 2 類名首字母必須大寫 3 除去入口檔案外,其他 php 必須只有乙個類 4 php類檔案必須自動載入,不採用include等 5 單一入口 如下 index.php define basedie dir require once config loa...
php自動載入PSR 0原文翻譯,PSR 0中文版
已棄用 截止到2014年10月21日,psr 0已被棄用。推薦替代使用psr 4。下文描述了若要使用乙個通用的自動載入器 autoloader 你所需要遵守的規範 以上是我們為實現通用的自動載入而制定的最低標準。你可以利用能夠自動載入php 5.3類的splclassloader來測試你的 是否符合...
PSR 0 自動載入規範 已棄用
其中vendor name為每個命名空間都必須要有的乙個頂級命名空間名 需要的話,每個命名空間下可以擁有多個子命名空間 當根據完整的命名空間名從檔案系統中載入類檔案時,每個命名空間之間的分隔符都會被轉換成資料夾路徑分隔符 類名稱中的每個 字元也會被轉換成資料夾路徑分隔符,而命名空間中的 字元則是無特...