Как избежать использования & quot; require_once & quot; в проекте ZF1 с _old style_ библиотекой?

Я работаю в проекте ZF1, и я создал пустой контроллер:

application/controllers/AgreementController.php

class AgreementController
{
public function index()
{
// code goes here
}
}

Я пытаюсь использовать Guriddo jqGridPHP как часть моего проекта. У них есть некоторая документация Вот (перейдите к Быстрая установка) и покажите что-то вроде этого:

require_once 'jq-config.php';
require_once "php/jqGrid.php";
require_once "php/jqGridPdo.php";

$conn = new PDO(DB_DSN,DB_USER,DB_PASSWORD);

$grid = new jqGridRender($conn);
$grid->SelectCommand = 'SELECT field1, field2, field3  FROM mytable';
$grid->dataType = 'json';
$grid->setColModel();
$grid->setUrl('myfirstgrid.php');
$grid->setGridOptions(array(
"caption"=>"This is custom Caption",
"rowNum"=>10,
"sortname"=>"field1",
"rowList"=>array(10,20,50)
));

$grid->setColProperty("field1", array("label"=>"ID", "width"=>60));
$grid->renderGrid('#grid','#pager',true, null, null, true,true);

Они все еще используют require_once в наше время, и это не хорошо для меня, ни проекта. Я пытаюсь найти способ автозагрузка такая библиотека, чтобы избежать использования require_once,

Я знал о:

Но я не уверен, как с этим бороться. Могу ли я получить некоторые идеи, как этого добиться?

0

Решение

Да, ты можешь.

В интеграция phpgrid zf, Аналогичная библиотека сетки данных, вам нужно изменить composer.json для автозагрузки любой библиотеки «старого стиля»:

Перед началом кодирования нам нужно зарегистрировать нашу библиотеку phpGrid в автозагрузчике Zend Framework. Это делается путем добавления файлов автозагрузки ключей в «composer.json». Автозагрузчик гарантирует, что на любые внешние библиотеки и компоненты PHP можно легко ссылаться в любом месте кода PHP без использования традиционных функций «require» или «php include».

composer.json

{
...

"autoload":{
"files": ["vendor/phpcontrols/phpGrid/conf.php"]
}
}
2

Другие решения

Вы можете определенно использовать композитор, чтобы сделать это.

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

Я бы порекомендовал создать /opt папка (/ будучи корнем вашего собственного проекта), и поместите в него любую некомпозиционную библиотеку. Тогда вы можете использовать classmap в этой папке.

Наконец, вам нужно добавить композитора в ваш index.php и любая другая точка входа вашего приложения.

0

По вопросам рекламы [email protected]