Çoklu Uygulama
Bir proje bazen birden çok alt projeye ayrılabilir, örneğin bir alışveriş merkezi ana proje, alışveriş merkezi API arayüzü ve alışveriş merkezi yönetim paneli olmak üzere 3 alt projeye ayrılabilir ve hepsi aynı veritabanı yapılandırmasını kullanabilir.
webman size app dizinini şu şekilde planlamanıza izin verir:
app
├── shop
│ ├── controller
│ ├── model
│ └── view
├── api
│ ├── controller
│ └── model
└── admin
├── controller
├── model
└── view
http://127.0.0.1:8787/shop/{controller}/{method}
adresine erişildiğinde, app/shop/controller
dizinindeki denetleyici ve metoda erişilir.
http://127.0.0.1:8787/api/{controller}/{method}
adresine erişildiğinde, app/api/controller
dizinindeki denetleyici ve metoda erişilir.
http://127.0.0.1:8787/admin/{controller}/{method}
adresine erişildiğinde, app/admin/controller
dizinindeki denetleyici ve metoda erişilir.
webman'de app dizinini şu şekilde bile planlayabilirsiniz.
app
├── controller
├── model
├── view
│
├── api
│ ├── controller
│ └── model
└── admin
├── controller
├── model
└── view
Bu durumda, http://127.0.0.1:8787/{controller}/{method}
adresine erişildiğinde, app/controller
dizinindeki denetleyici ve metoda erişilir. api veya admin ile başlayan yolda, ilgili dizindeki denetleyici ve metoda erişilir.
Çoklu uygulamalarda sınıf ad alanları psr4
'e uygun olmalıdır, örneğin app/api/controller/FooController.php
dosyası aşağıdaki gibi olabilir:
<?php
namespace app\api\controller;
use support\Request;
class FooController
{
}
Çoklu Uygulama Orta Katmanı Yapılandırması
Bazen farklı uygulamalar için farklı orta katmanları yapılandırmak isteyebilirsiniz, örneğin api
uygulaması belki bir CORS orta katmanına ihtiyaç duyarken, admin
bir yönetici girişi kontrolü orta katmanına ihtiyaç duyar, bu durumda config/midlleware.php
dosyası aşağıda olduğu gibi olabilir:
return [
// Genel orta katmanlar
'' => [
support\middleware\AuthCheck::class,
],
// api uygulaması orta katmanları
'api' => [
support\middleware\AccessControl::class,
],
// admin uygulaması orta katmanları
'admin' => [
support\middleware\AdminAuthCheck::class,
support\middleware\SomeOtherClass::class,
],
];
Yukarıdaki orta katmanlar muhtemelen mevcut değildir, burada sadece uygulamalara göre nasıl orta katman yapılandırılacağını anlatan bir örnektir.
Orta katmanların yürütme sırası şu şekildedir: Genel orta katmanlar
-> Uygulama orta katmanları
.
Orta katman geliştirme için Orta Katman Bölümü'ne bakın.
Çoklu Uygulama İstisna İşleme Yapılandırması
Aynı şekilde, farklı uygulamalar için farklı istisna işleme sınıfları yapılandırmak isteyebilirsiniz, örneğin shop
uygulamasında bir istisna oluştuğunda kullanıcı dostu bir sayfa göstermek isteyebilirsiniz; api
uygulamasında bir istisna oluştuğunda bir sayfa yerine bir JSON dizesi dönmek isteyebilirsiniz. Farklı uygulamalar için farklı istisna işleme sınıflarını yapılandırmak için config/exception.php
dosyası aşağıda olduğu gibi olabilir:
return [
'shop' => support\exception\Handler::class,
'api' => support\exception\ApiHandler::class,
];
Orta katmanlardan farklı olarak, her uygulama yalnızca bir istisna işleme sınıfı yapılandırabilir.
Yukarıdaki istisna işleme sınıfları muhtemelen mevcut değildir, burada sadece uygulamalara göre nasıl istisna işleme yapılacağını gösteren bir örnektir.
İstisna işleme geliştirme için İstisna İşleme Bölümü'ne bakın.