Задать вопрос
@StasRomeo

Как правильно наследовать?

Ребята, почему не получается наследование? Учусь.
Вот мой простой класс для работы с книгами
$obj = new Book();

$post = array('name' => 'Книга1', 'author_id' => 10, 'price' => 1000);
$obj->create($post); //создаем книгу

$post = array('id' => 100, 'name' => 'Книга11', 'author_id' => 11, 'price' => 1111);
$obj->edit($post); //редактируем

$obj->delete($id); //удаляем
$obj->showAll(); //получаем весь массив книг
$obj->showOne(100); //получаем только одну книгу

И один приватный select(array $param) который взаимодействуя с showAll и showOne, меняет запрос к бд.
Со временем появляются новые задачи, функционал (например добавить обложку, добавить аннотацию и тд.)
Куда дописывать новый код в конкретном случае? Я могу добавить его в основной класс, или создать наследника. Только вот что тут и от чего наследовать я не въеду. Все методы кроме select-ов так то не связаны друг с другом. Каждый сделает свои проверки, запросы к бд и всё.
Если бы задача стояла вывести какой нибудь иной selectByAuthor(), тогда да, есть смысл наследовать тот же private select. Но тут совершенно нечего наследовать.
  • Вопрос задан
  • 160 просмотров
Подписаться 1 Простой 10 комментариев
Пригласить эксперта
Ответы на вопрос 1
SwoDs
@SwoDs
PHP YII2
Методы не наследуются, все методы родителя доступны классу который его наследует.

В вашем случае я бы просто расширил функционал класса Book, так как работа связана с ним.

Если у вас был бы класс "Печатная продукция", то большая часть методов была там, а классы Book, Newspaper и т.д.
наследовались от него. В этих класса была бы реализация только того что относится к ним, к примеру у книги есть автор, а у газеты нет... как то так
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы