Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

APORTE: ZF Iniciación Rapida

Estas en el tema de APORTE: ZF Iniciación Rapida en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buenas. Como siempre, luego de algun tiempo y de mirar que muchas personas buscan manuales y o documentación sobre ZF en español, me he dado ...
  #1 (permalink)  
Antiguo 23/12/2009, 08:46
Avatar de Snaft_J1  
Fecha de Ingreso: diciembre-2006
Mensajes: 285
Antigüedad: 17 años, 5 meses
Puntos: 8
APORTE: ZF Iniciación Rapida

Buenas.

Como siempre, luego de algun tiempo y de mirar que muchas personas buscan manuales y o documentación sobre ZF en español, me he dado a la tarea de hacer una traducción en lo que mas pueda de la documentación de ZF, lo cierto es que intente con un wiki aqui en foros del web pero no se como crear tal cosa en la seccion wiki asi que hire publicando parte de esa información en post que no sean muy extenson en el foro, el objetivo sería ir generando documentos pdf.


si alguien me puede hechar una mano se le agradeceria.


SJ.
__________________
-= El conocimiento y el saber te hacen un ser libre =-
Ando en busca de conocimiento....
  #2 (permalink)  
Antiguo 23/12/2009, 08:50
Avatar de Snaft_J1  
Fecha de Ingreso: diciembre-2006
Mensajes: 285
Antigüedad: 17 años, 5 meses
Puntos: 8
Introducción ZF & MVC

Zend Framework

ZF es un framework Open Source, entorno para el desarrollo de aplicaciones web orientado a objetos con PHP5. ZF es a menudo llamado "biblioteca de componentes", porque tiene muchos componentes débilmente acoplados que se pueden utilizar más o menos de manera independiente. Pero Zend Framework también proporciona un avanzado Modelo-Vista-Controlador (MVC) que puede utilizarse para implementar o establecer la estructura básica para las aplicaciones. Una lista completa de los componentes de Zend Framework, junto con breves descripciones se puede encontrar en la descripción general de compoentes. Esta guía de inicio rápido le dará a conocer algunos de los componentes más utilizados de ZF, incluyendo Zend_Controller, Zend_Layout, Zend_Config, Zend_Db, Zend_Db_Table, Zend_Registry, junto con algunos asistentes.
Usando estos componentes, construiremos una aplicación sencilla (libro de visitas) en la que haremos uso de base de datos y observaremos resultados en pocos minutos.


Modelo-Vista-Controlador

Entonces, ¿qué es exactamente este patrón MVC del que todo el mundo tanto habla?, y ¿por qué te podría interesar? MVC es mucho más que un acrónimo de tres letras (TLA) que se puede sacar de repente en el momento que crea suene inteligente; sino que se ha convertido en un estándar en el diseño de aplicaciones web modernas. Y por buenas razones. La mayoría de código de la aplicación web cae bajo una de las tres categorías siguientes: presentación, lógica de negocio y Acceso a datos. El modelo del patrón MVC esta separado de preocupaciones. El resultado final es que su código de presentación se puede consolidar en una parte de su aplicación, su lógica de negocio en otra y su código de Accedo a datos en otra parte, Muchos desarrolladores han encontrado que esta bien definida, la separación y organización es indispensable para el mantenimiento de su código, especialmente cuando más de un desarrollador está trabajando en la misma aplicación.
Analicemos un poco este patrón y echemos un vistazo a las piezas individuales:



  • Modelo - Esta es la parte que define la funcionalidad básica de la aplicación detrás de un conjunto de abstracciones. Las rutinas de acceso a datos y algo de lógica de negocio puede ser definido en el modelo.
  • Vista - Define exactamente lo que se presenta al usuario. Normalmente los controladores pasan datos a cada vista para presentarlos en algún formato. Las vistas a menudo también recopilarán datos del usuario. Es aquí donde probablemente encontrara código HTML en sus aplicaciones MVC.
  • Contralor - Manipulan los modelos, decide con que vista serán presentados los datos, basado en la solicitud del usuario y otros factores, pasa los datos que cada vista necesita, o transferir el control a otro controlador por completo. La mayoría de los expertos en MVC recomiendan el mantenimiento de los controladores tan ligeros como sea posible.
Por supuesto, hay más que decir acerca de este modelo crítico, pero esto debería darle suficientes antecedentes para comprender la aplicación Libro de visitas que iremos construyendo.
__________________
-= El conocimiento y el saber te hacen un ser libre =-
Ando en busca de conocimiento....
  #3 (permalink)  
Antiguo 23/12/2009, 13:19
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Respuesta: APORTE: ZF Iniciación Rapida

Cita:
Iniciado por Snaft_J1 Ver Mensaje
[...] me he dado a la tarea de hacer una traducción en lo que mas pueda de la documentación de ZF [...]
No luches solo contra el mundo. Únete a quienes ya han comenzado dicha labor: http://code.google.com/p/zendframework-hispano/

Un saludo
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #4 (permalink)  
Antiguo 23/12/2009, 15:40
Avatar de Snaft_J1  
Fecha de Ingreso: diciembre-2006
Mensajes: 285
Antigüedad: 17 años, 5 meses
Puntos: 8
Respuesta: APORTE: ZF Iniciación Rapida

hombre muchas gracias.

voy a revisarlo ya mismo.
__________________
-= El conocimiento y el saber te hacen un ser libre =-
Ando en busca de conocimiento....
  #5 (permalink)  
Antiguo 24/12/2009, 00:05
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: APORTE: ZF Iniciación Rapida

Por cierto solo comentar que el MVC de Zend, no es un modelo MVC como tal, ya que implementa el 2Step View.

Saludos.
  #6 (permalink)  
Antiguo 24/12/2009, 13:45
Avatar de Snaft_J1  
Fecha de Ingreso: diciembre-2006
Mensajes: 285
Antigüedad: 17 años, 5 meses
Puntos: 8
Crear el proyecto

Cita:
NOTA: Como no me agrada dejar las cosas que inicio sin terminar, culmino esto.

Con el fin de crear el proyecto, primero se debe instalar Zend Framework.

Instalar Zend Framework


La forma más fácil de Zend Framework, junto con una pila completa de PHP es mediante la instalación de Zend Server. Zend Server tiene instaladores nativos para Mac OS X, Windows, Fedora Core, y Ubuntu, así como un paquete de instalación universal compatible con la mayoría de las distribuciones de Linux.

Después de haber instalado Zend Server, los archivos del Framework pueden encontrarse en /Aplicaciones/ZendServer/share/ZendFramework en Mac OSX, C:\Archivos de programa\Zend\ZendServer\share\ZendFramework en Windows, y /usr/local/Zend/share/ZendFramework en Linux. El include_path ya estará configurado para incluir Zend Framework.

Como alternativa, puede descargar la última versión de Zend Framework y extraer el contenido, hacer una nota de dónde lo han hecho.

Si lo desea, puede agregar la ruta de acceso al subdirectorio Library/ en el include_path de su archivo php.ini.

¡Eso es! Zend Framework ya está instalado y listo para usarse.

herramienta línea de comandos (ZF)


En la instalación de Zend Framework esta un subdirectorio bin/, el cual contiene los scripts zf.sh y zf.bat para los usuarios Unix y Windows, respectivamente. Tome nota de la ruta absoluta a este script.

Dondequiera que vea las referencias a zf.sh o zf.bat, Por favor, sustituya con la ruta absoluta al script. En sistemas tipo Unix, es posible que desee utilizar la funcionalidad alias de su shell: alias zf.sh = ruta/al/ZendFramework/bin/zf.sh.

Si tiene problemas para configurar el ZF en la herramienta de línea de comandos, por favor vaya a el manual.

Abre una ventana del terminal (en Windows, Inicio -> Ejecutar y, a continuación, escriba "cmd"). Vaya a un directorio donde quiere empezar un proyecto. A continuación, utilice la ruta de acceso apropiada al script, y ejecute una de las siguientes lineas:
Cita:
# Unix:
Zf.sh% crear proyecto Inicio Rápido

# DOS / Windows:
C:> zf.bat crear proyecto Inicio Rápido

Al ejecutar este comando creará la estructura básica del sitio, incluidos los controladores y vistas iníciales. El árbol tiene el siguiente aspecto:

quickstart
|-- application
| |-- Bootstrap.php
| |-- configs
| | `-- application.ini
| |-- controllers
| | |-- ErrorController.php
| | `-- IndexController.php
| |-- models
| `-- views
| |-- helpers
| `-- scripts
| |-- error
| | `-- error.phtml
| `-- index
| `-- index.phtml
|-- library
|-- public
| `-- index.php
`-- tests
|-- application
| `-- bootstrap.php
|-- library
| `-- bootstrap.php
`-- phpunit.xml

En este punto, si no se ha añadido Zend Framework en su include_path, Le recomendamos que sea copiado o creados enlaces simbólicos en tu directorio Library/. En cualquier caso, usted querrá copiar recursivamente o crear enlaces simbólicos en Library/Zend/ del directorio de instalación de Zend Framework en el directorio Library/ de su proyecto. En sistemas de tipo Unix, sería como una de las siguientes líneas:


Cita:

# Enlace simbólico:
% cd library; ln -s ruta/al/ZendFramework/library/Zend.
# Copia:
% cd library; cp -r ruta/al/ZendFramework/library/Zend.
En los sistemas Windows, puede ser más fácil de hacer desde el Explorador de Windows.

Ahora que el proyecto se ha creado, los artefactos principales para iniciar la comprensión son el sistema de arranque, configuración, los controladores de acción, y las vistas.
__________________
-= El conocimiento y el saber te hacen un ser libre =-
Ando en busca de conocimiento....
  #7 (permalink)  
Antiguo 24/12/2009, 13:57
Avatar de Snaft_J1  
Fecha de Ingreso: diciembre-2006
Mensajes: 285
Antigüedad: 17 años, 5 meses
Puntos: 8
Respuesta: APORTE: ZF Iniciación Rapida

Sistema de Arranque (Bootstrap)

La clase Bootstrap define los recursos y componentes a inicializar. De forma predeterminada, Zend Framework's inicializa los controladores (Front Controller), y utiliza los application/controllers/ como el directorio predeterminado en el cual buscara los controladores de acción (hablaremos más sobre esto más adelante). La clase tiene el siguiente aspecto:

Código PHP:
   //Application/bootstrap.php
    
 
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap 
 

 } 

Como puede ver, no es necesario mucho más para empezar.

Configuración (Configuration)

Mientras que Zend Framework es en sí mismo configurable, a menudo tendrá que configurar la aplicación. La configuración por defecto se coloca en application/configs/application.ini, y contiene algunas directrices básicas para el establecimiento de su entorno PHP (por ejemplo, transformando los reportes de error), lo que indica la ruta a su clase Bootstrap (como nombre de clase), y la ruta de acceso a los controladores acción (action controllers). Se puede visualizar como sigue:

Cita:
; application/configs/application.ini
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"

[staging : production]

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

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


Hay varias cosas acerca de este archivo que debe tener en cuenta. En primer lugar, cuando se utiliza archivos de configuración INI, puede referenciar constantes directamente y ampliarlas;
APPLICATION_PATH en realidad es una constante. Además tenga en cuenta que hay varias secciones definidas: producción, montaje, pruebas y desarrollo (production, staging, testing, and development). Los tres últimos heredan la configuración desde el ambiente de "producción”. Esta es una manera útil de organizar la configuración para asegurarse de que los ajustes apropiados están disponibles en cada etapa de desarrollo de la aplicacion.

Controladores (Action Controllers)

En su aplicación los controladores de acción contienen el flujo de trabajo de la aplicación, y realizan el trabajo de mapear las peticiones apropiadas a los modelos y vistas.

Un controlador de acción debe incluir uno o más métodos que terminan en "Action"; estos métodos pueden entonces ser solicitados a través de la web. Por defecto, las URL en Zend Framework siguen el esquema /controller/action, Donde el "controller" se asigna al nombre del controlador de la acción (menos el sufijo de "controlador") y "action" se asigna a un método de la acción (menos el sufijo de "acción").

Normalmente, siempre se necesita un IndexController, Que es un controlador de reserva y que también sirve a la página principal del sitio, y un ErrorController, Que se utiliza para indicar cosas como errores HTTP 404 (controlador o acción que no fue encuentrado) y errores HTTP 500 (errores de aplicación).

El IndexController por defecto quedaría como se muestra a continuación:

Código PHP:
    // application/controllers/IndexController.php
  
class IndexController extends Zend_Controller_Action
 
{
     public function 
init()
     {
         
/* inicializar aqui los controladores de acción */
     
}
       public function 
indexAction()
     {
         
// cuerpo de la acción
     
}
 } 


Y el ErrorController por defecto quedaría como siguiente:

Código PHP:
   // application/controllers/ErrorController.php
   
class ErrorController extends Zend_Controller_Action
 
{
       public function 
errorAction()
     {
         
$errors $this->_getParam('error_handler');
                  switch (
$errors->type) {
             case 
Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:
             case 
Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:
                          
// 404 error -- controller or action not found
                 
$this->getResponse()->setHttpResponseCode(404);
                 
$this->view->message 'Página no encontrada';
                 break;
             default:
                 
// application error
                 
$this->getResponse()->setHttpResponseCode(500);
                 
$this->view->message 'Error de aplicación';
                 break;
         }
                  
$this->view->exception $errors->exception;
         
$this->view->request   $errors->request;
     }
 } 


observe que:
1.
la clase IndexController no contiene código real.
2.la clase ErrorController hace referencia a una propiedad "view". Que observaremos muy bien en nuestro próximo tema.
__________________
-= El conocimiento y el saber te hacen un ser libre =-
Ando en busca de conocimiento....
  #8 (permalink)  
Antiguo 24/12/2009, 14:06
Avatar de Snaft_J1  
Fecha de Ingreso: diciembre-2006
Mensajes: 285
Antigüedad: 17 años, 5 meses
Puntos: 8
Respuesta: APORTE: ZF Iniciación Rapida

Vistas (Views)


Las vistas en Zend Framework están escritas en PHP puro. Hechale un vistazo a los scripts que se colocan en application/views/scripts/, Donde se categorizan más usando los nombres de controlador. En nuestro caso, tenemos un IndexController y un ErrorController, y así tenemos un número correspondientes subdirectorios para index/ y error/ dentro de nuestro directorio de scripts de vista. Dentro de estos subdirectorios, usted encontrará y crear scripts de vista que correspondan a cada acción de los controladores expuestos, en el caso predeterminado, tenemos así los scripts de vista index/index.phtml y error/error.phtml.

los scripts de vista pueden contener cualquier etiqueta de enmarcado incluso utilizar la etiqueta de apertura <?php código php ?> y la etiqueta de cierre para incrustar código PHP.

El siguiente es el script de vista que se instala por defecto para el index/index.phtml:


Código HTML:
 <!-- application/views/scripts/index/index.phtml -->
 <style>
          a:link,
     a:visited
     {
         color: #0398CA;
     }
       span#zf-name
     {
         color: #91BE3F;
     }
       div#welcome
     {
         color: #FFFFFF;
         background-image: url(http://framework.zend.com/images/bkg_header.jpg);
         width:  600px;
         height: 400px;
         border: 2px solid #444444;
         overflow: hidden;
         text-align: center;
     }
          div#more-information
     {
         background-image: url(http://framework.zend.com/images/bkg_body-bottom.gif);
         height: 100%;
     }
   </style>
 <div id="welcome">
     <h1>Welcome to the <span id="zf-name">Zend Framework!</span><h1 />
     <h3>This is your project's main page<h3 />
     <div id="more-information">
         <p>
             <img src="http://framework.zend.com/images/PoweredBy_ZF_4LightBG.png" />
         </p>
           <p>
             Helpful Links: <br />
             <a href="http://framework.zend.com/">Zend Framework Website</a> |
             <a href="http://framework.zend.com/manual/en/">Zend Framework 
                 Manual</a>
         </p>
     </div>
 </div>
 


El script error/error.phtml es un poco más interesante, ya que utiliza algunos condicionales de PHP:


Código PHP:
 <!-- application/views/scripts/error/error.phtml -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"; 
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd>

   <html xmlns="http://www.w3.org/1999/xhtml"> 
 <head>  
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
   <title>Zend Framework Default Application</title> 
 </head> 
 <body> 
   <h1>An error occurred</h1> 
   <h2><?php echo $this->message ?></h2> 
    <?php if ('development' == $this->env): ?>
      <h3>Exception information:</h3> 
   <p> 
       <b>Message:</b><?php echo $this->exception->getMessage() ?> 
   </p> 
     <h3>Stack trace:</h3> 
   <pre><?php echo $this->exception->getTraceAsString() ?>
   </pre> 
     <h3>Request Parameters:</h3> 
   <pre><?php echo var_export($this->request->getParams(), 1?> 
   </pre> 
   <?php endif ?>
    </body>
Checkpoint


En este punto, usted debería ser capaz de iniciar su ZF. Crear un host virtual en su servidor web, y su documento a raíz de su aplicación en el subdirectorio public/. Asegúrese de que el nombre de su host está en su DNS o hosts y, a continuación, navegue a la misma. Usted debería ver una página de bienvenida.
__________________
-= El conocimiento y el saber te hacen un ser libre =-
Ando en busca de conocimiento....
  #9 (permalink)  
Antiguo 26/12/2009, 19:54
 
Fecha de Ingreso: julio-2009
Mensajes: 11
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: APORTE: ZF Iniciación Rapida

Muchas Gracias por tu aporte, el tuyo es más facíl de entender, que esos manuales que el que esta en esos links, luego ya puedo leerlos, leyendo lo tuyo, lo que esta en el blog de pablo morales, viendo como me organiza el framework el zend studio, viendo la carpeta zend en lib de el core del framework, ahora entiendo algo mas el fw de Zeev y Andi, ah una cosa, sabías que en PHP al usar objetos tu aplicacion es en promedio 11% mas lenta, que con scriplets, esto esta en el libro power programming de Andi Gutmans, osea PHP no es JAVA, ojo con eso, que lo dicen sus creadores.
Saludos amigo.
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 04:29.