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