Laravel 12 ve MariaDB ile Güçlü Bir Web Uygulaması İnşa Etmek
Laravel, modern web uygulamaları geliştirmek için popüler ve güçlü bir PHP framework'üdür. MariaDB ise, MySQL'in açık kaynaklı ve geliştirilmiş bir versiyonu olarak, veri tabanı yönetimi için güvenilir ve yüksek performanslı bir seçenektir. Bu makalede, Laravel 12'nin nasıl kurulacağını ve MariaDB ile nasıl yapılandırılacağını adım adım inceleyeceğiz. Bu rehber, hem yeni başlayanlar hem de deneyimli geliştiriciler için faydalı bilgiler sunmayı amaçlamaktadır.
Laravel 12 Kurulumu
Laravel 12 kurulumu, birkaç basit adımı içerir. Bu adımlar, projenizin temelini oluşturacak ve geliştirme sürecinizi başlatmanızı sağlayacaktır.
Sistem Gereksinimleri
Laravel 12'yi kurmadan önce sisteminizin aşağıdaki gereksinimleri karşıladığından emin olun:
- PHP >= 8.2
- Ctype PHP Extension
- cURL PHP Extension
- DOM PHP Extension
- Fileinfo PHP Extension
- JSON PHP Extension
- Mbstring PHP Extension
- OpenSSL PHP Extension
- PCRE PHP Extension
- PDO PHP Extension
- Tokenizer PHP Extension
- XML PHP Extension
Bu gereksinimleri karşılamak için, PHP'yi ve gerekli eklentileri kurmanız veya güncellemeniz gerekebilir. Örneğin, Ubuntu üzerinde aşağıdaki komutları kullanarak PHP ve gerekli eklentileri kurabilirsiniz:
sudo apt update sudo apt install php8.2 php8.2-cli php8.2-curl php8.2-mbstring php8.2-mysql php8.2-xml php8.2-zip php8.2-gd php8.2-opcache
Composer ile Laravel Projesi Oluşturma
Composer, PHP için bir bağımlılık yöneticisidir ve Laravel projelerini oluşturmak için kullanılır. Composer'ı sisteminizde yoksa, öncelikle onu kurmanız gerekmektedir. Composer'ı kurmak için aşağıdaki adımları izleyebilirsiniz:
1. Composer'ı indirin:
curl -sS https://getcomposer.org/installer | php
2. Composer'ı global olarak erişilebilir hale getirin:
sudo mv composer.phar /usr/local/bin/composer
Composer kurulduktan sonra, yeni bir Laravel projesi oluşturmak için aşağıdaki komutu kullanabilirsiniz:
composer create-project laravel/laravel example-app
Bu komut, example-app adında yeni bir Laravel projesi oluşturacaktır. Proje oluşturulduktan sonra, proje dizinine gidin:
cd example-app
Laravel Development Server'ı Çalıştırma
Laravel, yerleşik bir geliştirme sunucusuna sahiptir. Bu sunucuyu başlatmak için aşağıdaki komutu kullanabilirsiniz:
php artisan serve
Bu komut, Laravel uygulamanızı http://localhost:8000 adresinde başlatacaktır. Tarayıcınızda bu adresi ziyaret ederek Laravel uygulamanızın çalıştığını doğrulayabilirsiniz.
MariaDB Ayarları
Laravel projenizi oluşturduktan sonra, MariaDB ile bağlantı kurmanız gerekmektedir. Bu bölümde, MariaDB'nin nasıl kurulacağını, yapılandırılacağını ve Laravel ile nasıl entegre edileceğini adım adım inceleyeceğiz.
MariaDB Kurulumu
MariaDB'yi sisteminize kurmak için aşağıdaki adımları izleyebilirsiniz. Ubuntu üzerinde MariaDB kurulumu için aşağıdaki komutları kullanabilirsiniz:
sudo apt update sudo apt install mariadb-server
Kurulum tamamlandıktan sonra, MariaDB sunucusunu başlatın ve otomatik olarak başlaması için etkinleştirin:
sudo systemctl start mariadb sudo systemctl enable mariadb
MariaDB Güvenlik Ayarları
MariaDB kurulumundan sonra, güvenlik ayarlarını yapılandırmak önemlidir. Bunun için aşağıdaki komutu kullanabilirsiniz:
sudo mysqlsecureinstallation
Bu komut, size bir dizi soru soracaktır. Bu sorulara aşağıdaki gibi cevaplar verebilirsiniz:
- Enter current password for root (enter for none): Enter tuşuna basın.
- Switch to unix_socket authentication [Y/n] n
- Change the root password? [Y/n] Y
- New password: Yeni bir şifre girin.
- Re-enter new password: Şifreyi tekrar girin.
- Remove anonymous users? [Y/n] Y
- Disallow root login remotely? [Y/n] Y
- Remove test database and access to it? [Y/n] Y
- Reload privilege tables now? [Y/n] Y
Bu adımlar, MariaDB sunucunuzun güvenliğini artıracaktır.
Laravel için Veritabanı Oluşturma
MariaDB'de Laravel uygulamanız için bir veritabanı oluşturmanız gerekmektedir. MariaDB konsoluna bağlanmak için aşağıdaki komutu kullanabilirsiniz:
sudo mysql -u root -p
Şifrenizi girin ve aşağıdaki SQL komutlarını kullanarak yeni bir veritabanı oluşturun:
CREATE DATABASE laraveldb CHARACTER SET utf8mb4 COLLATE utf8mb4unicode_ci; CREATE USER 'laraveluser'@'localhost' IDENTIFIED BY 'yourpassword'; GRANT ALL PRIVILEGES ON laraveldb.* TO 'laraveluser'@'localhost'; FLUSH PRIVILEGES; EXIT;
Bu komutlar, laraveldb adında bir veritabanı oluşturacak, laraveluser adında bir kullanıcı oluşturacak ve bu kullanıcıya veritabanı üzerinde tüm yetkileri verecektir. your_password kısmını kendi belirleyeceğiniz bir şifre ile değiştirin.
Laravel .env Dosyası Ayarları
Laravel, .env dosyası aracılığıyla ortam değişkenlerini yönetir. MariaDB bağlantı ayarlarını .env dosyasına girmeniz gerekmektedir. .env dosyasını açın ve aşağıdaki satırları güncelleyin:
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DBDATABASE=laraveldb DBUSERNAME=laraveluser DBPASSWORD=yourpassword
Bu ayarlar, Laravel'in MariaDB veritabanına bağlanmasını sağlayacaktır. your_password kısmını MariaDB'de oluşturduğunuz kullanıcı için belirlediğiniz şifre ile değiştirin.
Migration'ları Çalıştırma
Laravel, veritabanı şemalarını yönetmek için migration'ları kullanır. Migration'ları çalıştırmak için aşağıdaki komutu kullanabilirsiniz:
php artisan migrate
Bu komut, database/migrations dizinindeki tüm migration dosyalarını çalıştıracak ve veritabanı tablolarını oluşturacaktır. Başlangıçta migration çalıştırırken bir hata alırsanız, config/database.php dosyasında charset ve collation ayarlarını kontrol edin. Genellikle utf8mb4 ve utf8mb4unicodeci olarak ayarlanmış olmaları gerekir.
Modeller ve Veritabanı Etkileşimi
Laravel'de modeller, veritabanı tablolarıyla etkileşim kurmak için kullanılır. Örneğin, User modeli, users tablosuyla ilişkilidir. Yeni bir kullanıcı oluşturmak için aşağıdaki kodu kullanabilirsiniz:
namespace App\Http\Controllers;use App\Models\User; use Illuminate\Http\Request; class UserController extends Controller { public function store(Request $request) { $user = new User(); $user->name = $request->input('name'); $user->email = $request->input('email'); $user->password = bcrypt($request->input('password')); // Şifreyi şifreleyin $user->save(); return response()->json(['message' => 'User created successfully'], 201); } }
Bu kod, bir HTTP isteği alır, yeni bir User modeli oluşturur, verileri doldurur ve veritabanına kaydeder. Şifreyi güvenli bir şekilde saklamak için bcrypt() fonksiyonunu kullanmak önemlidir.
Seeders ile Veri Girişi
Veritabanına başlangıç verileri girmek için seeders kullanabilirsiniz. Örneğin, bir UserSeeder oluşturmak için aşağıdaki komutu kullanabilirsiniz:
php artisan make:seeder UserSeeder
Oluşturulan database/seeders/UserSeeder.php dosyasını açın ve aşağıdaki gibi bir kod ekleyin:
namespace Database\Seeders;use Illuminate\Database\Seeder; use App\Models\User; use Illuminate\Support\Facades\Hash; class UserSeeder extends Seeder { /** * Run the database seeds. */ public function run(): void { User::create([ 'name' => 'Example User', 'email' => 'example@example.com', 'password' => Hash::make('password'), ]); } }
Bu seeder, users tablosuna örnek bir kullanıcı ekleyecektir. Seeder'ı çalıştırmak için aşağıdaki komutları kullanabilirsiniz:
php artisan db:seed --class=UserSeeder
Veya tüm seeders'ı çalıştırmak için:
php artisan db:seed
DatabaseSeeder.php dosyasında hangi seeders'ın çalıştırılacağını belirleyebilirsiniz.
Örnek CRUD İşlemleri
Laravel ile basit bir CRUD (Create, Read, Update, Delete) işlemi örneği:
Model:
namespace App\Models;use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Product extends Model { use HasFactory; protected $fillable = ['name', 'description', 'price']; }
Migration:
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema;return new class extends Migration { /** * Run the migrations. */ public function up(): void { Schema::create('products', function (Blueprint $table) { $table->id(); $table->string('name'); $table->text('description')->nullable(); $table->decimal('price', 8, 2); $table->timestamps(); }); } /** * Reverse the migrations. */ public function down(): void { Schema::dropIfExists('products'); } };
Controller:
namespace App\Http\Controllers;use App\Models\Product; use Illuminate\Http\Request; class ProductController extends Controller { public function index() { $products = Product::all(); return response()->json($products); } public function store(Request $request) { $product = Product::create($request->all()); return response()->json($product, 201); } public function show(Product $product) { return response()->json($product); } public function update(Request $request, Product $product) { $product->update($request->all()); return response()->json($product); } public function destroy(Product $product) { $product->delete(); return response()->json(null, 204); } }
Bu örnek, temel bir ürün yönetimi uygulamasının nasıl oluşturulabileceğini göstermektedir.
Sonuç
Bu makalede, Laravel 12'nin nasıl kurulacağını ve MariaDB ile nasıl yapılandırılacağını ayrıntılı bir şekilde inceledik. Sistem gereksinimlerinden başlayarak, Composer ile proje oluşturma, MariaDB kurulumu, veritabanı oluşturma, .env dosyası ayarları, migration'ları çalıştırma, modeller ve seeders ile veri girişi gibi adımları adım adım açıkladık. Ayrıca, basit bir CRUD örneği ile Laravel ve MariaDB'nin nasıl etkileşim kurduğunu gösterdik. Bu bilgiler, Laravel ve MariaDB kullanarak güçlü ve ölçeklenebilir web uygulamaları geliştirmek için sağlam bir temel oluşturmanıza yardımcı olacaktır. Başarılar dilerim!