SlideShare ist ein Scribd-Unternehmen logo
1 von 59
<?php en el 2012
   @asiermarques
Asier @asiermarques
Programador en php desde 2002
# Fundador de Simettric
# Socio y director técnico en 4visionsmanager.com
# Web Architect, Geek.




linkedin.com/in/asier
Hechos
<?php es
• Usado por el 77.8% de los sitios web existentes según
  W3Techs

• El sexto lenguaje con más proyectos en github

• El tercer lenguaje con más proyectos en sourceforge

• Usado en sitios de alto tráfico como wikipedia.org,
  facebook.com, baidu.com, vk.com, flickr.com, mail.ru,
  dailymotion.com..
¿por qué <?php
• Es un lenguaje que te permite hacer scripts funcionales en
  poco tiempo.

• Está soportado por prácticamente el 100% de todos los
  proveedores de internet.

• Dispone de una comunidad INCREÍBLEMENTE grande.

• No sólo lo pueden usar programadores.

• No es un lenguaje para perfeccionistas, pero
  programadores perfeccionistas pueden usarlo.
Programadores
<?php programadores
        Matt Mullenweg
        Creó WordPress con php en el 2004

        Actualmente dirige Automattic,
        empresa en la que además de
        wordpress.com, han salido proyectos
        como gravatar.com o akismet.com.
<?php programadores
        Fabien Potencier
        Creador del framework symfony1 con
        php5 en el 2005

        En el 2010 crea Symfony2, el proyecto
        php con más comunidad en github.

        Es creador y mantiene otros proyectos
        open source relevantes como
        Swiftmailer o Doctrine.

        Actualmente CEO de Sensio Labs
<?php programadores
        Derek Sivers
        Sin ser programador (era músico) creó
        cdbaby.com en 1998, con php. Se
        convirtió en el mayor vendedor de
        música de internet con 100 millones
        de dólares en ventas con más de
        150.000 artistas.

        En 2005 intentó reescribir cdbaby en
        RubyOnRails, pero cambió de idea y lo
        reescribió en php sin frameworks en
        dos meses.
<?php programadores
Historia
<?php 1994
• Se estrena Stargate y Pulp Fiction

• Rasmus Lerdorf (@rasmus), crea un toolkit
  CGI en C llamado “Personal Home Page Tools”
  para hacer su currículum online.
Personal Home Page Tools
<?php 1995-1996
• Rasmus Lerdorf, reescribe en dos ocasiones
  completamente PHPTools y crea lo que se
  conoce como PHP/FI.

• En 1998 había 60.000 dominios utilizando
  php, el 1% de todo internet.
PHP/FI
<?php 1998
• Andi Gutmans y Zeev Suraski se unen al proyecto de
  Rasmus Lerdorf, creando un lenguaje independiente y no
  sólo un Toolkit de librerías.

• PHP es conocido ahora como Hypertext Preprocessor y
  comenzaría con la versión 3

• PHP3 es extensible, por lo que miles de programadores se
  unen al proyecto aportando módulos de todo tipo

• El proyecto PHP/FI desaparece, PHP3 está instalado ya en el
  10% de servidores de internet.
<?php 2000
• Andi Gutmans y Zeev Suraski crean el motor
  Zend, que da vida a php4.

• PHP4 introduce algunas características
  importantes como una aproximación a la
  Orientación a Objetos.

• Aparecen canales donde conseguir extensiones y
  librerías como PECLy PEAR
<?php 2004
• Aparece php5 con un potente y renovado motor
  Zend.

• La orientación a objetos es la característica y
  mejora principal de este lenguaje.

• Se consolidan motores de templates como
  Smarty, que permite eliminar el código spaguetti

• Se introduce Reflection.
<?php 2008
• Aparece php5.3.

• Mejora el rendimiento e introduce características
  nuevas como los namespaces y los closures.

• Maduran y se establecen frameworks que hacen
  uso de patrones de diseño y buenas prácticas
  como Symfony, CakePHP o ZendFramework.
<?php 2011
• Aparece php5.4

• Mejora la sintaxis del lenguaje, se introducen
  nuevas features como Traits y un servidor web
  embebido.
El Lenguaje
Características destacables
• Interpretado

• Tipado automático

• Extensible

• Multiplataforma

• Formado por un gran catálogo de funciones, poco
  a poco transformándose en Clases.
POO en PHP

• Clases abstractas y métodos abstractos, estáticos

• Scopes finales, protected, private, public

• Interfaces

• No hay herencia múltiple, pero hay Traits (php5.4)

• Métodos mágicos

• Reflection
Arrays
• array() o []

• Los arrays pueden contener elementos de todo
  tipo, strings, objetos, arrays, int..

• Sirven también para definir callbacks en métodos
  de clases
   – $array = array( “nombre de clave” o $instancia, “método” )
   – call_user_func($array); o $array() en php5.4
PHP5.4
• Novedades en declaración de arrays, array
  dereferencing

• Traits

• Upload progress a través de variable de sessión
  PHP_SESSION_UPLOAD_PROGRESS

• Binary notation: 0b10110
PHP5.4
• Interfaz JSONserializable

• Servidor web integrado

• Class member access on instantiation
  – {new Class}->metodo();

• Arrays como closures
Arrays
Arrays
Métodos mágicos
Traits
Reflection
Namespaces
Closures
Utilidades.
i18n e i10n
• mb_string

• get_text

• intl
   – Clases Locale, Number_Format

• DateTime, DateTimezone
Frameworks
• Symfony2 Framework
  – Symfony2 Components

• Zend Framework

• Kohana

• Microframeworks: Slim, Silex
Symfony2 Components:
             ClassLoader

• Simplifica al máximo el autoload de clases en
  php.

• Sigue la convención PSR-0 y Zend para cargar los
  archivos.

• Permite cachear en APC y hacer nuestros propios
  sistemas de caché
ClassLoader
Symfony2 Components: Routing
• Nos permite tener un potente sistema de
  routing en nuestra aplicación.

• Permite volcar las reglas al .htaccess de forma
  automática.

• Permite manejar rutas con caracteres unicode.
Routing
Symfony2 Components: Console
• Permite crear aplicaciones de línea de
  comandos

• Cada comando es una clase

• Los menús se generan automáticamente
+componentes de Symfony2
• Validator

• HttpFoundation

• Event Dispatcher

• Finder
Composer
• Gestión de dependencias de paquetes para
  php

• Dispone de un servicio online de provisión de
  paquetes (packagist.org), pero también se
  integra con git, svn y con accesos ftp.
Composer
Composer
PHPUnit
• La herramienta más utilizada en php para
  realizar tests unitarios.

• Integrado en la mayoría de IDEs y servidores
  de integración continua.
PHPUnit
Twig
• Motor de templates inspirada en el sistema de
  templates del framework para Python django.

• El perfecto sustituto de Smarty.

• Dispone de extensión C para dotarle de mayor
  rendimiento.

• Es simple, extensible, elegante y potente.
Twig
Monolog
• Potente sistema de log para PHP

• Dispone de varios handlers para escribir los
  logs al disco, enviarlos por email, enviarlos a
  firebug mediante headers en los http
  response, al syslog, a ChromePHP

• Nos da la opción de crear nuestros propios
  handlers.
SwiftMailer
• La mejor opción para enviar emails desde PHP

• Permite autenticación SMTP, envío de
  adjuntos, correos como HTML..

• Nos da la opción de crear nuevos sistemas de
  envío, por defecto nos permite enviar por
  SMTP, con la función mail de php, atacar a la
  MTA de sendmail..
SwiftMailer
Doctrine2
• El ORM y DBAL más serio para PHP

• Se basa en Entidades

• Permite trabajar con los motores de datos soportados por PDO y
  MongoDB

• Es extensible y personalizable para otros motores de base de datos.

• Trae una herramienta de consola que permite crear el esquema de
  la base de datos desde las Entidades y operar directamente con la
  base de datos e incluso hacer ingeniería inversa de un esquema
  existente.
Doctrine2
APC
• Opcode cache para PHP. Optimiza y cache el
  código intermedio en memoria.

• Permite también almacenar de forma local
  información en caché.
Entre otras muchas..
Gracias, ¿preguntas?
Asier Marqués
@asiermarques

Weitere ähnliche Inhalte

Was ist angesagt? (20)

Php programating
Php programatingPhp programating
Php programating
 
Php ppt
Php pptPhp ppt
Php ppt
 
Ruby on the Rails
Ruby on the RailsRuby on the Rails
Ruby on the Rails
 
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
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2
 
Curso Php
Curso PhpCurso Php
Curso Php
 
Aplicaciones web con php y my sql
Aplicaciones web con php y my sqlAplicaciones web con php y my sql
Aplicaciones web con php y my sql
 
Tema1
Tema1Tema1
Tema1
 
Introduccion a php
Introduccion a phpIntroduccion a php
Introduccion a php
 
Tutorial php basico
Tutorial php basicoTutorial php basico
Tutorial php basico
 
Composer: Gestionando dependencias en PHP
Composer: Gestionando dependencias en PHP Composer: Gestionando dependencias en PHP
Composer: Gestionando dependencias en PHP
 
Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
 
CodeIgniter
CodeIgniterCodeIgniter
CodeIgniter
 
DEFINICION DE Php
DEFINICION DE PhpDEFINICION DE Php
DEFINICION DE Php
 
Servicio apache gnu linux-centos ::: http://leymebamba.com
Servicio apache  gnu linux-centos  ::: http://leymebamba.comServicio apache  gnu linux-centos  ::: http://leymebamba.com
Servicio apache gnu linux-centos ::: http://leymebamba.com
 
Curso TIC de PHP y MSQL Parte 1
Curso TIC de PHP y MSQL Parte 1Curso TIC de PHP y MSQL Parte 1
Curso TIC de PHP y MSQL Parte 1
 
Php jessi
Php jessiPhp jessi
Php jessi
 
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
 
Apache
ApacheApache
Apache
 
(Desarrollo web).manual.php.5
(Desarrollo web).manual.php.5(Desarrollo web).manual.php.5
(Desarrollo web).manual.php.5
 

Ähnlich wie BilboStack - Php en el 2012

Ähnlich wie BilboStack - Php en el 2012 (20)

BD_EQ6_INV_PHP
BD_EQ6_INV_PHPBD_EQ6_INV_PHP
BD_EQ6_INV_PHP
 
Lenguaje PHP
Lenguaje PHPLenguaje PHP
Lenguaje PHP
 
Php (hipertex pre processor)
Php (hipertex pre processor)Php (hipertex pre processor)
Php (hipertex pre processor)
 
Programacion web
Programacion webProgramacion web
Programacion web
 
Programacion web
Programacion webProgramacion web
Programacion web
 
Programacion web
Programacion webProgramacion web
Programacion web
 
Programacion web
Programacion webProgramacion web
Programacion web
 
Programacion web
Programacion webProgramacion web
Programacion web
 
Programacion web
Programacion webProgramacion web
Programacion web
 
Programacion web
Programacion webProgramacion web
Programacion web
 
Programacion web
Programacion webProgramacion web
Programacion web
 
Programacion web
Programacion webProgramacion web
Programacion web
 
Programacion web
Programacion webProgramacion web
Programacion web
 
Programacion web
Programacion webProgramacion web
Programacion web
 
Programacion web
Programacion webProgramacion web
Programacion web
 
Programacion web
Programacion webProgramacion web
Programacion web
 
Programacion web
Programacion webProgramacion web
Programacion web
 
Programacion web
Programacion webProgramacion web
Programacion web
 
Generalidades de Php
Generalidades de PhpGeneralidades de Php
Generalidades de Php
 
15 servidor php
15 servidor php15 servidor php
15 servidor php
 

Mehr von Asier Marqués

Desarrollo código mantenible en WordPress utilizando Symfony
Desarrollo código mantenible en WordPress utilizando SymfonyDesarrollo código mantenible en WordPress utilizando Symfony
Desarrollo código mantenible en WordPress utilizando SymfonyAsier Marqués
 
Creando Productos SaaS
Creando Productos SaaSCreando Productos SaaS
Creando Productos SaaSAsier Marqués
 
WordCamp Cantabria - Código mantenible con WordPress
WordCamp Cantabria  - Código mantenible con WordPressWordCamp Cantabria  - Código mantenible con WordPress
WordCamp Cantabria - Código mantenible con WordPressAsier Marqués
 
Código mantenible, en Wordpress.
Código mantenible, en Wordpress.Código mantenible, en Wordpress.
Código mantenible, en Wordpress.Asier Marqués
 
Ejecución de servicios digitales y negocios en Internet
Ejecución de servicios digitales y negocios en InternetEjecución de servicios digitales y negocios en Internet
Ejecución de servicios digitales y negocios en InternetAsier Marqués
 
Desarrollo de Mobile Web Apps
Desarrollo de Mobile Web AppsDesarrollo de Mobile Web Apps
Desarrollo de Mobile Web AppsAsier Marqués
 
Presentación de la plataforma abierta Ubiqarama.org
Presentación de la plataforma abierta Ubiqarama.orgPresentación de la plataforma abierta Ubiqarama.org
Presentación de la plataforma abierta Ubiqarama.orgAsier Marqués
 
Calidad, IC y Entrega contínua en Symfony2 con Azure - Parte 1
Calidad, IC y Entrega contínua en Symfony2 con Azure - Parte 1Calidad, IC y Entrega contínua en Symfony2 con Azure - Parte 1
Calidad, IC y Entrega contínua en Symfony2 con Azure - Parte 1Asier Marqués
 
Albero tech Day - De web a móvil con xamarin
Albero tech Day - De web a móvil con xamarinAlbero tech Day - De web a móvil con xamarin
Albero tech Day - De web a móvil con xamarinAsier Marqués
 
Bilbostack 2014: De web a móvil con Xamarin
Bilbostack 2014: De web a móvil con XamarinBilbostack 2014: De web a móvil con Xamarin
Bilbostack 2014: De web a móvil con XamarinAsier Marqués
 
APIs REST #devfestBilbao
APIs REST #devfestBilbaoAPIs REST #devfestBilbao
APIs REST #devfestBilbaoAsier Marqués
 
Silex para aplicaciones web MVC
Silex para aplicaciones web MVCSilex para aplicaciones web MVC
Silex para aplicaciones web MVCAsier Marqués
 
Servicios REST - PucelaTechDay
Servicios REST - PucelaTechDayServicios REST - PucelaTechDay
Servicios REST - PucelaTechDayAsier Marqués
 
Desarrollo de aplicaciones Windows8 para desarrolladores de internet
Desarrollo de aplicaciones Windows8 para desarrolladores de internetDesarrollo de aplicaciones Windows8 para desarrolladores de internet
Desarrollo de aplicaciones Windows8 para desarrolladores de internetAsier Marqués
 
4VisionsManager en WebDevBilbao
4VisionsManager en WebDevBilbao4VisionsManager en WebDevBilbao
4VisionsManager en WebDevBilbaoAsier Marqués
 
Proyectos fallidos: Rooms.fm en #webdevbilbao
Proyectos fallidos: Rooms.fm en #webdevbilbaoProyectos fallidos: Rooms.fm en #webdevbilbao
Proyectos fallidos: Rooms.fm en #webdevbilbaoAsier Marqués
 
Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Asier Marqués
 

Mehr von Asier Marqués (20)

Desarrollo código mantenible en WordPress utilizando Symfony
Desarrollo código mantenible en WordPress utilizando SymfonyDesarrollo código mantenible en WordPress utilizando Symfony
Desarrollo código mantenible en WordPress utilizando Symfony
 
Creando Productos SaaS
Creando Productos SaaSCreando Productos SaaS
Creando Productos SaaS
 
Introducción a Bolt
Introducción a BoltIntroducción a Bolt
Introducción a Bolt
 
WordCamp Cantabria - Código mantenible con WordPress
WordCamp Cantabria  - Código mantenible con WordPressWordCamp Cantabria  - Código mantenible con WordPress
WordCamp Cantabria - Código mantenible con WordPress
 
PHP en el 2015
PHP en el 2015PHP en el 2015
PHP en el 2015
 
Código mantenible, en Wordpress.
Código mantenible, en Wordpress.Código mantenible, en Wordpress.
Código mantenible, en Wordpress.
 
Ejecución de servicios digitales y negocios en Internet
Ejecución de servicios digitales y negocios en InternetEjecución de servicios digitales y negocios en Internet
Ejecución de servicios digitales y negocios en Internet
 
Desarrollo de Mobile Web Apps
Desarrollo de Mobile Web AppsDesarrollo de Mobile Web Apps
Desarrollo de Mobile Web Apps
 
Presentación de la plataforma abierta Ubiqarama.org
Presentación de la plataforma abierta Ubiqarama.orgPresentación de la plataforma abierta Ubiqarama.org
Presentación de la plataforma abierta Ubiqarama.org
 
Calidad, IC y Entrega contínua en Symfony2 con Azure - Parte 1
Calidad, IC y Entrega contínua en Symfony2 con Azure - Parte 1Calidad, IC y Entrega contínua en Symfony2 con Azure - Parte 1
Calidad, IC y Entrega contínua en Symfony2 con Azure - Parte 1
 
Albero tech Day - De web a móvil con xamarin
Albero tech Day - De web a móvil con xamarinAlbero tech Day - De web a móvil con xamarin
Albero tech Day - De web a móvil con xamarin
 
Bilbostack 2014: De web a móvil con Xamarin
Bilbostack 2014: De web a móvil con XamarinBilbostack 2014: De web a móvil con Xamarin
Bilbostack 2014: De web a móvil con Xamarin
 
APIs REST #devfestBilbao
APIs REST #devfestBilbaoAPIs REST #devfestBilbao
APIs REST #devfestBilbao
 
Silex para aplicaciones web MVC
Silex para aplicaciones web MVCSilex para aplicaciones web MVC
Silex para aplicaciones web MVC
 
Servicios REST - PucelaTechDay
Servicios REST - PucelaTechDayServicios REST - PucelaTechDay
Servicios REST - PucelaTechDay
 
Desarrollo de aplicaciones Windows8 para desarrolladores de internet
Desarrollo de aplicaciones Windows8 para desarrolladores de internetDesarrollo de aplicaciones Windows8 para desarrolladores de internet
Desarrollo de aplicaciones Windows8 para desarrolladores de internet
 
REST - deSymfony2012
REST - deSymfony2012REST - deSymfony2012
REST - deSymfony2012
 
4VisionsManager en WebDevBilbao
4VisionsManager en WebDevBilbao4VisionsManager en WebDevBilbao
4VisionsManager en WebDevBilbao
 
Proyectos fallidos: Rooms.fm en #webdevbilbao
Proyectos fallidos: Rooms.fm en #webdevbilbaoProyectos fallidos: Rooms.fm en #webdevbilbao
Proyectos fallidos: Rooms.fm en #webdevbilbao
 
Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2
 

Kürzlich hochgeladen

Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 

Kürzlich hochgeladen (20)

Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 

BilboStack - Php en el 2012

  • 1. <?php en el 2012 @asiermarques
  • 2. Asier @asiermarques Programador en php desde 2002 # Fundador de Simettric # Socio y director técnico en 4visionsmanager.com # Web Architect, Geek. linkedin.com/in/asier
  • 4. <?php es • Usado por el 77.8% de los sitios web existentes según W3Techs • El sexto lenguaje con más proyectos en github • El tercer lenguaje con más proyectos en sourceforge • Usado en sitios de alto tráfico como wikipedia.org, facebook.com, baidu.com, vk.com, flickr.com, mail.ru, dailymotion.com..
  • 5. ¿por qué <?php • Es un lenguaje que te permite hacer scripts funcionales en poco tiempo. • Está soportado por prácticamente el 100% de todos los proveedores de internet. • Dispone de una comunidad INCREÍBLEMENTE grande. • No sólo lo pueden usar programadores. • No es un lenguaje para perfeccionistas, pero programadores perfeccionistas pueden usarlo.
  • 6.
  • 7.
  • 9. <?php programadores Matt Mullenweg Creó WordPress con php en el 2004 Actualmente dirige Automattic, empresa en la que además de wordpress.com, han salido proyectos como gravatar.com o akismet.com.
  • 10. <?php programadores Fabien Potencier Creador del framework symfony1 con php5 en el 2005 En el 2010 crea Symfony2, el proyecto php con más comunidad en github. Es creador y mantiene otros proyectos open source relevantes como Swiftmailer o Doctrine. Actualmente CEO de Sensio Labs
  • 11. <?php programadores Derek Sivers Sin ser programador (era músico) creó cdbaby.com en 1998, con php. Se convirtió en el mayor vendedor de música de internet con 100 millones de dólares en ventas con más de 150.000 artistas. En 2005 intentó reescribir cdbaby en RubyOnRails, pero cambió de idea y lo reescribió en php sin frameworks en dos meses.
  • 14. <?php 1994 • Se estrena Stargate y Pulp Fiction • Rasmus Lerdorf (@rasmus), crea un toolkit CGI en C llamado “Personal Home Page Tools” para hacer su currículum online.
  • 16. <?php 1995-1996 • Rasmus Lerdorf, reescribe en dos ocasiones completamente PHPTools y crea lo que se conoce como PHP/FI. • En 1998 había 60.000 dominios utilizando php, el 1% de todo internet.
  • 18. <?php 1998 • Andi Gutmans y Zeev Suraski se unen al proyecto de Rasmus Lerdorf, creando un lenguaje independiente y no sólo un Toolkit de librerías. • PHP es conocido ahora como Hypertext Preprocessor y comenzaría con la versión 3 • PHP3 es extensible, por lo que miles de programadores se unen al proyecto aportando módulos de todo tipo • El proyecto PHP/FI desaparece, PHP3 está instalado ya en el 10% de servidores de internet.
  • 19. <?php 2000 • Andi Gutmans y Zeev Suraski crean el motor Zend, que da vida a php4. • PHP4 introduce algunas características importantes como una aproximación a la Orientación a Objetos. • Aparecen canales donde conseguir extensiones y librerías como PECLy PEAR
  • 20. <?php 2004 • Aparece php5 con un potente y renovado motor Zend. • La orientación a objetos es la característica y mejora principal de este lenguaje. • Se consolidan motores de templates como Smarty, que permite eliminar el código spaguetti • Se introduce Reflection.
  • 21. <?php 2008 • Aparece php5.3. • Mejora el rendimiento e introduce características nuevas como los namespaces y los closures. • Maduran y se establecen frameworks que hacen uso de patrones de diseño y buenas prácticas como Symfony, CakePHP o ZendFramework.
  • 22. <?php 2011 • Aparece php5.4 • Mejora la sintaxis del lenguaje, se introducen nuevas features como Traits y un servidor web embebido.
  • 24. Características destacables • Interpretado • Tipado automático • Extensible • Multiplataforma • Formado por un gran catálogo de funciones, poco a poco transformándose en Clases.
  • 25. POO en PHP • Clases abstractas y métodos abstractos, estáticos • Scopes finales, protected, private, public • Interfaces • No hay herencia múltiple, pero hay Traits (php5.4) • Métodos mágicos • Reflection
  • 26. Arrays • array() o [] • Los arrays pueden contener elementos de todo tipo, strings, objetos, arrays, int.. • Sirven también para definir callbacks en métodos de clases – $array = array( “nombre de clave” o $instancia, “método” ) – call_user_func($array); o $array() en php5.4
  • 27. PHP5.4 • Novedades en declaración de arrays, array dereferencing • Traits • Upload progress a través de variable de sessión PHP_SESSION_UPLOAD_PROGRESS • Binary notation: 0b10110
  • 28. PHP5.4 • Interfaz JSONserializable • Servidor web integrado • Class member access on instantiation – {new Class}->metodo(); • Arrays como closures
  • 37. i18n e i10n • mb_string • get_text • intl – Clases Locale, Number_Format • DateTime, DateTimezone
  • 38. Frameworks • Symfony2 Framework – Symfony2 Components • Zend Framework • Kohana • Microframeworks: Slim, Silex
  • 39. Symfony2 Components: ClassLoader • Simplifica al máximo el autoload de clases en php. • Sigue la convención PSR-0 y Zend para cargar los archivos. • Permite cachear en APC y hacer nuestros propios sistemas de caché
  • 41. Symfony2 Components: Routing • Nos permite tener un potente sistema de routing en nuestra aplicación. • Permite volcar las reglas al .htaccess de forma automática. • Permite manejar rutas con caracteres unicode.
  • 43. Symfony2 Components: Console • Permite crear aplicaciones de línea de comandos • Cada comando es una clase • Los menús se generan automáticamente
  • 44. +componentes de Symfony2 • Validator • HttpFoundation • Event Dispatcher • Finder
  • 45. Composer • Gestión de dependencias de paquetes para php • Dispone de un servicio online de provisión de paquetes (packagist.org), pero también se integra con git, svn y con accesos ftp.
  • 48. PHPUnit • La herramienta más utilizada en php para realizar tests unitarios. • Integrado en la mayoría de IDEs y servidores de integración continua.
  • 50. Twig • Motor de templates inspirada en el sistema de templates del framework para Python django. • El perfecto sustituto de Smarty. • Dispone de extensión C para dotarle de mayor rendimiento. • Es simple, extensible, elegante y potente.
  • 51. Twig
  • 52. Monolog • Potente sistema de log para PHP • Dispone de varios handlers para escribir los logs al disco, enviarlos por email, enviarlos a firebug mediante headers en los http response, al syslog, a ChromePHP • Nos da la opción de crear nuestros propios handlers.
  • 53. SwiftMailer • La mejor opción para enviar emails desde PHP • Permite autenticación SMTP, envío de adjuntos, correos como HTML.. • Nos da la opción de crear nuevos sistemas de envío, por defecto nos permite enviar por SMTP, con la función mail de php, atacar a la MTA de sendmail..
  • 55. Doctrine2 • El ORM y DBAL más serio para PHP • Se basa en Entidades • Permite trabajar con los motores de datos soportados por PDO y MongoDB • Es extensible y personalizable para otros motores de base de datos. • Trae una herramienta de consola que permite crear el esquema de la base de datos desde las Entidades y operar directamente con la base de datos e incluso hacer ingeniería inversa de un esquema existente.
  • 57. APC • Opcode cache para PHP. Optimiza y cache el código intermedio en memoria. • Permite también almacenar de forma local información en caché.