Para iniciar nuestro proyecto Laravel, lo primero es instalar los programas necesarios:
- JSON Formatter (formatea las respuestas o archivos JSON) desde aquí.
- Composer (gestor de dependencias para PHP) desde aquí.
- Node.js (gestor de librerias Javascript) desde aquí.
- Sublime Text (potente editor de texto) desde aquí.
- Xampp (servidor web local) desde aquí.
- Postman (testeo de API’s) desde aquí.
A continuación, desde la carpeta C:\xampp\htdocs de nuestro servidor local Xampp abrimos el Terminal/Consola/Shell y ejecutamos
1 |
composer global require "laravel/installer" |
con esto, habremos instalado el instalador (valga la redundancia) de Laravel de forma global, para que podamos crear proyectos de Laravel nuevos. Una vez haya terminado, ya podemos instalar un nuevo proyecto laravel tal que:
1 |
laravel new nombre_de_tu_proyecto |
Ahora, abrimos Sublime Text y añadimos ese directorio a la lista de proyectos en la parte izquierda del editor y luego pulsamos click derecho encima para abrir el Terminal. Haremos así siempre para ejecutar los comandos en el terminal.
Vamos a crear un «comando laravel» que ejecutado, nos permitirá borrar los archivos de «log» que Laravel crea para dejar constancia de los errores o de comentarios que hayamos ejecutado desde otros sitios de nuestro proyecto:
1 |
php artisan make:command ClearLogs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
use Illuminate\Console\Command; use Illuminate\Filesystem\Filesystem; use Illuminate\Support\Collection; class ClearLogs extends Command { protected $path; protected $signature = 'log:clear'; protected $description = 'Remove every log files in the log directory'; protected $files; public function __construct(Filesystem $files) { parent::__construct(); $this->files = $files; $this->path = storage_path('logs'); } public function fire() { if (! $this->path) { throw new RuntimeException('Logs path not found.'); } foreach ($this->files->glob("{$this->path}/*") as $log) { $this->files->delete($log); } $this->info('All log files cleared!'); } } |
A continuación, crearemos otro comando para borrar todas las sesiones que Laravel guarda en forma de archivos (si no lo modificamos, Laravel guarda las sesiones según el driver establecido en el archivo «.env» [SESSION_DRIVER=file]):
1 |
php artisan make:command ClearSessions |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
use Illuminate\Console\Command; use Illuminate\Filesystem\Filesystem; use Illuminate\Support\Collection; class ClearSessions extends Command { protected $signature = 'session:clear {--keep-last : Whether the last log file should be kept}'; protected $description = 'Remove every session files in the session directory'; protected $files; public function __construct(Filesystem $files) { parent::__construct(); $this->files = $files; } public function fire() { $path = $this->laravel['config']['session.files']; if (! $path) { throw new RuntimeException('Session path not found.'); } foreach ($this->files->glob("{$path}/*") as $session) { $this->files->delete($session); } $this->info('All session files cleared!'); } } |
Turno del comando que más usaremos cuando Laravel, por cualquier motivo, no reconozca las nuevas clases o archivos que hayamos creado o modificado en nuestro proyecto:
1 |
php artisan make:command Refresh |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
<?php namespace App\Console\Commands; use Illuminate\Console\Command; use Illuminate\Support\Facades\Artisan; use Illuminate\Support\Facades\Session; class Refresh extends Command { protected $signature = 'refresh'; protected $description = 'Refresh project files'; public function __construct() { parent::__construct(); } public function handle() { exec('composer dump-autoload'); Artisan::call('clear-compiled'); Artisan::call('cache:clear'); Artisan::call('route:clear'); Artisan::call('view:clear'); Artisan::call('log:clear'); Artisan::call('session:clear'); Artisan::call('optimize'); $this->info("FILES REFRESHED!!"); } } |
Por último, registramos los comandos que hemos creado anteriormente para que Laravel los incluya en su lista y podamos usarlos desde el Terminal:
1 2 3 4 5 6 7 8 9 |
class Kernel extends ConsoleKernel { protected $commands = [ Commands\ClearLogs::class, Commands\ClearSessions::class, Commands\Refresh::class, ]; . . . . } |
Ahora, con sólo ejecutar «php artisan refresh» en nuestro Terminal, limpiaremos las sesiones, el caché de vistas, los archivos de log y haremos que Laravel incluya los nuevos archivos creamos manualmente en nuestro proyecto.