¿Qué son los patrones de diseño?. El patrón Singleton. El patrón Registry
El patrón Factory. El patrón Decorator
El patrón Observer. El patrón Front Controller.
El patrón MVC
deSymfony 2013 - Creando aplicaciones web desde otro ángulo con Symfony y A...Pablo Godel
AngularJS es un framework Javascript relativamente nuevo, patrocinado por Google, que está ganando mucha popularidad gracias a su potencia, flexibilidad y simplicidad.
En esta charla haremos una introducción de sus caulidades más importantes, veremos como se acopla con Symfony para la creación de aplicaciones web con interfaz ricas y complejas, incluyendo consejos prácticos de como diseñar nuestra aplicación establecer su estructura.
Por último, mostraremos una aplicación escrita en AngularJS que se conecta a servidores REST y WebSockets creados con Symfony.
Taller de introducción al desarrollo web con DjangoJuan Rodríguez
Taller de introducción al desarrollo web con Django, impartido en la Tenerife Lan Party 2012.
"Te Interesa desarrollar proyectos para la web? ¿Posees un espíritu perfeccionista, pero siempre te falta tiempo? Entonces lo que necesitas en un framework de desarrollo para web que te quite de encima los problemas y te permita concentrarte en lo realmente importante: tu idea.
Quizá Django pueda ayudarte. Django es código abierto, modular, escrito en Python, y muy potente. En este taller daremos una introducción a Django, e implementaremos desde cero una aplicación web para gestionar los informes secretos de SHIELD. Con registro de usuarios, acceso a base de datos, páginas dinámicas y servicios web. En cuatro horas."
¿Qué son los patrones de diseño?. El patrón Singleton. El patrón Registry
El patrón Factory. El patrón Decorator
El patrón Observer. El patrón Front Controller.
El patrón MVC
deSymfony 2013 - Creando aplicaciones web desde otro ángulo con Symfony y A...Pablo Godel
AngularJS es un framework Javascript relativamente nuevo, patrocinado por Google, que está ganando mucha popularidad gracias a su potencia, flexibilidad y simplicidad.
En esta charla haremos una introducción de sus caulidades más importantes, veremos como se acopla con Symfony para la creación de aplicaciones web con interfaz ricas y complejas, incluyendo consejos prácticos de como diseñar nuestra aplicación establecer su estructura.
Por último, mostraremos una aplicación escrita en AngularJS que se conecta a servidores REST y WebSockets creados con Symfony.
Taller de introducción al desarrollo web con DjangoJuan Rodríguez
Taller de introducción al desarrollo web con Django, impartido en la Tenerife Lan Party 2012.
"Te Interesa desarrollar proyectos para la web? ¿Posees un espíritu perfeccionista, pero siempre te falta tiempo? Entonces lo que necesitas en un framework de desarrollo para web que te quite de encima los problemas y te permita concentrarte en lo realmente importante: tu idea.
Quizá Django pueda ayudarte. Django es código abierto, modular, escrito en Python, y muy potente. En este taller daremos una introducción a Django, e implementaremos desde cero una aplicación web para gestionar los informes secretos de SHIELD. Con registro de usuarios, acceso a base de datos, páginas dinámicas y servicios web. En cuatro horas."
CRUD básico con Symfony. Esta presentación es una continuación de lo contado en la II Symfony Zaragoza. Explica un ejemplo sencillo de un CRUD para mostrar como realizar modelos, controladores, vistas, formularios, etc.
Seguridad Web
Conceptos y buenas prácticas.
Ataques XSS
Ataques CSRF
Ataques SQL-injection
Ataques de sesión: Session riding
Inyección remota de código
PHP es un lenguaje de scripting orientado al desarrollo de aplicaciones web. En una primera parte se explica los principios del lenguaje, algunas herramientas y un esbozo de una aplicación web escrita en PHP. En una segunda parte se presenta Symfony, un framework PHP que reúne las mejores prácticas de desarrollo de aplicaciones web.
Las buenas prácticas oficiales para aplicaciones Symfonysymfony_bcn
La primera versión del framework Symfony2 se publicó hace más de tres años. Durante este tiempo, la comunidad de programadores Symfony ha originado una serie de buenas prácticas oficiosas que han sido adoptadas por la mayoría de aplicaciones.
Lamentablemente muchas de estas prácticas tienen poco que ver con la visión original de los creadores de Symfony y complican en exceso el desarrollo de las aplicaciones.
En esta sesión se presentarán muchas de las buenas prácticas oficiales recomendadas por Fabien Potencier, creador de Symfony. Sorpréndete con una visión totalmente renovada y pragmática del desarrollo de aplicaciones Symfony profesionales.
Actividad No. 1.7: Creación de usuarios en MySQLFrancisco Medina
Universidad Nacional Autónoma de México
Facultad de Contaduría y Administración
Diplomado Diseño y Administración de Base de Datos
Módulo 6. Seguridad de Bases de Datos
Composer es un administrador de paquetes flexible, simple y que se encarga de la administración de dependencias de nuestro proyecto. Está inspirado en npm de node.js y Bundler de Ruby.
Composer ha cambiado la comunidad PHP y está reinventado la forma de trabajar con PHP.
Gracias a Composer la comunidad PHP es más feliz y podrá dejar de reinventar la rueda una y otra vez.
Documento Formativo de Symfony2 en el que explica desde qué es Symfony hasta los primeros pasos básicos: instalación, configuración, entidades, Twig, YAML...
PHP, una introducción a modo de presentación como tutorial básico llegando hasta clases y pasando por la conexión con una oferta de servicios web mediante protocolo SOAP con WSDL.
CRUD básico con Symfony. Esta presentación es una continuación de lo contado en la II Symfony Zaragoza. Explica un ejemplo sencillo de un CRUD para mostrar como realizar modelos, controladores, vistas, formularios, etc.
Seguridad Web
Conceptos y buenas prácticas.
Ataques XSS
Ataques CSRF
Ataques SQL-injection
Ataques de sesión: Session riding
Inyección remota de código
PHP es un lenguaje de scripting orientado al desarrollo de aplicaciones web. En una primera parte se explica los principios del lenguaje, algunas herramientas y un esbozo de una aplicación web escrita en PHP. En una segunda parte se presenta Symfony, un framework PHP que reúne las mejores prácticas de desarrollo de aplicaciones web.
Las buenas prácticas oficiales para aplicaciones Symfonysymfony_bcn
La primera versión del framework Symfony2 se publicó hace más de tres años. Durante este tiempo, la comunidad de programadores Symfony ha originado una serie de buenas prácticas oficiosas que han sido adoptadas por la mayoría de aplicaciones.
Lamentablemente muchas de estas prácticas tienen poco que ver con la visión original de los creadores de Symfony y complican en exceso el desarrollo de las aplicaciones.
En esta sesión se presentarán muchas de las buenas prácticas oficiales recomendadas por Fabien Potencier, creador de Symfony. Sorpréndete con una visión totalmente renovada y pragmática del desarrollo de aplicaciones Symfony profesionales.
Actividad No. 1.7: Creación de usuarios en MySQLFrancisco Medina
Universidad Nacional Autónoma de México
Facultad de Contaduría y Administración
Diplomado Diseño y Administración de Base de Datos
Módulo 6. Seguridad de Bases de Datos
Composer es un administrador de paquetes flexible, simple y que se encarga de la administración de dependencias de nuestro proyecto. Está inspirado en npm de node.js y Bundler de Ruby.
Composer ha cambiado la comunidad PHP y está reinventado la forma de trabajar con PHP.
Gracias a Composer la comunidad PHP es más feliz y podrá dejar de reinventar la rueda una y otra vez.
Documento Formativo de Symfony2 en el que explica desde qué es Symfony hasta los primeros pasos básicos: instalación, configuración, entidades, Twig, YAML...
PHP, una introducción a modo de presentación como tutorial básico llegando hasta clases y pasando por la conexión con una oferta de servicios web mediante protocolo SOAP con WSDL.
Topicos Avanzados - Sesion Nº 04. Aqui empieza la programación desde cero con php y a ver toda la potencialidad de este lenguaje de programacion web interpretado.
Aplicaciones para sistemas distribuidos slidemarieuri
Esta sencilla presentación contiene la parte inicial para un proyecto de base de datos en mysql ejecutándose a través de una Aplicación Java haciendo uso de NetBeans.
Representa sólo una parte 15% de un proyecto final que se irá adjuntando.
La Materia es Aplicaciones para Ambientes Distribuidos de la Carrera de Licenciatura en Informática del Instituto Tecnológico de Tepic.
En este segundo Meetup nos vamos a centrar en la integración de Mulesoft con BBDD relacionales del tipo Oracle, PostgreSQL, MySQL
1.- Cómo se integra Java con Bases de Datos relacionales
2.- Somo los integradores capaces de hacer de DBA? pide ayuda a alguien que sepa de BBDD
3.- Pool de conexiones, que es y para que nos sirve para mejorar el rendimiento
4.- ApiKit OData, generación automática de API´s a partir de una conexión de BD
5.- Historias para no dormir y casos extraños que nos encontramos en los clientes
Presentación de la conferencia sobre la basílica de San Pedro en el Vaticano realizada en el Ateneo Cultural y Mercantil de Onda el jueves 2 de mayo de 2024.
La Unidad Eudista de Espiritualidad se complace en poner a su disposición el siguiente Triduo Eudista, que tiene como propósito ofrecer tres breves meditaciones sobre Jesucristo Sumo y Eterno Sacerdote, el Sagrado Corazón de Jesús y el Inmaculado Corazón de María. En cada día encuentran una oración inicial, una meditación y una oración final.
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...JAVIER SOLIS NOYOLA
El Mtro. JAVIER SOLIS NOYOLA crea y desarrolla el “ROMPECABEZAS DE ECUACIONES DE 1ER. GRADO OLIMPIADA DE PARÍS 2024”. Esta actividad de aprendizaje propone retos de cálculo algebraico mediante ecuaciones de 1er. grado, y viso-espacialidad, lo cual dará la oportunidad de formar un rompecabezas. La intención didáctica de esta actividad de aprendizaje es, promover los pensamientos lógicos (convergente) y creativo (divergente o lateral), mediante modelos mentales de: atención, memoria, imaginación, percepción (Geométrica y conceptual), perspicacia, inferencia, viso-espacialidad. Esta actividad de aprendizaje es de enfoques lúdico y transversal, ya que integra diversas áreas del conocimiento, entre ellas: matemático, artístico, lenguaje, historia, y las neurociencias.
Portafolio de servicios Centro de Educación Continua EPN
Iniciación PHP 5. Ejercicios
1. Introducción al desarrollo web con PHP 5
Ejercicios
Universidad de Córdoba
martes, 2 de noviembre de 2010
2. Índice de contenidos
Introducción........................................................................................................................................ 3
Relación de ejercicios......................................................................................................................... 4
Ejercicio 01.......................................................................................................................................4
Ejercicio 02...................................................................................................................................... 4
Ejercicio 03...................................................................................................................................... 4
Ejercicio 04...................................................................................................................................... 5
Desarrollo de un blog......................................................................................................................... 7
Datos necesarios.............................................................................................................................7
Script de creación de la base de datos..........................................................................................8
Requisitos del sistema.................................................................................................................. 10
Listado de artículos...................................................................................................................10
Detalle de un artículo................................................................................................................ 10
Nuevo artículo............................................................................................................................11
Editar artículo............................................................................................................................12
Gadget de autenticación........................................................................................................... 13
Gadget de publicaciones anteriores..........................................................................................13
3. Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
Introducción
En este documento, el alumno encontrará la relación de ejercicios que ha de codifcar para
obtener una mejor puntuación a la fnalización del curso.
Adicionalmente, también se especifca el enunciado y material necesario para el desarrollo
del trabajo optativo, “Desarrollo de un blog”.
El material elaborado habrá que entregarlo en un documento con
formato PDF a la dirección de correo cristina.quintana@fai.es antes
del domingo 28 de noviembre de 2010.
Como se especifca en el programa, las dos últimas clases presenciales del curso se
dedicarán a las dudas surgidas en la resolución de los ejercicios detallados en este
documento.
http://www.fai.es Página 3 de 14
4. Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
Relación de ejercicios
A continuación, se detallan los enunciados de los ejercicios a desarrollar.
Ejercicio 01
Dado un número en formato numérico comprendido entre 1 y 99, imprimirlo en
formato texto.
Construir un formulario para la recepción de datos e implementar la validación de los
mismos.
Ejercicio 02
Dado un día, mes y año, imprimir el día de la semana al que pertenece.
El mes se introducirá en formato texto.
Construir un formulario para la recepción de datos e implementar la validación de los
mismos.
Ejercicio 03
Construir una clase que contenga la lógica necesaria para dibujar un calendario con el
que se muestra en la siguiente imagen.
El código a utilizar para renderizar el calendario es:
<?php
// Dibuja el calendario del mes actual
$calendar01 = new MyCalendar();
$calendar01->render();
// Dibuja el calendario del mes de agosto
$calendar02 = new MyCalendar( "agosto", 2010 );
$calendar02->render();
http://www.fai.es Página 4 de 14
5. Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
Ejercicio 04
Construir una aplicación con dos pantallas:
1. Listado de asignaturas
Cada asignatura será un enlace al listado de alumnos matriculados en ésta.
2. Listado de alumnos de una asignaturas
Mostrar el nombre de la asignatura y los datos de sus alumnos matriculados.
Los datos necesarios para la conexión a la base de datos son:
Host server.fai.es
Base de datos curso_php
Usuario curso
Contraseña curso_2010
Si se desea utilizar la base de datos en entorno local, el script para la creación es el
siguiente:
--
-- Base de datos: `curso_php`
--
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `alumno`
--
DROP TABLE IF EXISTS `alumno`;
CREATE TABLE IF NOT EXISTS `alumno` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`nombre` varchar(255) NOT NULL,
`apellidos` varchar(255) NOT NULL,
`email` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=81 ;
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `alumno_asignatura`
--
DROP TABLE IF EXISTS `alumno_asignatura`;
http://www.fai.es Página 5 de 14
6. Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
CREATE TABLE IF NOT EXISTS `alumno_asignatura` (
`alumno_id` bigint(20) NOT NULL DEFAULT '0',
`asignatura_id` bigint(20) NOT NULL DEFAULT '0',
PRIMARY KEY (`alumno_id`,`asignatura_id`),
KEY `alumno_asignatura_asignatura_id_asignatura_id` (`asignatura_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `asignatura`
--
DROP TABLE IF EXISTS `asignatura`;
CREATE TABLE IF NOT EXISTS `asignatura` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`nombre` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Filtros para la tabla `alumno_asignatura`
--
ALTER TABLE `alumno_asignatura`
ADD CONSTRAINT `alumno_asignatura_alumno_id_alumno_id` FOREIGN KEY
(`alumno_id`) REFERENCES `alumno` (`id`),
ADD CONSTRAINT `alumno_asignatura_asignatura_id_asignatura_id` FOREIGN
KEY (`asignatura_id`) REFERENCES `asignatura` (`id`);
http://www.fai.es Página 6 de 14
7. Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
Desarrollo de un blog
A continuación, se detallan los datos necesarios para el desarrollo del blog y las
características que ha de cumplir en su ejecución.
Datos necesarios
Los datos necesarios para la conexión a la base de datos son:
Host server.fai.es
Base de datos curso_php_blog
Usuario curso
Contraseña curso_2010
La base de datos consta de la siguiente estructura:
• Tabla user
Contenido de los datos del usuario con privilegios.
Columnas de la tabla:
▪ name
Nombre del usuario.
▪ last_name
Apellidos del usuario.
▪ username
Nombre con el que el usuario accede a la aplicación.
Este dato es único para cada usuario.
▪ password
Clave con la que el usuario accede a la aplicación.
• Tabla article
Contenido de los artículos introducidos por usuarios privilegiados.
Columnas de la tabla:
▪ created_at
Fecha de registro de la publicación.
▪ title
http://www.fai.es Página 7 de 14
8. Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
Título de la publicación.
▪ value
Contenido de la publicación.
▪ user_id
Identifcador del usuario que ha publicado el nuevo contenido.
• Tabla comment
Contenido de los comentarios introducidos tanto por usuarios privilegiados
como por usuarios anónimos.
Columnas de la tabla:
▪ created_at
Fecha de registro de la publicación.
▪ value
Contenido de la publicación.
▪ article_id
Identifcador del artículo al que hace referencia.
Script de creación de la base de datos
Se adjunta el script de creación de la base de datos a utilizar en este ejercicio, para
aquellos que deseen realizar el ejercicio en su ordenador personal.
--
-- Base de datos: `curso_php_blog`
--
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `article`
--
DROP TABLE IF EXISTS `article`;
CREATE TABLE IF NOT EXISTS `article` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`title` varchar(100) NOT NULL,
`value` varchar(255) NOT NULL,
`created_at` date NOT NULL,
`user_id` bigint(20) NOT NULL,
PRIMARY KEY (`id`),
KEY `user_id_idx` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
http://www.fai.es Página 8 de 14
9. Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `comment`
--
DROP TABLE IF EXISTS `comment`;
CREATE TABLE IF NOT EXISTS `comment` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`value` varchar(255) NOT NULL,
`created_at` date NOT NULL,
`article_id` bigint(20) NOT NULL,
PRIMARY KEY (`id`),
KEY `article_id_idx` (`article_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `user`
--
DROP TABLE IF EXISTS `user`;
CREATE TABLE IF NOT EXISTS `user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`last_name` varchar(100) NOT NULL,
`username` varchar(30) NOT NULL,
`password` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Filtros para la tabla `article`
--
ALTER TABLE `article`
ADD CONSTRAINT `article_user_id_user_id` FOREIGN KEY (`user_id`) REFERENCES
`user` (`id`);
--
-- Filtros para la tabla `comment`
--
ALTER TABLE `comment`
ADD CONSTRAINT `comment_article_id_article_id` FOREIGN KEY (`article_id`)
REFERENCES `article` (`id`);
http://www.fai.es Página 9 de 14
10. Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
Requisitos del sistema
El problema a resolver se compone de cuatro pantallas, dos públicas y otras dos
protegidas por autenticación de usuario.
Listado de artículos
Esta pantalla es de acceso público para todos los usuarios de la red, y muestra
el listado de artículos almacenados en el sistema en orden descendente de la
fecha de creación.
De cada artículo se muestra el título, seguido de la fecha de creación.
Este título será un enlace a la pantalla de detalle de dicho artículo.
Además de ésto, esta pantalla posee una columna a la derecha dónde se
muestran los gadget de autenticación y publicaciones anteriores, los cuáles se
explican más adelante en este documento.
Detalle de un artículo
Esta pantalla es de acceso público para todos los usuarios de la red, y muestra
la información del artículo que se ha seleccionado en la pantalla de listado, a
través de la cuál se ha accedido.
Se detalla el título, descripción y fecha de creación del artículo.
Acompañando a estos datos, se debe implementar un formulario para añadir
comentarios asociados a dicho artículo.
Además de lo anterior, se ha de visualizar el listado de comentarios que
usuarios de la aplicación han añadido a través del formulario anterior. Estos
comentarios se han de mostrar en orden descendente según la fecha en la
que han sido introducidos.
Replicando la funcionalidad de la pantalla de listado, también posee una
http://www.fai.es Página 10 de 14
11. Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
columna a la derecha dónde se muestran los gadget de autenticación y
publicaciones anteriores, los cuáles se explican más adelante en este
documento.
Nuevo artículo
Esta pantalla es de acceso restringido, sólo se podrá acceder a esta pantalla
tras autenticarse mediante el gadget de la columna de la derecha de las
pantallas de listado y detalle de artículos.
Esta pantalla muestra un formulario de creación dónde aparecerán los
campos título y artículo o descripción. Al guardar este formulario se tomará la
fecha actual para el campo create_at de la base de datos.
Debajo de este formulario, han de aparecer el listado de artículos publicados
por el usuario autenticado en orden descendente por fecha de creación.
Cada uno de estos artículos de ese listado ha de mostrar el título del artículo
http://www.fai.es Página 11 de 14
12. Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
seguido de la fecha de creación.
El título ha de ser un enlace que redirija a la pantalla de edición de dicho
artículo, la cuál se describe a continuación.
Editar artículo
Esta pantalla es de acceso restringido, es decir, sólo se puede acceder a esta
pantalla, estando autenticado en el sistema.
La pantalla es idéntica a la pantalla del formulario de nuevo artículo, salvo
porque el formulario aparece completado con los datos del artículo que se
está editando.
http://www.fai.es Página 12 de 14
13. Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
Gadget de autenticación
Situado en las parte o columna de la derecha de las pantallas de listado de
artículos y detalle de la parte pública del blog, hay que defnir una zona dónde
los usuarios con privilegios puedan acceder al área privada.
Esta zona vendrá defnida por dos cajas de texto en las que especifcar el
nombre de usuario y la contraseña.
Al pulsar el botón registrar, se han de comprobar los datos y en caso de ser
correctos redirigir al formulario de nuevo artículo.
Gadget de publicaciones anteriores
En la columna de la derecha de las pantallas de listado de artículos y detalle
de la parte pública, hay que defnir otra zona para las publicaciones
anteriores.
http://www.fai.es Página 13 de 14
14. Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
Se ha de mostrar una lista los meses anteriores al actual y junto a estos el
número de artículos que se han publicado en dichas fechas.
http://www.fai.es Página 14 de 14