Laravel ile PHP Web Uygulamaları Geliştirme: Başlangıç Seviyesi Eğitimi
Laravel, modern PHP web uygulamaları geliştirmek için popüler ve güçlü bir çerçevedir. Bu kapsamlı başlangıç seviyesi eğitimi, Laravel’in temellerini anlamanıza ve kendi web uygulamalarınızı oluşturmaya başlamanıza yardımcı olacaktır.
İçindekiler
- Laravel Nedir?
- Neden Laravel?
- Gereksinimler
- Laravel Kurulumu
- Laravel Proje Yapısı
- Routing (Yönlendirme)
- Controllers (Denetleyiciler)
- Views (Görünümler)
- Blade Şablon Motoru
- Migration (Veritabanı Geçişleri)
- Model (Veritabanı Modelleri)
- Eloquent ORM
- Formlar ve Veri İşleme
- Doğrulama (Validation)
- Kimlik Doğrulama (Authentication)
- Oturumlar (Sessions)
- Middleware
- Laravel Paketleri
- Hata Ayıklama (Debugging)
- Sonuç
Laravel Nedir?
Laravel, açık kaynaklı, ücretsiz bir PHP web uygulama çerçevesidir. Zarif sözdizimi ve güçlü özellikleriyle bilinir. Geliştirme sürecini hızlandırmaya ve daha sürdürülebilir, test edilebilir ve ölçeklenebilir uygulamalar oluşturmaya yardımcı olur. MVC (Model-View-Controller) mimari desenini kullanır.
Neden Laravel?
- Hızlı Geliştirme: Hazır bileşenler ve araçlar sayesinde geliştirme süresini kısaltır.
- Güvenlik: Güvenlik özellikleriyle (CSRF koruması, XSS önleme vb.) uygulamalarınızı korur.
- Ölçeklenebilirlik: Büyük ve karmaşık uygulamalar için uygundur.
- Topluluk Desteği: Geniş ve aktif bir topluluğa sahiptir.
- Zarif Sözdizimi: Kod yazmayı keyifli hale getiren anlaşılır ve düzenli bir sözdizimine sahiptir.
- Eloquent ORM: Veritabanı işlemlerini kolaylaştırır.
- Blade Şablon Motoru: Dinamik web sayfaları oluşturmayı kolaylaştırır.
Gereksinimler
Laravel’i kullanabilmek için aşağıdaki gereksinimlerin karşılanması gerekir:
- PHP >= 8.0
- Composer
- PHP Uzantıları: BCMath, Ctype, JSON, Mbstring, OpenSSL, PDO, Tokenizer, XML
Laravel Kurulumu
Laravel’i kurmanın en kolay yolu Composer kullanmaktır. Terminal veya komut istemcisinde aşağıdaki komutu çalıştırın:
composer create-project laravel/laravel example-app
Bu komut, `example-app` adında yeni bir Laravel projesi oluşturacaktır. Proje klasörüne gidin:
cd example-app
Laravel geliştirme sunucusunu başlatmak için aşağıdaki komutu çalıştırın:
php artisan serve
Bu, uygulamayı genellikle `http://localhost:8000` adresinde çalıştıracaktır.
Laravel Proje Yapısı
Laravel projesi aşağıdaki ana klasörlere sahiptir:
- app: Uygulama mantığını içerir (Controllers, Models, vb.).
- bootstrap: Uygulamanın başlatılması için gerekli dosyaları içerir.
- config: Uygulama ayarlarını içerir.
- database: Veritabanı geçişlerini ve seed’leri içerir.
- public: Web sunucusunun erişebileceği statik dosyaları (CSS, JavaScript, resimler) içerir.
- resources: Görünümleri (Blade şablonları), dil dosyalarını ve asset’leri içerir.
- routes: Uygulama rotalarını (URL’leri) tanımlar.
- storage: Oturum dosyalarını, önbelleği ve yüklenen dosyaları saklar.
- tests: Test dosyalarını içerir.
- vendor: Composer ile yüklenen bağımlılıkları içerir.
Routing (Yönlendirme)
Routing, gelen HTTP isteklerini doğru Controller metotlarına yönlendirme işlemidir. Laravel’de rotalar `routes/web.php` dosyasında tanımlanır.
Örnek:
Route::get('/', function () {
return view('welcome');
});
Bu rota, kök URL’ye (/) gelen GET isteklerini `welcome` görünümüne yönlendirir.
Controllers (Denetleyiciler)
Controllers, uygulamanın mantığını içeren sınıflardır. Genellikle gelen istekleri işler, veritabanından veri alır ve görünümleri döndürür.
Örnek:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HomeController extends Controller
{
public function index()
{
return view('home');
}
}
Bu Controller, `index` metodu ile `home` görünümünü döndürür.
Views (Görünümler)
Views, kullanıcı arayüzünü oluşturan şablonlardır. Laravel’de görünümler genellikle `resources/views` klasöründe saklanır.
Örnek (`resources/views/home.blade.php`):
<h1>Hoş Geldiniz!</h1>
<p>Bu bir Laravel uygulamasıdır.</p>
Blade Şablon Motoru
Blade, Laravel’in güçlü ve kullanımı kolay şablon motorudur. Veri görüntülemeyi, döngüleri ve koşulları kolayca yönetmenizi sağlar.
Örnek:
<h1>Merhaba, {{ $name }}!</h1>
<p>@if (count($users) > 0)
Kullanıcılar var.
@else
Kullanıcı yok.
@endif</p>
Migration (Veritabanı Geçişleri)
Migration’lar, veritabanı şemasını yönetmek için kullanılan versiyon kontrollü dosyalardır. Tablolar oluşturabilir, sütunlar ekleyebilir ve dizinler oluşturabilirsiniz.
Örnek:
php artisan make:migration create_users_table
Bu komut, `create_users_table` adında yeni bir migration dosyası oluşturur. Bu dosyayı kullanarak `users` tablosunu oluşturabilirsiniz.
Model (Veritabanı Modelleri)
Modeller, veritabanı tablolarını temsil eden sınıflardır. Veritabanı ile etkileşim kurmayı ve verileri yönetmeyi kolaylaştırırlar.
Örnek:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
//
}
Bu Model, `users` tablosunu temsil eder.
Eloquent ORM
Eloquent, Laravel’in güçlü ORM’sidir (Object-Relational Mapper). Veritabanı işlemlerini nesne yönelimli bir şekilde gerçekleştirmenizi sağlar. Sorguları daha okunabilir ve anlaşılır hale getirir.
Örnek:
$users = User::all(); // Tüm kullanıcıları getir
$user = User::find(1); // ID'si 1 olan kullanıcıyı getir
$users = User::where('name', 'John')->get(); // Adı John olan kullanıcıları getir
Formlar ve Veri İşleme
Formlar, kullanıcıdan veri toplamak için kullanılan HTML öğeleridir. Laravel, form verilerini işlemek ve doğrulamak için çeşitli araçlar sunar.
Örnek:
<form method="POST" action="/submit">
@csrf
<label for="name">Ad:</label>
<input type="text" id="name" name="name"><br><br>
<label for="email">E-posta:</label>
<input type="email" id="email" name="email"><br><br>
<input type="submit" value="Gönder">
</form>
Doğrulama (Validation)
Doğrulama, kullanıcıdan gelen verilerin beklenen formatta ve geçerli olduğundan emin olma işlemidir. Laravel, güçlü doğrulama kuralları ve hata mesajları sunar.
Örnek:
$request->validate([
'name' => 'required|max:255',
'email' => 'required|email|unique:users',
]);
Kimlik Doğrulama (Authentication)
Kimlik doğrulama, kullanıcıların kimliklerini doğrulama işlemidir. Laravel, kimlik doğrulama işlemlerini kolaylaştırmak için hazır bileşenler sunar.
php artisan make:auth
Oturumlar (Sessions)
Oturumlar, kullanıcıya özgü verileri saklamak için kullanılır. Örneğin, kullanıcı oturum açtıktan sonra kullanıcı kimliğini oturumda saklayabilirsiniz.
Örnek:
session(['user_id' => 1]); // Kullanıcı ID'sini oturuma kaydet
$user_id = session('user_id'); // Kullanıcı ID'sini oturumdan al
Middleware
Middleware, gelen HTTP isteklerini filtrelemek için kullanılan sınıflardır. Örneğin, bir kullanıcı oturum açmış mı kontrol etmek için bir middleware kullanabilirsiniz.
Laravel Paketleri
Laravel paketleri, Laravel uygulamalarına ek özellikler eklemek için kullanılan hazır bileşenlerdir. Birçok farklı paket mevcuttur ve uygulamanızın ihtiyaçlarına göre paketler kullanabilirsiniz.
Hata Ayıklama (Debugging)
Hata ayıklama, uygulamadaki hataları bulma ve düzeltme işlemidir. Laravel, hata ayıklama işlemlerini kolaylaştırmak için çeşitli araçlar sunar. Laravel Debugbar, Clockwork gibi paketler kullanabilirsiniz.
Sonuç
Bu başlangıç seviyesi eğitimi, Laravel’in temellerini anlamanıza ve kendi web uygulamalarınızı oluşturmaya başlamanıza yardımcı olmayı amaçlamaktadır. Laravel’in sunduğu birçok özellik ve araç sayesinde modern ve güçlü web uygulamaları geliştirebilirsiniz. Daha fazla bilgi için Laravel’in resmi dokümantasyonunu inceleyebilirsiniz.