Estoy trabajando con Prestashop y como tenía que implementar unas nuevas funcionalidades me vi obligada a crear clases y controladores nuevos o bien ampliar los existentes. Me gusta la metodología TDD, programas sobre seguro cuando tienes una batería de pruebas que afianzan que tus métodos e interacciones funcionan. La cuestión es que quiero integrar PhpUnit con Prestashop de una forma "cómoda".
El problema surge de que la mayoría de las clases y controladores terminan en "Core" por ejemplo Tenemos "Cart.php" que contiene la clase "CartCore", pero en realidad instanciamos con "new Cart()" en el código. En el bootstrap de "phpunit.xml" apunto a un fichero donde hace una seríe de includes. Uno de ellos contiene una clase llamada Cart que hereda de CartCore, para que así me funcione el "new Cart". Lo malo es que son un montón de clases y hacer esta herencia con todas es agotador y poco mantenible.
No sé como Prestashop hace internamente para que cuando hagas new Cart() haga realmente un new CartCore(). Trasteé con el spl_autoload_register() pero lo que hace es a través del nombre de la clase y su namespace poder hacer un include de aquel fichero donde contiene el nombre de dicha clase. Detecta "Cart", pero no puedo decir que esa llamada es "CartCore". Puedo decir que cargue el Cart.php pero al no aparecer la clase Cart lanza el mensaje de que no existe la clase.
Se que es un poco larga la duda, pero si saco esto adelante publico ejemplos de código para ayudar a la comunidad de Prestashop.
Estoy trabajando con Prestashop y como tenía que implementar unas nuevas funcionalidades me vi obligada a crear clases y controladores nuevos o bien ampliar los existentes. Me gusta la metodología TDD, programas sobre seguro cuando tienes una batería de pruebas que afianzan que tus métodos e interacciones funcionan. La cuestión es que quiero integrar PhpUnit con Prestashop de una forma "cómoda".
El problema surge de que la mayoría de las clases y controladores terminan en "Core" por ejemplo Tenemos "Cart.php" que contiene la clase "CartCore", pero en realidad instanciamos con "new Cart()" en el código. En el bootstrap de "phpunit.xml" apunto a un fichero donde hace una seríe de includes. Uno de ellos contiene una clase llamada Cart que hereda de CartCore, para que así me funcione el "new Cart". Lo malo es que son un montón de clases y hacer esta herencia con todas es agotador y poco mantenible.
No sé como Prestashop hace internamente para que cuando hagas new Cart() haga realmente un new CartCore(). Trasteé con el spl_autoload_register() pero lo que hace es a través del nombre de la clase y su namespace poder hacer un include de aquel fichero donde contiene el nombre de dicha clase. Detecta "Cart", pero no puedo decir que esa llamada es "CartCore". Puedo decir que cargue el Cart.php pero al no aparecer la clase Cart lanza el mensaje de que no existe la clase.
Se que es un poco larga la duda, pero si saco esto adelante publico ejemplos de código para ayudar a la comunidad de Prestashop.