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

Clase Mode_ no found it zend framework

Estas en el tema de Clase Mode_ no found it zend framework en el foro de Zend en Foros del Web. Hola buenos dias, al generar la clases en zend con doctrine, me las crea en Application -Model Pero las crea sin prefijo asi mas o ...
  #1 (permalink)  
Antiguo 02/02/2011, 02:20
 
Fecha de Ingreso: agosto-2009
Mensajes: 138
Antigüedad: 14 años, 8 meses
Puntos: 0
Clase Mode_ no found it zend framework

Hola buenos dias, al generar la clases en zend con doctrine, me las crea en
Application
-Model

Pero las crea sin prefijo asi mas o menos : Model_Persona.

Cuando quiero llamarla desde un controlador del modulo . No la encuentra.
Application
-Module
-Admin
-Controller
Warning: include_once(Model/Persona.php) [function.include-once]: failed to open stream:
Fatal error: Class 'Model_Persona' not found in.

MI include_path.
Código PHP:
set_include_path(implode(PATH_SEPARATOR, array(
  
realpath(APPLICATION_PATH '/../library'),
  
realpath(APPLICATION_PATH '/../library/Doctrine'),
  
realpath(APPLICATION_PATH '/models'),
  
get_include_path(),
))); 
en el .ini tengo.
Código PHP:
  bootstrap.path APPLICATION_PATH "/bootstrap.php"
  
bootstrap.class = "Bootstrap"
  
appnamespace "Application"


  
resources.frontController.controllerDirectory APPLICATION_PATH "/controllers"
  
resources.frontController.baseUrl "/acceda"
  
resources.frontController.moduleDirectory APPLICATION_PATH "/modules"
  
resources.frontController.defaultModule "default"
autoloaderNamespaces[] = "Model_" 
Que debo de hacer para que Zend encuentre la clase..
Ya que doctrine no me la genera con prefix
Un saludo
  #2 (permalink)  
Antiguo 02/02/2011, 10:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Tema movido desde PHP a Frameworks y PHP orientado a objetos
  #3 (permalink)  
Antiguo 02/02/2011, 12:49
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: Clase Mode_ no found it zend framework

Agregale el namespace a los modelos en el Yml o bien deja appnamespace en blanco

Código INI:
Ver original
  1. appnamespace = ""

ahora te pregunto, tenes un library Model ?, sino es el caso esta linea esta de mas

Código INI:
Ver original
  1. autoloaderNamespaces[] = "Model_"

y porque tenes Doctrine y models en el set_include_path ?
__________________
http://es.phptherightway.com/
thats us riders :)
  #4 (permalink)  
Antiguo 03/02/2011, 02:41
 
Fecha de Ingreso: agosto-2009
Mensajes: 138
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Clase Mode_ no found it zend framework

Pues he hecho esos cambios y sigue sin funcionar.

Fatal error: Class 'Model_Ambitos' not found.

Pense que tenia que agregar Doctrine y models en el set_include_path ..

Alguna solucion...quitando las modificaciones que dijisteis sigue sin encontrar la clase.
  #5 (permalink)  
Antiguo 07/02/2011, 22:36
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Clase Mode_ no found it zend framework

Según un libro que estoy siguiendo:

En el library la ruta debe ser library/Model/Ambitos.php y lógicamente una clase llamada Model_Ambitos.

En el application.ini debe ir
autoloaderNamespaces[] = "Model_"
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 08/02/2011, 02:45
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: Clase Mode_ no found it zend framework

Que tal abimaelrc, si bien se puede usar ese esquema yo te recomendaria que usaras la estructura estandar, para la que ya viene preparado Zend, tus modelos, formularios, servicios, helpers, etc... deberían estar bajo las respectivas carpetas de cada modulo y luego para hacer uso de los mismos lo único que tenes que hacer es crear un Bootstrap en cada modulo que extienda de Zend_Application_Module_Bootstrap.

El caso de niewpendejo es extraño porque dejando el appnamespace a "" deberia funcionar, luego lo probare a ver que esta pasando.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #7 (permalink)  
Antiguo 08/02/2011, 08:42
pur
 
Fecha de Ingreso: agosto-2007
Mensajes: 98
Antigüedad: 16 años, 7 meses
Puntos: 4
Respuesta: Clase Mode_ no found it zend framework

Hola Master, leyendo tu ultimo post me queda una duda, yo trabajo con un solo Bootstrap.
Que ventaja tiene trabajar con un Bootstrap en cada modulo, en cual archivo iría el Bootstrap dentro del modulo?
Tengo que hacer algun cambio extra en el application.ini, si voy a trabajar de esta forma?


Saludos.
  #8 (permalink)  
Antiguo 08/02/2011, 13:33
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: Clase Mode_ no found it zend framework

Cita:
Que ventaja tiene trabajar con un Bootstrap en cada modulo
te dejo un enlace que te habla sobre el tema

Cita:
en cual archivo iría el Bootstrap dentro del modulo ?
dentro de cada modulo, el fichero se debe llamar Bootstrap.php y la clase debe tener por prefijo el nombre del modulo, si tuvieramos un modulo blog, seria algo asi:

Código PHP:
Ver original
  1. //application/modules/blog/Bootstrap.php
  2. class Blog_Bootstrap extends Zend_Application_Module_Bootstrap
  3. {
  4.     protected function _initNavigation(){...}
  5.     protected function _initRoutes(){...}
  6. }

Cita:
Tengo que hacer algun cambio extra en el application.ini, si voy a trabajar de esta forma?
No

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #9 (permalink)  
Antiguo 08/02/2011, 13:43
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: Clase Mode_ no found it zend framework

niewpendejo, acabo de probar lo que te comente y funciona correctamente, tenes la estructura standard de proyecto ?, si no es asi, donde estas la carpeta models ?
__________________
http://es.phptherightway.com/
thats us riders :)
  #10 (permalink)  
Antiguo 09/02/2011, 12:45
 
Fecha de Ingreso: agosto-2009
Mensajes: 138
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Clase Mode_ no found it zend framework

La carpeta Models esta en :
Application.

No esta dentro de cada Modulo ,porque comparten Modelo, con lo que no necesitaria tener una carpeta por modulo...
  #11 (permalink)  
Antiguo 09/02/2011, 13:06
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Clase Mode_ no found it zend framework

No sé si esto es lo ideal o correcto, pero a mí me resultó añadir en el public/index.php, en esta línea
Código PHP:
Ver original
  1. set_include_path(implode(PATH_SEPARATOR, array(
  2.     realpath(APPLICATION_PATH . '/../library'),
  3. )));
añadir esto
Código PHP:
Ver original
  1. set_include_path(implode(PATH_SEPARATOR, array(
  2.     realpath(APPLICATION_PATH . '/../library'),
  3. )) . ';' . APPLICATION_PATH . '/models');

Si lo mejor es añadirlo en el bootstrap, todavía no he llegado a ese tema
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 09/02/2011 a las 13:12
  #12 (permalink)  
Antiguo 09/02/2011, 14:01
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: Clase Mode_ no found it zend framework

Cita:
Iniciado por niewpendejo Ver Mensaje
La carpeta Models esta en :
Application.

No esta dentro de cada Modulo ,porque comparten Modelo, con lo que no necesitaria tener una carpeta por modulo...
Al ver mayúsculas donde deberían ser minúsculas me queda la duda, los modelos estan en:

proyect/application/models

o en

proyect/library/Application/Models

@abimaelrc, si tuviste que agregar esa linea al include path para que te cargue los modelos algo esta mal en el proyecto.
__________________
http://es.phptherightway.com/
thats us riders :)
  #13 (permalink)  
Antiguo 09/02/2011, 15:35
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Clase Mode_ no found it zend framework

Sinceramente, solo cree el proyecto y acabado de crear cree una clase sencilla en la parte de models, la llame y no me salió con require_once. Coloqué esa línea y funcionó correctamente.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #14 (permalink)  
Antiguo 09/02/2011, 15:46
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: Clase Mode_ no found it zend framework

Como era el nombre de la clase ?, por defecto Zend crea en el config appnamespace con el valor Application, y este debe ser el prefijo de las clases dentro de application/models, obviamente este se puede cambiar por el que desees o incluso como le comente a niewpendejo dejarlo en blanco.

Un ejemplo, clase User:
Código PHP:
Ver original
  1. //application/models/User.php
  2. class Application_Model_User
  3. {}
y para instanciar:

Código PHP:
Ver original
  1. new Application_Model_User();

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #15 (permalink)  
Antiguo 09/02/2011, 17:44
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Clase Mode_ no found it zend framework

Ohhh, es que yo lo hacía con la s al final de Model y es sin ella. O sea usando tu ejemplo yo hacía así
Código PHP:
Ver original
  1. class Application_Models_User
  2. {
  3.  
  4. }
y en realidad es así
Código PHP:
Ver original
  1. class Application_Model_User
  2. {
  3.  
  4. }
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #16 (permalink)  
Antiguo 09/02/2011, 18:05
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: Clase Mode_ no found it zend framework

Si miras dentro de Zend_Application_Module_Autoloader, vas a ver los diferentes recursos, con sus respectivos namespaces y a donde mapean.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #17 (permalink)  
Antiguo 10/02/2011, 05:09
 
Fecha de Ingreso: agosto-2009
Mensajes: 138
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Clase Mode_ no found it zend framework

Solucionado me faltaba el :

Código PHP:
protected function _initAutoload()
    {
        
$autoloader = new Zend_Loader_Autoloader_Resource(array(
            
'namespace' => '',
            
'basePath' => APPLICATION_PATH,
            
'resourceTypes' => array(
                
'model' => array(
                    
'path' => 'models',
                    
'namespace' => 'Model',
                ),
            )
        ));
        return 
$autoloader;
    } 
Gracias a todos
  #18 (permalink)  
Antiguo 10/02/2011, 06:06
 
Fecha de Ingreso: agosto-2009
Mensajes: 138
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Clase Mode_ no found it zend framework

Esta solucionado lo de la clase ,pero lo que comentabais antes de un Bootstrap por modulo , no.

No entra dentro del : Admin_Bootstrap->Bootstrap.php

Código PHP:
class Admin_Bootstrap extends Zend_Application_Module_Bootstrap
{

 
  protected function 
_initAutoload(){
  die(
"A"); 

No entiendo porq despues de ir al module admin , no pasa antes por el bootstrap
esto esta en el config.ini
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] = ""

que puede estar pasando
  #19 (permalink)  
Antiguo 10/02/2011, 14:04
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: Clase Mode_ no found it zend framework

Hay algo mal en tu proyecto porque esto:

Código PHP:
Ver original
  1. $autoloader = new Zend_Loader_Autoloader_Resource(array(
  2.     'namespace' => '',
  3.     'basePath' => APPLICATION_PATH,
  4.     'resourceTypes' => array(
  5.         'model' => array(
  6.             'path' => 'models',
  7.             'namespace' => 'Model',
  8.          ),
  9.     )
  10. ));

es lo que hace el Bootstrap cuando lo instancias, si te fijas dejaste el namespace en blanco como te comente y debería ser lo mismo que dejarlo en blanco en el application.ini

Y los Bootstrap's se ejecutan todos independientemente si entras al modulo o no, te funciona correctamente la navegación entre modulos ?
__________________
http://es.phptherightway.com/
thats us riders :)
  #20 (permalink)  
Antiguo 11/02/2011, 02:23
 
Fecha de Ingreso: agosto-2009
Mensajes: 138
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Clase Mode_ no found it zend framework

Los Bootstrap's no se ejecutan , pero la navegacion entre los modulos no da problema...puedo ir a los controladores de cada modulo...
  #21 (permalink)  
Antiguo 17/02/2011, 18:04
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: Clase Mode_ no found it zend framework

Si los bootstrap's no se ejecutan es porque te falta agregar a tu application.ini

Código INI:
Ver original
  1. resources.modules[] = ""

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)

Etiquetas: clase, found, framework, mode
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 06:48.