Question

J'ai un dossier avec des classes personnalisées dans une application ZF 1.10. Le dossier se trouve dans / bibliothèque. Comment puis-je savoir ZF où ils sont? Les deux application.ini et mettre index.php le chemin de la bibliothèque mais ZF ne peut pas trouver les fichiers.

Merci

Était-ce utile?

La solution

Il existe de nombreuses solutions possibles. La plus courante, lorsque vous utilisez l'application Zend, est d'enregistrer l'espace de noms dans application.ini en ajoutant:

autoloaderNamespaces[] = "Example_"

Autres solutions:

  • Ajoutez votre répertoire à l'aide include_path set_include_path() (solution ad hoc)
  • Suivez les conventions de nommage PEAR (donc le chemin était possible la résolution)

Configurer autochargeur Bootstrap.php:

protected function _initAutoloader()
{
    $autoloader = Zend_Loader_Autoloader::getInstance();
    $autoloader->registerNamespace("Example"); // or Example_
}

Finalement, mettre en place le module ou ressources autoloader , par exemple.

$resourceLoader->addResourceTypes(array(
     'acl' => array(
        'path'      => 'acls/',
        'namespace' => 'Acl',
    ),
    'example' => array(
        'path'      => 'examples/',
        'namespace' => 'Example',
    ),        
));

Autres conseils

Nous rencontrons souvent un problème d'écrire nos propres fonctions personnalisées ou classes et où les placer.

Donc, pour ajouter classe personnalisée (ou bibliothèque personnalisée), on peut utiliser les espaces de noms autochargeur de Zend Framework.

Ajoutez la ligne ci-dessous dans le fichier application.ini

autoloaderNamespaces.custom = "Custom_"

ou

autoloaderNamespaces[] = "Custom_"

Toutes les classes personnalisées seront conservés sous le répertoire bibliothèque. Créer un nom de dossier « Custom » (qui est défini dans application.ini) dans le répertoire de la bibliothèque.

Classes seront préfixées avec 'Custom_' à déclaration dans le fichier (par exemple Custom_Test)

Maintenant, nous pouvons utiliser cette classe comme $test = new Custom_Test(), dans notre application.

Consultez ce tutoriel plus Zend Framework de Rob Allen , plus précisément à la page 4, où il parle du programme d'amorçage. Ses tutoriels les plus récents, comme excellente car ils sont, semblent compter sur l'outil Zend pour faire la création d'applications et de brillance à ce sujet.

Cependant, une chose qui me alarmé, était que vous avez mentionné que le dossier que vous essayez d'inclure est public / bibliothèque. Sauf si vous voulez volontairement partager votre code avec le monde, je vous conseillerais fortement le placer ailleurs ... sauf si vous avez un autre dossier « public » pas partagé avec le public (dans ce cas, vous pouvez envisager de le renommer pour éviter toute confusion future).

Ajoutez votre bibliothèque personnalisée à composer.json:

"autoload": {
"psr-0": {"Your": "vendor/My/library"}
},

et mise à jour de l'exécution compositeur

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top