2016-06-01 2 views
0

Je fais une application php en utilisant propel ORM. Il me donne le message suivant lorsque je tente de l'exécuter:Propel ORM et PHP

Fatal error: Uncaught Error: Class 'Propel\Runtime\Propel' not found in C:\MAMP\htdocs\Conference\vendor\bin\generated-conf\config.php:2 Stack trace: #0 C:\MAMP\htdocs\Conference\vendor\bin\list.php(6): require_once() #1 {main} thrown in C:\MAMP\htdocs\Conference\vendor\bin\generated-conf\config.php on line 2.

Dans mon config.php fichier généré Je possède ce écrit:

'classname' => '\\Propel\\Runtime\\Connection\\ConnectionWrapper' 

Qu'est-ce que cela veut dire? Ai-je manqué un fichier ou quoi?

+0

Pourriez-vous expliquer de quelle manière vous avez ajouté Propel ORM à votre projet? Avez-vous utilisé le compositeur ou l'avez-vous ajouté manuellement? Si vous utilisez composer, avez-vous inclus le composeur automatique que vous générez lorsque vous l'exécutez? – chocochaos

Répondre

0

Je pense qu'il vous manque une étape dans le bâtiment. Je suppose que vous avez terminé votre fichier schema.xml et vous avez également un propel.yaml (ou avec un fichier d'extension autorisé) correctement configuré. Aussi je suppose que vous avez Propel avec Compositeur. Si vous avez tout ce que les étapes suivantes sont:

1) Ouvrez un terminal et accédez au répertoire de votre projet, où se trouvent les fichiers schema.xml et propel.yaml.

2) Exécutez la commande suivante pour obtenir yout-sql généré (je dois le faire de cette façon sous Windows):

c:\MAMP\htdocs\Conference\vendor\bin\propel sql:build 

3) Obtenez vos classes de modèle avec la commande suivante:

c:\MAMP\htdocs\Conference\vendor\bin\propel model:build 

4) Après avoir généré les classes, vous devez les charger automatiquement. Ouvrez votre fichier composer.json avec votre éditeur de texte et ajoutez ce qui suit:

"autoload": { 
    "classmap": ["generated-classes/"] 
} 

Il devrait ressembler à ceci, par exemple:

{ 
    "require": { 
     "twig/twig": "~1.0", 
     "propel/propel": "[email protected]" 
    }, 

    "autoload": { 
     "classmap": ["generated-classes/"] 
    } 
} 

5) Pour finir les classes autoloading, vous devez exécuter sur votre console:

composer dump-autoload 

6) Et pour les paramètres de connexion d'exécution pour exécuter ce cours Comunícate lors de l'exécution:

c:\MAMP\htdocs\Conference\vendor\bin\propel config:convert 

7) En supposant que vous avez créé votre base de données, la dernière chose que vous devez faire est de créer les tables, est avec la commande suivante:

c:\MAMP\htdocs\Conference\vendor\bin\propel sql:insert 

Et allez-y vous! Cela fonctionne pour moi chaque fois que je construis un projet.