FuelPHP - 包



包類似於模組,用於程式碼重用,但以下方面有所不同:

  • 它不對映到 Web URL。
  • 它無法透過 HMVC 請求訪問。

簡而言之,包不是直接的 Web 功能,例如部落格、相簿等。相反,它是一個函式庫的集合,例如電子郵件處理、文件建立、圖表建立、身份驗證等,這有助於更快地開發 Web 應用程式。

建立包

要建立包,首先我們需要按照如下方式排列原始碼。

/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 檔案。配置檔案的目的是將包的配置分組在包資料夾下,而不會干擾主應用程式。bootstrap 檔案的目的是設定名稱空間,以便自動載入器能夠正確載入它。

設定名稱空間的一些方法如下:

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', 
)); 

一旦bootstrap檔案配置正確並且包載入到應用程式中,我們可以按如下方式使用它。

$instance = new Myclass; 
$instance = new Mynamespace\Myclass; 

安裝包

包通常放在 fuel/packages 目錄下。預設情況下,安裝以下包:

  • auth − 身份驗證包

  • email − 郵件包

  • oil − Fuel 的命令列工具包

  • orm − ORM 包

  • parser − Markdown 解析器包

要安裝新包,有兩種方法:

方法 1 − 手動安裝 - 下載並安裝

要手動安裝包,首先從作者的網站下載包。解壓並將其放在 fuel/packages/ 資料夾下。

方法 2 − 使用 oil 命令的自動化方法

FuelPHP 提供了一種自動化安裝託管在 github 上的包的方法。使用以下命令安裝包 mytestpackage。

php oil package install mytestpackage

它使用 git 客戶端克隆包原始碼並將其移動到 fuel/packages 資料夾。如果 git 客戶端不可用,則可以使用 –direct 命令引數直接下載並安裝包,如下所示。

php oil package install mytestpackage --direct

使用包

包載入到應用程式後即可使用。有兩種方法可以將包載入到應用程式中。

方法 1 − 透過 Package 類

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 配置項下新增包即可。要載入 email 包,請使用以下語法。

'always_load' => array ( 
   'packages' => array ( 
      'email', 
   ), 
), 

一旦包載入到應用程式中,我們可以按如下方式使用它。

$instance = new Myclass; 
$instance = new Mynamespace\Myclass;
廣告
© . All rights reserved.