Laravel, PHP ekosisteminin en popüler full-stack web framework'üdür. MVC (Model-View-Controller) mimarisi üzerine kurulu olan Laravel, geliştiricilere temiz, okunabilir ve test edilebilir kod yazma imkânı sunar.
MVC Mimarisi Nedir?
MVC, uygulama kodunu üç katmana ayıran bir mimari desendir:
Katman
Sorumluluk
Laravel Karşılığı
Model
Veri mantığı ve veritabanı
app/Models/
View
Kullanıcı arayüzü
resources/views/
Controller
İş mantığı ve koordinasyon
app/Http/Controllers/
Route Tanımları
Tüm HTTP route'ları routes/web.php (web arayüzü) ve routes/api.php (API) dosyalarında tanımlanır.
// PHP //
// routes/web.phpuse App\Http\Controllers\PostController;use Illuminate\Support\Facades\Route;// Temel GET routeRoute::get('/', function () { return view('welcome');});// Controller'a yönlendirmeRoute::get('/posts', [PostController::class, 'index']);Route::post('/posts', [PostController::class, 'store']);Route::get('/posts/{id}', [PostController::class, 'show']);// Resource route — tüm CRUD işlemlerini tek satırda tanımlarRoute::resource('products', ProductController::class);
// Form Request oluşturphp artisan make:request StorePostRequest// app/Http/Requests/StorePostRequest.phpclass StorePostRequest extends FormRequest{ public function authorize(): bool { return $this->user()->can('create', Post::class); } public function rules(): array { return [ 'title' => 'required|string|max:255', 'content' => 'required|string|min:50', 'category' => 'required|exists:categories,id', 'tags' => 'array|max:5', 'tags.*' => 'exists:tags,id', ]; }}// Controller'da kullanpublic function store(StorePostRequest $request): RedirectResponse{ $post = Post::create($request->validated()); return redirect()->route('posts.show', $post);}
Sonuç
Laravel routing ve controller sistemi, büyük uygulamaları düzenli tutmanın temelini oluşturur. Route Model Binding, named routes ve Form Request validation ile hem hızlı hem de güvenli uygulamalar yazabilirsiniz. Bir sonraki derste Eloquent ORM ve migration sistemiyle devam edeceğiz.