Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
<?php en el 2015
@asiermarques
meetup.com/PHP-Sevilla
Un poco de historia
@rasmus
1994
Se estrena Stargate y Pulp Fiction
Rasmus Lerdorf (@rasmus) crea un toolkit CGI en C
llamado “Personal Home Page Tool...
1995-1996
Rasmus Lerdorf reescribe en dos ocasiones
PHPTools desde cero para crear finalmente lo que se
conoció como PHP/FI...
2000
Andi Gutmans y Zeev Suraski crean el motor Zend,
que da vida a php4.
PHP4 introduce algunas características important...
2004
Aparece php5 con un potente y renovado motor
Zend.
La orientación a objetos es la característica y mejora
principal d...
2008
Aparece php5.3.
Mejora el rendimiento e introduce características
nuevas como los namespaces y los closures.
Maduran ...
2011
Aparece php5.4
Mejora el rendimiento e introduce características
nuevas como los namespaces y los closures.
Mejora la...
2015
php7
declare(strict_types=1);
function add(int $a, int $b): int {
return $a + $b;
}
Soluciones en php
para el día a día del desarrollo web
Coding Standars
PSR-1 y PSR-2
Symfony y Zend coding standars
PSR-4
Dependencias
Composer
packagist.org
HTTP
HTTP Foundation
ZendHTTP
Templating
Twig
Blitz (Creado y utilizado por
Badoo.com)
<!DOCTYPE html>
<html>
<head>
<title>{%block title ‘título por defecto’%}</title>
</head>
<body>
{% block body %}{% endblo...
{% extends ‘layout.html.twig’ %}
{% block title ‘Últimos artículos’ %}
{% block body %}
{% for item in posts %}
<h1>{{ pos...
Assets
Assetic
WPassetic
{% javascripts
‘/js/jquery.min.js’
‘/js/bootstrap.min.js’
‘/js/app.js’
‘/js/app.module.js’ %}
<script src="{{ asset_url }}...
Bases de datos
PDO
Doctrine2
Propel
Eloquent
$entityManager = $doctrine->getManager();
for($i = 0; $i<100; $i++){
$post = new Post();
$post->setId( $i );
$post->setNam...
i18n
i18n
• mbstring
• Symfony translation Component
i10n
• intl
• twig intl extension
{{ 1122.55|localizedcurrency(‘EUR’, ‘es’) }}
//1.122,55
{{ 1122.55|localizedcurrency(‘EUR’, ‘en’) }}
//1,122.55
{{ “+1day”...
Línea de comandos
Symfony Console Component
Zend Command
class SayHelloCommand extends Command
{
protected function configure()
{
$this->setName(‘say:hello’)
->addArgument('name')...
Frameworks
Symfony2
Laravel
Zend
YII y otros…
MicroFrameworks
SlimPHP
Silex
$app = new SilexApplication();
$app->get( '/hola/{name}',
function($name) use($app) {
return 'Hola ‘. $app->escape($name);...
Testing
PHPUnit
Behat
IC/EC con Jenkins, codeship, travis…
Inyección de dependencias
Symfony DependencyInjection
Component
Pimple
CMS
WordPress
Drupal
Bolt
Joomla y otros…
eCommerce
Prestashop
Magento
ElCodi y otros
Deploy
Magallanes
Ansible
Recomendaciones
phptherightway.com
coding standars
Inyección de dependencias
Testing
Deploy e IC
Gracias
Asier Marqués
@asiermarques
Próxima SlideShare
Cargando en…5
×

PHP en el 2015

1.153 visualizaciones

Publicado el

Charla para el GDG de Sevilla

Publicado en: Tecnología
  • Sé el primero en comentar

PHP en el 2015

  1. 1. <?php en el 2015 @asiermarques
  2. 2. meetup.com/PHP-Sevilla
  3. 3. Un poco de historia
  4. 4. @rasmus
  5. 5. 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.
  6. 6. 1995-1996 Rasmus Lerdorf reescribe en dos ocasiones PHPTools desde cero para crear finalmente lo que se conoció como PHP/FI En 1998 se llegó a los 60.000 dominios que utilizaban php, el 1% de Internet.
  7. 7. 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 PECL y PEAR
  8. 8. 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 espagueti Se introduce Reflection.
  9. 9. 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.
  10. 10. 2011 Aparece php5.4 Mejora el rendimiento e introduce características nuevas como los namespaces y los closures. Mejora la sintaxis del lenguaje, se introducen nuevas features como Traits y un servidor web embebido. Empieza a desarrollarse composer.
  11. 11. 2015 php7
  12. 12. declare(strict_types=1); function add(int $a, int $b): int { return $a + $b; }
  13. 13. Soluciones en php para el día a día del desarrollo web
  14. 14. Coding Standars PSR-1 y PSR-2 Symfony y Zend coding standars PSR-4
  15. 15. Dependencias Composer packagist.org
  16. 16. HTTP HTTP Foundation ZendHTTP
  17. 17. Templating Twig Blitz (Creado y utilizado por Badoo.com)
  18. 18. <!DOCTYPE html> <html> <head> <title>{%block title ‘título por defecto’%}</title> </head> <body> {% block body %}{% endblock %} {% block javascript %}{% endblock %} </body> </html>
  19. 19. {% extends ‘layout.html.twig’ %} {% block title ‘Últimos artículos’ %} {% block body %} {% for item in posts %} <h1>{{ post.title }}</h1> {% endfor %} {% endblock %}
  20. 20. Assets Assetic WPassetic
  21. 21. {% javascripts ‘/js/jquery.min.js’ ‘/js/bootstrap.min.js’ ‘/js/app.js’ ‘/js/app.module.js’ %} <script src="{{ asset_url }}”></script> {% endjavascripts %}
  22. 22. Bases de datos PDO Doctrine2 Propel Eloquent
  23. 23. $entityManager = $doctrine->getManager(); for($i = 0; $i<100; $i++){ $post = new Post(); $post->setId( $i ); $post->setName( “Sin título” + $i ); $entityManager->persist( $post ); } $entityManager->flush();
  24. 24. i18n i18n • mbstring • Symfony translation Component i10n • intl • twig intl extension
  25. 25. {{ 1122.55|localizedcurrency(‘EUR’, ‘es’) }} //1.122,55 {{ 1122.55|localizedcurrency(‘EUR’, ‘en’) }} //1,122.55 {{ “+1day”|localizeddate(‘short’,’none’, ‘es’) }} //17/10/15
  26. 26. Línea de comandos Symfony Console Component Zend Command
  27. 27. class SayHelloCommand extends Command { protected function configure() { $this->setName(‘say:hello’) ->addArgument('name'); } protected function execute(InputInterface $input, OutputInterface $output) { $name = $input->getArgument(‘name'); if ($name) { $text = 'Hello '.$name; } else { $text = 'Hello'; } $output->writeln($text); } }
  28. 28. Frameworks Symfony2 Laravel Zend YII y otros…
  29. 29. MicroFrameworks SlimPHP Silex
  30. 30. $app = new SilexApplication(); $app->get( '/hola/{name}', function($name) use($app) { return 'Hola ‘. $app->escape($name); }); $app->run();
  31. 31. Testing PHPUnit Behat IC/EC con Jenkins, codeship, travis…
  32. 32. Inyección de dependencias Symfony DependencyInjection Component Pimple
  33. 33. CMS WordPress Drupal Bolt Joomla y otros…
  34. 34. eCommerce Prestashop Magento ElCodi y otros
  35. 35. Deploy Magallanes Ansible
  36. 36. Recomendaciones phptherightway.com coding standars Inyección de dependencias Testing Deploy e IC
  37. 37. Gracias Asier Marqués @asiermarques

×