SlideShare ist ein Scribd-Unternehmen logo
1 von 63
Downloaden Sie, um offline zu lesen
Introducción a Silex
Aprendiendo a hacer las cosas bien con PHP
Daniel Primo
@delineas
www.danielprimo.es
Vamos a aprender PHP
Vamos a aprender PHP
¿Quién soy?
Daniel Primo
@delineas
danielprimo.es
“Constructor freelance de mundo online”
No soy un experto.
Sólo os cuento mi experiencia.
¿Soy programdor?
Soy programador constructor
El día que todo cambió
9 de Noviembre de 2012
“Exorcismo de codigo en PHP”
Charla de Agilecyl con Pepe Doval
Si no aspiras a mejorar en tu trabajo,
¿por qué aspiras a cobrar por ello?
Soy programador
Y a medio camino...
¿Qué es el sílex?
El sílex (SiO2), se usó en la Edad de Piedra para la elaboración de
herramientas cortantes, por su capacidad de romperse en lascas
(fractura concoidea, láminas rectas con ligeras curvas) de bordes muy
agudos.
También fue usado para encender fuego por su capacidad de crear
chispas al chocarse con otra pieza de igual o mayor dureza.
Generalmente se halla asociado con la caliza, rocas sedimentarias
formadas por carbonato de calcio, depositadas en aguas profundas.
Típicamente se presenta en forma de nódulos entre estratos de caliza.
Fuente: Wikipedia
¿Qué es Silex?
Es un microframework de PHP. Construido a
hombros de Symfony2 y Pimple e inspirado en
Sinatra (ruby).
http://silex.sensiolabs.org/
¿Y por qué es un microframework?
● Conciso: API fácil y divertida de manejar
● Extensible: A partir del micro service-container
Pimple es sencillo incluir librerías de terceros
● Testable: Silex utiliza el componente
HttpKernel de Symfony2 lo que permite
abstraer petición y respuesta, lo que permite
testearlo con facilidad
Request Routing Controller Response
1 2 3 4
Request – Reponse
Hola Mundo!
En el navegador
localhost:8888/hello/chicken
Request
1
Genera una petición
GET /hello/chicken
Captura la petición
Parámetro name reconocido
Routing
2
Controlador
Ejecuta la lógica (función anónima)
Controller
3
Respuesta
Salida por pantalla
Response
4
Raíz de la web
Autocarga de clases
Creación de la aplicación
Ejecución de la aplicación
Herencia de variable:
No es parámetro, es el
contenedor de todo
PHP 5.3
Algunas cosas más
Instalación
www.getcomposer.org
Instalación básica
● Descarga
http://silex.sensiolabs.org/download
● Composer
→ creamos fichero composer.json
composer install
Instalación “potencier”
● Descarga
https://github.com/silexphp/Silex-Skeleton
● Composer
composer create-project fabpot/silex-skeleton
myapp ~2.0@dev
● Código más ordenado
● Librerías precargadas
● Código de ejemplo
Skeleton
Skeleton
● config: Aquí estará la configuración específica de cada entorno
(desarrollo, producción).
● var/logs: Ficheros de log.
● var/cache: Directorio donde se almacenará la caché de Twig y el
Profiler
● src: Código de la aplicación.
– app.php → carga de providers
– controllers.php → definición de rutas/controladores
● templates: plantillas de Twig.
● vendor: librerías de terceros
● web: directorio accesible vía web, estarán los controladores frontales
y los assets.
– index.php → producción
– index_dev.php → desarrollo
Arrancamos el servidor
● Composer (definido en composer.json)
composer run
● Servidor nativo de PHP 5.4
php -S localhost:8888 -t web web/index_dev.php
php -S localhost:8888 -t web web/index.php
● Servidor Apache configurado
¿Cuándo lo uso?
Lo bueno
● En pocos minutos tienes resultados
● Es fácil hacerlo crecer
● Ordenado, sino se hace muy grande
● Toda la potencia de symfony
● Se pueden ejecutar tests
● Estructura flexible
● Bien documentado
Lo malo
● Si crece mucho puedes caer en el caos
● Pretender llegar al infinito (infinito = symfony)
● No es igual de bueno para proyectos grandes
● Errores por exceso de magia (o por
desconocimiento del truco)
● Debes tener clara la estructura de tu código
Caso de estudio
● Primera página de reclamo
● Segunda página con formulario
● Formulario necesita validaciones específicas
● Al enviar el formulario se envía un correo con
datos y se guarda en base de datos
● Intregación con TPV Sermepa
● Páginas estáticas de aviso legal, identidad...
Recordemos nuestra app
Modificadores de ruta
Proveedores (Providers)
Inyección de dependencias
La inyección de dependencias es un patrón de
diseño en el que las dependencias se pasan
directamente a los servicios, en vez de crearlas
dentro de los propios servicios o en vez de utilizar
variables globales.
Si se utiliza bien, la inyección de dependencias
hace que el código resultante esté más
desacoplado, sea más flexible y fácil de testear
y se pueda reutilizar más fácilmente.
Pimple
¡No solo eso!
También es un contenedor de servicios
$app
● $app es un contenedor de servicios extensión
de Pimple
●
●
● Asignar un “closure” a una clave del array del
contenedor
● “share” indica que es compartido para toda la
aplicación (puede usarse una y otra vez)
Twig: plantillas
#app.php
#controllers.php
#hello.twig
Form: formularios (I)
Servicio de creación de forms
Request, para saber lo que enviamos
Form: formularios (II)
Si ha sido enviado procesamos
Si es válido continuamos
Redireccionamos para acabar
El controlador devuelve la plantilla
con el formulario pintado
Form: formularios (III)
Form: formularios (IV)
Validaciones
Doctrine: base de datos
API
Y ya está...
Y más
● http_cache, integra el proxy
inverso de Symfony2
● monolog, proporciona un
sistema de logs
● security, se encarga de
gestionar la autenticación y la
autorización de acceso
● serializer, proporciona un
servicio para serializar objetos.
● validator, permite validar
información
● session, almacenar información
de forma persistente entre
diferentes peticiones.
● swiftmailer, permite enviar
emails utilizando la librería Swift
Mailer.
● translation, proporciona un
servicio que facilita la
traducción de tu aplicación a
diferentes idiomas.
● url_generator, proporciona un
servicio para poder generar
URL a partir del nombre de la
ruta.
- ¿Perdona?
- Si
- ¿No dijiste que íbamos a hacer las cosas bien?
- Si, ¿qué pasa?
- Cuantas líneas tiene esa cosa todas juntas...
- Ehhhh...
Ordena tu código
● Estructura en carpetas: views, form...
● Estructura el enrutado / controlador
– Controladores en clases PHP normales
– Controladores como ControllerProviders
– Providers propios
● Otras ayudas
– Configuración en ficheros YAML (rutas, opciones)
● http://librosweb.es/tutorial/como-organizar-bien-un-proyecto-silex/
Controladores en clases
Controladores en clases
ControllerProvider
Tests
● PHPUnit
● WebTestCase para tests funcionales
● Crawler como symfony :)
● http://librosweb.es/libro/silex/capitulo_7.html
Nuestro provider
Protegido
Parámetro por defecto
Crea el servicio y lo registra
Configura la aplicación antes de la petición
Nuestro provider
Registro en la applicación
Show me the code
https://github.com/delineas/IntroSilex
Muchas Gracias
@delineas
danielprimo.es
dani@danielprimo.es

Weitere ähnliche Inhalte

Was ist angesagt?

Desarrollo Web Ágil con Symfony, Bootstrap y Angular
Desarrollo Web Ágil con Symfony, Bootstrap y AngularDesarrollo Web Ágil con Symfony, Bootstrap y Angular
Desarrollo Web Ágil con Symfony, Bootstrap y AngularFreelancer
 
Materiales del curso de Symfony2
Materiales del curso de Symfony2Materiales del curso de Symfony2
Materiales del curso de Symfony2Raul Fraile
 
Endpoints Seguros en nuestra Rest-API
Endpoints Seguros en nuestra Rest-APIEndpoints Seguros en nuestra Rest-API
Endpoints Seguros en nuestra Rest-APIEric Zeidan
 
API REST conceptos (Rails-api)
API REST conceptos (Rails-api)API REST conceptos (Rails-api)
API REST conceptos (Rails-api)Daryl Moreno
 
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRJuan Belón Pérez
 
Taller introduccion symfony2
Taller introduccion symfony2Taller introduccion symfony2
Taller introduccion symfony2Mario IC
 
Clase 5 controller
Clase 5 controllerClase 5 controller
Clase 5 controllerhydras_cs
 
Probando las vistas
Probando las vistasProbando las vistas
Probando las vistasRubyc Slides
 
Masterclass PHP 5.3
Masterclass PHP 5.3Masterclass PHP 5.3
Masterclass PHP 5.3ADWE Team
 
Magallanes, Herramienta de despliegue PHP sencilla y poderosa
Magallanes, Herramienta de despliegue PHP sencilla y poderosa�Magallanes, Herramienta de despliegue PHP sencilla y poderosa�
Magallanes, Herramienta de despliegue PHP sencilla y poderosaFco Javier Núñez Berrocoso
 
Ansible administracion simplificada
Ansible   administracion simplificada Ansible   administracion simplificada
Ansible administracion simplificada bcoca
 
Por qué Symfony2 es tan rápido
Por qué Symfony2 es tan rápidoPor qué Symfony2 es tan rápido
Por qué Symfony2 es tan rápidoCarlos Granados
 
Código mantenible, en Wordpress.
Código mantenible, en Wordpress.Código mantenible, en Wordpress.
Código mantenible, en Wordpress.Asier Marqués
 

Was ist angesagt? (20)

Composer: Gestionando dependencias en PHP
Composer: Gestionando dependencias en PHP Composer: Gestionando dependencias en PHP
Composer: Gestionando dependencias en PHP
 
Desarrollo Web Ágil con Symfony, Bootstrap y Angular
Desarrollo Web Ágil con Symfony, Bootstrap y AngularDesarrollo Web Ágil con Symfony, Bootstrap y Angular
Desarrollo Web Ágil con Symfony, Bootstrap y Angular
 
Backend (sf2Vigo)
Backend (sf2Vigo)Backend (sf2Vigo)
Backend (sf2Vigo)
 
CRUD básico con Symfony
CRUD básico con SymfonyCRUD básico con Symfony
CRUD básico con Symfony
 
Materiales del curso de Symfony2
Materiales del curso de Symfony2Materiales del curso de Symfony2
Materiales del curso de Symfony2
 
Endpoints Seguros en nuestra Rest-API
Endpoints Seguros en nuestra Rest-APIEndpoints Seguros en nuestra Rest-API
Endpoints Seguros en nuestra Rest-API
 
API REST conceptos (Rails-api)
API REST conceptos (Rails-api)API REST conceptos (Rails-api)
API REST conceptos (Rails-api)
 
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGR
 
Fabric más allá de lo básico
Fabric más allá de lo básicoFabric más allá de lo básico
Fabric más allá de lo básico
 
Taller introduccion symfony2
Taller introduccion symfony2Taller introduccion symfony2
Taller introduccion symfony2
 
Clase 5 controller
Clase 5 controllerClase 5 controller
Clase 5 controller
 
Probando las vistas
Probando las vistasProbando las vistas
Probando las vistas
 
Masterclass PHP 5.3
Masterclass PHP 5.3Masterclass PHP 5.3
Masterclass PHP 5.3
 
Magallanes, Herramienta de despliegue PHP sencilla y poderosa
Magallanes, Herramienta de despliegue PHP sencilla y poderosa�Magallanes, Herramienta de despliegue PHP sencilla y poderosa�
Magallanes, Herramienta de despliegue PHP sencilla y poderosa
 
Ansible administracion simplificada
Ansible   administracion simplificada Ansible   administracion simplificada
Ansible administracion simplificada
 
Por qué Symfony2 es tan rápido
Por qué Symfony2 es tan rápidoPor qué Symfony2 es tan rápido
Por qué Symfony2 es tan rápido
 
Código mantenible, en Wordpress.
Código mantenible, en Wordpress.Código mantenible, en Wordpress.
Código mantenible, en Wordpress.
 
RabbitMQ y Symfony
RabbitMQ y SymfonyRabbitMQ y Symfony
RabbitMQ y Symfony
 
3 curso php
3 curso php3 curso php
3 curso php
 
Advanced angular 2
Advanced angular 2Advanced angular 2
Advanced angular 2
 

Andere mochten auch

Andere mochten auch (6)

¿Por qué conviene construir un Repositorio Institucional?
¿Por qué conviene construir un Repositorio Institucional?¿Por qué conviene construir un Repositorio Institucional?
¿Por qué conviene construir un Repositorio Institucional?
 
Complex Sites with Silex
Complex Sites with SilexComplex Sites with Silex
Complex Sites with Silex
 
Silex: From nothing to an API
Silex: From nothing to an APISilex: From nothing to an API
Silex: From nothing to an API
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2
 
Silex meets SOAP & REST
Silex meets SOAP & RESTSilex meets SOAP & REST
Silex meets SOAP & REST
 
Repositorio Digital
Repositorio DigitalRepositorio Digital
Repositorio Digital
 

Ähnlich wie Introducción a Silex. Aprendiendo a hacer las cosas bien en PHP

Symfony: construyendo aplicaciones web
Symfony: construyendo aplicaciones webSymfony: construyendo aplicaciones web
Symfony: construyendo aplicaciones websergiovier
 
¿Grails + DDD + Eventsourcing + CQRS?
¿Grails + DDD + Eventsourcing + CQRS?¿Grails + DDD + Eventsourcing + CQRS?
¿Grails + DDD + Eventsourcing + CQRS?Jorge Franco Leza
 
Desymfony - Servicios
Desymfony  - ServiciosDesymfony  - Servicios
Desymfony - ServiciosRicard Clau
 
Adentrándonos al Framework Symfony
Adentrándonos al  Framework SymfonyAdentrándonos al  Framework Symfony
Adentrándonos al Framework SymfonyRodrigo Miranda
 
Symfony en la gestión de un centro de computación avanzada
Symfony en la gestión de un centro de computación avanzadaSymfony en la gestión de un centro de computación avanzada
Symfony en la gestión de un centro de computación avanzadaCésar Suárez Ortega
 
Caso práctico II: symfony en la gestión de un centro de computación avanzada ...
Caso práctico II: symfony en la gestión de un centro de computación avanzada ...Caso práctico II: symfony en la gestión de un centro de computación avanzada ...
Caso práctico II: symfony en la gestión de un centro de computación avanzada ...Decharlas
 
Trabajo escrito de contra jornada
Trabajo escrito de contra jornadaTrabajo escrito de contra jornada
Trabajo escrito de contra jornadaBryanandrey
 
Desarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfonyDesarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfonyJuan Eladio Sánchez Rosas
 
Python para desarrollo web de ultima generación
Python para desarrollo web de ultima generaciónPython para desarrollo web de ultima generación
Python para desarrollo web de ultima generaciónFutura Networks
 
Symfony2 un framework para maximizar tu productividad en desarrollo web
Symfony2 un framework para maximizar tu productividad en desarrollo webSymfony2 un framework para maximizar tu productividad en desarrollo web
Symfony2 un framework para maximizar tu productividad en desarrollo webIEBSchool
 
Symfony2 Introducción
Symfony2 IntroducciónSymfony2 Introducción
Symfony2 Introducciónstrate
 
Taller evento TestingUY 2015 - Técnicas de Automatización Going from GOOD to ...
Taller evento TestingUY 2015 - Técnicas de Automatización Going from GOOD to ...Taller evento TestingUY 2015 - Técnicas de Automatización Going from GOOD to ...
Taller evento TestingUY 2015 - Técnicas de Automatización Going from GOOD to ...TestingUy
 
Symfony-Community: Introducción a Symfony Framework
Symfony-Community: Introducción a Symfony FrameworkSymfony-Community: Introducción a Symfony Framework
Symfony-Community: Introducción a Symfony Frameworkexcedesoft
 
Code Blast 2012 - Node.js
Code Blast 2012 - Node.jsCode Blast 2012 - Node.js
Code Blast 2012 - Node.jsINSIGNIA4U
 

Ähnlich wie Introducción a Silex. Aprendiendo a hacer las cosas bien en PHP (20)

Introducción a Silex
Introducción a SilexIntroducción a Silex
Introducción a Silex
 
Symfony: construyendo aplicaciones web
Symfony: construyendo aplicaciones webSymfony: construyendo aplicaciones web
Symfony: construyendo aplicaciones web
 
¿Grails + DDD + Eventsourcing + CQRS?
¿Grails + DDD + Eventsourcing + CQRS?¿Grails + DDD + Eventsourcing + CQRS?
¿Grails + DDD + Eventsourcing + CQRS?
 
Desymfony - Servicios
Desymfony  - ServiciosDesymfony  - Servicios
Desymfony - Servicios
 
Adentrándonos al Framework Symfony
Adentrándonos al  Framework SymfonyAdentrándonos al  Framework Symfony
Adentrándonos al Framework Symfony
 
Symfony en la gestión de un centro de computación avanzada
Symfony en la gestión de un centro de computación avanzadaSymfony en la gestión de un centro de computación avanzada
Symfony en la gestión de un centro de computación avanzada
 
Caso práctico II: symfony en la gestión de un centro de computación avanzada ...
Caso práctico II: symfony en la gestión de un centro de computación avanzada ...Caso práctico II: symfony en la gestión de un centro de computación avanzada ...
Caso práctico II: symfony en la gestión de un centro de computación avanzada ...
 
Trabajo escrito de contra jornada
Trabajo escrito de contra jornadaTrabajo escrito de contra jornada
Trabajo escrito de contra jornada
 
Desarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfonyDesarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfony
 
Gestión Remota de Equipos con Python
Gestión Remota de Equipos con PythonGestión Remota de Equipos con Python
Gestión Remota de Equipos con Python
 
Web service
Web serviceWeb service
Web service
 
Web service
Web serviceWeb service
Web service
 
Python para desarrollo web de ultima generación
Python para desarrollo web de ultima generaciónPython para desarrollo web de ultima generación
Python para desarrollo web de ultima generación
 
Symfony2 un framework para maximizar tu productividad en desarrollo web
Symfony2 un framework para maximizar tu productividad en desarrollo webSymfony2 un framework para maximizar tu productividad en desarrollo web
Symfony2 un framework para maximizar tu productividad en desarrollo web
 
Tema 1
Tema 1Tema 1
Tema 1
 
Symfony2 Introducción
Symfony2 IntroducciónSymfony2 Introducción
Symfony2 Introducción
 
Taller evento TestingUY 2015 - Técnicas de Automatización Going from GOOD to ...
Taller evento TestingUY 2015 - Técnicas de Automatización Going from GOOD to ...Taller evento TestingUY 2015 - Técnicas de Automatización Going from GOOD to ...
Taller evento TestingUY 2015 - Técnicas de Automatización Going from GOOD to ...
 
Symfony-Community: Introducción a Symfony Framework
Symfony-Community: Introducción a Symfony FrameworkSymfony-Community: Introducción a Symfony Framework
Symfony-Community: Introducción a Symfony Framework
 
Code Blast 2012 - Node.js
Code Blast 2012 - Node.jsCode Blast 2012 - Node.js
Code Blast 2012 - Node.js
 
SimpleSAMLphp
SimpleSAMLphpSimpleSAMLphp
SimpleSAMLphp
 

Mehr von Daniel Primo

Análisis de Grav Cms, ¿es mejor que Wordpress?
Análisis de Grav Cms, ¿es mejor que Wordpress?Análisis de Grav Cms, ¿es mejor que Wordpress?
Análisis de Grav Cms, ¿es mejor que Wordpress?Daniel Primo
 
Construyendo redes sociales con herramientas de software libre #OpenExpoSMAC
Construyendo redes sociales con herramientas de software libre #OpenExpoSMACConstruyendo redes sociales con herramientas de software libre #OpenExpoSMAC
Construyendo redes sociales con herramientas de software libre #OpenExpoSMACDaniel Primo
 
Agregadores: convirtiendo Drupal en una central de contenidos
Agregadores: convirtiendo Drupal en una central de contenidosAgregadores: convirtiendo Drupal en una central de contenidos
Agregadores: convirtiendo Drupal en una central de contenidosDaniel Primo
 
Construyendo una red social con Drupal
Construyendo una red social con DrupalConstruyendo una red social con Drupal
Construyendo una red social con DrupalDaniel Primo
 
Drupal: Introducción al módulo CCK
Drupal: Introducción al módulo CCKDrupal: Introducción al módulo CCK
Drupal: Introducción al módulo CCKDaniel Primo
 
Drupal: Introducción al módulo views
Drupal: Introducción al módulo viewsDrupal: Introducción al módulo views
Drupal: Introducción al módulo viewsDaniel Primo
 
Drupal: Taxonomías y categorías
Drupal: Taxonomías y categoríasDrupal: Taxonomías y categorías
Drupal: Taxonomías y categoríasDaniel Primo
 
El wiki: Entornos colaborativos en Internet de aplicación en el aula
El wiki: Entornos colaborativos en Internet de aplicación en el aulaEl wiki: Entornos colaborativos en Internet de aplicación en el aula
El wiki: Entornos colaborativos en Internet de aplicación en el aulaDaniel Primo
 
Aplicaciones en la web para el aula de Matemáticas
Aplicaciones en la web para el aula de MatemáticasAplicaciones en la web para el aula de Matemáticas
Aplicaciones en la web para el aula de MatemáticasDaniel Primo
 
Introducción a los sistemas de gestion de contenidos (CMS)
Introducción a los sistemas de gestion de contenidos (CMS)Introducción a los sistemas de gestion de contenidos (CMS)
Introducción a los sistemas de gestion de contenidos (CMS)Daniel Primo
 
Introduccion a Drupal
Introduccion a DrupalIntroduccion a Drupal
Introduccion a DrupalDaniel Primo
 
Blogs en Herramientas multimedia para Ciencias de la Naturaleza (CFIE Léon)
Blogs en Herramientas multimedia para Ciencias de la Naturaleza (CFIE Léon)Blogs en Herramientas multimedia para Ciencias de la Naturaleza (CFIE Léon)
Blogs en Herramientas multimedia para Ciencias de la Naturaleza (CFIE Léon)Daniel Primo
 
Herramientas colaborativas: Podcast
Herramientas colaborativas: PodcastHerramientas colaborativas: Podcast
Herramientas colaborativas: PodcastDaniel Primo
 
Herramientas colaborativas: Marcadores sociales
Herramientas colaborativas: Marcadores socialesHerramientas colaborativas: Marcadores sociales
Herramientas colaborativas: Marcadores socialesDaniel Primo
 
Herramientas colaborativas en educación: Web 2.0
Herramientas colaborativas en educación: Web 2.0Herramientas colaborativas en educación: Web 2.0
Herramientas colaborativas en educación: Web 2.0Daniel Primo
 

Mehr von Daniel Primo (15)

Análisis de Grav Cms, ¿es mejor que Wordpress?
Análisis de Grav Cms, ¿es mejor que Wordpress?Análisis de Grav Cms, ¿es mejor que Wordpress?
Análisis de Grav Cms, ¿es mejor que Wordpress?
 
Construyendo redes sociales con herramientas de software libre #OpenExpoSMAC
Construyendo redes sociales con herramientas de software libre #OpenExpoSMACConstruyendo redes sociales con herramientas de software libre #OpenExpoSMAC
Construyendo redes sociales con herramientas de software libre #OpenExpoSMAC
 
Agregadores: convirtiendo Drupal en una central de contenidos
Agregadores: convirtiendo Drupal en una central de contenidosAgregadores: convirtiendo Drupal en una central de contenidos
Agregadores: convirtiendo Drupal en una central de contenidos
 
Construyendo una red social con Drupal
Construyendo una red social con DrupalConstruyendo una red social con Drupal
Construyendo una red social con Drupal
 
Drupal: Introducción al módulo CCK
Drupal: Introducción al módulo CCKDrupal: Introducción al módulo CCK
Drupal: Introducción al módulo CCK
 
Drupal: Introducción al módulo views
Drupal: Introducción al módulo viewsDrupal: Introducción al módulo views
Drupal: Introducción al módulo views
 
Drupal: Taxonomías y categorías
Drupal: Taxonomías y categoríasDrupal: Taxonomías y categorías
Drupal: Taxonomías y categorías
 
El wiki: Entornos colaborativos en Internet de aplicación en el aula
El wiki: Entornos colaborativos en Internet de aplicación en el aulaEl wiki: Entornos colaborativos en Internet de aplicación en el aula
El wiki: Entornos colaborativos en Internet de aplicación en el aula
 
Aplicaciones en la web para el aula de Matemáticas
Aplicaciones en la web para el aula de MatemáticasAplicaciones en la web para el aula de Matemáticas
Aplicaciones en la web para el aula de Matemáticas
 
Introducción a los sistemas de gestion de contenidos (CMS)
Introducción a los sistemas de gestion de contenidos (CMS)Introducción a los sistemas de gestion de contenidos (CMS)
Introducción a los sistemas de gestion de contenidos (CMS)
 
Introduccion a Drupal
Introduccion a DrupalIntroduccion a Drupal
Introduccion a Drupal
 
Blogs en Herramientas multimedia para Ciencias de la Naturaleza (CFIE Léon)
Blogs en Herramientas multimedia para Ciencias de la Naturaleza (CFIE Léon)Blogs en Herramientas multimedia para Ciencias de la Naturaleza (CFIE Léon)
Blogs en Herramientas multimedia para Ciencias de la Naturaleza (CFIE Léon)
 
Herramientas colaborativas: Podcast
Herramientas colaborativas: PodcastHerramientas colaborativas: Podcast
Herramientas colaborativas: Podcast
 
Herramientas colaborativas: Marcadores sociales
Herramientas colaborativas: Marcadores socialesHerramientas colaborativas: Marcadores sociales
Herramientas colaborativas: Marcadores sociales
 
Herramientas colaborativas en educación: Web 2.0
Herramientas colaborativas en educación: Web 2.0Herramientas colaborativas en educación: Web 2.0
Herramientas colaborativas en educación: Web 2.0
 

Kürzlich hochgeladen

12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdfedwinmelgarschlink2
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdflauradbernals
 
memoria de la empresa Pil Andina para d
memoria de la empresa Pil Andina para  dmemoria de la empresa Pil Andina para  d
memoria de la empresa Pil Andina para dRodrigoAveranga2
 
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señorkkte210207
 
Las redes sociales en el mercado digital
Las redes sociales en el mercado digitalLas redes sociales en el mercado digital
Las redes sociales en el mercado digitalNayaniJulietaRamosRa
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfisrael garcia
 

Kürzlich hochgeladen (6)

12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdf
 
memoria de la empresa Pil Andina para d
memoria de la empresa Pil Andina para  dmemoria de la empresa Pil Andina para  d
memoria de la empresa Pil Andina para d
 
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
 
Las redes sociales en el mercado digital
Las redes sociales en el mercado digitalLas redes sociales en el mercado digital
Las redes sociales en el mercado digital
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
 

Introducción a Silex. Aprendiendo a hacer las cosas bien en PHP