- 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 和会话管理
- 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 文件。配置文件的目的是将包的配置分组到包文件夹本身下,而不干扰主应用程序。引导文件的目的是设置命名空间,以便自动加载器正确加载它。
设置命名空间的一些方法如下,
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 - 身份验证包
电子邮件- 电子邮件包
油- 燃料的命令,油包
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;