Sunteți pe pagina 1din 7

Instalación de Zend FW en win usando Xampp

Ir a Mi PC -> propiedades del sistema -> Opciones avanzadas -> variables de entorno
y buscar Path y agregarle las rutas de la carpeta php de Xampp y donde dejamos el
FM/bin (en este caso todo se instalo en una carpeta c:\web\zend)separado por punto y
coma (;) y se recomienda reiniciar.
Para comprobar la instalación abrir la consola (CMD) y escribir:

zf show version

y debería Mostar nuestra versión de zend instalado.

Por consola también podemos creer un proyecto ubicándonos en la carpeta web


(creada anteriormente) y escribimos:

C:\web zf create proyect blog (este es el nombre de nuestro proyecto)


Otra forma es desde zend estudio el IDE

Nuevo projecto de zend, en este caso instalamos un proyeto en blanco (empty


proyect)
Setear el archivo index.php de la carpeta public, para poder llamar a las librerías de
zend, en este caso como todo esta en una misma carpeta el proyecto y el FW (web)
solo agregamos /../ y nombre de la carpeta.

Para comprobar q nuestra instalacion este OK, crear un host virtual, agregando al
archivo httpd.conf que se encuentra en C:\xampp\apache\conf, las siguientes líneas:

Alias /blog "carpetaProyecto/public"


<Directory "carpetaProyecto/public">
AllowOverride All
Allow from All
</Directory>

Nuestro proyecto quedaria:

Alias /blog "c:/web/blog/public"


<Directory "c:/web/blog/public">
AllowOverride All
Allow from All
</Directory>

Guardar y reiniciar apache.

Ir al navegador y escribir http://localhost/blog/ y deberia Mostar un cuadro con el logo


de Zend.
- Configurar Entorno Desarrollo
Modificar public/.htacces
SetEnv APPLICATION_ENV development

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ blog/index.php [NC,L]

Crear Base de datos


(Vamos a seguir con la instalación de un blog)

- Crear una base en MySQL y ejecutar el siguiente script:

CREATE TABLE IF NOT EXISTS posts (


id int(11) NOT NULL AUTO_INCREMENT,
Titulo varchar(250) NOT NULL,
Descripción text NOT NULL,
PRIMARY KEY (id) )
ENGINE=MyISAM DEFAULT CHARSET=latin1
AUTO_INCREMENT=1 ;

- Crear el modelo de la tabla, por consola escribimos:

zf create db-table.from-database

crea un archive en la carpeta modelo con lo siguiente:

application/models/DbTable/posts.php
<?php
class Application_Model_DbTable_Posts extends
Zend_Db_Table_Abstract
{
protected $_name = 'posts';
}

- Creamos la conexión a la base en la consola escribimos, poniendo los datos de la


misma, nombre, user y pass:

C:\web\blog>zf configure db-adapter


"adapter=Pdo_Mysql&host=localhost&username=blog&password=123&dbname=blog"
production

Luego miramos el archivo application.ini que se encuentra en la carpeta


application/configs/application.ini y vemos de tener lo siguiente:
resources.db.adapter = "Pdo_Mysql"
resources.db.params.host = "localhost"
resources.db.params.username = "blog"
resources.db.params.password = "123"
resources.db.params.dbname = "blog"

esto nos da el acceso a la base.

- Crear controller y acciones en blanco

Desde línea de comandos en carpeta del proyecto

zf create controller Post index


zf create action add Post
zf create action edit Post
zf create action del Post

- Acceder a controller y acciones en blanco

Desde explorador acceder a acciones del controller blog

Index: http://localhost/blog/post/index
Add: http://localhost/blog/post/add
Edit: http://localhost/blog/post/edit
Del: http://localhost/blog/post/del

Nota: dependiendo del xampp instalado hay que tocar algunos archivos, para que
pueda verse en el navegador:

en "xampp\apache\bin"
copiar libmysql_5.0.51a.dll libmysql.dll

en "xampp\php"
copiar libmysql_5.0.51a.dll libmysql.dll

en "xampp\php\ext"
copiar php_mysql_5.0.51a.dll php_mysql.dll
copiar php_mysqli_5.0.51a.dll php_mysqli.dll

Reiniciar xammp

- Crear layout
Layout es la parte de la vista que se repite en todas las páginas. Head,
Estilos, etc…

- Modificar archivo config debajo del bloque production con:

resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"

O Desde linea de comandos:


zf enable layout
Application/layout/script/layout.phtml
<?php
$this->headMeta()->appendHttpEquiv('Content-Type', 'text/html;charset=utf-8');
$this->headTitle()->setSeparator(' - ');
$this->headTitle('Blog');
echo $this->doctype(); ?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<?php echo $this->headMeta(); ?>
<?php echo $this->headTitle(); ?>
</head>
<body>
<div id="content">
<h1><?php echo $this->escape($this->title); ?></h1>
<?php echo $this->layout()->content; ?>
</div>
</body>
</html>

Modificar acción Index

public function indexAction() {


$this->view->title = "Mis Posts";
$this->view->headTitle ( $this->view->title );
$posts = new Application_Model_DbTable_Posts();
$this->view->posts = $posts->fetchAll ();
}

Crear vista Index

views/script/post/Index.phtml
<p><a href="<?php echo $this->url(array('controller'=>'post','action'=>'add'));?>">
Nuevo post</a></p>
<table>
<tr><th>Titulo</th><th>Descripción</th><th>&nbsp;</th>
</tr>
<?php
foreach ( $this->posts as $post ) :
?>
<tr><td><?php echo $this->escape ( $post->Titulo );?></td>
<td><?php echo $this->escape ( $post->Descripcion );?></td>
<td><a href="<?php echo $this->url ( array ('controller' => 'post', 'action' => 'edit',
'id' => $post->id ) );?>">Edit</a>
<a href="<?php echo $this->url ( array ('controller' => 'post', 'action' => 'del', 'id' =>
$post->id ) ); ?>">Del</a></td>
</tr>
<?php endforeach;?>
</table>

S-ar putea să vă placă și