2016-07-04 2 views
1

J'ai un problème avec l'accès aux classes de mon Propel. Par exemple, j'essaie d'accéder à la classe Livre.Impossible d'accéder aux classes de mon Propel

Mon code dans index.php est:

use biblio\biblio\Livre; 
//load Propel's autoload 
require 'vendor/autoload.php'; 

$collect = new Livre(); 
$collect->setNom("Aventure"); 
$collect->save(); 

Et l'erreur de sortie est:

Fatal error: Class 'biblio\biblio\Livre' not found in /Applications/MAMP/htdocs/propel/index.php on line 7

Mon Livre est classe le dossier biblio/biblio/Livre.php Avec ce code, Eclipse trouve mon Livre. Mais quand PHP s'exécute, il y a une erreur.

Quelqu'un a une solution?

+1

Pourriez-vous ajouter le contenu de votre fichier composer.json? – chocochaos

Répondre

1

Vous allez avoir besoin d'ajouter quelque chose comme ceci dans votre fichier composer.json (modifier de toute évidence ce autoload données dans l'ensemble du fichier JSON, plutôt que annexant ce que-est):

{ 
    ... 
    "autoload": { 
    "classmap": ["biblio/"] 
    } 
} 

Sans cette , require vendor/autoload.php; n'inclura pas vos classes Propel et PHP ne sera pas en mesure de trouver l'espace de noms/classe. N'oubliez pas d'exécuter php composer dump-autoload à partir de votre ligne de commande pour mettre à jour le fichier autoload.php.


Voir la Propel documentation pour plus d'informations:

After generating the classes, you have to autoload them.

Ou, en savoir plus sur Composer's autoloading:

For libraries that specify autoload information, Composer generates a vendor/autoload.php file. You can simply include this file and you will get autoloading for free. [...] You can even add your own code to the autoloader by adding an autoload field to composer.json.