Upload
csalazart
View
2.366
Download
2
Embed Size (px)
DESCRIPTION
Lo que realmente falto de la ponencia de symfony en las jornadas
Citation preview
Desarrollo de aplicaciones web con PHP y
Framework Symfony
Ponente:
Ing Carlos A Salazar e-mail: [email protected]
QUE ES UN GEEKDel inglés Geek, pronunciado "guik"
GEEK FRIKI DE LA TECNOLOGIA
QUE ES UN FRIKI
Es el apodo que le otorgan a las personas que son apasionadas por el mundo de la tecnología ó incluso obsesionadas con ella.
Computación, informática, electrónica, programación, video juegos, anime, manga, ciencia ficción, comics, cosplay entre otros
SOY UN GEEK?
Y Tú ERES?Si Alguna de Estas Imágenes
Es Familiar Seguro eres un GEEK
FRIKI DE PHP <?php echo $Framework->symfony();?>
FRIKI DE PHP<?php echo $Framework->symfony();?>
Ing. Carlos A Salazare-mail: [email protected]://es.debugmodeon.com/usuario/csalazart/
LA WEB 2.0La web AHORA
El término Web 2.0 (2004–presente) está comúnmente asociado con un fenómeno social, basado en la interacción que se logra a partir de diferentes aplicaciones en la web, que facilitan el compartir información, la interoperabilidad, el diseño centrado en el usuario o D.C.U.
Esto es: Redes Sociales (Facebook, twitter, myspace, RSS) Compartir Archivos (WIKI, Blogs, Videos, Fotos, skydrive, p2p) Web Interactiva (AJAX, CSS, Frameworks, MVC, JSON) Web de Relaciones (friend, Facebook, eDarling, amorenlinea,
ligatela) Web del Comercio (pay per clicks, E-lerning, E-Commerce)
A Donde VAMOSLA WEB 2.0 3.0
Web 3.0 es un neologismo que se utiliza para describir la evolución del uso y la interacción en la red a través de diferentes caminos. Apareció el término por primera véz en 2006 en un artículo de Jeffrey Zeldman.
Esto es: Manejo de Bases de Conocimiento (inteligencia artificial) Multi-Plataformas (Diferentes Dispositivos: celulares, PAD,
Tables, PC.. Etc) Web Semántica “La Web de los Datos” (Agentes inteligentes,
metadatos, las maquinas “entienden”) Web Geoespacial “Geoweb” (google earth, google maps, gps
en capas) Web 3D (VRML, 3DXML, X3D, Mundo Virtual 3D)
PAGINAS WEBTodo esto es gracias a las Páginas WEB
PHP
ASPJSP
PERL
Programación lado del Servidor
Programación lado del Cliente
HTML
XMLJ. Script
CSS
PHP
¿Qué NO es PHP?
Pasta con Hipervínculos Programable
(PHP)
Un Script en PHP<body>
<?php $lst_nombre=$_POST["nombre"];
$lst_edad=$_POST["edad"]
if (trim($lst_nombre) && trim($lst_edad)) { ?>
<p>Hola <?php $lst_nombre; ?>.
<br />Tiene <?php $lst_edad; ?> años</p> <?php }?>
<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE)
{ echo "<p>Estás usando Internet Explorer</p>" }
else
{ echo "<p>¡Eres bienvenido en este lugar!</p>" } ?>
La respuesta en HTML
HolaSu nombre es Elisa CalderónTiene 21 añosEstá usando Internet Explorer
Spaguetti CODE<body>
<?php $lst_nombre=$_POST["nombre"];
$lst_edad=$_POST["edad"]
if (trim($lst_nombre) && trim($lst_edad)) { ?>
<p>Hola <?php $lst_nombre; ?>.
<br />Tiene <?php $lst_edad; ?> años</p> <?php }?>
<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE)
{ echo "<p>Estás usando Internet Explorer</p>" }
else
{ echo "<p>¡Eres bienvenido en este lugar!</p>" } ?>
PHP es un lenguaje de programación interpretado, diseñado originalmente para la creación de páginas web dinámicas. Es usado principalmente en interpretación del lado del servidor (server-side scripting) pero también puede ser utilizado desde una interfaz de línea de comandos o en la creación de otros tipos de programas incluyendo aplicaciones con interfaz gráfica usando las bibliotecas Qt o GTK+. PHPGTK
PROGRAMACION WEB
PHP es un acrónimo recursivo que significa PHP Hypertext Pre-processor. Fue creado originalmente por Rasmus Lerdorf en 1994. Significaba Personal Home Page Tools
PHP
PHP 5El 13 de julio de 2004, fue lanzado PHP 5, utilizando el motor Zend Engine 2.0. La versión más reciente de PHP es la 5.3.6 (17 de Marzo de 2011), que incluye todas las ventajas que provee el nuevo Zend Engine 2
PROGRAMACION WEBPHP Versiones
Mejor soporte para la Programación Orientada a Objetos, que en versiones anteriores era extremadamente rudimentario.
Mejoras de rendimiento. Mejor soporte para MySQL con extensión completamente reescrita. Mejor soporte a XML ( XPath, DOM, etc. ). Soporte nativo para SQLite. Soporte integrado para SOAP. Iteradores de datos. Manejo de excepciones. Mejoras con la implementación con Oracle.
PHP 6ESTA PENDIENTE SU LANZAMIENTO, PREVISTO PARA ESTE AÑO
PROGRAMACION WEBPHP Versiones
Las diferencias que encontraremos frente a PHP 5.* son: Soportará Unicode; Limpieza de funcionalidades obsoletas como register_globals, safe_mode, etc; PECL y eliminación de soporte ereg; Mejoras en orientación a objetos; Inclusión en el núcleo de xmlReader y xmlWriter así como Fileinfo; Return por referencia devolverá un error; Se retira el soporte de las bibliotecas FreeType1 y GD1;
¿Qué necesito para programar en PHP?
Sistema Operativo / Plataforma
Linux
Windows
Macintosh
¿Qué necesito para programar?
¿Qué necesito para programar?
Un ambiente de desarrollo
¿Recuerdas?
Servidor Web o servicio web
Apache
IIS (Internet Information Services)
Tomcat
Script de servicio PHP (depende del SO)
Servicio de Bases de Datos (si se necesita)
¿Qué necesito para programar?
Navegadores de InternetInternet Explorer
7.0
8.0
Mozilla Firefox
3.6
4.0
Apple Safari
4.0
Google Chrome
5.0
www.apachefriends.org/es/xampp.html
Pero instalar el servidor puede ser un problema ...
www.wampserver.com
¡SOLO INTÉNTALO EN CASA!
XAMPP
PHP Donde Programar
Dreamweaver: comercial, de la casa Adobe
Zend Studio: Comercial - (Zend).
PHPEclipse: plugin de Eclipse
NetBeans: libre, multiplataforma, utiliza Symfony, auto-completado de código, auto-identador, PHPDocumentor.
Aptana Studio: GPL, existe una versión comercial. Debe instalarse el plugin para PHP. Está basado en Eclipse, pero posee características que lo hacen mas deseable que el Eclipse PDT; entre ellas: auto-completado de código, auto-identador.
Komodo IDE: Komodo Edit, libre y gratuito. El IDE es licencia comercial - (Mozilla).
Quanta: GPL y gratuito, para GNU/linux con QT.
gEdit: Editor de texto por defecto en Gnome - (Linux).
Kedit: Editor de Texto por defecto de KDE – (Linux)
Entornos para Desarrollo
Lenguaje PHP
Manejador de Bases de Datos
Debemos Tener en Cuenta
Para Programar
Lenguaje HTML
Lenguaje JavaScript
Lenguaje CSS (Cascade Style Sheet)
Para diseñar la salida, Vista o Interfaz
HERRAMIENTAS Y
DESARROLLOS
Ejemplos de aplicaciones desarrolladas con PHP (poo, CMS, MVC, xmls)
* Magento
* OsCommerce
* PrestaShop
* WordPress
* Dokuwiki
* Drupal
* Mambo Open Source
* Moodle
DESARROLLOS
* phpMyAdmin
* PHP-Nuke
* phpPgAdmin
* Smarty
* Joomla
* phpBB
* UVG SCADA
* PhpCollab
* Adodb
* FPDF
* FEEDCreator
* XMLLib
* JSON
* XAJAX
* JQuery4PHP
* PHP SWF
* Doctrine / Propel (ORM)
HERRAMIENTAS
* PHPDocumentor
* Smarty
* Xtemplates
* nuSoap
* PEAR
* Y Mas…
Librerias
FRAMEWORKS
Un framework (Marco de Trabajo)
Es una plataforma de trabajo, es decir, un conjunto de herramientas que permiten desarrollar sobre un modelo común. Es como programar siguiendo pautas para lograr un producto estándar y sobre todo, fácilmente modificable y mantenible.
QUE ES UN FRAMEWORK
RUBY ON RAILS La punta del iceberg
Con Arquitectura - Módelo- Vista- Controlador
FRAMEWORKS
Desarrollos en PHP / PHP5 y POO
Orientados a
DRY : Don’t Repeat Your SelfKISS: Keep It Simple, Stupid / Keep It Short and Simple
SYMFONY
DRY KISS
Symfony es un completo framework diseñado para optimizar el desarrollo de las aplicaciones web. Para empezar, separa la lógica de negocio, la lógica de servidor y la presentación de la aplicación web. Proporciona varias herramientas y clases encaminadas a reducir el tiempo de desarrollo de una aplicación web compleja. Además, automatiza las tareas más comunes, permitiendo al desarrollador dedicarse por completo a los aspectos específicos de cada aplicación. El resultado de todas estas ventajas es que no se debe reinventar la rueda cada vez que se crea una nueva aplicación web.
SYMFONY
Características
Realizado con PHP 5, Orientado a Objetos
Fácil Instalación y Garantía de funcionalidad en Windows y *nix
Independiente del Gestor de Bases de Datos (ORM: Doctrine/Propel)
MVC
Basado en la Premisa, “Convenir en vez de Configurar”
Contienen Comentarios de PHPDocumentor, Fácil lectura, y manuales en español. www.Librosweb.es/symfony
Extensible, incorpora plugins propios y de terceros
SYMFONY
M V C
¿Por qué Symfony (para las personas)?
Para el dueño del producto:
Fácil de mantener y soportar
Producto basado en buenas prácticas y patrones de diseño
Para el desarrollador(a) / consultor(a):
Desarrollos reusables
Fácil de integrar nuevos programadores al proyecto
Organización del Proyecto
Como funciona en SYMFONY
http://localhost/index.php/mimodulo/miAccion
Frontend
http://localhost/index.php/articulos/listar
http://localhost/index.php/comentario/añadir
Como funciona en SYMFONY
http://localhost/backend.php/mimodulo/miAccion
Backend
http://localhost/backend.php/articulo/crear
http://localhost/backend.php/rss/listarRecientes
Generador de administración (“Mantenimientos”)
Framework de formularios y validaciones
Herramientas de depuración
Herramientas de depuración
Plugins
SITIOS WEB CREADOS CON SYMFONY
http://trac.symfony-project.org/wiki/ApplicationsDevelopedWithSymfony
www.symfony-project.com
Closed Sourcewww.symfony-project.com: The symfony website itself is built with symfonyArticle Gold: Popular Articles Directory built on Symfony 1.4 (by Xenyo Ltd.)Security Monitoring: Our security monitoring appliances is build with symfony.Refactory.org: A public, multi-language code snippet library that anyone can editMerchant Pilot CRM : A CRM for the credit card processing and sales agent industry.sociallynotable.com: An Amazon.com affiliate website built with Symfony2 and Doctrine MongoDB ODM and lets you shop for products that are popular on Amazon.com ranked by what is being mentioned the most on Twitter!The Source CookBook: A Cookbook to keep and show your source code snippets. The recipes can be embedded everywhere and are beautifully highlighted especifically for every language.www.onlineradioz.com: Listen to your favorite online radio stations with playlist information and enjoy! (Build with symfony 1.2 and Doctrine)Perq: A business application for employee leave time. Built on Symfony 1.2, Doctrine, and SwiftMailer?. Integrated with Paypal.http://dpu.pmsipilot.com : free application to fully operate a (french) hospital emergency service - DPU est une solution complète, ergonomique et gratuite de gestion des dossiers patients entièrement dédiée aux services d’urgences.Blidoo: A generalist classified ads site.
SITIOS WEB CREADOS CON SYMFONY
QUE SE
NECESITA
SYMFONY
DEMOSTRACIÓN
LO DIVERTIDO
CreateReadUpdateDetele
En 10 Minutos?
Aplicación CRUD
Web oficial
www.symfony-project.org
Comunidad ¡EN ESPAÑOL!
www.symfony.es
Documentación ¡EN ESPAÑOL!
librosweb.es/symfony
www.symfony-project.org/jobeet/1_4/Doctrine/es/
Cheat sheets (Hojas resumen)
www.symfony.es/documentacion/chuletas/
Comienza a usar Symfony
“La inteligencia consiste no sólo en el conocimiento, sino también en la destreza de aplicar los conocimientos en la práctica”
Aristóteles.
!!!!GRACIAS!!!!
FRIKI DE PHP <?php echo $Framework->symfony();?>
FRIKI DE PHP<?php echo $Framework->symfony();?>
Ing. Carlos A Salazare-mail : [email protected] : @ElRuzoBlog : http://es.debugmodeon.com/usuario/csalazart/