FuelPHP 包

 

包在代码重用方面类似于模块,但在以下方面有所不同,

  • 它不会映射到网址
  • 无法通过 HMVC 请求访问

 

简而言之,包不是直接的网络功能,如博客、相册等。相反,它是一个组合在一起的功能库,如电子邮件处理、文档创建、图表创建、身份验证等,有助于加快开发速度网络应用程序。

 

创建包

要创建一个包,首先我们需要按如下方式排列我们的源代码。

/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-认证包
  • 电子邮件-电子邮件包
  • oil-Fuel 的命令,油包
  • 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;

 Cookie 提供客户端数据存储,仅支持少量数据。通常,每个域为 2KB,这取决于浏览器。 Session 提供服务器端数据存储,支持海量数据。让我们来看看如何在 FuelPHP Web 应用程序中 ...