update framework composer php propel behavior composer-php

php - framework - Instalando comportamientos de Propel con Composer



propel select (1)

Actualmente estoy desarrollando Windows con WampServer y tengo Composer funcionando (con OpenSSL ), con Propel instalado sin problemas, y todo parece funcionar bien. Sin embargo, mi proyecto ahora necesita hacer uso del Equal Nest Behaviour encontrado here .

Pensé que esto me permitiría usar el comportamiento de propulsión. En mi schema.xml tengo el siguiente fragmento de schema.xml :

<table name="friend"> <behavior name="equal_nest"> <parameter name="parent_table" value="user" /> </behavior> </table>

Pero cuando ejecuto propel-gen sql obtengo el error:

[phingcall] Unknown behavior "equal_nest"; make sure you configured the propel.be havior.equal_nest.class setting in your build.properties

La documentación dice:

Luego, si no usa Composer o un autocargador en su aplicación, agregue la siguiente configuración a su archivo build.properties o propel.ini:

Haciéndome suponer que no tenía que poner en el archivo build.properties. Sin embargo, ponerlo en me da el siguiente error:

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

No estaba seguro de si eso tenía que ver con que la carga automática no funcionara o los espacios de nombres (mi esquema tiene un espacio de nombres, pero recibo el mismo error al eliminarlo).

Mi archivo composer.json ve así:

{ "require": { "craftyshadow/propel-equalnest-behavior": "dev-master" } }

Nota: Yo tenía Propel allí mismo, pero como el comportamiento más equitativo lo requiere, solo estoy dejando que haga su trabajo.

Entonces, ¿cuál es la forma correcta de usar los comportamientos de Propel con Composer, y si lo estoy haciendo bien, por qué veo los errores anteriores?

Actualizaciones

EqualNestBehaviour.php esta línea a la parte superior de EqualNestBehaviour.php :

include __DIR__ . DIRECTORY_SEPARATOR . ''EqualNestParentBehavior.php'';

Y el SQL parece que se genera correctamente sin errores. Sin embargo, cambiar ese archivo no me parece inteligente! ¿Podría ser un problema con la carga automática? ¿Hay algo en lo que puedas pensar que pueda hacer para probar eso?

Puedo confirmar que usar Equal Nest Behaviour en mi código Propel real funciona bien, usar funciones como addFriends() , esto es con los cambios anteriores que aún están en su lugar.

En mi archivo autoload_namespaces.php tengo lo siguiente:

<?php // autoload_namespaces.php generated by Composer $vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( );


Este es un problema de carga automática.

Por favor verifica que tengas

propel.behavior.equal_nest.class = vendor.craftyshadow.propel-equalnest-behavior.src.EqualNestBehavior

en su build.properties (para Propel).

Compruebe que el archivo de autocargador generado por el compositor esté incluido durante el proceso de arranque de su aplicación. Composer genera un archivo "proveedor / autoload.php". Si lo incluyes, entonces obtienes la carga automática de forma gratuita. Y todo lo instalado por Composer se encuentra automáticamente.

require ''vendor/autoload.php'';