MVC компонент

Перекрытие переменных

Классические подходы к локализации переменных решают проблемы при помощи разграничения пространства имен NAMESPACE. Внутри приложений скелетона можно использовать данный механизм, но он приведет к привязыванию модуля к директории.

Если путь к папке изменится - придется менять NAMESPACE во всех файлах внутри. Также не красиво указывать NAMESPACE внутри шаблонов. Все бы решилось, если бы в NAMESPACE можно было указывать функции или выражения.

В общем случае - при написании большого приложения - при отсутствии единого именования переменных по принципу $file1_subfile_subfubfile_var - у вас может возникнуть пересечение переменных.

В качестве элегантного решения проблем - вы можете на любом уровне использовать глобальный массив переменных, зависимый от уровня, к примеру

$vars[__DIR__]['var']=value;

Тогда, обратившись к этой же переменной на шаблоне этого же уровня - вы попадете на свою переменную и другие вкладки вам не помешают.

Данный способ позволяет сохранить гибкость приложения и дать вам расширенные возможности по ссылкам на любые переменные других модулей, если вы заранее запомнили

$moduleDIR=__DIR__;

Создано при помощи сервиса Core CMS