У меня есть быстрый вопрос, который убивает мою голову.Метод Chaining PHP
Я пытаюсь сделать Validation System формы с помощью метода Chaining в PHP
То, что я хочу сделать, это быть в состоянии назвать, например, (пожалуйста, проверьте комментарии кода):
$firstname = $OBJECT->Forms->Field("First Name", "firstname"); //This one doesn't validate, but just puts what's on firstname field on to $firstname. But this way doesn't work for me, because I have to return the object so it can be chainable and not the variable of the POST. How can I do this?
$firstname = $OBJECT->Forms->Field("First Name", "firstname")->Validate(); //this one validates if the field is not empty and if it's empty it'll insert the first parameter ("First Name") onto an array to display the errors.
$email = $OBJECT->Forms->Field("Email", "email")->Validate()->Email(); //This one does the same as above but validates Email and inserts the value of the email field onto $email
but I prefer the next one...
$email = $OBJECT->Forms->Field("Email", "email")->Validate->Email(); //I'd rather prefer this method but I don't know how to do it without using the parenthesis on the Validate method.
я могу сделать только это работать, как этот
$firstname = $OBJECT->Forms->Field("First Name", "firstname")->Validate();
and
$firstname = $OBJECT->Forms->Field("First Name", "firstname")->Validate()->Email();
Без ->Validate();
я не могу заставить его работать (как это: $firstname = $OBJECT->Forms->Field("First Name", "firstname");
)
Код - своего рода беспорядок для обмена. Но код прост ... У меня есть form.class.php и validate.class.php. Form.class.php создает экземпляр класса Validate из validate.class.php, а объект Forms передается через класс Validate в конструкторе.
Я хочу быть в состоянии сделать:
$OBJECT->Forms->Field();
$OBJECT->Forms->Field()->Validate();
$OBJECT->Forms->Field()->Validate()->Email;
$OBJECT->Forms->Field()->Validate()->Telephone;
или это preferebly:
$OBJECT->Forms->Field();
$OBJECT->Forms->Field()->Validate;
$OBJECT->Forms->Field()->Validate->Email;
$OBJECT->Forms->Field()->Validate->Telephone;
только выяснили:
$OBJECT->Forms->Field()->Validate();
$OBJECT->Forms->Field()->Validate()->Email();
$OBJECT->Forms->Field()->Validate()->Telephone();
Но любая форма OK
Спасибо.
Что делает ваш класс выглядит? – Rasclatt
Это PHP Framework, код немного среднего размера. Но я могу опубликовать его, если вы захотите. Но мне действительно нравятся примеры того, как добиться этого. Спасибо – luffyff