fuelphp 包
包在代碼重用方面類似于模塊,但在以下方面有所不同,
- 它不會映射到網址
- 無法通過 hmvc 請求訪問
簡而言之,包不是直接的網絡功能,如博客、相冊等。相反,它是一個組合在一起的功能庫,如電子郵件處理、文檔創建、圖表創建、身份驗證等,有助于加快開發速度網絡應用程序。
創建包
要創建一個包,首先我們需要按如下方式排列我們的源代碼。
/fuel /packages /package (root directory of package) /bootstrap.php /classes /our.php /classes.php /here.php /config /config.php /and_so_on
包的結構有兩個包特定的文件,config.php 和 bootstrap.php 文件。配置文件的目的是在不干擾主應用程序的情況下將包的配置分組到包文件夾本身下。紫色引導文件的作用是設置命名空間,以便自動加載器正確加載它。
設置命名空間的一些方法如下,
autoloader::add_namespace('mypackage', __dir__.'/classes/'); autoloader::add_core_namespace('mypackage'); autoloader::add_core_namespace('mypackage', true); autoloader::add_classes (array( 'mypackage\\classname' => __dir__.'/classes/classname.php', 'mypackage\\anotherclass' => __dir__.'/classes/anotherclass.php', ));
一旦正確配置了引導程序文件并將包加載到應用程序中,我們就可以按如下方式使用它。
$instance = new myclass; $instance = new mynamespace\myclass;
安裝軟件包
包通常放在fuel/packages目錄下。默認情況下,安裝了以下軟件包,
- auth-認證包
- 電子郵件-電子郵件包
- oil-fuel 的命令,油包
- orm-orm 包
- parser-markdown 解析器包
要安裝新包,有以下兩個選項,
選項 1-手動安裝-下載并安裝
要手動安裝包,首先從作者的網站下載包。打開包裝并將其放在 fuel/packages/ 文件夾下。
選項 2-使用油指令的自動方法
fuelphp 提供了一種安裝托管在 github 中的軟件包的自動化方式。使用以下命令安裝包 mytestpackage。
php oil package install mytestpackage
它使用 git 客戶端克隆包源代碼并將其移動到 fuel/packages 文件夾。如果git客戶端不可用,那么我們可以使用--direct命令參數來引導命令下載和安裝包,如下所示。
php oil package install mytestpackage --direct
使用包
包一旦加載到應用程序中就可以在應用程序中使用。有兩種方法可以將包加載到應用程序中。
選項 1-通過包類
fuelphp 提供了一個 package 類,分別通過load、unload 和loaded 方法加載、卸載和檢查包的可用性。 load 方法有兩個參數。第一個參數 $package 是包的名稱,第二個參數 path 是包的路徑。如果軟件包安裝在 fuel/packages 文件夾中,則第二個參數是可選的。
// load the orm package package::load('orm'); // load the parser package from a specific directory package::load('parser', '/path/to/packages/dir/'); // load the non-existent package package::load('awesome'); // throws a packagenotfoundexception
選項 2-通過配置文件
要永久加載包,只需在主配置文件 fuel/app/config/config.php 中的 always_load 配置條目下添加包。要加載電子郵件包,請使用以下語法。
'always_load' => array ( 'packages' => array ( 'email', ), ),
一旦包被加載到應用程序中,我們就可以如下使用它。
$instance = new myclass; $instance = new mynamespace\myclass;