Tengo este módulo llamado 'olo' que maneja todas nuestras cosas de pedidos en línea.¿Extiende un controlador desde el controlador en otro módulo?
Ahora he hecho un nuevo módulo llamado 'olosec' porque deseo hacer una versión diferente con un ligero cambio de flujo, y algunos otros cambios en algunos de los controladores.
¿Es posible extender un controlador en 'olosec' con un controlador en 'olo'?
A partir de ahora he tratado
class Olosec_CartController extends Olo_CartController
que arroja un error como
Warning: include_once(Olo/CartController.php): failed to open stream:
No such file or directory in /httpdocs/library/Zend/Loader.php on line 146 Warning:
include_once(): Failed opening 'Olo/CartController.php' for inclusion.
bla bla bla (include path) bla bla bla
Mi estructura de directorios es algo como esto (gracias tree \F \A
y EditPlus++)
+---application
| +---views
| | +---scripts
| | +---layouts
| | | +---default
| | | +---admin
| | +---languages
| | +---helpers
| +---modules
| | +---admin
| | +---mobile
| | +---olo
| | | +---controllers
| | | IndexController.php
| | | MenuController.php
| | | CartController.php
| | | OrderlistController.php
| | | |
| | | +---models
| | | \---views
| | | +---helpers
| | | \---scripts
| | | +---index
| | | +---menu
| | | +---cart
| | | \---orderlist
| | \---olosec
| | +---controllers
| | | IndexController.php
| | | MenuController.php
| | | CartController.php
| | | OrderlistController.php
| | |
| | +---models
| | \---views
| | +---helpers
| | \---scripts
| | +---index
| | +---menu
| | +---cart
| | \---orderlist
| +---models
| +---controllers
| \---configs
+---library
+---public
| +---cli
| \---default
+---tests
\---data
Actualización
He utilizado este truco "desagradable", que funciona
require_once(APPLICATION_PATH . '/modules/olo/controllers/CartController.php');
actualización @ Rakesh
tengo esto en mi rutina de carga ..
function _initAutoloader() {
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->setFallbackAutoloader(true);
return $autoloader;
}
En mi application.ini
autoloadernamespaces.0 = "Zend"
autoloadernamespaces.1 = "My"
autoloadernamespaces.2 = "Something"
@Tomalak Geret'kal: ¿Qué pasa con un saludo frito;) Y sí, el 'yo' ... Siempre me olvido de mayúsculas. ¡Pero gracias por la edición! – Phliplip
Aunque solo quiso ser cortés con su saludo, ya que Stack Overflow no es un tablero de mensajes, preferimos que las preguntas solo contengan la pregunta. Ahorra espacio, evita la hinchazón y mantiene feliz el TOC. :) –
@Tomalak Geret'kal: lo tendré en cuenta;) – Phliplip