Pautas para el diseño de un proyecto web



Documentos relacionados
Manual de suscripción a fuentes RSS.

FeriaOnline.com C/Llamaquique Nº 4 Tfno: Oviedo mail: info@feriaonline.com Url:

Sistemas de Caché. Para mejorar la velocidad de carga de una web. papers. acens

Tutorial Servicios Web

Sesiones en PHP. Área de Ingeniería Telemática

XAJAX: una librería de AJAX para PHP (parte 1)

IDENTIFICACIÓN DE LA ACTIVIDAD PEDAGÓGICA

AS237 - Dreamweaver CS5

Conceptos Generales en Joomla

ENCUESTAS: DESCRIPCION DEL MODULO ( )

INSTALACIÓN - SERVER MANUAL TÉCNICO INSTALACIÓN SERVER MANUAL TÉCNICO 1

12. Conversión de documentos a PDF

Javascript parte II: AJAX

Configuración Global de Joomla

11/06/2011. Alumno: José Antonio García Andreu Tutor: Jairo Sarrias Guzman

Complejo Deportivo UCA. República Saharaui s/n Puerto Real (Cádiz) Tel Fax

RESOLUCIÓN DE ERRORES EN MOODLE CAMPUS VIRTUAL-BIRTUALA UPV-EHU

HERRAMIENTA DE CONTROL DE PLAGIOS MANUAL DE AYUDA

Visado Electrónico de Recetas Configuración Puestos Cliente Usuarios de Farmacias

NOTIFICACIÓN DE MOVIMIENTOS DE ESTUPEFACIENTES POR PARTE DE LOS LABORATORIOS FARMACÉUTICOS Y ALMACENES MAYORISTAS DE DISTRIBUCIÓN

Problemas comunes en la integración del módulo V.me by Visa en Prestashop

Curso Especialista Técnico Programador Web

INSTALACIÓN DE ORACLE 8i (8.1.7) SOBRE NT

Guía de uso de Moodle para participantes

Squipy v Introducción

MANUAL SIMPLIFICADO PARA LA FIRMA DIGITAL DE CONTRATOS USANDO LA APLICACIÓN DEL INTECO

ATLAS MANUAL DE USUARIO ARBOL ACCESIBLE

Proyecto MAMBRINO XXI: Atención Especializada SELENE v.5.0 Manual de Usuario Enfermería Hospitalización

USANDO SERVLETS EN UN SERVIDOR WEB RESIN

Una plantilla es un modelo que puede servir como base para muchas hojas de cálculo. Puede incluir tanto datos como formatos.

PROCEDIMIENTO DE INSTALACION SOFTWARE ESCRITORIO

Cómo instalar Google Analytics en tu sitio web

Figura 1. Estilo. Nos hemos ayudado de las hojas comunes de estilo.css para lograr un sitio homogéneo en cuento a la presentación.

Preparación del Entorno de Trabajo J OOMLA! LA WEB EN ENTORNOS EDUCATIVOS

Aplicateca. Manual de Usuario: Ilion Factura Electrónica. Espíritu de Servicio

Gestión Documental con Microsoft Office SharePoint Server 2007 (MOSS) Ignacio López - Ingeniero en Informática Software Architect en Alhambra-Eidos

GUÍA PARA LA INSTALACIÓN Y USO DE WORDPRESS BY MASTERHACKS. Guía de instalación y uso de Wordpress Página 1

Manual de Gestion5 SQL y Facturación electrónica

MANUAL DE USO Octubre CLIENTE: Liber Ediciones AUTOR: 2.0 DISEÑO _

IIS.5.0 (Internet Information Services) Instalaciones Interactivas. Master Producción artística

Manual de Usuario del Sistema de control de Turnos

Universidad ORT - Arquitecturas de Software sobre plataforma JEE Web Services (parte 1)

1 MANUAL DE INSTALACIÓN

FRAMEWORK 2 Creación de Servicios Web

PROGRAMA INFORMÁTICO PARA LA CUMPLIMENTACIÓN DE RECETAS EN FORMATO XML VERSIÓN: 1.0

ANEXO 2. COMO IMPRIMIR DESDE ADOBE ACROBAT EL SELLO DIGITAL DE VISADO EN UN DOCUMENTO PDF. Versión 5. Versión 6. Versión 7

Especificación para la documentación del código fuente en PHP de los proyectos de la FDQ.

PROGRAMACIÓN PÁGINAS WEB CON PHP

Guía de instalación de Gesclivet.

Manual de Instrucciones

PROYECTO MIS IMÁGENES,

Manual de Uso Web profesional

Personalización de la apariencia de la revista. Maquetación y plantillas

CURSO DE PHP AVANZADO

all: doctrine: class: sfdoctrinedatabase param: dsn: mysql:host=localhost;dbname= bdd_erhaj username: erhaj password: admin

FECSA TIENDA ONLINE INTERNET SHOP

SISTEMA DE FACTURACIÓN ELECTRÓNICA GRUPO ORIZONIA

Programa de Ayuda HERES

PROCESO GESTIÓN ADMINISTRATIVA INSTRUCTIVO TÉCNICO ALISTAMIENTO SERVIDORES GESTIÓN DOCUMENTAL

ATLAS MANUAL DE USUARIO DEL INSTALADOR INNO SETUP 5 Versión 1.0 UNIDAD DE ARQUITECTURA DE SOFTWARE DE APLICACIONES

UNIVERSIDAD TÉCNICA DEL NORTE FACULTAD DE INGENIERÍA EN CIENCIAS APLICADAS ESCUELA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES

Los balances para la confección de cuentas anuales están definidos con una codificación específica:

Esta extensión está obsoleta a partir de PHP 5.5.0, y será eliminada en el futuro

Parte III: AJAX y REST

Internet Information Server

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib

Manual de usuario del servidor de faxes IP RFax

INYECCIóN DE CóDIGO EN APLICACIONES PHP. Autor: Iñaki Rodriguez (2005)

Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor.

Manual de usuario de Parda Programa de Almacenamiento y Recuperación de Datos Automático

OBJETIVO: Introducción al editor de páginas web Macromedia Dreamweaver.

Tema: GESTIÓN DE SESIONES EN PHP.

INSTALACIÓN DE JOOMLA EN UN SERVIDOR LOCAL

ENVIO SMS A TRAVÉS DE WEB

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

TUTORIAL (TRANSLATE.CLASS)

Cómo instalar fácilmente tu WordPress tras contratar un hosting en Hostalia

OBJETIVOS, CONTENIDOS Y CRITERIOS DE EVALUACIÓN PARA EL PROGRAMA DE REFUERZO INDIVIDUALIZADO DE APRENDIZAJES NO ADQUIRIDOS (SEPTIEMBRE 2015)

Redes y Consultoría al Comercio Exterior. Manual Técnico

Servicios Profesionales Danysoft. Formación en Delphi. Valor añadido Danysoft

Región de Murcia Consejería de Educación, Ciencia e Investigación. Manual Usuario FCT

Copias de Seguridad con SQL Server Realizar una copia de seguridad de Bases de Datos

Manual de usuario de "Asistente Web"

QUÉ ES HOMEBASE? Encontrar Libros

Capítulo 11. Conclusiones y trabajo futuro

SMS PUSH SMS ENCUESTAS INTERNET FAX

Práctica 2 de Microsoft Access

Desarrollo Web Tiendadepaginas / Joomla

10. El entorno de publicación web (Publiweb)

CGCOM Manual VERSIÓN: 1.0. Desarrollado por Net Design Studio SL Plaza Mayor 8 2º Valladolid España Telf.: Manual.

Manual de instalación Actualizador masivo de Stocks y Precios

MANUAL DE USUARIO IMPORTADOR DE FICHERO DE USUARIOS EN EL SERVIDOR DE CENTRO

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

ESCUELA DE ADMINISTRACIÓN

REPORTEC Business Intelligence

Factura electrónica Facturae XML

Guía de integración del módulo de Redsys en Prestashop

Normas para realizar un Blog

Ficha Técnica. Categoría. Contenido del Pack. Sinopsis. Diseño Gráfico. - 1 Manual Teórico - 1 Cuaderno de Ejercicios - 1 CDROM

Plaza Santo Domingo, LERMA (BURGOS) MANUAL IESFÁCIL USUARIO PROFESOR

Transcripción:

Pautas para el diseño de un proyecto web Mayo 2005 Jordi Llonch jordi@laigu.net http://creativecommons.org/licenses/by-sa/2.0/

2 Pautas Estructura del proyecto Separar lógica y diseño: Plantillas Archivos de configuración Idiomas Capa abstracción base de datos Objectos de datos Error handler Documentar código: phpdocumentor Crear PDFs: HTMLDOC, FOP, ClipPDF... XMLHttpRequest y JPSpan

3 Estructura del proyecto (1) Usualmente para el desarrollo de nuestro proyecto nos apoyamos en un framework. En esta estructura la aplicación a desarrollar se encontrará en la carpeta web. Estructura: config archivos de configuración de nuestro proyecto ej: // Paths define ("PATH_ROOT", "/var/www/proj/atlasweb-prj/"); // Url define ("URL_HOST", "/"); define ("URL_ROOT", URL_HOST."Proj/AtlasWeb-prj/"); // Base de datos define ("DB_HOST", "localhost"); define ("DB_USER", ""); define ("DB_PASS", ""); define ("DB_NAME", "Atlas");

4 Estructura del proyecto (2) Estructura: lang lib menu archivos de soporte de multidiomas librerías própias (ej. capa de abstracción a la base de datos) si queremos utilizar librerías no propías podríamos crear dentro de esta carpeta otra con nombre external (ej. Smarty) también podemos poner aquí un error handler propio en caso que se trate de un proyecto con backoffice podemos utilizar algun sistema que nos genere un menú.

5 Estructura del proyecto (3) Estructura: motor podríamos utilizar algún motor que nos genere directamente HTML y algunos scripts que nos automaticen procesos como el de mantenimiento de datos de una tabla (alta, baja, modificación...) notes notas y comentarios del proyecto templates plantillas de cabecera, pies de página, hoja de estilo... (pensando en el backoffice) tmp donde se crearán archivos temporales a esta carpeta se le suelen tener que dar permisos de escritura

6 Estructura del proyecto (4) Estructura: web en esta carpeta desarrollaremos toda la lógica del nuestro proyecto dentro tenemos otra estructura: atlas: es un nombre de ejemplo, puede ser el nombre abreviado de nuestro proyecto img: imagenes que va a necesitar nuestro proyecto lib: librerías no genéricas, exclusivas para el proyecto login: sistema de acceso al backoffice obj-data: clases de abstracción de datos templates: plantillas (para Smarty) templates_c: compilación de las plantillas (Smarty)

7 Separar lógica y diseño: Plantillas Nunca se debe mezclar código PHP y HTML Código mantenible Un diseñador gráfico se puede ocupar del diseño Podemos utilizar dos técnicas: Librería de widgets HTML Plantillas (por ejemplo Smarty Engine)

8 Archivos de configuración Definiremos los parámetros que configuran nuestro proyecto con constantes. Todos nuestros scripts incluirán el archivo de configuración En la configuración definiremos: Paths y URLs Acceso a base de datos El Error Handler a utilizar... // Paths define ("PATH_ROOT", "/var/www/proj/atlasweb-prj/"); // Url define ("URL_HOST", "/"); define ("URL_ROOT", URL_HOST."Proj/AtlasWeb-prj/"); // Base de datos define ("DB_HOST", "localhost"); define ("DB_USER", ""); define ("DB_PASS", ""); define ("DB_NAME", "Atlas");

9 Idiomas Si queremos que nuestro proyecto soporte multidioma podemos definir un array con las traducciones y una función que realice la traducción de conceptos: $GLOBALS["trans"] = array( // General "Adreces"=>"Direcciones", "Adult"=>"Adulto", "Afegir"=>"Añadir", "Afegir Document"=>"Añadir Documento", "Afegir reserva"=>"añadir reserva", "Agència"=>"Agencia", "Agències"=>"Agencias", "Agrupar"=>"Agrupar" ); lang.es.php $lang=$_session["sess_lang"]; if ($lang=="") $lang='ca'; if ($GLOBALS["trans"] == "") include(path_lang.'lang.'.$lang.'.php'); if (!function_exists('tr')) { function tr($str_from) { global $trans; if (!is_array($trans)) return $str_from; return strtr($str_from, $trans); } } idioma.php

10 Capa abstracción base de datos Para el acceso al motor de base de datos es mejor no utilizar directamente las funciones de PHP. De esta forma podríamos migrar nuestra aplicación a otro motor más fácilmente. Existen muchas librerías de abstracción: ADODB PEAR:DB...

11 Objectos de datos Para el acceso a datos crearemos una clase para cada ámbito. De esta forma si nuestro proyecto dispone de una agenda, crearemos la clase agenda en el fichero class.agenda.php. Dentro de la clase de datos pondremos el código SQL. Mediante los métodos a esta clase evitaremos ver código SQL. Los datos los debemos intercanviar en forma de arrays asociativos. Con esta pauta podríamos reutilizar código usando JPSpan...

12 Error handler Utilizaremos nuestra función de proceso de errores para: Mejorar el monitoraje de nuestras aplicación en producción. Mostrar nuestro propio mensaje de error. Avisar al administrador del sistema en caso de errores fatales. Disponer de un registro de errores.

13 Documentar código: phpdocumentor La fórmula más práctica de documentar un proyecto es comentar directamente el código y utilizar alguna herramienta para la creación de la documentació. phpdocumentor: http://phpdoc.org/index.php /** * Conexión a la base de datos * * @package MyPacket * @version 1.3.6 * @author Jordi Llonch <jordi@laigu.net> */ class db_base { /** * Objecte a dades * @access public */ var $db=false; } /** * Añadir fitxa * * @see uni::tractar_datos() * @param string $tabla * @param array $datos Datos array("col1"=>"valor1", * "col2"=>"valor2"...) * @param array $conf Configuración delayed=>true * @return bool 1=Ok */ function afegir($tabla, $datos, $conf="") { }

Crear PDFs: HTMLDOC, FOP, ClipPDF... Para proporcionar a los usuarios documentos que deban ser impresos la mejor opción es generar un PDF dinámicamente. Si el usuario tiene instalado Adobe Acrobat Reader, este se encastará en el navegador. Diversas opciones: HTMLDOC Convierte HTML a PDF (permite algún tag especial). http://www.easysw.com/htmldoc/ FOP Estándar XML Podemos utilizar XSLT para convertir datos XML a FOP y luego utilizar algun renderizador comercial o libre. http://xml.apache.org/fop/ ClipPDF Libreria para la creación de un archivo PDF. 14

15 XMLHttpRequest y JPSpan XMLHttpRequest Es un objecto nativo JavaScript que permite hacer peticiones HTTP des de una página que ya ha sido cargada. Permite hacer Microrequests en respuesta a eventos de usuario en una página web, sin la necesidad de recargar la página. Se pueden implementar nociones de interfície complea de usuario similar a aplicaciones de escritorio. http://jpspan.sourceforge.net/wiki/doku.php?id=javascript:xmlhttprequest JPSpan Provee de unas herramientas para connectar PHP y JavaScript para el intercambio de datos des de una página web ya cargada. JPSpan permite definir clases en PHP y hacer llamadas remotas desde JavaScript. http://jpspan.sourceforge.net/wiki/doku.php