Laravel gibi bir framework’ü, kendi çekirdeği, makro motoru ve olay akışına sahip bir işletim sistemine entegre etmek basit bir görev değildir. Web5/WebAI çekirdeği üzerine inşa edilmiş Ascoos OS, framework’leri “harici kütüphaneler” olarak değil, sistemin bileşenleri olarak görür. Bu, framework ile OS arasında daha derin bir işbirliği sağlar.
Bu makale, Laravel’i Ascoos OS içinde bir hafif autoload dosyası (laravel_autoload.php) aracılığıyla yükleme ve başlatma konusunda pratik bir yaklaşım sunmaktadır. Tam uygulama, ayrıntılı kod ve örnekler ile birlikte repository’de mevcuttur:
https://github.com/ascoos/aos-SEC00100-laravel-autoload
Laravel’in Ascoos OS’e Entegre Edilme Sebepleri
Laravel’in Ascoos OS’e Entegre Edilme Sebepleri
Ascoos OS, geleneksel bir PHP hosting ortamı gibi çalışmaz. Web5/WebAI çekirdeği, başlıca şunları sunar:
- bir makro yürütme motoru,
- olay odaklı izleme,
- birleşik raporlama ve günlükleme,
- paylaşılan uygulama instance’ları için küresel bağlama.
Laravel’in entegrasyonu ile framework, bu alt sistemlere erişim sağlar, Ascoos OS ise Laravel’in yaşam döngüsünü gözlemleyebilir ve etkileşimde bulunabilir. Sonuç olarak, Laravel uygulama katmanı olarak işlev görürken, işletim sistemi orkestrasyon ve izlemeyi üstlenir.
Entegrasyonun Çalışma Şekli
Entegrasyonun Çalışma Şekli
Uygulama kasıtlı olarak basit ama tamamen işlevseldir:
- Laravel, LibIn veya Ascoos Store aracılığıyla
/libs/laravel/dizinine yüklenir. - Autoload dosyası, framework’ü yükler ve sistemi erişilebilir hale getirir.
- Web5 çekirdeği, temel hizmetlerin doğruluğunu kontrol etmek için teşhis makrolarını çalıştırır (günlükleme, kimlik doğrulama, veritabanı, yönlendirici).
- PDO aracılığıyla bir veritabanı bağlantı testi yapılır.
laravel_initolayı yayılır, böylece diğer modüller framework’ün hazır olduğunu bilir.- Tüm günlükler, Ascoos OS’in birleşik günlükleme sisteminden geçer.
Bu şekilde, Laravel olduğu gibi kalır ancak çekirdek düzeyinde onu izleyen ve destekleyen bir ortamda çalışır.
Tansiyomatik Makro
Tansiyomatik Makro
Entegrasyonun ana kısmı, Laravel’in temel hizmetlerinin mevcut olup olmadığını ve veritabanı katmanının doğru bir şekilde yanıt verip vermediğini kontrol eden küçük bir makrodur:
$macroHandler->addMacro(function () use ($laravel_app, $eventHandler) {
global $utf8;
$services = ['log', 'auth', 'db', 'router'];
$missing = array_filter($services, fn($s) => !$laravel_app->bound($s));
if (empty($missing)) {
$eventHandler->logger->log("Laravel diagnostic passed", $eventHandler::DEBUG_LEVEL_INFO);
} else {
$eventHandler->logger->log("Missing services: " . $utf8->implode(', ', $missing), $eventHandler::DEBUG_LEVEL_WARNING);
}
if ($laravel_app->bound('db')) {
$laravel_app->make('db')->connection()->getPdo();
}
});
Bu makro, başlatma sırasında çalışır ve diğer modüller Laravel’e bağımlı olana kadar Laravel’in tamamen çalışır durumda olup olmadığını belirler.
Bundan Neler Geliştirilebilir
Bundan Neler Geliştirilebilir
Laravel Ascoos OS’e entegre edildiğinde:
- modüller Laravel olaylarını dinleyebilir,
- Laravel, OS düzeyindeki olayları yayabilir,
- hibrit uygulamalar kontrolörleri makrolarla birleştirebilir,
- birden fazla framework aynı çalıştırma ortamında bir arada bulunabilir.
Ascoos OS, modüler PHP geliştirme için esnek bir ortam haline gelir.
Tam Uygulama
Tam Uygulama
Tam kod ve ayrıntılı README (EN/EL) burada mevcuttur:
Kaynak: Orijinal Makale


