- FuelPHP 教程
- FuelPHP - 首頁
- FuelPHP - 簡介
- FuelPHP - 安裝
- FuelPHP - 架構概述
- FuelPHP - 簡易 Web 應用
- FuelPHP - 配置
- FuelPHP - 控制器
- FuelPHP - 路由
- FuelPHP - 請求 & 響應
- FuelPHP - 檢視
- FuelPHP - 展示器
- FuelPHP - 模型 & 資料庫
- FuelPHP - 表單程式設計
- FuelPHP - 驗證
- 高階表單程式設計
- FuelPHP - 檔案上傳
- FuelPHP - Ajax
- FuelPHP - HMVC 請求
- FuelPHP - 主題
- FuelPHP - 模組
- FuelPHP - 包
- Cookie & Session 管理
- FuelPHP - 事件
- FuelPHP - 郵件管理
- FuelPHP - 效能分析器
- 錯誤處理 & 除錯
- FuelPHP - 單元測試
- 完整的執行示例
- FuelPHP 有用資源
- FuelPHP - 快速指南
- FuelPHP - 有用資源
- FuelPHP - 討論
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;