Un código desordenado siempre «hablará mal de un programador». Se torna muy difícil encontrar un error dentro de un montón de líneas de código que no siguen ningún estándar o estructura lógica. Es fácil programar sin pensar que otro programador  (o tú mismo en un futuro) necesitará agregar nuevas sentencias y que gastará el doble del tiempo o más tan sólo en entender el código.

Ahora bien, quizás no eres de los «super» desordenados, te felicito, pero tal vez te gustaría asegurar que todo tu código esté sin detalles de indentación y siguiendo estándares PSR, sobre todo cuando estás trabajando en equipo y utilizando un sistema de versiones como por ejemplo: Git, ya que si subes algún desastre de código, todos los colaboradores van a tenerlo.

PHP Coding Standards Fixer es una herramienta que nos va a ayudar en el proceso de organizar el código de la aplicación, siguiendo los estándares PSR. Existen varios paquetes que te ayudan «husmeando» el código y te advertirten donde están los errores (Sniffers), pero luego, realizar todos estos cambios manualmente puede ser algo tedioso y más si el código es extenso. Muy bien, vamos a ver como podemos utilizar esta interesante herramienta:

Instalación

Voy a utilizar la instalación manual, descargamos el archivo php-cs-fixer.phar  y lo podemos guardar en cualquier parte de tu ordenador. Yo lo voy a colocar en: «C:\php\«. ¿Qué tal si lo probamos? Primero tenemos que tener código desorganizado, que te parece si tomamos los controladores que trae Laravel por defecto HomeController.php  y WelcomeController.php, quedarían algo así:

<?php

namespace App\Http\Controllers;

class WelcomeController extends Controller
{
/*
|--------------------------------------------------------------------------
| Welcome Controller
|--------------------------------------------------------------------------
|
| This controller renders the "marketing page" for the application and
| is configured to only allow guests. Like most of the other sample
| controllers, you are free to modify or remove it as you desire.
|
*/

    /**
     * Create a new controller instance.
     */
    public function __construct()
    {$this->middleware('guest');    }

    /**
     * Show the application welcome screen to the user.
     *
     * @return Response
     */
    public function index()
    {        return view('welcome');
    }
}

Si no estás usando Laravel, puedes copiar los códigos de arriba y crear dos archivos (HomeController.php y WelcomeController.php o probar la herramienta con cualquier otro código PHP que tengas a tu alcance.

En el método index de la Clase HomeControllerademás de desordenar voy a agregar un condicional de una línea, para ver los cambios, ya que este tipo de if lineal no está permitido en el estándar PSR2:

<?php

namespace App\Http\Controllers;

class HomeController extends Controller{
    /*
    |--------------------------------------------------------------------------
    | Home Controller
    |--------------------------------------------------------------------------
    |
    | This controller renders your application's "dashboard" for users that
    | are authenticated. Of course, you are free to change or remove the
    | controller as you wish. It is just here to get your app started!
    |
    */

    /**
     * Create a new controller instance.
     */
    public function __construct()
    {                                       $this->middleware('auth');
    }

    /**
     * Show the application dashboard to the user.
     *
     * @return Response
     */
    public function index()
    {
        $yes = 'si';
        
        if ($yes == 'si')
            echo 'si es igual';
        return view('home');}
}

Suficiente, ahora vamos a ejecutar nuestro código en la cónsola, dirígete a la ruta donde guardaste el archivo php-cs-fixer.phar,  en mi caso sería:

cd C:/php

Ahora ejecuto el archivo + la ruta completa de la carpeta donde están los archivos que quiero arreglar.

También puede ser la ruta a un solo archivo.

En mi caso, para mi proyecto test quedaría así:

php php-cs-fixer.phar fix C:\wamp\www\test\app\Http\Controllers

Si todo salió bien debe de arrojar un mensaje: «Fixed all files». Revisemos nuestros controladores:

<?php

namespace App\Http\Controllers;

class WelcomeController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Welcome Controller
    |--------------------------------------------------------------------------
    |
    | This controller renders the "marketing page" for the application and
    | is configured to only allow guests. Like most of the other sample
    | controllers, you are free to modify or remove it as you desire.
    |
    */

    /**
     * Create a new controller instance.
     */
    public function __construct()
    {
        $this->middleware('guest');
    }

    /**
     * Show the application welcome screen to the user.
     *
     * @return Response
     */
    public function index()
    {
        return view('welcome');
    }
}
<?php

namespace App\Http\Controllers;

class HomeController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Home Controller
    |--------------------------------------------------------------------------
    |
    | This controller renders your application's "dashboard" for users that
    | are authenticated. Of course, you are free to change or remove the
    | controller as you wish. It is just here to get your app started!
    |
    */

    /**
     * Create a new controller instance.
     */
    public function __construct()
    {
        $this->middleware('auth');
    }

    /**
     * Show the application dashboard to the user.
     *
     * @return Response
     */
    public function index()
    {
        $yes = 'si';

        if ($yes == 'si') {
            echo 'si es igual';
        }

        return view('home');
    }
}

¿Vieron el condicional y el resto del código?. Excelente, ¿No?.

Por defecto esta herramienta viene configurada con PSR2, pero podemos cambiarla pasando una opción extra al ejecutar el comando, como lo son: –level=psr0 ó –level=psr1  ó –level=symfony.

Tip: Con  la opción: --dry-run--diff nos mostrará un listado de los cambios propuestos, pero sin realizar cambios en los archivos.

Lecturas Recomendadas:

¿Qué opinas de esta herramienta?. Si te gustó el tutorial recuerda compartir y no olvides dejar tus dudas o comentarios.

Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.

Lección anterior Encapsulación y programacion orientada a objetos con PHP Lección siguiente Combinar HTML y PHP sin morir en el intento