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

ayuda a comprender la nueva forma del modelo en zendframework 1.8

Estas en el tema de ayuda a comprender la nueva forma del modelo en zendframework 1.8 en el foro de Zend en Foros del Web. esto si que no lo entiendo bien en el capitulo de quickstart de zend framework framework.zend.com/docs/quickstart/create-a-model-and-database-table esta bastante raro la verdad es que no entiendo ...
  #1 (permalink)  
Antiguo 19/05/2009, 13:57
Avatar de zfStuden  
Fecha de Ingreso: abril-2009
Mensajes: 109
Antigüedad: 15 años, 8 meses
Puntos: 0
ayuda a comprender la nueva forma del modelo en zendframework 1.8

esto si que no lo entiendo bien en el capitulo de quickstart de zend framework

framework.zend.com/docs/quickstart/create-a-model-and-database-table

esta bastante raro la verdad es que no entiendo ni u con p primero dice que hay una clase llamada Zend_Application_Module_Autoloader ademas haora el controlador frontal es una clase que se hereda

Código PHP:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    protected function 
_initAutoload()
    {
        
$autoloader = new Zend_Application_Module_Autoloader(array(
            
'namespace' => 'Default',
            
'basePath'  => dirname(__FILE__),
        ));
        return 
$autoloader;
    }

   


que cargo mas o menos aqui o se me acabaron las neuronas o que paso el zend framework volvio a cambiar radicalmente

ademas haora tenemos esto que se parece un poco al propel

Código PHP:
class Default_Model_Guestbook
{
    protected 
$_comment;-> propiedad
    
protected $_created;
    protected 
$_email;
    protected 
$_id;

    public function 
__set($name$value);-> a que seteara esto ???
    public function 
__get($name);

    public function 
setComment($text);
    public function 
getComment();

    public function 
setEmail($email);
    public function 
getEmail();

    public function 
setCreated($ts);
    public function 
getCreated();

    public function 
setId($id);
    public function 
getId();

    public function 
save();-> metodos de zend db table abstracts 
    
public function find($id);
    public function 
fetchAll();

esto se esta poniendo raro sigo sin entender que hace esto si con zend db table Abstract teniamos metodos que podiamos hacer nosotros por lo meno podiamos hacer una funcion estatica que nos devolviera el nombre y serian menos archivos

y pare de contar si alguno entiende bien el capitulo que me lo explique porque los traductores no me sirven de nada
  #2 (permalink)  
Antiguo 19/05/2009, 14:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: ayuda a comprender la nueva forma del modelo en zendframework 1.8

Cita:
Iniciado por zfStuden Ver Mensaje
esto si que no lo entiendo bien en el capitulo de quickstart de zend framework

framework.zend.com/docs/quickstart/create-a-model-and-database-table

esta bastante raro la verdad es que no entiendo ni u con p primero dice que hay una clase llamada Zend_Application_Module_Autoloader ademas haora el controlador frontal es una clase que se hereda
No, el FrontController sigue siendo el FrontController, lo que incorporo Zend 1.8 es algo que hacia mucha falta, una clase BootStrap, muchos desarrolladores creaban su propia clase, Zend tomo el mejor modelo y lo incorporo al Framework lo que lo hace más limpio.

Cita:
Iniciado por zfStuden Ver Mensaje

Código PHP:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    protected function 
_initAutoload()
    {
        
$autoloader = new Zend_Application_Module_Autoloader(array(
            
'namespace' => 'Default',
            
'basePath'  => dirname(__FILE__),
        ));
        return 
$autoloader;
    }

   


que cargo mas o menos aqui o se me acabaron las neuronas o que paso el zend framework volvio a cambiar radicalmente
Sirve para crear un autoloader para tus Modelos, anteriormente dentro de cada action que incorporara un modelo tenias que hacer el tipico:

Código php:
Ver original
  1. public function somethingAction() {
  2.      require_once 'application/models/Comments.php';
  3.      $Comments = new Model_Comments();
  4. }

Ahora con el nuevo modo de Autoloader puedes cargar directo si le indicas a Zend el Path:

Código php:
Ver original
  1. public function somethingAction() {
  2.      $Comments = new Model_Comments();
  3. }

Sirve para Formularios y para Modelos lo cual es muy bueno.

Cita:
Iniciado por zfStuden Ver Mensaje

ademas haora tenemos esto que se parece un poco al propel

Código PHP:
class Default_Model_Guestbook
{
    protected 
$_comment;-> propiedad
    
protected $_created;
    protected 
$_email;
    protected 
$_id;

    public function 
__set($name$value);-> a que seteara esto ???
    public function 
__get($name);

    public function 
setComment($text);
    public function 
getComment();

    public function 
setEmail($email);
    public function 
getEmail();

    public function 
setCreated($ts);
    public function 
getCreated();

    public function 
setId($id);
    public function 
getId();

    public function 
save();-> metodos de zend db table abstracts 
    
public function find($id);
    public function 
fetchAll();

esto se esta poniendo raro sigo sin entender que hace esto si con zend db table Abstract teniamos metodos que podiamos hacer nosotros por lo meno podiamos hacer una funcion estatica que nos devolviera el nombre y serian menos archivos

y pare de contar si alguno entiende bien el capitulo que me lo explique porque los traductores no me sirven de nada
Eso te esta creando clases base, siempre puedes optar para usar las clases "padre" aunque lo más recomendado siempre es que implementes clases especificas para tus modelos, es tu responsabilidad como programador el hacerlo.

Saludos.
  #3 (permalink)  
Antiguo 19/05/2009, 15:03
Avatar de zfStuden  
Fecha de Ingreso: abril-2009
Mensajes: 109
Antigüedad: 15 años, 8 meses
Puntos: 0
a pero yo hice esto xD hace tiempo y me cargaba el modelo usaba zend db table abstrac

Código PHP:
define('APPLICATION_PATH'realpath(dirname(__FILE__) . '/../App/'));
set_include_path(
    
APPLICATION_PATH.'/Models'.PATH_SEPARATOR .
    
APPLICATION_PATH.'/forms'.PATH_SEPARATOR .
    
APPLICATION_PATH .'/../Library'
    
PATH_SEPARATOR get_include_path()
); 
fijate este codigo en la parte que dice Models como esta incluida ya lo carga

Código PHP:
RewriteEngine On
RewriteBase 
/paginas
RewriteCond 
%{REQUEST_FILENAME} !-f
RewriteCond 
%{REQUEST_FILENAME} !-d
RewriteRule 
!.(txt|swf|js|ico|gif|jpg|png|css|xml)$ index.php 
claro usando el htaccess ya que toda peticion va al index a menos que yo me autoresponda la respuesta que esa funcionalidad sirve para cuando no usas el .htaccess de esta forma, o no tienes el mod_rewrite de apache activado seria bueno habria que ver seria mas como inyector de dependencias

a pero en la function _initload puedo setear cosas con el zend regisrtry o todo ya esta global ??

Última edición por GatorV; 19/05/2009 a las 18:33
  #4 (permalink)  
Antiguo 19/05/2009, 18:34
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: ayuda a comprender la nueva forma del modelo en zendframework 1.8

No, el mod_rewrite es para el router, no para el Bootstrap.

Lo del include_path sirve, pero es más limpio si usas la nueva forma si usas otra nomenclatura para los archivos.

Saludos.
  #5 (permalink)  
Antiguo 28/07/2009, 09:31
 
Fecha de Ingreso: junio-2009
Mensajes: 156
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: ayuda a comprender la nueva forma del modelo en zendframework 1.8

hola, estaba buscando algo sobre el nuevo modelo en zendF. 1.8, y encontre este post .
La duda que tengo es si se puede seguir trabajando el modelo con zend db table Abstract, como antes de los cambios de la version 1.8, ...si es una buena practica, porque la verdad que el nuevo modelo es un poco engorroso con tantas clases...

Saludos.
  #6 (permalink)  
Antiguo 28/07/2009, 09:53
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: ayuda a comprender la nueva forma del modelo en zendframework 1.8

Claro que se puede, es como lo he comentado en muchas otras partes una de las ventajas de Zend Framework, que al ser desacoplado puedes usarlo de muchas formas.

Lo de buena practica o no, depende mucho de tu diseño, la nueva forma de usar un Data Mapper es una forma de diseño pero tu lo puedes obviar y usar la forma que mejor te sirva para tu problema en concreto.

Saludos.
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:52.