Учебники

FuelPHP — Пакеты

Пакеты аналогичны модулям в повторном использовании кода, но отличаются следующими способами:

  • Он не отображается на веб-URL
  • Это не доступно через запросы 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; 

Установка пакетов

Пакеты обычно помещаются в каталог топлива / пакетов. По умолчанию установлены следующие пакеты:

  • auth — пакет аутентификации

  • электронная почта — электронная почта

  • масло — Топливная команда, масляный пакет

  • orm — пакет ORM

  • parser — пакет анализатора Markdown

auth — пакет аутентификации

электронная почта — электронная почта

масло — Топливная команда, масляный пакет

orm — пакет ORM

parser — пакет анализатора Markdown

Чтобы установить новый пакет, ниже приведены два варианта:

Вариант 1 — Ручная установка — скачать и установить

Чтобы установить пакет вручную, сначала загрузите пакет с сайта автора. Распакуйте его и поместите в папку fuel / packages / .

Вариант 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 и загруженных, соответственно. Метод загрузки имеет два параметра. Первый параметр, $ 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 — через файл конфигурации

Чтобы загрузить пакет навсегда, просто добавьте пакет под записью конфигурации always_load в главном файле конфигурации fuel / app / config / config.php . Чтобы загрузить пакет электронной почты, используйте следующий синтаксис.

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

Как только пакеты загружены в приложение, мы можем использовать его следующим образом.