Chargement automatique de la bibliothèque personnalisée dans Zend Framework 2.0
- Je besoin pour utiliser le chargement automatique pour mes classes personnalisées dans le Zend Framework 2.0. Ma bibliothèque personnalisée situé dans /vendor/Garvey/library/Garvey
. J'ai une simple étendue AbstractTable classe dans /vendor/Garvey/library/Garvey/Db/Table/AbstractTable.php
:
<?php
namespace Garvey\Db\Table;
use Zend\Db\Table\AbstractTable;
abstract class AbstractTable extends AbstractTable
{
public function getItemById($id)
{
}
}
Dans le index.php j'ai le code suivant:
require_once 'vendor/ZendFramework/library/Zend/Loader/AutoloaderFactory.php';
Zend\Loader\AutoloaderFactory::factory(array('Zend\Loader\StandardAutoloader' => array(
'prefixes' => array(
'Garvey' => 'vendor/Garvey/library/Garvey',
)
)));
Mais j'ai l'erreur suivante. Ce que j'ai raté?
Fatal error: Class 'Garvey\Db\Table\AbstractTable' not found
Vous en remercie d'avance.
source d'informationauteur pltvs
Vous devez vous connecter pour publier un commentaire.
Votre original index.php serait également travaillé si vous avez changé le "préfixes" la clé des "espaces de noms" et indiquez le chemin d'accès comme ci-dessous:
Ou vous pouvez defime méthode Module.php
Mais je ne le recommanderais pas. Depuis ZF2 but tous centrés sur la vitesse de chargement, la meilleure façon est d'utiliser class_map style pour charger vos classes. Il travaillera beaucoup plus vite à la fin, mais nécessitent un travail supplémentaire. Vous pouvez enregistrer chaque classe en vous class_map fichier.
Vous pouvez créer class_map.php dans la racine de votre bibliothèque et de la place il y
Et d'y ajouter autant de classes que vous utilisez. Et dans getAutoloaderConfig (), vous pouvez ajouter vous classmap
Matthew Weier O''Phinney explique dans cette vidéo qu'il y a maintenant 3 méthodes d'auto-chargement :
Un classe-générateur de carte d' utilitaire est mentionné dans les docs qui vont prendre soin de la rédaction de la
/vendor/vendor_name/library/autoload_classmap.php
pour vous.La solution que vous avez trouvé est similaire à celui de Matthieu mentionne dans la vidéo pour le nombre de noms/préfixe auto-chargement. À la suite de la structure de code dans ZendSkeletonApplicationque le code qui va dans le
/init_autoloader.php
fichier, plutôt que dans le/public/index.php
fichier.J'ai trouvé la réponse. Mettez ceci dans votre index.php:
Un rapide coup d'oeil à ce post.
Maintenant, la prochaine étape est d'ajouter du code dans notre bibliothèque personnalisée.
Tout d'abord ouvrir un fichier
./vendor/Garvey/autoload_classmap.php
Suivant est
./vendor/Garvey/Module.php
Maintenant à l'intérieur de votre bibliothèque créer un fichier dans un dossier:
./vendor/Kdecom/library/Kdecom/Db/Table/AbstractTable.php
Une dernière chose que nous devons faire, ce qui est d'ajouter cette librairie dans votre
application.config.php
fichier.De sorte que votre
application.config.php
fichier ressemble à quelque chose comme ça...