J'ai besoin d'utiliser AutoLoading pour mes classes personnalisées dans Zend Framework dans l'index.php j'ai Le code suivant: p> mais j'ai l'erreur suivante. Ce que j'ai manqué? P> merci d'avance. P> p> p> / Vendeur / Garvey / Bibliothèque / Garvey Code>. J'ai une simple classe abstraitable étendue dans
/vendor/graved/library/garey/db/table/abstracttable.php code>:
5 Réponses :
J'ai trouvé la réponse. Mettez ceci dans votre index.php:
mmm un peu frustrant. Vous pouvez être nouveau mais je suis encore plus récent! Où est-ce que ce qui précède va? Je pense publique / index.php
En fait, la bonne façon serait d'avoir un module pour cela (ajoutant uniquement un autochargeur à l'application).
Vous n'êtes pas correcte. Module - fait partie de l'application. Le vendeur - est un élément pour différentes applications.
Votre index original.php aurait également fonctionné si vous avez modifié la touche "Préfixes" sur "Espaces de noms" et spécifier le chemin comme ci-dessous:
Zend\Loader\AutoloaderFactory::factory(array('Zend\Loader\StandardAutoloader' => array( 'namespaces' => array( 'Garvey' => dirname(__DIR__) . '/vendor/Garvey', ) )));
Belle réponse, juste une petite correction pour cette question spécifique: 'Garvey' => Dirname (__ dir__). '/ Vendeur / Garvey / Bibliothèque / Garvey' Code>
Plutov, vous ne devriez pas avoir besoin de: require_once 'Vendor / Zendframework / Bibliothèque / Zend / Loader / AutoLoaderFactory. PHP';
ou vous pouvez défendre la méthode dans module.php mais je ne le recommanderais pas. Depuis ZF2, tout a centrifié sur la vitesse de l'autoloading Le meilleur moyen est d'utiliser le style de classe_map pour charger vos classes. Cela fonctionnera beaucoup plus rapidement à la fin mais nécessite des travaux supplémentaires. Vous pouvez enregistrer chaque classe dans votre fichier class_map. P> Vous pouvez créer class_map.php à la racine de votre bibliothèque et placer là-bas p> et ajouter Il y a de nombreuses classes que vous utilisez. Et dans getautoloaderconfig (), vous pouvez vous ajouter ClassMap P> public function getAutoloaderConfig()
{
$return = array(
'Zend\Loader\ClassMapAutoloader' => array(
__DIR__ . '/autoload_classmap.php',
__DIR__ . '/../../vendor/Garvey/library/Garvey/class_map.php',
),
'Zend\Loader\StandardAutoloader' => array(
'namespaces' => array(
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
)
)
);
}
À mon avis, c'est la meilleure réponse. L'utilisation d'une carte de classe est la voie rapide (sinon la plus rapide) de charger des classes et celle-ci recommandée par Zend. Il est également claire et facile traçable. Bon travail de dégagement de cette méthode, merci!
Matthew Weier O'Phinney explique dans Cette vidéo a > Il y a maintenant 3 méthodes pour l'autoloading: p>
a ZendskeletonApplication , ce code irait dans le
/init_autoloader.php code > fichier plutôt que dans le fichier
/public/index.php code> fichier. p>
Regardez rapidement Now Suivant Step consiste à ajouter du code dans notre bibliothèque personnalisée. p> Tout d'abord ouvrir un fichier suivant est ./ Vendeur / Garvey / AutoLoad_Classmap.php code> p>
./ Vendeur / garvey / module.php code> p>
return array(
'modules' => array(
'Application',
'Garvey'
),
'module_listener_options' => array(
'config_glob_paths' => array(
'config/autoload/{,*.}{global,local}.php',
),
'module_paths' => array(
'./module',
'./vendor',
),
),
);
Post link retourne 404
quoi? C'est faux regard sur le manuel
C'est un cadre Zend 2. Beta1.
Pourquoi utilisez-vous une version plus ancienne ... (2min)