Как правильно наследовать? Ребята, почему не получается наследование? Учусь. Вот мой простой класс для работы с книгами$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. Но тут совершенно нечего наследовать.
В данном случае, если у вас все методы кроме select-ов не связаны друг с другом и выполняют свои задачи независимо, то нет необходимости использовать наследование.
Вы можете добавлять новый функционал напрямую в основной класс Book, таким образом, расширяя его функционал без создания дополнительных наследников.
Для примера, если вам нужно добавить функцию для работы с обложкой, вы можете просто добавить новый public метод в класс Book, который будет отвечать за работу с обложкой.
Если же в будущем у вас появятся методы, которые будут иметь общую логику с уже существующими методами, тогда можно будет рассмотреть возможность создания отдельного класса-наследника для этих методов.
Каждая ситуация уникальна, и вам нужно анализировать, какой подход будет наиболее подходящим для вашего конкретного случая.
В данном случае, если у вас все методы кроме select-ов не связаны друг с другом и выполняют свои задачи независимо, то нет необходимости использовать наследование.
Вы можете добавлять новый функционал напрямую в основной класс Book, таким образом, расширяя его функционал без создания дополнительных наследников.
Для примера, если вам нужно добавить функцию для работы с обложкой, вы можете просто добавить новый public метод в класс Book, который будет отвечать за работу с обложкой.
Если же в будущем у вас появятся методы, которые будут иметь общую логику с уже существующими методами, тогда можно будет рассмотреть возможность создания отдельного класса-наследника для этих методов.
Каждая ситуация уникальна, и вам нужно анализировать, какой подход будет наиболее подходящим для вашего конкретного случая.