Estructura de un Proyecto en Laravel

Si desarollamos proyectos Web usando este maravilloso framework de Laravel, tenemos que conoces como esta definida la estructura de directorio de carpeta de un proyecto Web que abordemos.

Así que vamos a conocer cada una de sus carpetas y como están organizadas y definidas.

Veamos la estructura

Vamos explicar con determinismo cada una de las carpetas.

  • routes : en esta carpeta se encuentra el fichero que ayuda a crear las rutas de cualquier recurso de nuestro proyecto de forma mas facil y segura.
  • resources/view : en esta carpeta se encuentra las vista que maneja este framework basado en el patrón de arquitectura MVC, y el potente motor de plantillas que es Blade.
  • app/Http/Controllers : carpeta donde se encuentra los archivos controladores basado en el patrón MVC.
  • config/database.php : fichero donde se encuentra la conexión para los motores de base de datos de nuestra aplicación web.
  • app/console/commands : carpeta donde puedo crear archivos y comandos propios para la consola.

Objetos y Métodos más usados:

  • Route::get([urlDestino], [funcionAnonima]) : este método del objeto Route maneja el sistema de rutas de forma muy amigable, y muestra la plantilla en el segundo parámetro de la función anónima.
  • Redirect::to([urlDestino]) : te redirecciona a la pagina definida en el parámetro.
  • Schema::create([nombreTable], [funcionAnonima] : con este método permite crear la tabla para migración, donde el primero parámetro es el nombre de la tabla.

Definir la estructura de la tabla para migración

Después de crear el nombre de la migración con el comando en artisan podemos también definir en el archivo creado dentro de la carpeta database/migrations. Veamos el código.

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateArticlesTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('articles', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->text('text');            
            $table->integer('views');
            $table->dateTime('creation_date');
            $table->timestamps();
        });
    }

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

Ahora si queremos definir las rutas de nuestros archivos en web.php de la carpeta routes


// Si queremos directametne llamas a las vistas
Route::get('/', function () {
    return view('welcome');
});


Route::get('/empleados', function() {
	return view('empleados.index');
});

Route::get('/empleados/create', function() {
	return view('empleados.create');
});

// Pero si deseamos usar el controlados por las rutas y que llamen a las vistas correspondientes
Route::get('/empleados', 'EmpleadosController@index');

Route::get('/empleados/create', 'EmpleadosController@create');

Si queremos simplificar y crear todas las rutas necesarias para el controlador.

Route::resource('empleados', 'EmpleadosController');

Deja una respuesta