Temel Kavramlar

Yabasi Framework'ün temellerini ve güçlü özelliklerini keşfedin

Modern MVC Mimarisi
Bağımlılık Enjeksiyonu
Servis Sağlayıcılar

MVC Mimarisi

Modern web uygulamaları için endüstri standardı Model-View-Controller (MVC) mimari desenini kullanır:

Modeller

Veri yapınızı temsil eder ve veritabanı etkileşimlerini yönetir.

Görünümler

Sunum mantığını işler ve kullanıcı arayüzünü oluşturur.

Kontrolcüler

Model ve Görünüm arasında aracılık yaparak istekleri işler.

Bağımlılık Enjeksiyonu

Güçlü Bağımlılık Enjeksiyonu Konteyneri sayesinde sınıf bağımlılıklarını otomatik yönetir, gevşek bağlantılı kod yazmanızı sağlar ve test edilebilirliği artırır.

UserController.php
namespace App\Controllers;

class UserController
{
    public function __construct(
        private UserService $userService,
        private Logger $logger,
        private Cache $cache
    ) {
        // Bağımlılıklar otomatik olarak enjekte edilir
    }

    public function index()
    {
        $users = $this->userService->getAllUsers();
        $this->logger->info('Kullanıcılar listelendi');
        
        return $this->cache->remember('users', 3600, fn() => $users);
    }
}

Konteyner, sınıf bağımlılıklarını otomatik olarak çözümler ve gerekli tüm servisleri enjekte eder.

Servis Sağlayıcılar

Servis sağlayıcılar, uygulamanızın başlatma sürecini yöneten merkezi bileşenlerdir. Servis kayıtları, olay dinleyicileri ve rota yapılandırmalarını yönetir.

UserServiceProvider.php
namespace App\Providers;

use Yabasi\ServiceProvider\ServiceProvider;

class UserServiceProvider extends ServiceProvider
{
    public function register(): void
    {
        $this->app->singleton(UserRepository::class, function ($app) {
            return new UserRepository($app->get(Database::class));
        });
        
        $this->app->bind(UserService::class, function ($app) {
            return new UserService(
                $app->get(UserRepository::class),
                $app->get(Cache::class)
            );
        });
    }
    
    public function boot(): void
    {
        $this->loadRoutes('routes/users.php');
        $this->loadViews('users');
        $this->loadTranslations('users');
    }
}

register() metodu, konteynere servis bağlamalarını kaydeder.

boot() metodu, tüm servisler kaydedildikten sonra çalışır.

Middleware

HTTP isteklerini filtreleme ve işleme mekanizması sunar. İstekler rota veya kontrolcüye ulaşmadan önce çeşitli işlemler gerçekleştirebilirsiniz.

ORM

Sezgisel bir söz dizimi ile veritabanı işlemlerini gerçekleştirmenizi sağlar. SQL sorguları yazmak yerine nesne yönelimli bir yaklaşım sunar.

Olay Sistemi

Uygulama içinde gerçekleşen olayları dinlemenizi ve tepki vermenizi sağlar. Modüller arası iletişimi kolaylaştırır.

Facades

Servis konteynerindeki sınıflara statik bir arayüz sunar. Test edilebilirliği korurken, temiz ve anlaşılır bir söz dizimi sağlar.

Derinlemesine Öğrenin

Bu temel kavramlar hakkında daha detaylı bilgi için dokümantasyonumuzu inceleyin:

Find the documentation helpful?

Show your support by starring our project on GitHub

Star on GitHub