Foros del Web » Programando para Internet » PHP » Zend »

En donde colocar un plugin de Zend Framework?

Estas en el tema de En donde colocar un plugin de Zend Framework? en el foro de Zend en Foros del Web. Hola, estoy creando una aplicacion modular y necesito que dependiento el modulo se muestre un layut u otro; el asunto es que tras leer la ...
  #1 (permalink)  
Antiguo 14/10/2011, 10:26
 
Fecha de Ingreso: julio-2008
Ubicación: México
Mensajes: 150
Antigüedad: 15 años, 9 meses
Puntos: 4
En donde colocar un plugin de Zend Framework?

Hola, estoy creando una aplicacion modular y necesito que dependiento el modulo se muestre un layut u otro; el asunto es que tras leer la documentacion y diversos tutoriales no logro registrar correctamente mi plugin, ni siquiera se como nombrarlo y en donde colocarlo.

Las preguntas serían:

1. Tengo el siguiente plugin, en que directorio debo colocarlo?:
Código PHP:
class PluginLayout extends Zend_Controller_Plugin_Abstract
{

    public function 
preDispatch (Zend_Controller_Request_Abstract $request)
    {
            
        echo 
$request;
        
    }
 

2. Como lo registro y en donde (en index.php dentro de public, en el bootstrap o en application.ini)?


Saludos y muchas gracias.
__________________
Blog blog.desarrollandoideas.com

Twitter
Sígueme en Twitter
  #2 (permalink)  
Antiguo 14/10/2011, 10:33
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: En donde colocar un plugin de Zend Framework?

Lo pones en la carpeta application/plugins, se debe de llamar Application_Plugin_TuPlugin, y lo puedes registrar desde el front controller usando resources.frontController.plugins.tuplugin = Application_Plugin_TuPlugin

Saludos.
  #3 (permalink)  
Antiguo 14/10/2011, 10:58
 
Fecha de Ingreso: julio-2008
Ubicación: México
Mensajes: 150
Antigüedad: 15 años, 9 meses
Puntos: 4
Respuesta: En donde colocar un plugin de Zend Framework?

Gracias gatorV, he hecho lo que me sugieres y tengo el siguiente error:

Fatal error: Class 'Application_Plugin_Layout' not found in C:\xampp\htdocs\catalogozend\library\Zend\Applicat ion\Resource\Frontcontroller.php on line 117

Te confirmo lo que tengo en cada lugar:

1. Generé la carpeta plugins dentro de la carpeta application

2. Cree un archivo llamado: Application_Plugin_Layout.php dentro de la carpeta plugins. Este archivo tiene lo siguiente:
Código PHP:
class Application_Plugin_Layout 
{
    public function 
preDispatch (Zend_Controller_Request_Abstract $request)
    {
            
        echo 
$request;
        
    } 


3. Finalemente en mi application.ini integré esta línea:
Código:
resources.frontController.plugins.layout  = Application_Plugin_Layout
__________________
Blog blog.desarrollandoideas.com

Twitter
Sígueme en Twitter
  #4 (permalink)  
Antiguo 14/10/2011, 11:09
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: En donde colocar un plugin de Zend Framework?

Lo deberia cargar, aunque te falto extender de Zend_Controller_Plugin_Abstract y envuelve entre "" el resource

Código INI:
Ver original
  1. resources.frontController.plugins.layout  = "Application_Plugin_Layout"

como generaste el proyecto ?
__________________
http://es.phptherightway.com/
thats us riders :)
  #5 (permalink)  
Antiguo 14/10/2011, 11:20
 
Fecha de Ingreso: julio-2008
Ubicación: México
Mensajes: 150
Antigüedad: 15 años, 9 meses
Puntos: 4
Respuesta: En donde colocar un plugin de Zend Framework?

Hola masterpuppet, ya extendí la clase tal como me indicas y entrecomillé el resource, y sigo obteniendo el mismo error.

El proyetco lo generé con zend tools, lo mismo los controladores y los modulos que tengo, lo que no se es si se pueden crear plugins con zend tools.
__________________
Blog blog.desarrollandoideas.com

Twitter
Sígueme en Twitter
  #6 (permalink)  
Antiguo 14/10/2011, 11:28
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: En donde colocar un plugin de Zend Framework?

mmm, el appnamespace es Application ?, si creas un model, lo puedes instanciar sin problemas ?, con respecto a crear plugins con la consola, no, no se puede, si ejecutas zf o zf ? veras todas las opciones de las que dispones.
__________________
http://es.phptherightway.com/
thats us riders :)
  #7 (permalink)  
Antiguo 14/10/2011, 11:37
 
Fecha de Ingreso: julio-2008
Ubicación: México
Mensajes: 150
Antigüedad: 15 años, 9 meses
Puntos: 4
Respuesta: En donde colocar un plugin de Zend Framework?

Si, el appnamespace es appnamespace = "Application" y si, cuando creo un model lo puedo instanciar sin problemas, no se si sea importante mencionar que hice una integracion con doctrine. Copio mi bootsrap y mi application.ini completo:

Bootstrap:
Código PHP:
<?php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{


    protected function 
_initDoctrine()
    {
        
//Añadir Doctrine al autoloader de Zend
        
$this->getApplication()->getAutoloader()
             ->
pushAutoloader(array('Doctrine''autoload'));

        
//Llamar al autoloader de Doctrine para que cargue los modelos
        
spl_autoload_register(array('Doctrine''modelsAutoload'));

        
//Obtener los parámetros definidos en el archivo appication.ini
        
$doctrineConfig $this->getOption('doctrine');
        
$manager Doctrine_Manager::getInstance();

        
//Definir los atributos de acceso y de carga de modelos
        
$manager->setAttribute(Doctrine::ATTR_AUTO_ACCESSOR_OVERRIDEtrue);
        
$manager->setAttribute(
          
Doctrine::ATTR_MODEL_LOADING,
          
$doctrineConfig['model_autoloading']
        );

        
Doctrine_Core::loadModels($doctrineConfig['models_path']);

        
//Crear la conexión a base de datos segun el DSN
        
$conn Doctrine_Manager::connection($doctrineConfig['dsn'],'doctrine');

        
//Definir la forma nativa ENUM
        
$conn->setAttribute(Doctrine::ATTR_USE_NATIVE_ENUMtrue);
     return 
$conn;

    }
}
application.ini:
Código:
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0


autoloaderNamespaces[] = "Doctrine"

; ------------------------------------------
; database
; ------------------------------------------
doctrine.dsn                = "mysql://root:@localhost/bruno"
doctrine.data_fixtures_path = APPLICATION_PATH "/configs/data/fixtures"
doctrine.sql_path           = APPLICATION_PATH "/configs/data/sql"
doctrine.migrations_path    = APPLICATION_PATH "/configs/migrations"
doctrine.yaml_schema_path   = APPLICATION_PATH "/configs/schema.yml"
doctrine.models_path        = APPLICATION_PATH "/models"
doctrine.model_autoloading = 2



resources.layout.layout = "layout"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.frontController.plugins.Layout  = "Application_Plugin_Layout"
[staging : production]

[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
__________________
Blog blog.desarrollandoideas.com

Twitter
Sígueme en Twitter
  #8 (permalink)  
Antiguo 14/10/2011, 11:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: En donde colocar un plugin de Zend Framework?

El archivo se debería de llamar Layout.php, no Application_Plugin_Layout.php.

Saludos.
  #9 (permalink)  
Antiguo 14/10/2011, 11:48
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: En donde colocar un plugin de Zend Framework?

Cita:
Iniciado por GatorV Ver Mensaje
El archivo se debería de llamar Layout.php, no Application_Plugin_Layout.php.

Saludos.
Jackpot!
__________________
http://es.phptherightway.com/
thats us riders :)
  #10 (permalink)  
Antiguo 14/10/2011, 11:54
 
Fecha de Ingreso: julio-2008
Ubicación: México
Mensajes: 150
Antigüedad: 15 años, 9 meses
Puntos: 4
De acuerdo Respuesta: En donde colocar un plugin de Zend Framework?

GatorV con esto último ya pude lograr lo que necesitaba, te agradezco mucho al igual que a masterpuppet
__________________
Blog blog.desarrollandoideas.com

Twitter
Sígueme en Twitter

Etiquetas: php, plugin
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:54.