Ben HTTP size köprü konum sınıfındaki herhangi bir uygulama olmadan, veri JSON kullanarak sınıf örnekleri ile talep köprü sağlayan bir sınıf yazıyorum. Temelde bu nasıl işliyor:
// This is just an ordinary class.
$service = new WeatherService();
$jhi = new JsonHttpInterface($service);
$jhi->exec();
JsonHttpInterface
class isteği PATH_INFO
kontrol ve argüman olarak herhangi bir sorgu dizesi parametrelerini uygulayarak, bu yöntemi arayacak.
http://example.com/the_above.php/getWeather?state="CA"
would translate to
$service->getWeather("CA")
(assuming that the name of the first argument is $state
).
Bu yöntem buldu ve denir nasıl:
$method = new ReflectionMethod(get_class($this->instance), $action);
/*
... code that matches query string values to arguments of above method...
*/
$response = $method->invokeArgs($this->instance, $args);
Şimdi ne olduğunu merak ediyorum: Böyle bir sistemin güvenlik açıkları nelerdir. Ben varolmayan veya özel / korumalı yöntemleri çağırmak için çalışırken hataları atmak için PHP güvenerek, hata denetimi oldukça hoşgörülü oldum.
- Bu sistem hile mümkün mü?
- Bir hata atmak dışında bir şeyler yapan bir geçersiz yöntem adı geçmek mümkün mü?
- Bir temel sınıf veya başka bir sınıfta bir yönteme başvurmak mümkün mi?
JsonHttpInterface tam kaynağı burada mevcuttur: http://blixt.org/js/two-cents.php