PHP en el 2015

37
<?php en el 2015 @asiermarques

Transcript of PHP en el 2015

Page 1: PHP en el 2015

<?php en el 2015@asiermarques

Page 2: PHP en el 2015

meetup.com/PHP-Sevilla

Page 3: PHP en el 2015

Un poco de historia

Page 4: PHP en el 2015

@rasmus

Page 5: PHP en el 2015

1994Se 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.

Page 6: PHP en el 2015

1995-1996Rasmus 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.

Page 7: PHP en el 2015

2000Andi 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

Page 8: PHP en el 2015

2004Aparece 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.

Page 9: PHP en el 2015

2008Aparece 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.

Page 10: PHP en el 2015

2011Aparece 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.

Page 11: PHP en el 2015

2015

php7

Page 12: PHP en el 2015

declare(strict_types=1);

function add(int $a, int $b): int {

return $a + $b;

}

Page 13: PHP en el 2015

Soluciones en phppara el día a día del desarrollo web

Page 14: PHP en el 2015

Coding Standars

PSR-1 y PSR-2

Symfony y Zend coding standars

PSR-4

Page 15: PHP en el 2015

Dependencias

Composer

packagist.org

Page 16: PHP en el 2015

HTTP

HTTP Foundation

ZendHTTP

Page 17: PHP en el 2015

Templating

Twig

Blitz (Creado y utilizado por Badoo.com)

Page 18: PHP en el 2015

<!DOCTYPE html><html> <head> <title>{%block title ‘título por defecto’%}</title> </head> <body>

{% block body %}{% endblock %}

{% block javascript %}{% endblock %}

</body></html>

Page 19: PHP en el 2015

{% extends ‘layout.html.twig’ %}

{% block title ‘Últimos artículos’ %}

{% block body %}

{% for item in posts %}

<h1>{{ post.title }}</h1>

{% endfor %}

{% endblock %}

Page 20: PHP en el 2015

Assets

Assetic

WPassetic

Page 21: PHP en el 2015

{% javascripts‘/js/jquery.min.js’‘/js/bootstrap.min.js’‘/js/app.js’‘/js/app.module.js’ %}

<script src="{{ asset_url }}”></script>

{% endjavascripts %}

Page 22: PHP en el 2015

Bases de datos

PDO

Doctrine2

Propel

Eloquent

Page 23: PHP en el 2015

$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();

Page 24: PHP en el 2015

i18ni18n

• mbstring

• Symfony translation Component

i10n

• intl

• twig intl extension

Page 25: PHP en el 2015

{{ 1122.55|localizedcurrency(‘EUR’, ‘es’) }}

//1.122,55

{{ 1122.55|localizedcurrency(‘EUR’, ‘en’) }}

//1,122.55

{{ “+1day”|localizeddate(‘short’,’none’, ‘es’) }}

//17/10/15

Page 26: PHP en el 2015

Línea de comandos

Symfony Console Component

Zend Command

Page 27: PHP en el 2015

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); }}

Page 28: PHP en el 2015

Frameworks

Symfony2

Laravel

Zend

YII y otros…

Page 29: PHP en el 2015

MicroFrameworks

SlimPHP

Silex

Page 30: PHP en el 2015

$app = new Silex\Application();

$app->get( '/hola/{name}', function($name) use($app) { return 'Hola ‘. $app->escape($name);

});

$app->run();

Page 31: PHP en el 2015

Testing

PHPUnit

Behat

IC/EC con Jenkins, codeship, travis…

Page 32: PHP en el 2015

Inyección de dependencias

Symfony DependencyInjection Component

Pimple

Page 33: PHP en el 2015

CMS

WordPress

Drupal

Bolt

Joomla y otros…

Page 34: PHP en el 2015

eCommerce

Prestashop

Magento

ElCodi y otros

Page 35: PHP en el 2015

Deploy

Magallanes

Ansible

Page 36: PHP en el 2015

Recomendacionesphptherightway.com

coding standars

Inyección de dependencias

Testing

Deploy e IC

Page 37: PHP en el 2015

GraciasAsier Marqués @asiermarques