Temel Kavramlar
Yabasi Framework'ün temellerini ve güçlü özelliklerini keşfedin
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.
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.
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: