📜  FuelPHP-软件包

📅  最后修改于: 2020-10-25 04:28:09             🧑  作者: Mango


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

  • 它不映射到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软件包

  • 解析器-Markdown解析器包

要安装新软件包,以下是两个选项:

选项1-手动安装-下载并安装

要手动安装软件包,请首先从作者的网站下载该软件包。打开包装,将其放在燃料/包装/文件夹下。

选项2-使用机油命令的自动方法

FuelPHP提供了一种自动方式来安装github中托管的软件包。使用以下命令安装软件包mytestpackage。

php oil package install mytestpackage

它使用git client克隆包源代码,并将其移动到fuel / packages文件夹。如果git client不可用,则可以使用–direct命令参数来指示命令下载和安装软件包,如下所示。

php oil package install mytestpackage --direct

使用包

程序包一旦加载到应用程序中,便可以在其中使用包。有两种方法可以将程序包加载到应用程序中。

选项1-通过包类

FuelPHP提供了一个类Package,用于分别通过load,unload和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;