FuelPHP - Pacotes

Os pacotes são semelhantes aos módulos na reutilização de código, mas diferem nas seguintes maneiras,

  • Não mapeia para os URLs da web
  • Não é acessível por meio de solicitações HMVC

Resumindo, os pacotes não são funcionalidades diretas da web, como blog, álbum, etc. Em vez disso, são uma biblioteca de funções agrupadas, como processamento de e-mail, criação de documentos, criação de gráficos, autenticação, etc., que auxiliam no desenvolvimento mais rápido da web inscrição.

Criando Pacotes

Para criar um pacote, primeiro precisamos organizar nosso código-fonte especificado a seguir.

/fuel 
   /packages 
      /package (root directory of package) 
         /bootstrap.php 
      /classes 
         /our.php 
      /classes.php 
         /here.php 
      /config 
         /config.php 
         /and_so_on

A estrutura do pacote possui dois arquivos específicos do pacote, arquivos config.php e bootstrap.php. O objetivo do arquivo de configuração é agrupar a configuração do pacote na própria pasta do pacote sem perturbar o aplicativo principal. O objetivo do arquivo de bootstrap é definir o namespace para que o autoloader o carregue corretamente.

Algumas maneiras de definir o namespace são as seguintes,

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', 
));

Uma vez que o arquivo de bootstrap esteja configurado corretamente e os pacotes carregados no aplicativo, podemos usá-lo da seguinte maneira.

$instance = new Myclass; 
$instance = new Mynamespace\Myclass;

Instalando Pacotes

Os pacotes são geralmente colocados no diretório fuel / packages. Por padrão, os seguintes pacotes são instalados,

  • auth - Pacote de autenticação

  • email - Pacote de e-mail

  • oil - Comando de combustível, pacote de óleo

  • orm - Pacote ORM

  • parser - Pacote de analisador Markdown

Para instalar um novo pacote, a seguir estão as duas opções,

Option 1 - Instalação manual - baixe e instale

Para instalar manualmente o pacote, primeiro baixe o pacote do site do autor. Descompacte-o e coloque-o sobfuel/packages/ pasta.

Option 2 - Método automático usando o comando de óleo

FuelPHP fornece uma maneira automatizada de instalar os pacotes hospedados no github. Use o seguinte comando para instalar o pacote, mytestpackage.

php oil package install mytestpackage

Ele clona o código-fonte do pacote usando o cliente git e o move para a pasta fuel / packages. Se o cliente git não estiver disponível, podemos usar o argumento do comando –direct para direcionar o comando para baixar e instalar os pacotes como segue.

php oil package install mytestpackage --direct

Usando Pacotes

Os pacotes podem ser usados ​​no aplicativo depois de carregados no aplicativo. Existem duas maneiras de carregar os pacotes no aplicativo.

Option 1 - Através da classe Package

FuelPHP fornece uma classe, Package para carregar, descarregar e verificar a disponibilidade dos pacotes por meio dos métodos carregar, descarregar e carregar, respectivamente. loadmétodo tem dois parâmetros. O primeiro parâmetro,$package é o nome do pacote e segundo parâmetro, pathé o caminho do pacote. O segundo parâmetro é opcional, se o pacote estiver instalado emfuel/packages pasta.

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

Option 2 - Através do arquivo de configuração

Para carregar um pacote permanentemente, basta adicionar o pacote em always_load entrada de configuração no arquivo de configuração principal, fuel/app/config/config.php. Para carregar o pacote de e-mail, use a seguinte sintaxe.

'always_load' => array ( 
   'packages' => array ( 
      'email', 
   ), 
),

Uma vez que os pacotes são carregados no aplicativo, podemos usá-lo da seguinte maneira.

$instance = new Myclass; 
$instance = new Mynamespace\Myclass;