2017-01-31 5 views
0

ich in einem ZF1 Projekt arbeite, und ich habe einen leeren Controller erstellt:Wie vermeidet man die Verwendung von "require_once" im ZF1-Projekt mit _old style_ library?

application/controllers/AgreementController.php 

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

Ich versuche Guriddo jqGridPHP im Rahmen meines Projekts zu verwenden. Sie haben eine Dokumentation here (gehen Sie zu Quick Installation) und die Show etwas wie folgt aus:

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

sie noch require_once heute mit und das ist nicht gut für mich weder das Projekt. Ich versuche, einen Weg zu Autoload solche Bibliothek zu finden, um die Verwendung von require_once zu vermeiden.

Ich wusste über:

Aber ich bin nicht sicher, wie man damit umgehen. Kann ich ein paar Ideen dazu bekommen?

Antwort

2

Ja, Sie können.

In phpgrid zf integration, eine ähnliche Datenraster-Bibliothek, müssen Sie composer.json automatisch zu laden alle „alten Stil“ Bibliothek ändern:

Vor Beginn Codierung, müssen wir unsere phpGrid Bibliothek im Zend Framework Autoloader registrieren . Dies geschieht durch Hinzufügen von Autoload-Dateien in "composer.json". Der Autoloader stellt sicher, dass alle externen PHP-Bibliotheken und -Komponenten einfach überall in PHP-Code referenziert werden können, ohne die traditionelle Funktion "require" oder "php include" zu verwenden.

composer.json

{ 
    ... 

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

Sie können definitiv Komponist verwenden, um das zu tun.

Mit Blick auf die autoload classmap on composer, sehen Sie, dass es grundsätzlich jede Klasse innerhalb eines Ordners automatisch laden kann.

Ich würde empfehlen, einen Ordner /opt zu erstellen (/ ist die Wurzel Ihres eigenen Projekts), und legen Sie alle nicht Composer-Bibliothek in es. Dann können Sie classmap für diesen Ordner verwenden.

Schließlich müssen Sie Komponist zu Ihrem index.php und jedem anderen Einstiegspunkt Ihrer Anwendung hinzufügen.

Verwandte Themen