Ben tüm doğrulama yöntemlerini içeren bir Validations
sınıfının bir örneğini oluşturur bir Validator
sınıf var. Bir doğrulama işlemi gerçekleştirildiğinde, __call
in Validator
bir çağrı Validator->validate_method
to Validations->method code> göndermek için kullanılır.
Bu yüzden, örneğin, Validations
denilen bir yöntem yoktur length_of
. Aşağıdaki kodu çalıştırdığınızda:
$v = new Validator();
$v->validate_length_of(...);
Validations
sınıfındaki length_of
doğrulama yürütülür.
Sağlamak amacıyla bu __call
I ReflectionMethod
Belirtilen yöntem kontrol etmek için kullanmak, geçersiz veya halka açık olmayan Validation
yöntemine gönderme deneyin:
$method = new ReflectionMethod($this->validations, $validation_method);
if (!$method->isPublic())
{
// error
}
Ben bu bir yöntem public olup olmadığını belirlemek için tek yol olduğuna eminim, ama Yansıma üretim kodunda olması uygun olup olmadığından emin değilim. Bu kod koku var mı?