Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP ITTEHUACAN...

19
INSTITUTO TECNOLOGICO DE TEHUACAN EQUIPO: - JUAN FRANCISCO JIMENEZ JIMENEZ - EDMUNDO EMMANUEL MONTALVO VALDIVIA Zan PHP -- by MilkZoft INGENIERIA EN SISTEMAS COMPUTACIONALES PROGRAMACIÓN WEB - ZanPHP - FRAMEWORK

Transcript of Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP ITTEHUACAN...

INSTITUTO TECNOLOGICO DE TEHUACAN

EQUIPO:

- JUAN FRANCISCO JIMENEZ JIMENEZ

- EDMUNDO EMMANUEL MONTALVO VALDIVIA

Zan PHP -- by MilkZoft

INGENIERIA EN SISTEMAS COMPUTACIONALES

PROGRAMACIÓN WEB - ZanPHP - FRAMEWORK

INTRODUCCIÓN.

ZanPHP es un framework de desarrollo ágil de aplicaciones Web escritoen PHP5 que utiliza diferentes patrones de diseño y las mejoresprácticas para crear aplicaciones más rápidamente con buena calidaddel código.

Algunas de las ventajas de ZanPHP son:Fácil de instalar y configurar

Fácil de aprender

Usted puede crear casi cualquier tipo de aplicaciones web

Compatible con diferentes plataformas

Orientado a objetos

Utiliza muchos patrones de diseño y las mejores prácticas para producircódigo de mayor calidad

Aplicaciones escalables y fáciles de mantener

Documentación en Inglés y Español

Integración con jQuery y jQuery Mobile, Ajax y otras nuevas tecnologías

Es software libre

Requisitos del servidorPHP 5.1.x o superior

Bases de datos soportadas: MySQL, MySQLi, MsSQL, Oracle, PostgreSQL y SQLite

CréditosZanPHP fue desarrollado por Carlos Santana (CEO deMilkZoft). ZanPHP fue desarrollado en 2009, pero fue hasta julio de2011 que se llevó a la decisión de liberarlo como softwarelibre. Actualmente el desarrollo de ZanPHP es mantenido por el equipode desarrollo y colaboradores de la comunidad MilkZoft. Cuenta con laimplementación de las mejores prácticas para desarrollar aplicacionesmás rápido y con mayor calidad.

INSTALACIÓN.

Para empezar a trabajar con ZanPHP, el primer paso necesario es paradescargarlo. Conseguir ZanPHP es fácil, sólo tiene que descargar el .zipde: https://github.com/MilkZoft/ZanPHP o clone con git ejecutando elcomando:

git clone [email protected]:MilkZoft/ZanPHP.git

El siguiente paso es establecer las constantes de 2 archivos deconfiguración. Estos archivos se encuentran en: / www / config

El primer archivo a modificar es el /www/config/config.example.phpusted debería cambiar o verificar que las siguientes constantes tenganun valor correcto:

[“domain”]: sirve para especificar el dominio que nuestro sitio tendrá.

[“modRewrite”]: alterna la estilización de las URL (verdadero o falso).

[“webURL”]: URL le permite configurar el sitio en general será útil para

cargar imágenes, secuencias de comandos, etc.

[“defaultApplication”]: permite configurar la aplicación web por defecto

[“webSituation”]: alterna el acceso al sitio web (activo o inactivo)

[“webLanguage”]: configurar el idioma predeterminado del sitio web

El segundo archivo para configurar es /www/config/database.example.php con los valores correctos para las siguientesconstantes:“DB_DRIVER”: nos permite especificar el controlador de base de datos autilizar.

“DB_HOST”: nos permite configurar el host donde el servidor de base de datos(normalmente localhost).

“DB_USER”: el usuario se conecte a la base de datos.

“DB_PWD”: contraseña para conectarse a la base de datos.

“DB_DATABASE”: el nombre de la base de datos a la que se conectará.

“DB_PORT”: puerto base de datos.

“DB_PREFIX”: el prefijo nuestras mesas tienen.

Una vez que estos pasos, tenemos ZanPHP listo para trabajar, sólo escuestión de empezar a crear aplicaciones.

Modelo Vista Controlador

ZanPHP implementa uno de los patrones de diseño utilizados en laactualidad por la mayoría de los FRAMEWORKS de desarrollo web. Estemodelo, denominado MVC (Modelo Vista Controlador), implementadocomo HMVC en ZanPHP, significa que, básicamente, el desarrollo sedivide en 3 partes principales: un modelo, una visión y un controlador,solo que el equipo de milkzoft le ha agregado una caracteristica dejerarquia que permite tener varios modelos, varias vistas y varioscontroladores simultáneos para una sola aplicación. A continuación seexplica cada concepto en el MVC.

Modelo

Esta clase contendrá todas las funciones encomendadas a interactuarcon la estrategia de negocio de nuestra aplicación y por lo tanto eltratamiento de los datos, en términos más técnicos, llevará a cabotodos los tratamientos en nuestro identificador de datos de aplicaciones(consultas, inserciones, actualizaciones y borrados). En sí, se refiere nosolo a bases de datos, sino a Web Services o documentos de diversostipos que puedan contener datos o resultados de consultas, y querepresenten informacion relevante para nuestra aplicación.

Vista

Las vistas son responsables de la visualización de datos para el usuario,pero también pueden ser utilizadas para solicitar datos, por supuesto,

esto de acuerdo a lo que se especifique. En el MVC aplicado al desarrolloweb puede ser descrito como el encargado de mostrar datos HTMLincluyendo su correspondiente estilo en CSS o Javascript.

Controlador

Esta clase es el administrador del flujo de la aplicación, es la encargadade recibir solicitudes de los usuarios, identificar, procesar, enviar, llamara los métodos del modelo y devolver datos al usuario a través de unavista.

En ZanPHP el MVC se aplica dentro de cada aplicación, debe crear dosarchivos en la carpeta de la aplicación: controller.application.phpmodel.application.php y también los archivos de vistas deben estardentro de la carpeta "vistas" de cada aplicación y ser nombradasutilizando la siguiente convención: view.myview.php.

Archivos Estructura

www

Este directorio es el que contiene todas las aplicaciones desarrolladascon ZanPHP, además de incluir archivos de la biblioteca, hay diferentestipos de archivos, entre los que destacan: las hojas de estilo, bibliotecasexternas, plantillas, imágenes y los archivos de cada aplicación.

zan

Este directorio es el que contiene todas las aplicaciones desarrolladascon el directorio ZanPHP. La carpeta "zan" es la más importante puescontiene el núcleo ZanPHP, en ella se encuentran los archivos deconfiguración del sitio para desarrollar, así como clases del frameworkimportantes que apoyan la arquitectura misma, las traducciones, así

como todas las funciones (ayudantes) que el marco de trabajo (oframework) ofrece para hacer el trabajo pesado.

Configuración

ZanPHP requiere un poco de configuración para que funcionecorrectamente para ello, tiene que editar 2 archivos en / www / config,estos son: config.php y database.php. (debe renombrarlos quitando laextension: “.example”).

Tenga en cuenta que la configuración se basa en constantes PHP, y deacuerdo con estos valores se establece como el funcionamiento del marcoo framework.

El primer archivo de configuración para analizar es: database.php, unavez que el archivo está abierto se puede ver que esta es la configuraciónnecesaria para conectar con la base de datos para ser utilizados por elsitio. Este archivo nos permite modificar las constantes durante 2 áreasde trabajo, el trabajo local, o trabajar de forma remota.

El segundo archivo de configuración, config.php tendrá todas lasconstantes para el funcionamiento de nuestro sitio, son constantesglobales, señalando que existen algunas constantes importantesconfiguradas para el buen funcionamiento del sitio y el marco detrabajo, estos incluyen:

domain: sirve para especificar el dominio que nuestro sitio tendrá.

modRewrite: alterna la estilización de las URL (verdadero o falso).

webURL: URL le permite configurar el sitio en general será útil para cargarimágenes, secuencias de comandos, etc.

Bases de datos

Gracias a los patrones de diseño implementados por ZanPHP, puedeutilizar más de una base de datos del conductor en las páginas web,esto significa que podemos trabajar en un sitio web bajo MySQL, SQLServer y PostgreSQL.

Para ello, sólo es necesario, modificar el “DB_DRIVER” que es laconstante situada en el archivo: /www/config/database.php.

Aplicaciones

Crear una aplicación con ZanPHP es muy fácil, sólo tiene que crear undirectorio dentro de /applications, el directorio debe tener el nombrede la aplicación en minúsculas. Tenga en cuenta que el nombre deldirectorio que es el mismo con el que se va a acceder a la aplicacióndesde el sitio web.

Otros aspectos a tener en cuenta, es que dentro del directorio de laaplicación 2 archivos deben ser obligatorios, así como un directorio, queson: /controllers/myapplication.php, /models/application.php y/views/myapplication.php.

El contenido de estos archivos y el directorio se explicarán en los temassiguientes.

Controladores

Los controladores son muy importantes en ZanPHP ya que sonindispensables para el uso de MVC. Es importante que cada aplicacióndeba tener un controlador, un modelo y una vista como minimo.

Sin embargo, en este apartado se analizará la estructura que uncontrolador debe tener para su correcto funcionamiento:

class MyApplication_Controller extends ZP_Controller {

public function __construct() {

$this->Templates = $this->core("Templates");

$this->MyApplication_Model = $this->model("MyApplication_Model");

$this->helpers();

$this->application = $this->app("myapplication");

$this->Templates->theme(webTheme);

}

public function index() {

print __("Hi, I'm MyApplication");

}

}

Esta es la estructura básica que cualquier controlador debe tener ycumplir para el correcto funcionamiento del marco.

Vistas

Las vistas son responsabilidad de mostrar o solicitar datos al usuario. Elcontrolador es responsable de cargar la vista con los datos obtenidos porlos modelos. Así es como funciona el patrón de diseño MVC.

Las vistas deben ser nombrados de la siguiente manera: myview.php ydebe ser ubicado en la carpeta /views de cada aplicación.

Otro aspecto importante a mencionar sobre el directorio /views, es quepuede ser creada dentro otra carpeta de /css, /js o /images, donde sepueden colocar hojas de estilo, scripts e imágenes que serán utilizadasúnicamente por la aplicación.

Modelos

Los modelos son una parte fundamental de una aplicación, ya que sonlos encargados de interactuar con la base de datos, el modelo, clasificary organizar los datos.

Al igual que los controladores, los modelos tienen una estructura básicaque debe cumplirse para que funcione correctamente con ZanPHP:

class MyApplication_Model extends ZP_Model {

public function __construct() {

$this->Db = $this->db();

$this->helpers();

$this->table = "mytable";

}

}

Traducciones

ZanPHP soporta un sistema de traducciones fácil de usar, sólo tiene queutilizar una función y un archivo donde se colocan las traducciones.

La función se usa como sigue:

<? php print __("Parte del texto a traducir"); ?>

Para completar el proceso de traducción, se debe añadir la traducciónen el siguiente directorio /www/lib/languages/spanish.php por ejemplo,debe agregar la siguiente manera:

function translation($text) {switch($text) {

case "Some text to translate": return "Algún texto paratraducir"; break;

}return $text;

}

IMPLEMENTACIÓN.1erPaso. Descargar el ZanPHP del repositorio oficial de MilkZoft en Github. Descomprimirlo parautilizarlo y renombrar los archivos, quitando la extension “.example”.

2doPaso. Recordemos que para usarlo en local es necesario tener alguna de las herramientas deservidor en la maquina, como pueden ser WAMP, XAMPP, APPSERVER, etc. E inciar los servicios deApache y MySql.

3erPaso. Como podemos ver ya funciona y le podemos modificar un poco para saber que es lo queejecuta. En este caso al no haber configurado nada llama automaticamente a la aplicacion“default” y ejecuta su funcion “index()”.

4toPaso. Ya hemos creado una nueva aplicacion con carpetas similares para adaptar al HMVC deZanPHP. Ahora tenemos la aplicación “works” y sobre ella podemos trabajar para hacer algo máscompleto.

5toPaso. Hay que aclarar que los datos de la pagina anterior se obtienen de una base de datoscomo la siguiente. Y es el framework, atraves de php el que se encarga de obtener los campos ysus valores para que sean utiles en la aplicación.

6toPaso. Algo importante es que para utilizar una base de datos en ZanPHP deberemosconfigurarla en el archivo “www/config/database.php”, poner por ejemplo el Gestor de base dedatos y su Driver o controlador, en el caso de MySQL es mysqli. El nombre del host, del usuario lacontraseña de phpMyAdmin, el nombre de la base de datos, incluso la opcion de un prefijo debase de datos como sería “zan_” etc.

7moPaso. Las siguientes capturas son parte del codigo de la pagina web mostrada en imagenesanteriores. Se puede observar que el framework cuenta con funciones predeterminadas que seconvierten en un estandar. Asi como variables igualmente ya definidas a lo largo de toda laaplicación. Dentro de sus funcionalidades esta el “paso de parámetros opcionales”, es decir sepuede definir algun valor para cuando no se le envie ese valor. Notese que es la función “render()”la que en realidad crea la pagina en codigo html, ya con un estilo y con los datos de las variables.

8voPaso. Tambien en el controlador se puede especificar parametros opcionales, pero sobre todoen esta parte -la funcion “all”- permite ver las funciones integradas dentro de la clase ‘Db’ delframework, que permiten la comunicación con MySQL , SQL Server, PostgreSQL o casi cualquiergestor de base de datos (ZanPHP aun no soporta todos). En su documentación se especifica cadafunción, pero en este ejemplo las derivaciones de find son similares a muchos tipos de SELECT -from - [where] en Bases de Datos, solo es necesario enviar el nombre de la tabla y un ID, unacondición, un campo, etc. Ya no es necesario formular toda la consulta a no ser que se requieracomo es el caso de findBySQL().

9noPaso. Algo que podria resultar curioso es como se estructura el html final de la pagina, el quehace que se vea, y es k no habiamos especificado las etiquetas <html> , <head> o <body> , puesbien, la view (ejemplo: applications/works/views/works.php) solo crea una parte que agrupa en undiv con la clase “row”, esto para aplicarle algunos estilos con ayuda de Bootstrap, el framework deCSS que esta incorporado en ZanPHP. Incluso se pueden notar algunas clases que estan definidaspara un estilo en Bootstrap como “span 4”. Ademas notese que en las primeras lineas 3 y 4, se usala función de traduccion, que para el caso de que se especifique un idioma como es, en, ch, jp, ru,etc. en la URL, se traduzca automaticamente con apoyo de la libreria getText de PHP: __(“texto atraducir”);

Aqui la pagina cuando se ha seleccionado la opcion Development.

10moPaso. Al ser php con lo que trabaja ZanPHP, permite la función die(var_dump()) que puedeutilizarse como un depurador, a continuacion el ejemplo permite saber lo que regresa la variable$data despues de una consulta sql a nuestra base de datos.

11erPaso. Y por ultimo, una funcionalidad más de este framework, la posibilidad de dividir envarios documentos html nuestra pagina web. Ya habiamos mencionado la vista, y que unaaplicacion puede tener N vistas, pero ademas de las view, ZanPHP reconoce otros archivos connombres estandar: header, footer, right, left.. y en caso de que existan los agrega automatico a

nuestra pagina html. Estos se encuentran en la carpeta themes, en este caso se utilizaron losmismos de la aplicación “default”.

Cuando no tienen un nombre estandar como welcome, nuevo, mipagina, etc. Siempre pueden serllamados con la función render();

Esto es algo de lo observado en el Framework creado por Carlos Zantana, por cierto mexicano. Y alparecer es una simple, sencilla y buena opcion al momento de crear sitios web.