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 − 身份验证包
email − 电子邮件包
oil − Fuel 的命令,oil 包
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 文件夹中,则第二个参数是可选的。
// 加载 orm 包 Package::load('orm'); // 从特定目录加载解析器包 Package::load('parser', '/path/to/packages/dir/'); // 加载不存在的包 Package::load('awesome'); // 抛出 PackageNotFoundException
选项 2 − 通过配置文件
要永久加载包,只需在主配置文件 fuel/app/config/config.php 中的 always_load 配置条目下添加包。要加载电子邮件包,请使用以下语法。
'always_load' => array ( 'packages' => array ( 'email', ), ),
一旦包加载到应用程序中,我们就可以按如下方式使用它。
$instance = new Myclass; $instance = new Mynamespace\Myclass;