Я рассматриваю этот вопрос в основном как программист на C ++ / C #, который может помочь взглянуть на вещи. Мне не удалось найти простой ответ на мой вопрос, поэтому я приношу свои извинения, если есть один доступный там. Кажется, это будет очень распространенная проблема.
Предположим, что у меня есть класс A , который является контейнером для экземпляров класса B. класс B , в свою очередь, является контейнером для экземпляров класса C. В контейнере я имею в виду, что каждый класс содержит массив определенных типов объектов и несколько общих параметров, описывающих эти объекты. Каждый класс хранится в [className] .php
Теперь у меня есть скрипт, который должен создать экземпляр класса A. Для этого ему нужно будет создать экземпляры класса C. Каждый набор из них будет использоваться для создания экземпляра класса B и, наконец, все классы Bs будут использоваться для создания экземпляра класса A.
Вопрос в PHP, где находится наилучшее место с наименьшей ошибкой для размещения операторов require ()? Некоторые идеи:
Как всегда, я ценю идеи. Хотя это может быть субъективным на каком-то уровне, я верю, что некоторые способы могут быть объективно лучше других, и это то, что мне нужно.
Я бы пошел с автозагрузкой. Вам не нужно беспокоиться о том, где вы require_once()
ваших классов, если это автоматически для вас. Все, что вам нужно сделать, это начать использовать классы, которые вы ожидаете там, и PHP вызовет ваш автозагрузчик, чтобы убедиться, что классы загружены.
Если вы больше привыкли к программированию в среде, в которой вы импортируете вещи вверху каждого файла, вам может быть удобнее использовать require_once()
в верхней части всех ваших файлов. Я почти предпочитаю это за автозагрузку, потому что он очень четко определяет, что такое зависимости между классами. Однако вы получаете много дублирования, которое вам может не понравиться.
В любом случае. Это в основном выбор стиля.
Всегда используйте require_once
для включения классов. Всегда . В буквальном смысле нет недостатка. Включите файлы через require_once
в каждом файле, который им нужен. Это не может потерпеть неудачу: вы не можете использовать require_once
слишком много раз, и класс гарантированно будет включен и доступен в течение всей программы.