2017-01-31 1 views
0

Je travaille dans un projet ZF1 et j'ai créé un contrôleur vide:Comment éviter l'utilisation de "require_once" dans le projet ZF1 avec la bibliothèque _old style_?

application/controllers/AgreementController.php 

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

Je suis en train d'utiliser Guriddo jqGridPHP dans le cadre de mon projet. Ils ont une documentation here (allez à l'installation rapide) et le spectacle quelque chose comme ceci:

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

Ils utilisent encore require_once de nos jours et ce n'est pas bon pour moi ni le projet. J'essaie de trouver un moyen de autoload telle bibliothèque pour éviter l'utilisation de require_once.

je ne savais sur:

Mais je ne suis pas sûr de savoir comment traiter cette question. Puis-je avoir des idées sur la façon d'y parvenir?

Répondre

2

Oui, vous pouvez.

En phpgrid zf integration, une bibliothèque DataGrid similaire, vous devez modifier composer.json pour charger automatiquement une bibliothèque « de style ancien »:

Avant codage de démarrage, nous devons inscrire notre bibliothèque phpGrid dans le Zend Framework autoloader . Cela est fait en ajoutant des clés de fichiers autoload dans "composer.json". L'autochargeur garantit que toutes les bibliothèques et composants externes de PHP peuvent être facilement référencés n'importe où dans le code PHP sans utiliser la fonction traditionnelle "require" ou "php include".

composer.json

{ 
    ... 

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

Vous pouvez certainement utiliser composer pour cela.

En regardant le autoload classmap on composer, vous verrez qu'il peut essentiellement charger automatiquement n'importe quelle classe à partir d'un dossier.

Je vous recommande de créer un dossier /opt (/ étant la racine de votre propre projet), et de mettre toute bibliothèque non compositeur dedans. Ensuite, vous pouvez utiliser classmap dans ce dossier.

Enfin, vous devez ajouter un compositeur à votre index.php et à tout autre point d'entrée de votre application.