O. NET yöntem PHP niteliklerini, ya da bir şekilde bu taklit için eşdeğer kullanmak mümkün mü?
Context
Biz bir sürü gibi bir in-house URL yönlendirme sınıfı var. Bugün çalıştığını yolu biz ilk öylesine gibi merkezi bir güzergah yöneticisi ile tüm yolları, kayıt olması:
$oRouteManager->RegisterRoute('admin/test/', array('CAdmin', 'SomeMethod'));
$oRouteManager->RegisterRoute('admin/foo/', array('CAdmin', 'SomeOtherMethod'));
$oRouteManager->RegisterRoute('test/', array('CTest', 'SomeMethod'));
Bir rota karşılaştı zaman, geri çağırma yöntemi (durumlarda yukarıda statik sınıf yöntemleri) denir. Bununla birlikte, bu en azından kodu, yönteminden yol ayırır.
Ben C # yapmış olabilir gibi, yakın yöntemine yol koymak için bazı yöntem için arıyorum:
<Route Path="admin/test/">
public static void SomeMethod() { /* implementation */ }
Benim seçenekleri onları şimdi gördüğünüz gibi, böyle bir şey için bana izin verir Phpdoc uzatma çeşit oluşturmak için ya vardır:
/**
* @route admin/test/
*/
public static function SomeMethod() { /* implementation */ }
Ama bu PHPDoc için bir ayrıştırıcı yeniden / yazma gerektirir, ve büyük olasılıkla oldukça yavaş olacaktır.
Diğer seçenek kendi sınıfa her rotayı ayırmak, ve aşağıdaki gibi bir yöntemleri var olacaktır:
class CAdminTest extends CRoute
{
public static function Invoke() { /* implementation */ }
public static function GetRoute() { return "admin/test/"; }
}
Ancak, bu hala her sınıf kayıt gerektirir, ve bu gibi sınıfların büyük bir sayıda (ekstra kod miktarını söz değil) olacaktır.
Yani benim seçenekleri burada nelerdir? Ne çağırır yöntemine yakın rotayı tutmak için en iyi yol olacağını?