- 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;