Согласен, без этого можно обойтись. Но дело в том, что проект этот делается исключительно для себя и соратников, так что есть возможность исследования и эксперимента. Тем более, расширенные возможности ООП в 5.0 являют собой большой соблазн. Так что, как я сказал в самом первом посте, решение вполне может оказаться неверным
Но, тем не менее.
Итак, хотелось вот что - сделать некое Web-приложение, причем так, чтобы впоследствии по необходимости к нему можно было добавлять любую функциональность. Это вот общие слова. В частности, иметь унифицированный способ создания и управления программными объектами. По поводу создания все достаточно понятно - фабрика в этом поможет. А вот по поводу управления как раз и возникли некоторые замешательства.
Приведу пример. Изначально приложение без авторизации. Содержимое демонстриреутся всем, кто хочет. Потом решили добавить еще некоторое содержимое, которое требует авторизации. То есть, надо создать еще некоторый набор классов авторизации и органично их вписать. Допустим, все ограничится введением класса типа CUser. Экземпляр этого класса будет _единственным_ (одиночка), а кроме того, его надо будет сохранять в сессии и при необходимости распаковывать.
При той структуре, которая у меня вырисовалась на данном этапе исследования, эти два требования можно удовлетворить следующим образом:
PHP:
class Cuser extends CClass{
const singleton = true;
const serializable = true;
}
А всю функциональность по созданию, отслеживанию его единственности, сохранению в сессию и распаковке берет на себя некое ядро, написанное один раз.
Поэтому речь и идет о том, что система не знает, какие вообще классы в дальнейшем будут в ней использоваться.
Ну а когда доходит дело до сериализации, например, мы имеем в наличии некий экземпляр (класс заранее не известен). Надо на этот экзмпляр посмотреть и узнать, нужно его в сессию сохранять или нет.
Что-то, многовато написалось. Скорее всего, сумбурно и с упущениями. Если есть идеи, как сделать то же самое, но по-другому, буду рад их услышать