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

principiante, ayuda Zend Framework

Estas en el tema de principiante, ayuda Zend Framework en el foro de Zend en Foros del Web. hola, alguien me puede explicar como funciona zend en modo de un ejemplo? yo he trabajado con plantillas "smarty" y ahora necesito trabajar con zend, ...
  #1 (permalink)  
Antiguo 24/04/2009, 03:03
 
Fecha de Ingreso: abril-2008
Mensajes: 144
Antigüedad: 16 años, 1 mes
Puntos: 1
Pregunta principiante, ayuda Zend Framework

hola, alguien me puede explicar como funciona zend en modo de un ejemplo? yo he trabajado con plantillas "smarty" y ahora necesito trabajar con zend, y no me entero de como funciona.. hay que crear controladores por todo? como se estructura una pagina pongamos.. un index.php con su index.tpl i su hoja.css como seria con zend en esta configuracion de abajo? y como se relaciona? gracias!

App

* application
o controllers
o models
o views
* library
o Zend
* public
o images
o scripts
o styles

gracias amigos!
  #2 (permalink)  
Antiguo 24/04/2009, 09:40
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: principiante, ayuda Zend Framework

La ventaja de Zend es que es un Framework desacoplado, lo que te permite usarlo de muchas formas, inclusive sin usar controladores (sin el patrón MVC) de forma sencilla, ve este ejemplo:
Código php:
Ver original
  1. // Datos de ejemplo
  2. $data = array(
  3.     array(
  4.         'author' => 'Hernando de Soto',
  5.         'title' => 'The Mystery of Capitalism'
  6.     ),
  7.     array(
  8.         'author' => 'Henry Hazlitt',
  9.         'title' => 'Economics in One Lesson'
  10.     ),
  11.     array(
  12.         'author' => 'Milton Friedman',
  13.         'title' => 'Free to Choose'
  14.     )
  15. );
  16.  
  17. // cargamos el componente Zend_View y asignamos datos
  18. Zend_Loader::loadClass('Zend_View');
  19. $view = new Zend_View();
  20. $view->books = $data;
  21.  
  22. // imprimir y renderear el template "booklist.php"
  23. echo $view->render('templates/booklist.php');

El "template" sería lo siguiente:
Código php:
Ver original
  1. <?php if ($this->books) { ?>
  2.     <table>
  3.         <tr>
  4.             <th>Autor</th>
  5.             <th>Titulo</th>
  6.         </tr>
  7.  
  8.         <?php foreach ($this->books as $key => $val): ?>
  9.         <tr>
  10.             <td><?php echo $this->escape($val['author']) ?></td>
  11.             <td><?php echo $this->escape($val['title']) ?></td>
  12.         </tr>
  13.         <?php } ?>
  14.  
  15.     </table>
  16.  
  17. <?php } else { ?>
  18.  
  19.     <p>No hay libros</p>
  20.  
  21. <?php } ?>

Si quieres usar layouts para poder personalizar más el look, ve el componente Zend_Layout.

Saludos.
  #3 (permalink)  
Antiguo 25/04/2009, 04:56
 
Fecha de Ingreso: abril-2008
Mensajes: 144
Antigüedad: 16 años, 1 mes
Puntos: 1
De acuerdo Respuesta: principiante, ayuda Zend Framework

gracias por tu explicacion gator! ahora me estado peleando con mi primera aplicacion, y ya va funcionando, como podria canviar la ruta de acceso de apache, ya que solo me funciona si pongo el index.php en htdocs, y para tener un poco de orden pues me gustaria htdocs/zend por ejemplo para no tener un lio enorme en htdocs, tengo que cambiar algo de apache? uso xampp


y aca un resumen de mi primera aplicacion con zend por si alguien le interessa :)



mi htacces
Código PHP:

      RewriteEngine on
      RewriteRule 
!.(js|ico|gif|jpg|png|css)$ index.php 
mi index.php en htdocs
Código PHP:
<?php
error_reporting
(E_ALL|E_STRICT);
date_default_timezone_set('Europe/London');
set_include_path('.' PATH_SEPARATOR './library'
PATH_SEPARATOR './application/models/'
PATH_SEPARATOR get_include_path());
include 
"library/Zend/Loader.php";
Zend_Loader::loadClass('Zend_Controller_Front');
// setup controller
$frontController Zend_Controller_Front::getInstance();
$frontController->throwExceptions(true);
$frontController->setControllerDirectory('./application/controllers');
// run!
$frontController->dispatch();
mi IndexControllador en htdocs/application/controller
Código PHP:
<?php
class IndexController extends Zend_Controller_Action
{

    function 
init()
    {
    
$this->initView();
    }
    function 
indexAction()
    {
    echo 
"<p> in IndexController::indexAction()</p>";
    }
    
    function 
addAction()
    {
    
$this->view->title="Add New Album";
    
$this->render();
    }
    
    function 
editAction()
    {
    echo 
"<p> in IndexController::editAction()</p>";
    }
    
    function 
deleteAction()
    {
    echo 
"<p> in IndexController::deletAction()</p>";
    }
    
}
mi add.phtml en htdocs/application/views/scripts/index/add.phtml

Código PHP:
<html>
<head>
<title><?php echo $this->escape($this->title); ?></title>
</head>
<body>
<h1><?php echo $this->escape($this->title); ?></h1>
</body>
</html>
  #4 (permalink)  
Antiguo 25/04/2009, 15:39
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: principiante, ayuda Zend Framework

Tienes de dos, una es usar un VirtualHost para usar la carpeta public, u otra es poner el baseURL para cambiar la ruta, yo te recomiendo por limpieza que hagas un VirtualHost en tu Apache.

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 12:46.