Configuración y Estructura de Directorios en Laravel
1.2 Configuración del Entorno de Desarrollo
La configuración del entorno de desarrollo para Laravel es crucial para comenzar a trabajar eficientemente. Aquí tienes una guía detallada:
-
Instala PHP (versión 7.3 o superior):
- En Windows: Usa XAMPP o WampServer
- En macOS: Usa Homebrew con el comando
brew install php
- En Linux:
sudo apt-get install php
-
Instala Composer:
- Descarga el instalador desde getcomposer.org
- Ejecuta el instalador y sigue las instrucciones
-
Instala un servidor de base de datos:
- MySQL:
sudo apt-get install mysql-server
(Linux) - PostgreSQL:
brew install postgresql
(macOS)
- MySQL:
-
Configura un servidor web local:
- Apache viene incluido en XAMPP/WampServer
- Para Nginx:
sudo apt-get install nginx
(Linux)
-
Instala Node.js y NPM:
- Descarga desde nodejs.org e instala
Ejemplo de creación de un proyecto Laravel:
composer create-project laravel/laravel mi-proyecto
cd mi-proyecto
php artisan serve
Esto iniciará un servidor de desarrollo en http://localhost:8000
.
1.3 Estructura de Directorios de Laravel
La estructura de directorios de Laravel está diseñada para una organización clara y eficiente:
- app/: Contiene el código central de la aplicación
- Http/: Controladores, Middleware, Requests
- Models/: Modelos Eloquent
- Providers/: Service Providers
- config/: Archivos de configuración
- app.php: Configuración general de la aplicación
- database.php: Configuración de la base de datos
- database/:
- migrations/: Archivos de migración de base de datos
- seeders/: Clases para poblar la base de datos
- public/: Punto de entrada y assets públicos
- index.php: Archivo de entrada principal
- resources/:
- views/: Archivos de vistas Blade
- lang/: Archivos de traducción
- routes/:
- web.php: Rutas para la interfaz web
- api.php: Rutas para API
- storage/: Archivos generados por la aplicación
- logs/: Archivos de registro
- tests/: Tests automatizados
Ejemplo de estructura de un controlador en app/Http/Controllers/UserController.php
:
<?php
namespace App\Http\Controllers;
use App\Models\User;
class UserController extends Controller
{
public function index()
{
$users = User::all();
return view('users.index', compact('users'));
}
}
Ejemplo de un modelo en app/Models/User.php
:
<?php
namespace App\Models;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
protected $fillable = ['name', 'email', 'password'];
}
Esta estructura facilita la organización del código y sigue el principio de "convención sobre configuración" de Laravel.
0 Comentarios