Ich bin derzeit auf Windows mit WampServer
entwickeln und Composer
arbeiten (mit OpenSSL
), mit Propel ohne Problem installiert, und alles scheint gut zu funktionieren. Allerdings muss mein Projekt jetzt die Equal Nest Behaviour
gefunden here verwenden.Installieren Propel Verhalten mit Composer
Ich dachte, dies würde mir erlauben, das Antriebsverhalten zu verwenden. In meinem schema.xml
habe ich folgendes Snippet:
<table name="friend">
<behavior name="equal_nest">
<parameter name="parent_table" value="user" />
</behavior>
</table>
Aber wenn ich propel-gen sql
laufen bekomme ich den Fehler:
[phingcall] Unknown behavior "equal_nest"; make sure you configured the propel.be
havior.equal_nest.class setting in your build.properties
Die Dokumentation sagt:
Then, if you don't use Composer, or an autoloader in your application, add the following configuration to your build.properties or propel.ini file:
mich machen davon aus, dass ich didn Ich muss die Datei build.properties nicht einfügen. Es ist jedoch bei der Umsetzung gibt mir die folgende Fehlermeldung:
PHP Fatal error: Class 'EqualNestParentBehavior' not found in C:\home\movesleag
ue.com\vendor\craftyshadow\propel-equalnest-behavior\src\EqualNestBehavior.php o
n line 74
mir nicht sicher war, ob das etwas mit Autoloading (mein Schema hat einen Namensraum nicht funktioniert oder Namensräume zu tun, aber ich diesen gleichen Fehler beim Entfernen es auch).
Meine composer.json
Datei sieht wie folgt aus:
{
"require": {
"craftyshadow/propel-equalnest-behavior": "dev-master"
}
}
Anmerkung: Ich habe Propel haben da drin selbst, sondern als das equalnest Verhalten es selbst benötigt Ich lasse nur, dass seine Arbeit tun.
Also, was ist die richtige Methode Propel Verhalten mit Composer zu verwenden, und wenn ich es richtig mache, warum sehe ich die Fehler oben?
Updates
Ich habe diese Linie an die Spitze der EqualNestBehaviour.php
:
include __DIR__ . DIRECTORY_SEPARATOR . 'EqualNestParentBehavior.php';
Und die SQL scheint korrekt ohne Fehler generiert werden. Das Ändern dieser Datei scheint mir jedoch nicht schlau zu sein! Kann es beim Autoloading ein Problem geben? Gibt es etwas, woran Sie denken können, dass ich das tun kann?
kann ich bestätigen, dass Equal Nest Behaviour
in meinem eigentlichen Propel
Code funktioniert gut, mit Funktionen wie addFriends()
mit - noch an seinem Platz dies mit den oben genannten Änderungen ist.
In meiner autoload_namespaces.php
Datei habe ich die folgenden:
<?php
// autoload_namespaces.php generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
);
Ich nehme an, Sie haben eine 'php composer.phar install'? Vielleicht versuchen Sie Propel und das Behavior through Composer zu installieren (es scheint, dass nur das Verhalten ist). – Sam
Nein Ich benutze die globale Installation, also funktioniert nur 'composer install'. Wie ich oben sagte, erfordert das Verhalten 'propel 1.6. * Selbst. Natürlich wird der Antrieb installiert, wenn er funktioniert, oder ich würde die Fehlermeldungen von Propel überhaupt nicht sehen können. – LeonardChallis
Oh ich verpasste das Verhalten einschließlich Propel 1.6. Es scheint definitiv ein automatisches Ladeproblem zu sein, ich würde es mit Propel in der Composer-Datei versuchen - nur für den Fall. – Sam