Разбираюсь в ооп и возник вопрос: Например, есть два файла для работы с сообщениями sendmesage.php и getmesages.php. При процедурном стиле это просто два скрипта. Каждый из них содержит свою функцию. А при ооп это будут два метода класса Mesage. Получается, что в обоих файлах нужно создавать объект класса Mesage и вызывать нужный метод. И в каждом таком файле будет загружаться много функций, которые не используются. Ведь в классе могут быть и другие методы. Это так делается, или я что-то неправильно понял?
Вот файл message.class.php PHP: <? class Message(){ public $a; public $b; public function sendMessage($message){ //код метода } public function getMessages($q){ //код метода } } ?> а вот файл , где используется класс PHP: <? require "message.class.php"; $msg = new Message(); $msg->sendMessage('Привет'); $msg->getMessages(10); ?>
Да, с классом всё понятно . Но я думал, что файлов, использующих класс должно быть больше. Ведь методы-то разные, они выполняют разные действия, не зависящие друг от друга. Я представляю это так: кроме класса есть ещё два файла: sendmesage.php PHP: <? require "message.class.php"; $msg = new Message(); $msg->sendMessage('Привет'); ?> и getmesages.php PHP: <? require "message.class.php"; $msg = new Message(); $msg->getMessages(10); ?> Ведь методы должны вызываться в разное время. Соответственно, страница будет запускать файлы, когда нужно и вызывать требуемый метод. Или это по-другому делается и нужно использовать один файл?
Вы пытаетесь контроллер изобрести, с маршрутизатором. Есть способы маршрутизировать вызов на конкретный метод автоматом. Единая точка входа, она определяет по маршруту, какой класс создать и какой метод вызвать. Это действие называется роутинг. Можно в качестве прикола написать свой, поиграться (загуглите, их полно, таких учебных в сети). В реальном проекте либо фреймворк, либо что-то готовое пользуют обычно. Например, https://route.thephpleague.com/. Но так как вы показали с require тоже нормально для учебного проекта. Для реального хуже, но такие проекты до сих пор встречаются.
Я пытаюсь изучать ооп. И пока у меня только один вопрос - нормально ли то, что загружается класс с множеством методов, когда нужен только один метод
Нормально. Только класс, сам по себе, не должен быть избыточным, "класс, который слишком много знал"...