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

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

Спасибо.

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 учебный класс:

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

Другие решения

Задавать validate_username() в private остановить дочерний класс от доступа.

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

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
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector