De la Laravel 11 încoace, structura de directoare a fost simplificată semnificativ față de versiunile anterioare (10 și mai vechi). Fișierele app/Http/Kernel.php și app/Console/Kernel.php au dispărut - configurarea lor s-a mutat în bootstrap/app.php.
Structura unui proiect Laravel
De la Laravel 11 încoace, structura de directoare a fost simplificată semnificativ față de versiunile anterioare (10 și mai vechi). Fișierele app/Http/Kern...
Introducere
Arborele principal de directoare
| Director | Conține |
|---|---|
app/ | Codul aplicației: Models, Http/Controllers, Http/Middleware, Providers |
bootstrap/ | app.php - configurarea centrală a aplicației; cache/ - fișiere de cache generate |
config/ | Fișiere de configurare (app, database, mail, queue, filesystems etc.) |
database/ | migrations/, seeders/, factories/ |
public/ | Punctul de intrare web (index.php), assets compilate |
resources/ | Fișiere Blade (views/), CSS, JS necompilate, fișiere de traducere |
routes/ | web.php, api.php, console.php, channels.php |
storage/ | Loguri, cache, sesiuni, fișiere încărcate de utilizatori |
tests/ | Teste automate (Feature și Unit) |
vendor/ | Pachete Composer instalate (nu se urcă în Git) |
Directorul app/ în detaliu
app/
├── Console/
│ └── Commands/ # Comenzi Artisan personalizate
├── Http/
│ ├── Controllers/ # Controllere
│ ├── Middleware/ # Middleware personalizat
│ └── Requests/ # Form Request-uri (validare)
├── Models/ # Modele Eloquent
├── Providers/ # Service Provider-i
└── Policies/ # Policies pentru autorizarebootstrap/app.php - inima configurării
Acesta este locul unde se înregistrează rutele, middleware-ul global și gestionarea excepțiilor, într-un singur fișier centralizat:
<?php
use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware;
return Application::configure(basePath: dirname(__DIR__))
->withRouting(
web: __DIR__.'/../routes/web.php',
commands: __DIR__.'/../routes/console.php',
health: '/up',
)
->withMiddleware(function (Middleware $middleware) {
$middleware->alias([
'admin' => \App\Http\Middleware\EnsureUserIsAdmin::class,
]);
})
->withExceptions(function (Exceptions $exceptions) {
//
})->create();Directorul routes/
| Fișier | Rol |
|---|---|
web.php | Rute pentru browser, cu sesiune, CSRF și cookie-uri |
api.php | Rute stateless pentru API - nu există implicit, se adaugă cu php artisan install:api |
console.php | Comenzi Artisan definite ca funcții și programarea lor (scheduling) |
channels.php | Canale de broadcast (WebSockets) |
Artisan - unealta de linie de comandă
Fiecare proiect Laravel vine cu artisan, un script PHP care oferă zeci de comenzi utile:
# Listează toate comenzile disponibile
php artisan list
# Deschide o consolă interactivă (REPL) cu aplicația încărcată
php artisan tinker
# Generatoare de cod (make:*)
php artisan make:model Articol -mfc
php artisan make:controller ArticolController
php artisan make:middleware VerificaAbonament
# Curăță și regenerează cache-uri
php artisan optimize:clear
-mfc pe make:model generează simultan modelul, migrația (-m) și controllerul (-c). Adăugați și -R pentru un controller de tip resource complet.
storage/ și legătura simbolică publică
Fișierele încărcate de utilizatori (poze, documente) se salvează implicit în storage/app/public, care nu este accesibil direct din browser. Pentru a-l face public, se creează o legătură simbolică:
php artisan storage:link
Aceasta creează public/storage ca link către storage/app/public, astfel încât fișierele să fie accesibile la https://domeniul-dvs.ro/storage/....
Continuați cu restul cursului
Acesta este capitolul 3 din cele 14 ale cursului, cu 7 lecții din 91. Cumpărați cursul și parcurgeți tot conținutul în cont, cu progres salvat, test final și certificat.
Cumpărați cursul la 130 €