Ну, я продолжаю слышать, что вам лучше не использовать статические методы в php, я могу понять это до некоторой степени, но у меня есть некоторые заблуждения, что я хочу знать:
Допустим, я пишу приложение, я определяю сотни классов (или использую инфраструктуру, которая уже содержит сотни различных классов), я не знаю, должен ли я создавать класс для каждой небольшой задачи, поэтому допустим, что я создаю класс для обработки всех задач CRUD для определенного элемента (например, сообщений в блоге), и этот класс обрабатывает просмотр, сохранение, редактирование и т. д., в таком случае, если я каждый раз создаю экземпляр класса, он создаст объект, содержащий в основном методы, которые нам не нужно в этом запросе, так что …
Я думаю, что я пытаюсь спросить:
Разумно ли делать что-то подобное?
Создайте классы, содержащие методы, многие из которых мы не используем в каждом запросе, и определим их как нестатические, так что каждый раз нам приходится создавать экземпляр всего объекта?
Как и Laravel для своих контроллеров, мы определяем все нестатические методы для обработки всех задач, связанных с определенной группой маршрутов, и создаем экземпляр всего контроллера каждый раз, когда мы хотим получить доступ к одному или двум из этих методов.
Заранее спасибо за ваше время и терпение.
Я ценю его.
В большинстве сред вы видите, что CRUD написан на контроллере. Так и должно быть.
Один контроллер имеет несколько действий (создание, чтение, обновление и удаление). Дело в том, что эти методы не все вызываются и выполняются. Если вы хотите прочитать свои записи в блоге, единственное, что будет выполнено, это действие чтения.
Вы можете сравнить это с вождением машины. Вы можете хранить несколько «машин» в одном «гараже», но вы можете ездить только по одному за раз.
Чтобы добавить больше информации. Когда вы создаете экземпляр класса:
$class = new myClass();
Единственное, что будет называться (если оно есть), это constructor
,
public function __construct()
{
// Instantiation logic here
}
Создавая экземпляр этого класса, вы фактически не выполняете все методы. Вы просто сделаете их доступными для использования. (Как открыть дверь гаража и вручить вам ключи от машины: D)
Других решений пока нет …