Ben izin kısıtlamaları içinde olan benim uygulamada tüm değerleri kontrol etmek için kullanmak istiyorum bir doğrulama sınıf var.
Ben (bu durumda Kullanıcı) başka bir sınıftan, doğrulama sınıfı içinde statik bir fonksiyona bir nesne geçirerek
function validate() {
$errors = Validation::validate($this);
}
Doğrulama sınıfında, ben yeni bir nesne oluşturmak ve daha sonra geçirilen parametre nesnesinin (ya da en azından ben yapmak istiyorum ne) özellikleri ile devam edin.
function validate($object) {
$validation = new Validation();
print_r($object);
print_r('<br />');
foreach($object as $key => $val) {
print_r($val);
isset($val->maxlength) ? $validation->validateLengthNoMoreThan($val->value, $val->maxlength) : null;
isset($val->minlength) ? $validation->validateLengthAtLeast($val->value, $val->minlength) : null;
isset($val->required) && ($val->required == true) ? $validation->validateNotBlank($val->value) : null;
}
return $validation->errors;
}
Ben sadece test amaçlı işlev içinde değerlerini basmak. Nesne foreach döngüsü ince dışında yazdıran, ama ben döngü içinde değerlerini erişmeye çalışırsanız, hiçbir şey görüntülenmez neden nedir ben anlamıyorum değildir.
Bu foreach döngüsü dışında görüntülenir budur:
User Object ( [username:protected] => Property Object ( [value] => aaa [maxlength] => 12 [minlength] => 3 [required] => 1 ) [firstname:protected] =Property Object ( [value] => aaa [maxlength] => 12 [minlength] => 3 [required] => 1 ) [lastname:protected] =Property Object ( [value] => aaa [maxlength] => 12 [minlength] => 3 [required] => 1 ) )
Doğrulama sınıfı kullanıcı sınıfını genişleten DEĞIL, yani değerler kullanılabilir olmaz neden onlar değil, bunun içinde döngünün dışında kullanılabilir sadece neden ben, anlıyorum.
Ayrıca, ne korumalı / özel özellikleri üzerinde doğrulama yürütmek için en iyi yol olacağını?
Herhangi bir tavsiye / ipuçları büyük mutluluk duyacağız.
Teşekkürler.