Академический Документы
Профессиональный Документы
Культура Документы
ASESOR INTERNO: ING. JOS GUILLERMO RODRGUEZ VILLAFAA REVISOR: ING. ZULMA G. ALAMOS VILLANUEVA REVISOR: ING. JOS BENIGNO MOLINA CASTRO
CELAYA, GUANAJUATO
AGOSTO 2010
Tabla de contenido INTRODUCCIN ............................................................................................................ 4 1. CAPTULO MARCO DE REFERENCIA .................................................................. 6 1.1. SITUACIN HISTRICA, SOCIAL, POLTICA, ECONMICA Y CULTURAL .......................... 6 1.2. LEMA Y ESCUDO ................................................................................................... 7 1.3. FILOSOFA INSTITUCIONAL ..................................................................................... 8 1.3.1. Principios ..................................................................................................... 8 1.3.2. Creencias .................................................................................................... 9 1.3.3. Cdigo de tica ........................................................................................... 9 1.3.4. Objetivo ..................................................................................................... 10 1.3.5. Misin: ....................................................................................................... 10 1.3.6. Visin ......................................................................................................... 11 1.3.7. Polticas de Calidad ................................................................................... 11 1.3.8. Caracterizacin de la empresa .................................................................. 11 1.4. EL CENTRO DE CMPUTO DEL INSTITUTO TECNOLGICO DE CELAYA ...................... 12 1.4.1. rea de desarrollo de software .................................................................. 13 1.4.2. En forma interna: ....................................................................................... 14 1.4.3. En forma externa: ...................................................................................... 14 1.4.4. Coordinador del rea de desarrollo ........................................................... 15 1.4.5. Analistas y Programadores........................................................................ 15 2. JUSTIFICACIN DEL PROYECTO........................................................................ 17 2.1. 2.2. 2.3. 2.4. 2.5. 2.6. PROGRAMA DE TRABAJO ANUAL(PTA) Y PROGRAMA OPERATIVO ANUAL(POA) ...... 17 OBJETIVOS GENERALES ...................................................................................... 18 OBJETIVOS ESPECFICOS .................................................................................... 18 PROBLEMAS A RESOLVER .................................................................................... 18 ALCANCES ......................................................................................................... 19 LIMITACIONES DEL SISTEMA ................................................................................. 19
3. CAPTULO MARCO TERICO ............................................................................. 20 3.1. APLICACIN WEB ................................................................................................ 20 3.1.1. Antecedentes Web .................................................................................... 20 3.1.2. El Servidor Web ......................................................................................... 20 3.2. SERVIDOR W EB APACHE ..................................................................................... 22 3.2.1. Qu es el Servidor Apache...................................................................... 22 3.2.2. Caractersticas de Apache......................................................................... 23 3.3. POSTGRESQL ..................................................................................................... 23 3.3.1. Qu es PostgreSQL? .............................................................................. 23 3.3.2. Caractersticas de PostgreSQL ................................................................. 24
1
3.4. APACHE TOMCAT ................................................................................................ 25 3.4.1. Qu es Tomcat? ...................................................................................... 25 3.4.2. Dnde puedo descargar Tomcat? ........................................................... 25 3.4.3. Cules son los servlets?,Cules son las pginas JSP? ........................ 25 3.5. IREPORT ......................................................................................................... 26 3.5.1. Qu es iReport? ...................................................................................... 26 3.5.2. Caractersticas de iReport ......................................................................... 27 3.6. JAVASCRIPT (JQUERY Y JQUERY UI) ................................................................... 28 3.6.1. Qu es Jquery? ....................................................................................... 28 3.6.2. Ventajas en usar Jquery ............................................................................ 28 3.7. QU ES JQUERY UI? ........................................................................................ 28 3.7.1. Ventajas en usar JQuery UI ....................................................................... 29 3.8. PHP .................................................................................................................. 29 3.8.1. Qu es PHP? .......................................................................................... 29 3.8.2. Qu se puede hacer con PHP? ............................................................... 30 3.8.3. Ventajas de PHP ....................................................................................... 31 3.8.4. Ventajas adicionales de PHP .................................................................... 31 3.9. SYMFONY........................................................................................................... 33 3.9.1. Symfony en pocas palabras ...................................................................... 33 3.9.2. Caractersticas de Symfony ....................................................................... 34 3.9.3. Entorno de desarrollo y herramientas ........................................................ 35 3.9.4. Quin ha desarrollado Symfony y por qu motivo? ................................. 36 3.9.5. Conceptos bsicos .................................................................................... 38 3.9.6. Programacin Orientada a Objetos (OOP) ................................................ 38 3.9.7. Mtodos mgicos ...................................................................................... 38 3.9.8. PEAR (PHP Extension and Application Repository) .................................. 39 3.9.9. Mapeo de Objetos a Bases de datos (ORM) ............................................. 40 3.9.10. Desarrollo rpido de aplicaciones (RAD) ................................................... 43 3.9.11. YAML ......................................................................................................... 45 3.9.12. Resumen Symfony .................................................................................... 48 3.10. EL PATRN MVC ................................................................................................ 48 3.10.1. Las capas de la arquitectura MVC ............................................................. 49 3.10.2. Programacin simple ................................................................................. 49 3.10.3. Separando la presentacin ........................................................................ 51 3.11. DOCTRINE .......................................................................................................... 54 3.11.1. Qu es Doctrine? .................................................................................... 54 3.11.2. Qu es un ORM? .................................................................................... 54 3.11.3. Informacin Bsica ................................................................................... 55 3.12. Razones para utilizar Symfony ..................................................................... 55 3.13. LINUX DEBIAN .................................................................................................... 57
3.13.1. Qu es Debian? ...................................................................................... 57 4. DESCRIPCIN DE LAS ACTIVIDADES REALIZADAS ......................................... 59 4.1. ANLISIS DEL SISTEMA ........................................................................................ 59 4.1.1. El procedimiento del Programa de Trabajo Anual ..................................... 60 4.1.2. Programa Operacin Anual ....................................................................... 63 4.1.2.1 El procedimiento del Programa Operativo Anual ........................................ 63 4.1.3. Diagrama de caso de uso PTA ................................................................. 65 4.1.4. Diagrama de caso de uso POA ................................................................. 66 4.2. PLANTEAMIENTO DEL PROBLEMA .......................................................................... 66 4.2.1. Anlisis de las herramientas de desarrollo ................................................ 67 4.3. ANLISIS DE REQUERIMIENTOS ............................................................................ 68 4.3.1. Capacitacin para el uso de las herramientas de desarrollo ..................... 69 4.4. ANLISIS DE DISEO Y DESARROLLO DE LA BASE DE DATOS .................................... 69 4.5. DESARROLLO DE LA INTERFAZ DEL USUARIO .......................................................... 72 4.5.1. Validacin del sistema ............................................................................... 74 4.5.2. Prueba del sistema .................................................................................... 74 4.6. DETECCIN Y CORRECCIN DE ERRORES.............................................................. 75 5. CONCLUSIN ........................................................................................................ 76 6. REFERENCIAS DE INTERNET ............................................................................. 78 7. ANEXOS ................................................................................................................. 79
Introduccin
Actualmente es necesario tener un sistema que permita organizar y estructurar la informacin, teniendo efectos favorables para la empresa o institucin que lo realice, simplificar el trabajo diario de los usuarios permitiendo tener un mejor rendimiento y diminucin de fallas al realizarlo, haciendo este de vital importancia, es por este motivo que es necesario que forme parte de una estructura integral de una institucin educativa de excelencia, como es el Instituto tecnolgico de Celaya. Para que una institucin responda a las necesidades e intereses de su entorn, se necesita que desarrolle un proceso de planeacin constante, que permita ofrecer programas educativos pertinentes al sector productivo y con altos estndares de
calidad. En el Instituto Tecnolgico de Celaya se atiene de un proceso de planeacin constante, que permita ofrecer programas educativos pertinentes al sector productivo y con altos estndares de calidad. En el Instituto Tecnolgico de Celaya se atiende un proceso de planeacin estratgica operado cada 6 aos y que tuvo como producto principal el Programa Institucional de Innovacin y Desarrollo (PIID) 2001-2006, y un proceso de planeacin operativo anual ejecutado, cuyo resultado final es el Programa Operativo Anual (POA) y el Programa de Trabajo Anual (PTA). El programa de Trabajo Anual (PTA) tiene como propsito contar con un documento normativo de corto plazo donde se programan las metas de forma anualizada y las actividades se realizan mensualmente. A dicha programacin se le debe dar seguimiento, el cual consiste en adaptar las metas del PIID a las necesidades del tecnolgico, para lograr la meta es necesario crear varias acciones y asignar los departamentitos involucrados en estas. El Programa Operativo Anual (POA) es una herramienta que nos permite convertir los lineamientos generales de la planeacin de las actividades, en objetivos y metas concretas a desarrollar en el corto plazo, as como conocer el nivel de aprovechamiento de los recursos asignados, a fin de ejercer los recursos captados a travs de ingresos propios y los asignados al gasto de operacin de la Institucin, para elevar la calidad en los Servicios Educativos.
El presente proyecto tiene como objetivo crear una aplicacin web la cual permitir la facilidad de captura de los procesos de PTA y POA, a los jefes de departamento y al personal administrativo de planeacin, el cual contara con una interfaz intuitiva.
1.
En materia de instalaciones fsicas y equipamiento de laboratorios y talleres, ha sido notable el paulatino avance hasta llegar a cubrir casi en su totalidad 13 hectreas con aulas, laboratorios instalaciones diversas en un ambiente de hermosas reas verdes.
6
Ahora el Tecnolgico goza de un reconocido prestigio a nivel nacional, por la calidad de enseanza que se imparte, la investigacin y divulgacin del quehacer cientfico y la alta capacidad de su planta de profesores-investigadores. Consciente de los cambios que la comunidad nacional e internacional han generado en el Estado, y tomando como base el estudio Guanajuato Siglo XXI, se ha realizado un nuevo diagnstico del entorno a fin de redefinir las acciones que se deben emprender para una vez ms dar respuesta al compromiso que tiene el Instituto Tecnolgico de Celaya y a travs de ello promover su desarrollo como centro de educacin tecnolgica superior de excelencia.
Est constituido por una Torre Hidrulica (Bola del Agua de Celaya), un engrane color gris, un rayo elctrico color rojo y las siglas de la Institucin ITC en color verde. Para su diseo se tomaron dos aspectos bsicos: 1. El aspecto regional que est representado por la torre hidrulica, conocida en la mayor parte del pas como La bola de Agua de Celaya, tiene como caracterstica principal el haber sido ensamblada mediante la tcnica Antigua del remache. 2. El aspecto institucional esta simbolizado por el engrane y el rayo elctrico, que representa el carcter tcnico del plantel educativo.
1.3.
Filosofa Institucional
El Instituto Tecnolgico de Celaya es una institucin de educacin superior pblica federal, pertenece al sistema Nacional de Institutos Tecnolgicos, realiza docencia, investigacin y vinculacin, como funciones sustantivas, que aseguran la formacin integral de profesionistas a nivel licenciatura y postgrado, con vocacin de servicio y capaces de transformar el entorno, tecnolgica, y cientfica, econmica y socialmente.
1.3.1. Principios
La filosofa educativa del instituto se basa en el artculo 3 constitucional y en la ley General de Educacin. Entender por educacin el proceso de la humanizacin individual y colectiva que conduce a una mejor calidad de vida. La humanizacin consiste en propiciar el desarrollo armnico de las potencialidades fsicas, intelectuales, emocionales y axiolgicas. Para el instituto cada persona es un fin en s misma, es autmata pero al mismo tiempo independiente, es inacabada pero en continuo proceso de desarrollo; es inmanente pero al mismo tiempo busca trascender a lo largo de su vida.
El instituto desea constituirse en una sociedad ms participativa, ms justa, ms equitativa, tolerante e incluyente que propicie el proceso de humanizacin para todos.
1.3.2. Creencias
El instituto cree en la vida, la convivencia y la justicia. En la educacin. En nuestro pas y en los mexicanos. En el futuro que nosotros preparamos. En la colaboracin. En la fortaleza de los vnculos familiares. En nuestra comunidad educativa. En el trabajo en equipo. En nuestras tradiciones populares. En nuestra historia y nuestra cultura como preludio de nuestro futuro; en la conciencia moral, la responsabilidad y la libertad de las personas.
Rendicin de Cuentas: Eficacia y calidad en la gestin de la administracin. Entorno cultural y ecolgico: Respeto, defensa y preservacin del entorno cultural y ecolgico. Generosidad: Actual solidariamente frente a las personas desprotegidas y a quienes padecen pobreza y marginacin. Generosidad: Actual solidariamente frente a las personas desprotegidas y a quienes padecen pobreza y marginacin. Igualdad: Procurar paridad de oportunidades para todos. Respeto: Trato amable y tolerancia para todos. Liderazgo: Promocin y apoyos de todos estos compromisos, observando los principios morales que dan sustento a una sociedad exitosa.
1.3.4. Objetivo
El objetivo del Instituto consiste en llevar a cabo programas de docencia, investigacin y extensin en el contexto de la educacin superior a nivel licenciatura y posgrado, tendientes a alcanzar la excelencia educativa y lograr que el ITC sea un centro de educacin integral confiable a la sociedad y que coadyuve al desarrollo de la comunidad. El quehacer educativo se basa en tres funciones sustantivas: la DOCENCIA como medio para la adquisicin y prctica del conocimiento disciplinario, la INVESTIGACIN como fuente para explorar nuevas explicaciones y formas del dominio de los elementos de la naturaleza y de la generacin de nuevos conocimientos y la EXTENSIN como medio de vinculacin con la realidad. La PLANEACIN como rea de apoyo a las anteriores funciones sustantivas, tiene como objetivo determinar las demandas del medio ambiente de la Institucin y evaluar los desarrollos internos para dar respuesta adecuada a las necesidades percibidas. Finalmente, hay actividades de APOYO A LA DOCENCIA de carcter administrativo cuyo objetivo es proporcionar los requerimientos de operacin que soporten las reas sustantivas del quehacer institucional manteniendo funcionalidad y eficiencia en la organizacin.
1.3.5. Misin:
10
Formar personas ntegras, con amplio sentido crtico y de servicio a la sociedad, capaces de responder de manera efectiva y especfica a las necesidades del entorno, en la generacin y aplicacin del conocimiento.
1.3.6. Visin
Ser reconocidos en la red internacional de educacin tecnolgica superior por la excelencia en programas acadmicos, amplia aceptacin de egresados, slida formacin de alumnos, altos ndices de titulacin y graduacin; por generacin y transformacin del conocimiento, servicios oportunos y sistemas eficientes de administracin y gestin, liderazgo acadmico, tcnico, cientfico, cultural, deportivo, cvico y ecolgico, al servicio de Mxico.
11
1.4.
El Centro de Cmputo es un departamento de servicio y su misin es proporcionar recursos y servicios en materia de informtica al Instituto Tecnolgico de Celaya.
12
Entre las funciones del Centro de Cmputo dentro del ITC se encuentran: Planear, coordinar, controlar y evaluar las actividades de desarrollo de sistemas y servicios de cmputo. Aplicar la estructura orgnica autorizada para el Centro de Cmputo y los procedimientos establecidos. Organizar, coordinar y controlar los servicios de almacenamiento, captura y procesamiento de informacin del instituto. Establecer y mantener actualizados los sistemas de capacitacin, validacin y explotacin de informacin del instituto. Coordinar el anlisis, diseo y programacin de sistemas de los procesos aprobados. Controlar la operacin, el mantenimiento y el buen funcionamiento de los equipos de cmputo. Realizar estudios de factibilidad sobre los equipos que se tienen o se desean adquirir con el objetivo de mantener actualizados en el instituto Disear y mantener actualizados los sistemas de informacin del instituto Establecer y mantener relaciones e intercambios con instituciones que manejan equipos de cmputo afines Coordinar las actividades del departamento con las dems reas de la Subdireccin de Servicios Administrativos Presentar reportes peridicos de las actividades desarrolladas en la
13
El personal integrante del rea de desarrollo debe estar constituida por: Coordinador de rea de desarrollo. Analista de Sistemas. Programadores.
14
15
No as cuando tales sistemas estn orientados a satisfacer las necesidades de organismos privados o particulares, que en cuyo caso sern estos los que propongan la metodologa adecuada en cada aplicacin. El mantenimiento de los sistemas de informacin generados en esta institucin y orientado a particulares, seguir la misma secuencia descrita para su realizacin.
16
2.
Hoy en da las actividades que realizan las computadoras y las aplicaciones con que cuentan son imprescindibles en cualquier organizacin y no solo porque simplifica el trabajo de las personas, si no porque se ahorran recursos, son ms rpidos y los errores son casi nulos.
de
Trabajo
Anual(PTA)
y Programa
Operativo
Para responder a los cambios que se presentan en el ambiente de la institucin, tanto a nivel de usuarios como de las necesidades en las aplicaciones, se ha solicitado realizar una aplicacin web para el proceso PTA y POA. Actualmente existe una aplicacin de escritorio la cual cuenta con la siguiente problemtica. Insegura dado que para el acceso a la informacin se tiene que dejar un puerto abierto. Poco intuitiva en el modo de bsqueda de informacin as como de captura, dificultad en las actualizaciones del sistemas. Interfaz poco amigable para el usuario.
Para su funcionamiento es necesario cumplir con ms de un requisito que es: tener la maquina virtual de java, la cual si no se tiene s debe de descargar de la pgina oficial de java (www.java.com), el tiempo de descarga depender de la conexin de internet, otro requisito es tener la aplicacin en la computadora, si no es as se tiene que descargar. En caso de haber una actualizacin al sistema es necesaria volver a descargar la aplicacin y dependiendo de la tasa de transferencia de la red en horas pico se hace muy lento la descarga de la misma.
17
No forma parte del Sistema Integral de Informacin con el que cuenta el Instituto Tecnolgico de Celaya, ya que ese software fue proporcionado por la Direccin General de Educacin Superior Tecnolgica.
2.2.
Objetivos Generales
Brindar al Instituto Tecnolgico de Celaya una herramienta que permite planear, programar, presupuestar, ejecutar, controlar y reportar las actividades y acciones necesarias para el cumplimiento de los programas de desarrollo, con un enfoque integral.
2.4.
Problemas a resolver
Actualizacin de herramientas de desarrollo. Se reducira el tiempo de respuesta a las solicitudes. Se reducira el tiempo que se tardan en generar los reportes. Se reducira el tiempo que se tarda en capturar la informacin. Se integrado como mdulo al Sistema Integral de Informacin. La interfaz sera mas intuitiva para facilitar su uso. Las bsquedas se realizaran en una forma adecuada y ordenada.
18
2.5. Alcances
Se integrar la aplicacin al sistema integral de informacin. Contara con una interfaz agradable e intuitiva. La accesibilidad de la aplicacin se har por medio de un navegador web. La informacin estar disponible en cualquier momento y desde cualquier lugar. El sistema tendr una buena aceptacin por parte de los usuarios ya que estos sern involucrados en el desarrollo de la aplicacin como concejales en la
creacin de la interfaz. Tendr un mejor control en la seguridad de la informacin, garantizando que la informacin que captura cada usuario sea la correcta . Facilitar el mantenimiento de la aplicacin por su forma de desarrollo. Facilitar la escalabilidad de la aplicacin,por la facilidad de agregar mdulos en el proyecto. Facilitar la obtencin de la informacin por medio de bsquedas ms inteligentes y agiles.
19
3.
20
es transferir el hipertexto, pginas web o simplemente pginas HTML, no importando el tipo de peticin que realice el cliente, siempre devolver un resultado HTML. Este tipo de servidores siempre ser fundamental en el desarrollo de las aplicaciones del lado del servidor (server side applications), ya que se ejecutarn sobre l. En un servidor Web se deben identificar dos partes fundamentales, la parte de servidor de pginas y la otra el servidor de aplicaciones. Diremos que para definir la parte de servidor de pginas, nos referimos a cuando un cliente hace una peticin de una pgina esttica que no requiere el uso de una aplicacin. A diferencia de un servidor de pginas, el de aplicaciones requiere hacer una ejecucin del script relacionado con la peticin, para generar una pgina Web, que ser transmitida al cliente por el servidor de pginas.
CLIENTE
Peticin
Procesamiento?
NO
SI
Servidor de Aplicacin
21
Las aplicaciones Web, tambin cuentan con dos partes, las tecnologas Lado del Servidor (Server-Side) y Lado del Cliente (Client- Side). Las tecnologas del Lado del Servidor son secciones de cdigo dentro de una pgina Web, que al ejecutarse lo hacen sobre el servidor, y solo pueden ser vistas desde el servidor. Est tecnologa proporciona soporte para el acceso a bases de datos, que es muy importante en cualquier aplicacin que implique un proceso. Las tecnologas del Lado del Cliente, son ejecutadas sobre la mquina del cliente dentro de su navegador web que es el encargado de interpretar este cdigo script. Estas dos partes nos dan como resultado una pgina dinmica o bien una aplicacin Web.
administrado conjuntamente por un grupo de voluntarios en todo el mundo, con el uso de Internet y la web para comunicarse, planear y desarrollar el servidor y su documentacin. Estos voluntarios son conocidos como el Grupo Apache. Adems, cientos de usuarios han aportado ideas, cdigo y documentacin para el proyecto. Este texto describe de manera resumida la historia del Grupo Apache, reconociendo su labor y mencionar que cualquiera puede unirse a esta labor. Una de las principales caractersticas que presenta Apache es que funciona en plataformas virtuales muy utilizadas. Al principio, Apache se utilizaba para ser el primer servidor Web basado en Unix, pero esto ya no es verdad. Apache no solo funciona en la mayora (prcticamente en todas) de las versiones de Unix sino que, adems, funciona en Windows 2000/NT/9x y en muchos otros sistemas operativos de escritorio y de tipo servidor como son Amiga OS 3.x y OS/2.
22
23
En 1986 otro equipo dirigido por Michael Stonebraker de Berkeley continu el desarrollo del cdigo de Ingres para crear un sistema de bases de datos objetorelacionales llamado Postgresql. En 1996, debido a un nuevo esfuerzo de cdigo abierto y a la incrementada funcionalidad del software, Postgresql fue renombrado a PostgreSQL, tras un breve tiempo como Postgres95. El proyecto PostgreSQL sigue actualmente un activo proceso de desarrollo a nivel mundial gracias a un equipo de desarrolladores y contribuidores de cdigo abierto. PostgreSQL est ampliamente considerado como el sistema de bases de datos de cdigo abierto ms avanzado del mundo. Posee muchas caractersticas que tradicionalmente slo se podan ver en productos comerciales de alto calibre.
24
API Flexible: La flexibilidad del API de PostgreSQL ha permitido a los vendedores proporcionar soporte al desarrollo fcilmente para el RDBMS PostgreSQL. Estas interfaces incluyen Object Pascal, Python, Perl, PHP, ODBC, Java/JDBC, Ruby, TCL, C/C++, y Pike. Lenguajes Procedurales: PostgreSQL tiene soporte para lenguajes procedurales internos, incluyendo un lenguaje nativo denominado PL/pgSQL. Este lenguaje es comparable al lenguaje procedural de Oracle, PL/SQL. Otra ventaja de PostgreSQL es su habilidad para usar Perl, Python, o TCL como lenguaje procedural embebido. Cliente/Servidor: PostgreSQL usa una arquitectura proceso-por-usuario
cliente/servidor. sta es similar al mtodo del Apache 1.3.x para manejar procesos. Hay un proceso maestro que se ramifica para proporcionar conexiones adicionales para cada cliente que intente conectar a PostgreSQL.
25
no incurren en los gastos generales de la creacin de procesos y la limpieza posterior, a diferencia basada en secuencias de comandos CGI, por ejemplo, perl, etc Desde servlet sitio The Sun : "El Java Servlet API
TM
consonancia simple mecanismo para extender la funcionalidad de un servidor web y para acceder a los sistemas empresariales existentes. Un servlet casi se puede considerar como un applet que se ejecuta en el lado del servidor - sin cara ". "La tecnologa JSP es una extensin de la tecnologa servlet creado para apoyar creacin de pginas HTML y XML. Es ms fcil combinar la plantilla fija o esttica de datos con contenido dinmico." JSP es comparable a otras tecnologas como PHP y ASP, que combinan la programacin y secuencias de comandos con un lenguaje de marcado como HTML. La diferencia clave es el lenguaje de programacin de la opcin.. Por ejemplo, PHP usa una C / C + + / hbrida Java, ASP utiliza VBScript, y JSP utiliza toda la potencia del lenguaje de programacin Java. Ha habido muchas comparaciones de estas tecnologas, y cada uno tiene su lugar en la astucia de desarrolladores de la caja de herramientas.
26
esta tecnologa acceder a las funciones de JasperReports as como tambin ayuda a usuarios capacitados a ahorrar mucho tiempo durante el desarrollo de reportes muy elaborados.
completas para dibujar rectngulos, lneas elipses, campos de texto, etiquetas, graficas, sub-reportes y cdigo de barras. Editor incorporado con acentu de sintaxis para expresiones escritas. Soporte par Unicode y lenguajes non-Latin ( Ruso, Chino, Japons, Coreano, etc.) Navegador para la estructura del documento Compilador, llenador, y exportador de reportes integrados. Soporte para todas las bases de datos accesibles para JDBC. Soporte virtual para todo tipo de fuente de datos. Asistente para crear informes de forma automtica Soporte para subreportes. Caracterstica de respaldo para archivos fuente. Soporte para plantillas de documentos. Soporte para fuentes TrueType Soporte para localizacin. Extensibilidad a travs de plug-ins. Soporte integrado para scriptlets. Soporte para grficas. Manejo de una librera de objetos estndares. (ej, nmero de pginas). Funcionalidades de Arrastrar y soltar. Deshacer/ repetir ilimitados.
27
28
29
Aunque el desarrollo de PHP est centrado en programacin de scripts en ladoservidor, se puede utilizar para muchas otras cosas.
30
productivamente en el menor tiempo posible. Usuarios con experiencia en C y C++ podrn utilizar PHP rpidamente. Otra caracterstica a tener en cuenta seria la conectividad. PHP dispone de una amplia gama de libreras, y agregarle extensiones es muy fcil. Esto le permite al PHP ser utilizado en muchas reas diferentes, tales como encriptado, grficos, XML y otras.
31
utiliza el mismo cdigo base, los scripts pueden ser ejecutados de manera independiente al OS. La sintaxis de PHP es similar a la del C, por esto cualquiera con experiencia en lenguajes del estilo C podr entender rpidamente PHP. Entre los lenguajes del tipo C incluimos al Java y Javascript, de hecho mucha de la funcionalidad del PHP se la debe al C en funciones como fread() o srtlen(), as que muchos programadores se sentirn como en casa. PHP es completamente expandible. Est compuesto de un sistema principal (escrito por Zend), un conjunto de mdulos y una variedad de extensiones de cdigo. Muchas interfaces distintas para cada tipo de servidor. PHP actualmente se puede ejecutar bajo Apache, IIS, AOLServer, Roxen yTHTTPD. Otra alternativa es configurarlo como modulo CGI. Puede interactuar con muchos motores de bases de datos tales como MySQL, MS SQL, Oracle, Informix, PostgreSQL, y otros muchos. Siempre podrs disponer de ODBC para situaciones que lo requieran. Una gran variedad de mdulos cuando un programador PHP necesite una interfaz para una librera en particular, fcilmente podr crear una API para esta. Algunas de las que ya vienen implementadas permiten manejo de grficos, archivos PDF, Flash, Cybercash, calendarios, XML, IMAP, POP, etc. Rapidez. PHP generalmente es utilizado como modulo de Apache, lo que lo hace extremadamente veloz. Esta completamente escrito en C, as que se ejecuta rpidamente utilizando poca memoria. PHP es Open Source, lo cual significa que el usuario no depende de una compaa especfica para arreglar cosas que no funcionan, adems no ests forzado a pagar actualizaciones anuales para tener una versin que funcione.
32
33
34
Los formularios incluyen validacin automatizada y relleno automtico de datos (repopulation), lo que asegura la obtencin de datos correctos y mejora la experiencia de usuario.
Los datos incluyen mecanismos de escape que permiten una mejor proteccin contra los ataques producidos por datos corruptos. La gestin de la cach reduce el ancho de banda utilizado y la carga del servidor. La autenticacin y la gestin de credenciales simplifican la creacin de secciones restringidas y la gestin de la seguridad de usuario. El sistema de enrutamiento y las URL limpias permiten considerar a las direcciones de las pginas como parte de la interfaz, adems de estar optimizadas para los buscadores.
El soporte de e-mail incluido y la gestin de APIs permiten a las aplicaciones web interactuar ms all de los navegadores. Los listados son ms fciles de utilizar debido a la paginacin automatizada, el filtrado y la ordenacin de datos. Los plugins, las factoras (patrn de diseo Factory) y los mixin permiten realizar extensiones a medida de Symfony. Las interacciones con Ajax son muy fciles de implementar mediante los helpers que permiten encapsular los efectos JavaScript compatibles con todos los navegadores en una nica lnea de cdigo.
35
Las herramientas que generan automticamente cdigo han sido diseadas para hacer prototipos de aplicaciones y para crear fcilmente la parte de gestin de las aplicaciones.
El framework de desarrollo de pruebas unitarias y funcionales proporciona las herramientas ideales para el desarrollo basado en pruebas (test-driven development).
La barra de depuracin web simplifica la depuracin de las aplicaciones, ya que muestra toda la informacin que los programadores necesitan sobre la pgina en la que estn trabajando.
La interfaz de lnea de comandos automatiza la instalacin de las aplicaciones entre servidores. Es posible realizar cambios en caliente de la configuracin (sin necesidad de reiniciar el servidor). El completo sistema de log permite a los administradores acceder hasta el ltimo detalle de las actividades que realiza la aplicacin.
36
a bases de datos (conocido como ORM, de object-relational mapping) y en los helpers empleados por Ruby on Rails en sus plantillas. Fabien desarroll originalmente Symfony para utilizarlo en los proyectos de Sensio, ya que disponer de un framework efectivo es la mejor ayuda para el desarrollo eficiente y rpido de las aplicaciones. Adems, el desarrollo web se hace ms intuitivo y las aplicaciones resultantes son ms robustas y ms fciles de mantener. El framework se utiliz por primera vez en el desarrollo de un sitio de comercio electrnico para un vendedor de lencera y posteriormente se utiliz en otros proyectos. Despus de utilizar Symfony en algunos proyectos, Fabien decidi publicarlo bajo una licencia de software libre. Sus razones para liberar el proyecto fueron para donar su trabajo a la comunidad, aprovechar la respuesta de los usuarios, mostrar la experiencia de Sensio y porque considera que es divertido hacerlo. NOTA Por qu lo llamaron Symfony y no CualquierNombreFramework? Porque Fabien quera una nombre corto que tuviera una letra s (de Sensio) y una letra f (de framework), que fuera fcil de recordar y que no estuviera asociado a otra herramienta de desarrollo. Adems, no le gustan las maysculas. Symfony era muy parecido a lo que estaba buscando, aunque no es una palabra correcta en el idioma ingls (la palabra correcta es symphony), y adems estaba libre como nombre de proyecto. La otra alternativa era baguette. Para que Symfony fuera un proyecto de software libre exitoso, deba tener una documentacin amplia y en ingls, para aumentar la incorporacin de usuarios al proyecto. Fabien pidi a su compaero de trabajo Franois Zaninotto, el otro coautor de este libro, que investigara el cdigo fuente del programa y escribiera un libro sobre Symfony. Aunque el proceso fue arduo, cuando el proyecto se lanz pblicamente, la documentacin era suficiente como para atraer a muchos desarrolladores. El resto es historia.
37
Por ejemplo, al mostrar un objeto, PHP busca de forma implcita un mtodo llamado toString(), el cual permite comprobar si se ha creado una visualizacin personalizada. Como se muestra en el siguiente ejemplo. $miObjeto = new miClase(); echo $miObjeto; // Se busca el mtodo mgico echo $miObjeto->__toString(); Symfony utiliza los mtodos mgicos de PHP, por lo que deberas conocer su funcionamiento. La documentacin oficial de PHP tambin explica los mtodos mgicos
(http://www.php.net/manual/es/language.oop5.magic.php).
39
PEAR es el mtodo ms profesional para instalar libreras externas en PHP. Symfony aconseja el uso de PEAR para disponer de una instalacin nica y centralizada que pueda ser utilizada en varios proyectos. Los plugins de Symfony son paquetes de PEAR con una configuracin especial. El propio framework Symfony tambin est disponible como paquete de PEAR. Afortunadamente, no es necesario conocer la sintaxis de PEAR para utilizar Symfony. Lo nico necesario es entender su funcionamiento y tenerlo instalado. Para comprobar si PEAR est instalado en el sistema, se puede escribir lo siguiente en una lnea de comandos: > pear info pear El comando anterior muestra la versin de PEAR instalada en el sistema. El proyecto Symfony dispone de su propio repositorio PEAR, tambin llamado canal. Los canales de PEAR solamente se pueden utilizar a partir de la versin 1.4.0, por lo que es necesario actualizar PEAR si se dispone de una versin anterior. Para actualizar PEAR, se debe ejecutar el siguiente comando: > pear upgrade PEAR
40
Una de las ventajas de utilizar estas capas de abstraccin de objetos/relacional es que evita utilizar una sintaxis especfica de un sistema de bases de datos concreto. Esta capa transforma automticamente las llamadas a los objetos en consultas SQL optimizadas para el sistema gestor de bases de datos que se est utilizando en cada momento. De esta forma, es muy sencillo cambiar a otro sistema de bases de datos completamente diferente en mitad del desarrollo de un proyecto. Estas tcnicas son tiles por ejemplo cuando se debe desarrollar un prototipo rpido de una aplicacin y el cliente aun no ha decidido el sistema de bases de datos que ms le conviene. El prototipo se puede realizar utilizando SQLite y despus se puede cambiar fcilmente a MySQL, PostgreSQL u Oracle cuando el cliente se haya decidido. El cambio se puede realizar modificando solamente una lnea en un archivo de configuracin. La capa de abstraccin utilizada encapsula toda la lgica de los datos. El resto de la aplicacin no tiene que preocuparse por las consultas SQL y el cdigo SQL que se encarga del acceso a la base de datos es fcil de encontrar. Los desarrolladores especializados en la programacin con bases de datos pueden localizar fcilmente el cdigo. Utilizar objetos en vez de registros y clases en vez de tablas tiene otra ventaja: se pueden definir nuevos mtodos de acceso a las tablas. Por ejemplo, si se dispone de una tabla llamada Cliente con 2 campos, Nombre y Apellido, puede que sea necesario acceder directamente al nombre completo (NombreCompleto). Con la programacin orientada a objetos, este problema se resuelve aadiendo un nuevo mtodo de acceso a la clase Cliente de la siguiente forma: public function getNombreCompleto() { return $this->getNombre().' '.$this->getApellido(); }
41
Todas las funciones comunes de acceso a los datos y toda la lgica de negocio relacionada con los datos se puede mantener dentro de ese tipo de objetos. Por ejemplo, la siguiente clase CarritoCompra almacena los productos (que son objetos). Para obtener el precio total de los productos del carrito y as realizar el pago, se puede aadir un mtodo llamado getTotal() de la siguiente forma: public function getTotal() { $total = 0; foreach ($this->getProductos() as $producto) { $total += $producto->getPrecio() * $item->getCantidad(); } return $total; } Y eso es todo. Imagina cuanto te hubiera costado escribir una consulta SQL que hiciera lo mismo. Propel, que tambin es un proyecto de software libre, es una de las mejores capas de abstraccin de objetos/relacional disponibles en PHP 5. Propel est completamente integrado en Symfony.La documentacin de este ORM se encuentra en el sitio web de Propel.(http://propel.phpdb.org/trac/). Se pude usar otros como Doctrine que se ver ms adelante.
42
3.9.10.
Durante mucho tiempo, la programacin de aplicaciones web fue un tarea tediosa y muy lenta. Siguiendo los ciclos habituales de la ingeniera del software (como los propuestos por el Proceso Racional Unificado o Rational Unified Process) el desarrollo de una aplicacin web no puede comenzar hasta que se han establecido por escrito una serie de requisitos, se han creado los diagramas UML (Unified Modeling Language) y se ha producido abundante documentacin sobre el proyecto. Este modelo se vea favorecido por la baja velocidad de desarrollo, la falta de versatilidad de los lenguajes de programacin (antes de ejecutar el programa se debe construir, compilar y reiniciar) y sobre todo por el hecho de que los clientes no estaban dispuestos a adaptarse a otras metodologas. Hoy en da, las empresas reaccionan ms rpidamente y los clientes cambian de opinin constantemente durante el desarrollo de los proyectos. De este modo, los equipos de desarrollo deben adaptarse a esas necesidades y tienen que poder cambiar la estructura de una aplicacin de forma rpida. Afortunadamente, el uso de lenguajes de script como Perl y PHP permiten seguir otras estrategias de programacin, como RAD (desarrollo rpido de aplicaciones) y el desarrollo gil de software. Una de las ideas centrales de esta metodologa es que el desarrollo empieza lo antes posible para que el cliente pueda revisar un prototipo que funciona y pueda indicar el camino a seguir. A partir de ah, la aplicacin se desarrolla de forma iterativa, en la que cada nueva versin incorpora nuevas funcionalidades y se desarrolla en un breve espacio de tiempo. Las consecuencias de estas metodologas para el desarrollador son numerosas. El programador no debe pensar acerca de las versiones futuras al incluir una nueva funcionalidad. Los mtodos utilizados deben ser lo ms sencillos y directos posibles. Estas ideas se resumen en el principio denominado KISS: Haz las cosas sencillas, idiota! (Keep It Simple, Stupid)
43
Cuando se modifican los requisitos o cuando se aade una nueva funcionalidad, normalmente se debe reescribir parte del cdigo existente. Este proceso se llama refactorizacin y sucede a menudo durante el desarrollo de una aplicacin web. El cdigo suele moverse a otros lugares en funcin de su naturaleza. Los bloques de cdigo repetidos se refactorizan en un nico lugar, aplicando el principio DRY: No te repitas (Dont Repeat Yourself). Para asegurar que la aplicacin sigue funcionando correctamente a pesar de los cambios constantes, se necesita una serie de pruebas unitarias que puedan ser automatizadas. Si estn bien escritas, las pruebas unitarias permiten asegurar que nada ha dejado de funcionar despus de haber refactorizado parte del cdigo de la aplicacin. Algunas metodologas de desarrollo de aplicaciones obligan a escribir las pruebas antes que el propio cdigo, lo que se conoce como TDD: desarrollo basado en pruebas (test-driven development). NOTA Existen otros principios y hbitos relacionados con el desarrollo gil de aplicaciones. Una de las metodologas ms efectivas se conoce como XP: programacin extrema (Extreme Programming). La documentacin relacionada con XP puede ensearte mucho sobre el desarrollo rpido y efectivo de las aplicaciones. Una buena forma de empezar con XP son los libros escritos por Kent Beck en la editorial Addison-Wesley. Symfony es la herramienta ideal para el RAD. De hecho, el framework ha sido desarrollado por una empresa que aplica el RAD a sus propios proyectos. Por este motivo, aprender a utilizar Symfony no es como aprender un nuevo lenguaje de programacin, sino que consite en aprender a tomar las decisiones correctas para desarrollar las aplicaciones de forma ms efectiva. El sitio web del proyecto Symfony incluye un tutorial en el que se explica paso a paso el desarrollo de una aplicacin utilizando las tcnicas de desarrollo gil de aplicaciones.
44
La aplicacin se llama Askeet (http://www.symfony-project.org/askeet) y su lectura es muy recomendada para todos aquellos que quieran adentrarse en el desarrollo gil de aplicaciones.
3.9.11.
YAML
Segn el sitio web oficial de YAML (http://www.yaml.org/), YAML es un formato para serializar datos que es fcil de procesar por las mquinas, fcil de leer para las personas y fcil de interactuar con los lenguajes de script. Dicho de otra forma, YAML es un lenguaje muy sencillo que permite describir los datos como en XML, pero con una sintaxis mucho ms sencilla. YAML es un formato especialmente til para describir datos que pueden ser transformados en arrays simples y asociativos, como por ejemplo: $casa = array( 'familia' => array( 'apellido' => 'Garca', 'padres' => array('Antonio', 'Mara'), 'hijos' => array('Jose', 'Manuel', 'Carmen') ), 'direccion' => array( 'numero' => 34, 'calle' => 'Gran Va', 'ciudad' => 'Cualquiera', 'codigopostal' => '12345' )
45
); Este array de PHP se puede crear directamente procesando esta cadena de texto en formato YAML: casa: familia: apellido: Garca padres: - Antonio - Mara hijos: - Jose - Manuel - Carmen direccion: numero: 34 calle: Gran Va ciudad: Cualquiera codigopostal: "12345"
46
YAML utiliza la tabulacin para indicar su estructura, los elementos que forman una secuencia utilizan un guin medio y los pares clave/valor de los array asociativos se separan con dos puntos. YAML tambin dispone de una notacin resumida para describir la misma estructura con menos lneas: los arrays simples se definen con [] y los arrays asociativos se definen con {}. Por tanto, los datos YAML anteriores se pueden escribir de forma abreviada de la siguiente manera: casa: familia: { apellido: Garca, padres: [Antonio, Mara], hijos: [Jose, Manuel, Carmen] } direccion: { numero: 34, direccion: Gran Va, ciudad: Cualquiera, codigopostal: "12345" } YAML es el acrnimo de YAML Aint Markup Language (YAML No es un Lenguaje de Marcado) y se pronuncia yamel. El formato se lleva utilizando desde 2001 y existen utilidades para procesar YAML en una gran variedad de lenguajes de programacin. SUGERENCIA La especificacin completa del formato YAML se puede encontrar en
http://www.yaml.org/. Como se ha visto, YAML es mucho ms rpido de escribir que XML (ya que no hacen falta las etiquetas de cierre y el uso continuo de las comillas) y es mucho ms poderoso que los tradicionales archivos .ini (ya que estos ltimos no soportan la herencia y las estructuras complejas). Por este motivo, Symfony utiliza el formato YAML como el lenguaje preferido para almacenar su configuracin. Este libro contiene muchos archivos YAML, pero como es tan sencillo, probablemente no necesites aprender ms detalles de este formato.
47
3.9.12.
Resumen Symfony
Symfony es un framework para desarrollar aplicaciones web creadas con PHP 5. Aade una nueva capa por encima de PHP y proporciona herramientas que simplifican el desarrollo de las aplicaciones web complejas. Este libro contiene todos los detalles del funcionamiento de Symfony y para entenderlo, solamente es necesario estar familiarizado con los conceptos bsicos de la programacin moderna, sobre todo la programacin orientada a objetos (OOP), el mapeo de objetos a bases de datos (ORM) y el desarrollo rpido de aplicaciones (RAD). El nico requisito tcnico obligatorio es el conocimiento de PHP 5.
48
abstraccin de la lgica relacionada con los datos, haciendo que la vista y las acciones sean independientes de, por ejemplo, el tipo de gestor de bases de datos utilizado por la aplicacin.
3.10.1.
Para poder entender las ventajas de utilizar el patrn MVC, se va a transformar una aplicacin simple realizada con PHP en una aplicacin que sigue la arquitectura MVC. Un buen ejemplo para ilustrar esta explicacin es el de mostrar una lista con las ltimas entradas o artculos de un blog.
3.10.2.
Programacin simple
Utilizando solamente PHP normal y corriente, el script necesario para mostrar los artculos almacenados en una base de datos se muestra en el siguiente listado: Listado 2-1 - Un script simple <?php // Conectar con la base de datos y seleccionarla
49
$conexion = mysql_connect('localhost', 'miusuario', 'micontrasena'); mysql_select_db('blog_db', $conexion); // Ejecutar la consulta SQL $resultado = mysql_query('SELECT fecha, titulo FROM articulo', $conexion); ?> <html> <head> <title>Listado de Artculos</title> </head> <body> <h1>Listado de Artculos</h1> <table> <tr><th>Fecha</th><th>Titulo</th></tr> <?php // Mostrar los resultados con HTML while ($fila = mysql_fetch_array($resultado, MYSQL_ASSOC)) { echo "\t<tr>\n"; printf("\t\t<td> %s </td>\n", $fila['fecha']); printf("\t\t<td> %s </td>\n", $fila['titulo']);
50
echo "\t</tr>\n"; } ?> </table> </body> </html> <?php // Cerrar la conexion mysql_close($conexion); ?> El script anterior es fcil de escribir y rpido de ejecutar, pero muy difcil de mantener y actualizar. Los principales problemas del cdigo anterior son: No existe proteccin frente a errores (qu ocurre si falla la conexin con la base de datos?). El cdigo HTML y el cdigo PHP estn mezclados en el mismo archivo e incluso en algunas partes estn entrelazados. El cdigo solo funciona si la base de datos es MySQL.
3.10.3.
Separando la presentacin
Las llamadas a echo y printf del listado 2-1 dificultan la lectura del cdigo. De hecho, modificar el cdigo HTML del script anterior para mejorar la presentacin es un folln debido a cmo est programado. As que el cdigo va a ser dividido en dos partes. En primer lugar, el cdigo PHP puro con toda la lgica de negocio se incluye en el script del controlador, como se muestra en el listado 2-2.
51
Listado 2-2 - La parte del controlador, en index.php <?php // Conectar con la base de datos y seleccionarla $conexion = mysql_connect('localhost', 'miusuario', 'micontrasena'); mysql_select_db('blog_db', $conexion); // Ejecutar la consulta SQL $resultado = mysql_query('SELECT fecha, titulo FROM articulo', $conexion); // Crear el array de elementos para la capa de la vista $articulos = array(); while ($fila = mysql_fetch_array($resultado, MYSQL_ASSOC)) { $articulos[] = $fila; } // Cerrar la conexin mysql_close($conexion); // Incluir la lgica de la vista require('vista.php'); ?> El cdigo HTML, que contiene cierto cdigo PHP a modo de plantilla, se almacena en el script de la vista, como se muestra en el listado 2-3.
52
Listado 2-3 - La parte de la vista, en vista.php <html> <head> <title>Listado de Artculos</title> </head> <body> <h1>Listado de Artculos</h1> <table> <tr><th>Fecha</th><th>Ttulo</th></tr> <?php foreach ($articulos as $articulo): ?> <tr> <td><?php echo $articulo['fecha'] ?></td> <td><?php echo $articulo['titulo'] ?></td> </tr> <?php endforeach; ?> </table> </body> </html> Una buena regla general para determinar si la parte de la vista est suficientemente limpia de cdigo es que debera contener una cantidad mnima de cdigo PHP, la
53
suficiente como para que un diseador HTML sin conocimientos de PHP pueda entenderla. Las instrucciones ms comunes en la parte de la vista suelen ser echo, if/else, foreach/endforeach y poco ms. Adems, no se deben incluir instrucciones PHP que generen etiquetas HTML. Toda la lgica se ha centralizado en el script del controlador, que solamente contiene cdigo PHP y ningn tipo de HTML. De hecho, y como puedes imaginar, el mismo controlador se puede reutilizar para otros tipos de presentaciones completamente diferentes, como por ejemplo un archivo PDF o una estructura de tipo XML.
La doctrina es un objeto mapeo relacional (ORM) para PHP 5.2.3 + sobre una capa de abstraccin de base de datos de gran alcance (DBAL). Uno de sus principales caractersticas es la posibilidad de escribir consultas de base de datos en un objeto de propiedad orientada dialecto SQL llamada Doctrine (Lenguaje de consulta DQL), inspirado en hiberna HQL. Esto proporciona a los desarrolladores una poderosa alternativa a SQL que mantiene la flexibilidad, sin necesidad de la duplicacin de cdigo innecesario.
3.11.2.
Qu es un ORM?
Mapeo objeto relacional es una tcnica utilizada en los lenguajes de programacin cuando se trata de bases de datos para la traduccin de los tipos de datos incompatibles en bases de datos relacionales. Bsicamente, esto permite que tengamos una base de datos "objeto virtual", que puede ser utilizado desde el lenguaje de programacin. Muchos de los paquetes libres y comerciales que autorizan a esto, pero a veces los desarrolladores optaron por crear uno por su cuenta, ORM
54
3.11.3.
Informacin Bsica
La doctrina es una herramienta para el mapeo objeto-relacional en PHP. Se sienta en la cima de PHP Data Objects (PDO) y se divide en dos capas principales, la DBAL y el ORM. La imagen de abajo muestra cmo las capas de trabajo Doctrina juntos.
Object-Relational Mapping API. El puente entre el modelo relacional y el modelo de objetos / modelo de dominio
Doctrine ORM
Completa base de datos de la abstraccin de la API
PDO
Imagen 3. 3: Funcionamiento de Doctrine.
El DBAL (Capa de abstraccin de base de datos) se complete y se extiende la abstraccin de bases de datos de base y en la independencia que ya estn cubiertos por la PDO. La biblioteca se puede utilizar DBAL independiente, si lo nico que
queremos es una capa de abstraccin de base de datos de gran alcance en la parte superior de la DOP. La capa ORM depende de la DBAL y por lo tanto, cuando se carga el paquete ORM la DBAL ya est incluido.
55
Soporte Symfony sigue una poltica de tipo LTS (long term support), por la que las versiones estables se mantienen durante 3 aos sin cambios pero con una continua correccin de errores. Licencia Symfony se publica bajo licencia MIT, con la que puedes desarrollar aplicaciones web comerciales, gratuitas y/o de software libre. Seguro Symfony permite controlar hasta el ltimo acceso a la informacin e incluye por defecto proteccin contra ataques XSS y CSRF. Cdigo Desde su primera versin Symfony ha sido creado slo para PHP 5, para obtener el mximo rendimiento de PHP y aprovechar todas sus caractersticas. Compromiso Los creadores de Symfony no viven del framework, sino de las aplicaciones que desarrollan con l, por lo que les interesa como aspectos como el rendimiento, la buena documentacin y el soporte muy largo. Documentado Symfony es el framework mejor documentado, ya que ha publicado cinco libros gratuitos de calidad y siempre actualizados. Adems, toda la documentacin est traducida al espaol. Calidad Su cdigo fuente incluye ms de 9.000 pruebas unitarias y funcionales. Internacionalizacin Symfony est traducido a ms de 40 idiomas e incluye todas las herramientas necesarias para que traduzcas fcilmente tus aplicaciones.
56
57
Es un poco como una torre. En la base est el ncleo. Encima se encuentran todas las herramientas bsicas. Despus est todo el software que usted ejecuta en su computadora. En la cima de la torre se encuentra Debian organizando y encajando todo cuidadosamente para que todo el sistema trabaje junto.
58
4. 4.1.
sistema que en la actualidad se necesita con el fin de comenzar a desarrollar los mdulos, as como conocer cules eran las entradas y salidas, formulando una medida viable, escalable y prctica para que estos procesos se lleven de la mejor manera. En esta actividad se llev a cabo el anlisis de requerimientos del sistema, teniendo constantes reuniones con el personal del Departamento de planeacin del ITC entre los que se encuentran la Jefa de este departamento, la Licenciada Gutirrez Moreno, Salvador Perez Juana Imelda
Aguado responsable del POA. En estas reuniones se llevaron varios requerimientos del sistema los cuales son: 1.-El tiempos de desarrollo y terminacin. 2.- Formatos que llevaran el sistema. 3.- Los contenidos que tendr este. Para la observacin del sistema se recibieron diferente documentacin la cual permiti tener un conocimiento claro del continuacin. El proceso de planeacin tiene diferentes etapas las cuales estn en lazada, en este proyecto solo se hizo el anlisis de dos procesos los cuales son: el Programa de trabajo Anual (PTA) y el Programa Operativo Anual (POA) a continuacin se mencionara en qu consiste cada uno de estos y cul es su relacin. El Programa de Trabajo Anual tiene como propsito Contar con un documento normativo de corto plazo donde se programan las metas de forma anualizada y las proceso de planeacin como se muestra a
59
actividades se realizan mensualmente, a dicha programacin debe drsele seguimiento y la evaluacin correspondiente en el cumplimiento de las metas, con la finalidad de elevar la calidad en el Servicio Educativo.
Programacin y Presupuestacin para su revisin. 4. Departamento de Planeacin, Programacin y Presupuestacin.- Recibe, revisa e integra al PTA del plantel. Si procede lo validad e integra, sino procede lo regresa con las observaciones pertinentes de acuerdo a los lineamientos establecidos, para su correccin. 5. Subdirector de Planeacin y Vinculacin. Recibe y analiza el PTA del Instituto Tecnolgico o Centro y prepara su envo a la DGEST. 6. Director del Inst. Tecnolgico o Centro.- Firma el PTA del Instituto Tecnolgico o Centro y lo enva para su revisin y autorizacin a la DGEST. 7. Director del Instituto Tecnolgico o Centro.-Recibe autorizacin del PTA del
Instituto Tecnolgico o Centro.Da instrucciones al Subdirector de Planeacin y Vinculacin para comunicar el documento final y establecer estrategias de cumplimiento, Evaluacin y Seguimiento de las metas del PTA.
60
8. Departamento de Planeacin, Programacin y Presupuestacin analiza el seguimiento y evaluacin. Si procede, realiza una reunin para establecer estrategias para la mejora continua, si no procede, a realizar una reunin para establecer estrategias para el cumplimiento y reforzamiento de las metas con el Director, Subdirectores y Jefes de departamento.
61
El
siguiente
diagrama
muestra
el
procedimiento
anteriormente
descrito.
2
Dar a conocer las normas, lineamientos y el mecanismo de trabajo para la elaboracin del PTA
Departamento de Planeacin, Programacin y Presupuestacin. Recibe, revisa e integra al PTA del plantel.
5
Director del Inst. Tecnolgico. Firma el PTA del Instituto Tecnolgico y lo enva para su revisin y autorizacin a la DGEST
8
Director del Instituto Tecnolgico o Centro.-Recibe autorizacin del PTA del Instituto Tecnolgico o Centro.Da instrucciones al Subdirector de Planeacin y Vinculacin para comunicar el documento final y establecer estrategias de cumplimiento, Evaluacin y Seguimiento de las metas del PTA
7
Si procede, realiza una reunin para establecer estrategias para la mejora continua, si no procede, a realizar una reunin para establecer estrategias para el cumplimiento y reforzamiento de las metas con el Director, Subdirectores y Jefes de departamento
62
63
5. La Subdireccin de Planeacin y Vinculacin con previo acuerdo del Director, convoca a reunin a Directivos y Jefes de Departamento para presentar el POA para su anlisis. 6. El Director firma y enva oficio del POA,solicitando su autorizacin ante la DGEST. 7. El Departamento de planeacin, Programacin y Presupuestacin una vez autorizado el POA, informa el monto autorizado a cada uno de los departamentos.
El director recibe solicitud por parte de la DGEST y da instrucciones al Subdirector de Planeacin y Vinculacin sobre las estrategias para la formulacin del POA en base a las metas del PTA y PIID de la Institucin.
El Subdirector de Planeacin y Vinculacin da instrucciones al jefe del Departamento de Planeacin, Programacin, y Presupuestacin de las estrategias para elaboracin del POA y realiza reunin con directivos y jefes de departamento para dar a conocer las normas, y lineamiento para la formulacin del POA en base a las metas del PTA y PIID de la institucin.
3
La Subdireccin de Planeacin y Vinculacin con previo acuerdo del Director ,convoca a reunin a Directivos y Jefes de Departamento para presentar el POA para su anlisis.
4
Los Directivos y jefes de Departamento determinan las necesidades del rea o departamento de su responsabilidad y elabora el POA en los formatos correspondientes. Someten a revisin con el jefe inmediato superior el POA de su rea o su departamento y recaba su visto bueno. Entregan al jefe del Departamento de Planeacin ,Programacin y Presupuestacin el POA de su rea.
5
El Director firma y enva oficio del POA, solicitando su autorizacin ante la DGEST.
6
La Subdireccin de Planeacin y Vinculacin con previo acuerdo del Director, convoca a reunin a Directivos y Jefes de Departamento para presentar el POA para su anlisis.
7
La Subdireccin de Planeacin y Vinculacin con previo acuerdo del Director, convoca a reunin a Directivos y Jefes de Departamento para presentar el POA para su anlisis.
64
La relacin que tiene el PTA y POA es que el PTA se elabora el plan de trabajo el cual est constituido por las metas que se desean cumplir una vez realizado, en el POA se asignaran acciones para poder llevar a cabo las metas.
AAAAAAAAA
65
Jefes de Departamento
4.2.
Se analizo los problemas diversos de la aplicacin actual los cuales se muestran en la justificacin del proyecto los cuales son los siguientes: Insegura dado que para el acceso a la informacin se tiene que dejar un puerto abierto. Poco intuitiva en el modo de bsqueda de informacin as como de captura, dificultad en las actualizaciones del sistemas. Interfaz poco amigable para el usuario.
66
Para su funcionamiento es necesario cumplir con ms de un requisito que es: tener la maquina virtual de java, la cual si no se tiene s debe de descargar de la pgina oficial de java (www.java.com), el tiempo de descarga depender de la conexin de internet, otro requisito es tener la aplicacin en la computadora, si no es as se tiene que descargar. En caso de haber una actualizacin tambin es necesaria volver a descargar la aplicacin No forma parte del Sistema Integral de Informacin.
67
Puesto que la aplicacin se propuso para trabajar en un entorno Web, debido a ello era necesario contar con un servidor, se opt por utilizar Apache puesto que es robusto, potente, disponible en todas las plataformas, gratuito y con disponibilidad de su cdigo fuente, ofreciendo por mucho mejores ventajas que sus rivales como IIS u otros, adems de que tambin es un estndar de desarrollo para el SII. Para Sistema Operativo, solo se contaba con dos opciones puesto que las mquinas que utilizaramos solo soportaban Microsoft Windows y GNU/Linux. Se opt por seleccionar el uso de GNU/Linux por contar con ms seguridad, menor concurrencia en la aparicin de virus, rapidez que proporciona a PHP, etc. Se utiliz Symfony es un framework para la creacin de aplicaciones PHP y la forma ms sencilla de aumentar la productividad y calidad esta. Symfony ha sido probado con xito en algunos de los sitios web ms grandes del mundo. Las ventajas que se puede observar a primera vista es que este framework permite separar la lgica de negocio, la lgica de servidor y la presentacin de la aplicacin web. Proporciona varias herramientas y clases encaminadas a reducir el tiempo de desarrollo de una aplicacin web compleja. Adems, automatiza las tareas ms comunes, permitiendo al desarrollador dedicarse por completo a los aspectos especficos de cada aplicacin. El resultado de todas estas ventajas es que no se debe reinventar la rueda cada vez que se crea una nueva aplicacin web. Para mejorar la interaccin de la interfaz se opto por utilizar Jquery UI, el cual permitir tener una interfaz amigable para los usuarios finales.
4.4.
Al ser est un mdulo que se incorporar al Sistema Integral de Informacin (SII), ya se cuenta con parte de la estructura de la base de datos para la elaboracin del PTA y POA, sin embargo an haba que agregarle algunos campos requeridos para completar la estructura. A continuacin se presentar el conjunto de tablas previamente existentes, ms adelante se mostrar a detalle la estructura de cada una de ellas y cmo se relacionaron con las nuevas tablas as como tambin se har mencin de los campos y tablas nuevos.
69
Para ver el diccionario de la base de datos ir al Anexo A Tablas que se Modificaron. Tabla Insumo_accion_departamento ver Tabla 4.1
Tabla 4. 1: Insumo_accion_departamento.
70
Tipo Integer
Tabla 4. 2: Accion_departamento.
Tipo Numeric(9,2)
Tabla 4. 3: insumo
71
Tabla 4. 4: APOA_insumo_accion_departamento
4.5.
Antes de iniciar la programacin o diseo de interfaces, se defini cmo se realizara el acceso, tomando en cuenta que existe el sistema integral de informacin, permitiendo un acceso a las personas que elaboran en el ITC. La interfaz de acceso que se
muestra a continuacin es solo una validacin de usuario y contrasea los cuales se asignan al ingresar al ITC.
72
Una vez que se ha entrado al SII se pueden observar una serie de opciones, dependiendo del usuario que entre. En la figura siguiente se muestra un ejemplo del men para un usuario, esto solo con el fin de dar una idea clara de donde se encontrar ubicada la liga para entrar al sistema de PTA_POA.
Para el desarrollo de la interfaz se tomaron en cuenta las necesidades de la PTA y POA, los cuales tienen como objetivo de ser intuitiva y a la visin de los usuarios agradable. La interfaz consta de un men el cual tendr diferentes opciones, dependiendo del tipo de usuario que quiera acceder.
73
Los colores de la interfaz fueron seleccionados con el objetivo que fueran un medio de trabajo agradable al usuario.
Verificar que la informacin que se mostrara fuera la correcta as como la captura de esta. Seguridad o Symfony ya tiene contemplado los siguientes ataques: Inyeccin de sql
74
Cross-site scripting (XSS) es un tipo de inseguridad informtica o agujero de seguridad basado en la explotacin de vulnerabilidades del sistema de validacin de HTML incrustado
CSRF (del ingls Cross-site request forgery o falsificacin de peticin en sitios cruzados) es un tipo de exploit malicioso de un sitio web en el que comandos no autorizados son transmitidos por un usuario en el cual el sitio web confa. Esta vulnerabilidad es conocida tambin por otros nombres como XSRF, enlace hostil, ataque de un click, cabalgamiento de sesin, y ataque automtico.
Despus se realizaron iteraciones con el sistema, tratando de emular el uso que se le dara. Las iteraciones se realizaron cinco veces por cada mdulo existente. En base a los resultados arrojados por estos dos puntos anteriores, se observaron los valores de prueba y se decidi modificar el cdigo y nuevamente validar y probar los puntos ms dbiles. Este proceso result recursivo por un tiempo pues se realizaron muchas pruebas y correcciones, puesto que el tiempo con el que se contaba, reduca considerablemente los tiempos contemplados para otras actividades. Nota: las validaciones se hicieron localmente, cuando se integro en el sistema del Instituto Tecnologico de Celaya se realizaron las mismas pruebas para ver el funcionamiento adecuado en lnea.
75
5.
Conclusin
Durante mi estancia en las residencias profesionales, puse en prctica gran parte de mis conocimientos que adquir en el Tecnolgico de Celaya as como las habilidades de autodidacta para el manejo de un framework Symfony. El desarrollo de la aplicacin en Web fue un proceso de dedicacin y esfuerzo para su elaboracin, permitiendo tener un panorama ms amplio de las herramientas que actualmente se usan en un habiente laboral, haciendo este un constante actualizacin en conocimiento. Tambin pude observar mediante la prctica, que el desarrollo de sistemas no es solo programar, sino que es toda una metodologa que se debe seguir para tener resultados favorables, esto es desde el anlisis pertinente, as como el diseo e documentacin, y pruebas del mismo. Como nota. Despus de terminar este proyecto, me siento ms seguro de m, ya que esto me va a ayudar en mi vida profesional que apenas comienza.
6. Inconvenientes o problemas
En el sistema del PTA y POA, est funcionando de acuerdo a las expectativas que se optaron que el sistema tuviera, aunque estos estn en constante cambio debido a las nuevas solicitudes que enva la DGEST para la captura del PTA y POA, o a formas ms sencillas que se encuentren para facilitar el llenado de los mismos. Otro inconveniente es que es un sistema que puede cambiar cada seis aos con la llegada de un nuevo presidente de la repblica, ya que ste asigna metas que deben cumplir en su periodo, o cambiar el mtodo de asignacin de las mismas.
76
77
6.
Referencias de Internet
Manual y Referencia de PHP. http://www.php.net (junio 2009) Manual y Referencia de Apache. http://www.apache.org/ (junio 2009) Manual y Referencia de PostgreSQL. http://www.postgresql.org/ (junio 2009) Manual y Referencia de Symfony http://www.symfony-project.org/doc/1_4/ (junio 2009) Manual y Referencia de Doctrine http://www.doctrine-project.org/projects/orm(junio 2009) Manual y referencia de apache Tomcat http://tomcat.apache.org/ (junio 2009) Manual y referencia de IReport http://jasperforge.org/plugins/mwiki/index.php/Ireport (junio 2009) Manual y referencia de Debian http://www.debian.org/index.es.html( junio 2009)
78
7.
Anexos
Anexo A. Diccionario de la Base de datos Tabla: public.accion Columnas Nombre Tipo Not Null id_accion Integer Not Null id_meta_institucional Integer Not Null id_institucion Integer Not Null anio numeric(4,0) Not Null accion cantidad_periodo1 cantidad_periodo2 Descripcin Conceptos ms especficos dentro de una actividad que facilitan el establecimiento de metas y sus unidades de medida. Varchar Integer Integer Yes Yes Yes Yes Unique P/K Def Val
Tabla: public.accion_departamento Columnas Nombre Tipo Not Null id_departamento Integer Not Unique P/K Def Val
79
Null id_accion Integer Not Null id_meta_institucional Integer Not Null id_institucion Integer Not Null anio numeric(4,0) Not Null Descripcin
Yes
Yes
Yes
Yes
Yes
Son las acciones que se le asigna a cada departamento la cual permitir cumplir las metas
Tabla: public.apoa_insumo_accion_departamento Columnas Nombre Tipo Not Null id_departamento Integer Not Null id_accion Integer Not Null id_meta_institucional Integer Not Null id_institucion Integer Not Null anio numeric(4,0) Not Null id_insumo Integer Not Null Yes Yes Yes Yes Yes Yes Unique P/K Def Val
80
Integer id_fuente_ingreso_capitulo cantidad_periodo1 precio_unitario cantidad_periodo2 justificacion Descripcin Ante proyecto planeacin anual operativo anual Integer numeric(9,2) Integer Varchar
Tabla: public.calendario_ejecucion Columnas Nombre Tipo Not Null id_mes id_meta_institucional id_institucion anio id_meta_nivel_jerarquico Descripcin Tiempo que duro en realizar una meta Integer Integer Integer numeric(4,0) Integer Not Null Not Null Not Null Not Null Not Null Unique P/K Yes Yes Yes Yes Yes Def Val
Def Val
dsc_capitulo Descripcin
varchar(100)
Tabla: public.concepto Columnas Nombre id_concepto Tipo integer Not Null Unique P/K Not Yes Null Yes Def Val
Tabla: public.departamento Columnas Nombre Tipo integer id_departamento departamento varchar(100) Descripcin Nombre del departamento Not Null Unique P/K Not Yes Null Yes Def Val
Tabla: public.departamento_institucion Columnas Nombre id_institucion Tipo integer Not Null Not Def Val Unique P/K
82
id_departamento Descripcin
integer
Yes Yes
Tabla: public.departamento_proceso_clave Columnas Nombre id_proceso_clave id_departamento Descripcin En lace de las tablas de proceso y departamento Tipo integer integer Not Null Def Val Unique P/K
Tabla: public.estado Columnas Nombre id_estado estado Descripcin Estados del pas Tipo integer char(70) Not Null Not Null Def Val Unique P/K Yes Yes
Tabla: public.estados_revisiones Columnas Nombre Tipo integer id_estado_revision Not Null Unique P/K Not Yes Null Yes Def Val
estado_revision
83
Tabla: public.estructura_programatica Columnas Nombre Tipo Not Null Unique P/K Not Yes Null Yes Def Val
id_estructura_programatica integer grupo_funcional char(5) funcion char(5) subfuncion char(5) actividad_institucional char(5) programa_prioritario char(5) Descripcin Estructura del programa a seguir
Tabla: public.fuente_ingreso Columnas Nombre Tipo integer id_fuente_ingreso fuente_ingreso varchar(50) Descripcin Tipo de ingreso que recibe el tecnolgico Not Null Unique P/K Not Yes Null Yes Def Val
84
Tabla: public.fuente_ingreso_capitulo Columnas Not Null Unique P/K id_capitulo Not integer Null id_fuente_ingreso Not integer Null Not Yes id_fuente_ingreso_capitulo integer Null Yes Nombre Tipo Def Val
Tabla: public.indicador Columnas Nombre id_indicador indicador Descripcin Tipo integer varchar Not Null Unique P/K Not Yes Null Yes Def Val
Tabla: public.institucion Columnas Nombre id_institucion Tipo integer Not Null Unique P/K Not Yes Null Yes Def Val
85
Not Null
Tabla: public.insumo Columnas Nombre id_insumo id_unidad id_partida insumo precio_actual id_institucion Descripcin Nombre de los componentes, artculos, etc. Tipo integer integer integer varchar(200) numeric(15,2) integer Not Null Unique P/K Not Null Yes Def Val
Not Null
Yes
Tabla: public.insumo_accion_departamento Columnas Nombre id_departamento id_accion id_meta_institucional id_institucion Tipo integer integer integer integer Not Null Not Null Not Null Not Null Not Null Def Val Unique P/K Yes Yes Yes Yes
86
anio id_insumo id_fuente_ingreso_capitulo cantidad_periodo1 precio_unitario cantidad_periodo2 justificacion apoa_insumo Descripcin: Descripcin
Tabla: public.mes Columnas Nombre id_mes mes Descripcin Id Meses y nombre de meses Tipo integer varchar(50) Not Null Not Null Def Val Unique P/K Yes Yes
Tabla: public.meta_institucional Columnas Nombre Tipo integer id_meta_institucional Not Null Unique P/K Not Yes Null Yes Def Val
id_meta_piid id_indicador
integer integer
87
Tabla: public.meta_nivel_jerarquico Columnas Nombre id_meta_institucional id_institucion anio meta_nivel_jerarquico id_meta_nivel_jerarquico Descripcin Meta del nivel jerrquico Tipo integer integer numeric(4,0) varchar integer Not Null Not Null Not Null Not Null Not Null Def Val Unique P/K Yes Yes Yes
Yes
Tabla: public.meta_piid
Columnas Nombre id_meta_piid Tipo integer Not Null Not Null Def Val Unique Yes P/K Yes
varchar char(5)
88
Tabla: public.meta_proceso_clave Columnas Nombre id_meta_institucional id_proceso_clave Descripcin Tabla que liga la meta con proceso Tipo integer integer Not Null Not Null Not Null Def Val Unique P/K Yes Yes
Tabla: public.monto Columnas Nombre monto Descripcin (none) Tipo numeric Not Null Def Val Unique P/K
Tabla: public.partida Columnas Nombre id_partida id_concepto partida dsc_partida nombre Descripcin (none) Tipo integer integer char(4) varchar varchar(200) Not Null Unique P/K Not Yes Null Yes Def Val
89
Tabla: public.partida_departamento Columnas Nombre id_departamento id_partida Descripcin (none) Tipo integer integer Not Null Not Null Not Null Def Val Unique P/K Yes Yes
Tabla: public.periodo_captura Columnas Nombre Not Null Unique P/K id_periodo_captura Not Yes integer Null Yes Descripcin: anio Descripcin: fecha_inicio Descripcin: fecha_fin Descripcin: estatus Descripcin: Descripcin Se define el periodo de captura tanto del pta como del poa. Tipo Def Val
Serial para la llave primaria Not integer Null Ao de captura date Fecha de inicio de captuta tanto PTA como POA. date Fecha fin de captuta tanto PTA como POA. Not integer Null Estatus del periodo, 1 es el periodo que se est capturando actualmente.
Tabla: public.periodo_seguimiento
90
Columnas Nombre Tipo integer id_periodo_seguimiento Not Null Unique P/K Not Yes Null Yes Def Val
varchar(50) numeric(4,0)
Tabla: public.personal Columnas Nombre rfc id_puesto id_institucion id_departamento nombre apellidos id_personal password blocked super_user email Descripcin (none) Tipo varchar(13) integer integer integer varchar(70) varchar(70) integer varchar(254) integer smallint varchar(100) Not Null Unique P/K Not Yes Null Def Val
Not Null
Yes Yes
91
Nombre id_proceso_clave
Tipo integer
Def Val
Tabla: public.proceso_estrategico Columnas Nombre id_proceso_estrategico Tipo integer Not Null Unique P/K Not Yes Null Yes Def Val
Tabla: public.programa_trabajo_anual Columnas Nombre id_meta_institucional id_institucion anio Tipo integer integer numeric(4,0) Not Null Not Null Not Null Not Null Def Val Unique P/K Yes Yes Yes
92
id_periodo_seguimiento id_meta_institucional_previa id_institucion_previa anio_previa porcentaje_programado cantidad meta_institucional_adaptada Descripcin Programa anual de trabajo
Tabla: public.puesto Columnas Nombre id_puesto Tipo integer Not Null Unique P/K Not Yes Null Yes Def Val
id_puesto_jefe_inmediato integer puesto varchar id_tipo_puesto integer Descripcin: Identificador del tipo de puesto. puesto_abreviado varchar Descripcin: Descripcin abreviada del puesto. puesto_firma varchar Descripcin: Descripcin del puesto como aparecer en la firma, esto en los formatos del pta y poa.
Tabla: public.puesto_meta_nivel_jerarquico Columnas Nombre id_puesto id_meta_institucional Tipo integer integer Not Null Not Null Not Def Val Unique P/K Yes
93
Tabla: public.revisiones_metas Columnas Nombre id_revisiones Tipo integer Not Null Unique P/K Not Yes Null Yes Def Val
ano id_revision_congruencia id_revision_dir_area id_meta_institucional id_institucion anio fecha_revision_director_area fecha_autorizacion_congruencia observaciones varchar(500) Descripcin Revisiones meta numeric(4,0) integer integer integer integer numeric(4,0) date date
Tabla: public.seguimiento_pta Columnas Nombre Tipo Not Null Def Val Unique P/K
94
numeric(3,2)
Tabla: public.seguimiento_revision Columnas Nombre id_revision Tipo integer Not Null Unique P/K Not Yes Null Yes Def Val
ano id_revision_congruencia id_estado_revision id_institucion id_revision_dir_area fecha_revision_congruencia fecha_revision_dir_area observaciones_congruencia entregado fecha_entrega observacion_dir_area Descripcin Seguimiento de revisin
numeric(4,0) integer integer integer integer date date varchar boolean date varchar(1024)
Tabla: public.tipo_institucion Columnas Nombre Tipo integer id_tipo_institucion tipo_institucion varchar(100) Not Null Unique P/K Not Yes Null Yes Def Val
95
Tabla: public.tipo_puesto Columnas Nombre id_tipo_puesto Tipo integer Not Null Unique P/K Not Yes Null Yes Def Val
Identificador del tipo de puesto. Descripcin: tipo_puesto Not Null Descripcin del tipo de puesto. varchar
Tabla: public.unidad Columnas Nombre id_unidad unidad Descripcin Unidades Tipo integer varchar(50) Not Null Not Null Def Val Unique P/K Yes Yes
Tabla: public.unidad_medida Columnas Nombre Tipo Not Null Unique P/K Def Val
96
Not Null
Yes Yes
97
Anexo B Manual de Instalacin Tener instalado los siguientes servicios Apache2(apt-get install apache2) Php5.2.4 o superior Php cliente y pear (Apt-get install php5 php5-cli php-pear) Manejador de base de Datos Postgresql (apt-get install postgresql8) Puede descargar e instalar Libreras y extensiones pero no van hacer requeridas en este proyecto(PHP-XML PHP-XMLRPC) Instalar Symfony y Crear el proyecto, copear las carpetas necesarias para que el proyecto que se encuentra en la maquina local o maquina donde se desarroll el proyecto a continuacin se muestra como instalar y crear el proyecto. Instalar Symfony Descargar Symfony des de la pgina oficial http://www.symfony-project.org/installation
98
En el proyecto se trabaj con la versin Symfony 1.4, por lo tal descargremos la versin 1.4 En la columna donde se encuentra la tabla podr ver que dice Download
Existen dos archivos que nos permite descargar (Source, Sandbox) y dos formas de compresin, para el proyecto utilizaremos Source y como nos encontramos en Linux podemos descargar el archivo que est en .tgz Una vez descargado lo descomprimimos en la carpeta que queramos que est instalado Symfony y le damos los permisos necesarios para que se ejecute de modo usuario no de modo administrador root y listo termino la instalacin de Symfony.
99
Crear un proyecto Una vez que ya instalo Symfony, nos ubicamos en la carpeta donde crearemos el proyecto y crear una carpeta esta carpeta contendr todos los archivos del proyecto as que hay que dar los permisos 744, una vez creado hay que introducirnos en la carpeta y poner el siguiente comando. $ php /ruta donde se encuentra el symfony que descomprimimos/data/bin/symfony generate:project nombre del proyecto Las letras rojas son carpetas que ya contiene el paquete que descargamos La letra azul es el nombre del archivo el cual nos va permitir ejecutar diferentes acciones como es generate:Project que nos permite generar el proyecto para mostrar todas las acciones que podemos realizar solo es de poner el siguiente cdigo. $ php /ruta donde se encuentra el symfony que descomprimimos/data/bin/symfony Una vez que ya creamos el proyecto hay que crear las aplicaciones y seleccionar la seguridad que nos proporciona Symfony. $ php symfony generate:app escaping-strategy=on csrf-secret=UniqueSecret nombre de la aplicacin Si se fija una vez que se cre el proyecto ya no es necesario poner toda la ruta donde se encontraba symfony porque cuando se cre el proyecto symfony crea un archivo .bat con el mismo nombre symfony el cual nos permitir trabajar de una manera ms sencilla. Ya tenemos el proyecto la aplicacin ahora hay que crear los mdulos en este caso como tenemos elaborado el proyecto en la maquina local o donde se desarroll el proyecto solo es de copear y pegar dentro del mdulo. Recuerde configurar la conexin a la base de datos y copear las clases del proyecto que se encuentran en lib y el esquema as como generar el modelo con el comando.
100
$ php symfony doctrine:build-model Recuerde configurar un virtual host que apunte el directorio web si no, puede controlar el acceso por medio de .htaccess que lo direccione a la carpeta web y que prohba el acceso a las dems carpetas.
101
Anexo C Manual de Manual de operacin La aplicacin cuenta con un men el cual le permitir realizar diferentes acciones tan slo dndole clic(ver Imagen 3)
Una vez seleccionada la accin le mostrara una tabla la cual contiene varios dibujos que muestran la accin que puede realizar como modificar y eliminar tambin en la parte superior con tiene varias imgenes las cuales tienen diferentes acciones como crear nuevo registro y poder filtrar y/o ordenar (ver Imagen 4).
102
103