Ver Mensaje Individual
  #10 (permalink)  
Antiguo 13/09/2009, 21:18
Avatar de zfStuden
zfStuden
 
Fecha de Ingreso: abril-2009
Mensajes: 109
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Empezando con Zend Framework 1.9.2

debes tener un metodo que se llame asi en el modelo fijate este ejemplo

Código PHP:
class GuestbookController extends Zend_Controller_Action
{
    
/**
     * The index, or landing, action will be concerned with listing the entries 
     * that already exist.
     *
     * Assuming the default route and default router, this action is dispatched 
     * via the following urls:
     * - /guestbook/
     * - /guestbook/index
     *
     * @return void
     */
    
public function indexAction()
    {
        
$guestbook = new Default_Model_Guestbook();
        
$this->view->entries $guestbook->fetchAll();//puff este es el metodo lo sacas del modelo muy importante 
    
}






}

si te fijas
Código PHP:
$guestbook->fetchAll(); 
donde guestbook es el modelo y donde ->fetchAll() es el metodo que lo sacas por un maper o por una clase zend_db_table_abstrac o zend_db_table o lo que sea que se llame, luego de eso te lanzas a la vista osea la carpeta view luego vas a scripts y creas la carpeta del controllador si su controlador se llama indexControllder deberias tener una carpeta que se llame index, entoces
la estructura es esta

-application
-controllers (aca los controladores )
IndexController.php (controlador por lo tanto los controladores tienen acciones, las acciones tienen por nombre nombreaccionAction )
-view (aca las vistas)
-scripts
-index (carpeta del controlador index)
- index.phtml( hola soy una accion y soy la vista de de dicha accion)
- holasoyotraaccion.phtml ( y mi nombre accion en el controlador es holasoyotraaccionAction )
-models(carpetas de modelo)
holasoyunmodelo(en otras palabras represento una tabla de una base de datos y que te parece una de mis funciones es impedir el sql injection)



viendo esta estructura haora te queda cargar el modelo para eso que me imagino debes saber,tambien debes saber los eventos del front controller, metodos o mejor dicho sobre escribir algunos metodos _init como por ejemplo el que sale en el quickstart


Código PHP:
 protected function _initAutoload()
    {
        
$autoloader = new Zend_Application_Module_Autoloader(array(
            
'namespace' => 'Default',// este espacio es default osea depende
 
de que carpeta quieres guardar el modelo por ejemplo supogamos 
una carpeta que se llame tercerosmodelitos entoces cambias el value donde
 dice 
Default por  tercerosmodelitos
            
'basePath'  => dirname(__FILE__),//este se deja igual a menos que estes trabajando por modulos 
        
));
        return 
$autoloader;//esto se queda igual 
    

luego te vas al mapper o mejor dicho modelo o la clase que tienes guardada en la
carpeta models que ojo tambien puedes derivar de zend db table
abstracs y se te acorta mucho el trabajo de mapeo que tambien
simplemente la usas como lo hacen en symfony que para
escribir metodos de consulta abstractos.

ademas es recomendable usar las clases que hereden
de zend_db_table_abstrac o zend_db_table como
clases abstracts solo para consulta, pero claro eso depende del programador....

ok haora te vas al modelo te has fijado que cuando creas un mapper o un modelo

Código PHP:

class Default_Models_Personasnatural extends Zend_Db_Table
/{

/*es algo asi, fijate en la parte que dice default esa parte la pusist 
en la clase del front controller, en el metodo __initautoloa...... 
en la parte de 'namespace'=>"Default", 
osea que esto es una regla para cuando vallas a helpers 
y formularios ojo no se usa el mismo metodo que usaste para 
cargar el modelo para form y helpers es otro.


Por otra parte fijate el lado que dice Models esto se refiere a la carpeta models 
asi que esto tambien se aplica cuando vallas a crear formularios y helpers 
por ejemplo en este caso es la carpeta models, pero si fuera helpers 
seria Helpers porque la carpeta no se llama helper sino Helpers ojo
 con eso "case sensitive en todos lados"  
*/

en el caso de ser un mapper debes ponerlo asi por ejemplo
Código PHP:
class Default_Model_GuestbookMapper{


ojo no es lo mismo un mapper a esto


Código PHP:
class Default_Model_Guestbook{



porque esta te hace los setters y los guetters como lo hace symfony
y la anterior a esa tiene los metodos de guardado,borrado,consulta, edicion y busqueda, lo cierto es que una no puede vivir si la otra

espero que me hayas entendido esta locura lo demas te lo dejo a tu imaginacion