Mi primera vez

PHP The Right Way

Basado en phptherightway.com

¿Para quién es esta meetup?

  • Para todo aquel que busque ser un mejor programador.
  • Para el que ve su código de ayer y piensa "¿Quien hizo esto?".
  • Para el que sabe que no tiene que reinventar la rueda.
  • El que busca no ser un godinez más.
  • Para el que le preocupa la calidad de su trabajo.
  • Para el quiere un mejor trabajo.
  • Para el que sabe que nunca se deja de aprender.

¿Qué buscamos?

De esto...

<HTML>
    <BODY>
        <MARQUEE>
        <FONT COLOR="#FF0000">
            <SCRIPT LANGUAGE="PHP">
            <?php
                echo "Hola mundo de PHP, estamos en onda.";
            ?>
            </SCRIPT>
        </FONT>
        </MARQUEE>
    </BODY>
<HTML>

A esto...


        <ul id="navigation">
        {% for item in navigation %}
            <li>
                <a href="{{ item.href }}">
                {{ item.caption }}
                </a>
            </li>
        {% endfor %}
        </ul>

        <h1>{{ page_title }}</h1>

        {{ variable }}

De esto...

<?php

include("../librerias/conexion.php");
include("../librerias/fckeditor/fckeditor.php");
include_once("../librerias/html.php");
include_once("../librerias/html_admon.php");
include_once("../librerias/FunGral.php");

class administracion extends conexion { }

A esto...

<?php

use MyVendor\Connection;

class Admin extends Connection { }
<?php

require '../vendor/autoload.php';

¿Cómo empiezo?

Actualiza tu versión de PHP

Usa Composer

Usa librerías hechas

www.packagist.org

Conoce la PHP-FIG

www.php-fig.org

Frameworks

Codeigniter no es el único framework, ni el más nuevo.

 

Conoce:

  • Silex
  • Lumen
  • Laravel
  • Symfony

Conoce lo nuevo

Funciones anonimas

<?php


$variable = function () {

  // Do something.
    
}

$app->get('/home', function() use ($variable) {

  // Do something.
  
});

Namespaces

<?php

use MyVendor\Database\Connection;

use Symfony\Component\HttpFoundation\Request;

use RabbitMQ\Connection as RabbitConnection;

Traits

<?php

trait shareMethods {
    function getReturnType() { /*1*/ }
    function getReturnDescription() { /*2*/ }
}

class One {
    use shareMethods;
    
    public private function noooooooo()
    {
        $this->getReturnType();
    }
}

class Wawa {
    use shareMethods;

    public function run()
    {
        // ...
        $this->getReturnDescription();
        // ...
    }
}

Clases anonimas

<?php

use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;

$container->addCompilerPass(new class (
    $container->get("annotation_reader"),
    $container->get("command_dependency_resolver")) implements CompilerPassInterface {

    private $reader;

    public function __construct($reader, $resolver)
    {
        // ...
    }

    public function process(ContainerBuilder $container)
    {
        // ...
    }
});

Tipos de datos

<?php

function stringTest(string $string): string {
    echo $string;
 }

function intTest(int $integer): int {
    echo $integer;
 }

function floatTest(float $float): float {
    echo $float;
 }

http://php.net/manual/en/language.types.php

Ven a las meetups

;)

¿Cómo ayudo?

Se Speaker

Streaming
Tuitea

Es tu comunidad y llegará hasta donde tu quieras.

PHP Mexico

  • www.twitter.com/phpmx
  • phpmx.slack.com
  • fb.com/phpway
  • meetup.com

Mi primera vez

By David Flores

Mi primera vez

#PHPWay #PHPMexico #PHPTheRightWay Mexico #php

  • 1,338