Primeros pasos con Laravel 5

June 18, 2021

Laravel, es uno de los framework en PHP que está teniendo mayor aceptación en los últimos años debido a la simplicidad en la sintaxis, la elegancia en la escritura, la potencia de Composer y Artisan para su manejo y los complementos con los que cuenta, hacen que PHP no se quede en el olvido y vuelva a ser rescatado. Gracias a Laravel podemos tener nuestros proyectos con un lenguaje moderno, rápido, eficiente y profesional.

Laravel ha venido evolucionando a lo largo de estos últimos años, con la salida de la versión 5 podemos notar lo maduro que se encuentra este framework; para probar la potencia crearemos o activaremos el módulo de autenticación que nos proporciona Laravel con su instalación.

Comencemos desde el principio (La instalación).

Nuestro fiel amigo Composer se encargará de realizar mucho del trabajo por nosotros al realizar la instalación.

Con el comando composer create-project podemos comenzar la instalación de manera automática, el se encargará de descargar todos los componentes del framework.

create-project

El paquete del framework se llama laravel/laravel y el directorio donde se creará el proyecto lo hemos llamado Laravel5. Al completar nuestra instalación nuestros files quedan de la siguiente manera:

estructura-laravel

Debemos recalcar que en esta versión la estructura fue cambiada para un mejor control en el flujo de la aplicación, estaremos enfocados principalmente en la carpeta app, en ella podemos conseguir los routes y los controllers.

Para probar nuestra instalación solo debemos ejecutar en consola el comando php artisan serve

artisan-serve

Como podemos notar en nuestra consola, nuestra app está escuchando en el puerto 8000, copiamos la dirección y probamos en el navegador.

run-laravel

Perfecto, una instalación bastante limpia.

Ahora entremos un poco en detalle, como comente al principio de la publicación queremos implementar el servicio de autenticación que incorpora Laravel, para ello principalmente comencemos por revisar los routes el cual se encuentra en el archivo routes.php (para acceder a él nos vamos a la carpeta app/Http/routes.php).

 
Route::get('/', 'WelcomeController@index');

Route::get('home', 'HomeController@index');

Route::controllers([
    'auth' => 'Auth\AuthController',
    'password' => 'Auth\PasswordController',
]);

Si prestamos atención a las rutas declaradas podemos notar que existen 2, la raíz (la cual es el index al cual acabamos de ingresar) y la ruta home. Probemos esta última.

login-view

Interesante, cuando intentamos acceder a la ruta home nos redirecciona a una pantalla de login por defecto para laravel, para implementar la funcionalidad de login necesitamos realizar varios pasos ya que si probamos inciar sesión nos generará un error indicando que la tabla users no existe, comencemos con estos pasos.

Principalmente debemos crear nuestra base de datos para la aplicación y configurarla en nuestras variables de entorno.

create-database

Con la base de datos creada debemos acceder al archivo .env que se encuentra en la raíz de nuestro directorio, en el debemos setear los valores para poder realizar la conexión de manera exitosa.

 
APP_ENV=local
APP_DEBUG=true
APP_KEY=pIVKIjshiWC0GCKiE0pFGGO45L2BDJIX

DB_HOST=localhost
DB_DATABASE=laravel5
DB_USERNAME=TuUsuario
DB_PASSWORD=TuPassword

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null

Si revisamos el archivo configuración (config/database.php) de conexión con base de datos notaremos que hace llamado a las variables en esta configuración.

 
'connections' => [
        'mysql' => [
            'driver'    => 'mysql',
            'host'      => env('DB_HOST', 'localhost'),
            'database'  => env('DB_DATABASE', 'forge'),
            'username'  => env('DB_USERNAME', 'forge'),
            'password'  => env('DB_PASSWORD', ''),
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
        ],
    ],

Hasta este punto ya tenemos nuestra aplicación configurada, nos falta un punto importante que es la creación de la tabla de usuarios para poder acceder a través del formulario de autenticación, para este punto utilizaremos las migraciones o migrations. Si nos vamos al directorio database/migrations/ observaremos dos archivos de migración creados con la estructura de las tablas.

 
class CreateUsersTable extends Migration {
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('users', function(Blueprint $table)
        {
            $table->increments('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->string('password', 60);
            $table->rememberToken();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('users');
    }
}

Para poder realizar estas migraciones debemos ejecutar el comando php artisan migrate

migrate-database

Si revisamos nuestra base de datos notaremos que se han creado dos nuevas tablas y una tabla de referencia de las migraciones ejecutadas.

show-tables

En este punto nuestra aplicación estaría funcional, probemos registrando en la tabla users y probando el login proporcionado por laravel. Accedemos a la ruta http://localhost:8000/auth/register y generamos un usuario.

register-user

Si todo nos ha salido bien deberíamos tener una ventana como ésta al registrar el usuario.

login

Revisamos el registro en nuestra tabla

select-user

y por ultimo probemos el método auth proporcionado por Laravel.

session

Ya tenemos un sistema de inicio de sesión con solo algunas configuraciones, esto nos da una idea del alcance que puede tener este framework que como les mencione al principio ha mejorado considerablemente con esta nueva versión.

Si estás por comenzar un nuevo proyecto o bien quieres aprender nuevas tecnologías, sin duda alguna Laravel puede ser una gran opción, su curva de aprendizaje es mucho más corta que muchos de los framework en PHP. Como lo dice su slogan The PHP Framework For Web Artisans.