Расширение класса PHP и игнорирование определенных методов

0

//То, что я хочу в class_design, использует пару методов из класса регистрации для проверки формы контакта. Однако я хочу исключить последний метод (validate_username) и показать другое сообщение об ошибке, например, в validate_message, вместо того, чтобы показывать "недопустимое сообщение". Я хочу показать "Пожалуйста, убедитесь, что ваше сообщение имеет длину не менее 50 символов". В принципе, я не хочу создавать другой класс, который проверяет контакт_форма специально, потому что я буду использовать тот же метод, который я использовал в регистрационной форме.

Спасибо.

class registration{
    function __construct($data){
        //sanitize data
    }

    function validate_empty(){
        //validate empty fields
        //error: do not leave anything empty
    }

    function validate_email(){
        //validate email
        //error: invalid email
    }

    function validate_name(){
        //validate name
        //error: invalid name
    }

    function validate_message(){
        //validate message
        //error: invalid message
    }

    function validate_username(){
        //validate username
        //error: invalid username
    }
}

class contact_form extends registration{

}
  • 0
    Так определите validate_username() в классе contact_form
  • 0
    Сообщения проверки должны быть отделены от механизма проверки [подумайте о локализации языка!]. Кроме того, самой целью наследования является переопределение методов, так что, пожалуйста, сделайте это!
Теги:
class
inheritance
extend

3 ответа

0
Лучший ответ

Вы можете просто переопределить метод validate_username() в классе contact_form:

    class contact_form extends registration{
        function validate_username(){
            //Add the new error message here to override the older one
        }
    }
0

Будет что-то подобное?

class registration{

    ...

    function validate_message($errormsg = 'invalid message'){
        //validate username
        //error: invalid username
    }

    private function validate_user() {}

}

class contact_form extends registration{

    function validate_message(){
        parent::validate_username('Please make sure your message is atleast 50 characters long');
    }

}
0

Установите для validate_username() значение private чтобы остановить доступ к дочернему классу.

Переопределите функцию, которую вы хотите показать другим сообщением.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню