Файловая структура приложения

Стандартная структура приложения.

Файл/Директория

Назначение и то, как получить файловый путь и URL в коде
/ По умолчанию соответствует $_SERVER['DOCUMENT_ROOT'].
/internals/ Директория с внутренностями приложения. Через файл конфигурации, есть возможность переопределять пути.
/internals/blocks/ Для блоков.
/internals/cache/ Для закрытого файлового кэша. Скомпилированные Smarty-шаблоны, данные и т.п.
/internals/pubcache/ Для открытого кэша: спрайты, нарезка картинок, объединённые javascript и css файлы.
/internals/cli/ Для CLI (консольных) скриптов.
/internals/pages/ Программные файлы страниц.
/internals/controllers/ Для контроллеров приложения.
/internals/dictionaries/ Для словарей содержащих языковые переменные.
/internals/exchange/ Для обмена данными: экспорт/импорт.
/internals/interfaces/

Для интерфейсов, здесь хранятся: Smarty-шаблоны (*.tpl), native-шаблоны (*.phtml), картинки, представления, js и css файлы.

В приложении может быть несколько интерфейсов, поэтому директория называется во множественном числе interfaces, а внутри находятся поддиректории с названием интерфейса.

Если используется 1 интерфейс, можно упростить, во первых назвать директорию в единственном числе interface, а внутри создать сразу поддиректории: templates, css, js, images, views.

К примеру, вместо internals/interfaces/winter/templates будет internals/interface/templates. winter - это название интерфейса, а templates - директория с шаблонами.

/internals/interfaces/[НАЗВАНИЕ_ИНТЕРФЕЙСА]/css/  
/internals/interfaces/[НАЗВАНИЕ_ИНТЕРФЕЙСА]/fonts/  
/internals/interfaces/[НАЗВАНИЕ_ИНТЕРФЕЙСА]/images/  
/internals/interfaces/[НАЗВАНИЕ_ИНТЕРФЕЙСА]/js/  
/internals/interfaces/[НАЗВАНИЕ_ИНТЕРФЕЙСА]/templates/  
/internals/interfaces/[НАЗВАНИЕ_ИНТЕРФЕЙСА]/views/ Для представлений. Представление - это скрипт для окончательной подготовки перед выводом содержимого страницы.
/internals/log/

Для лог-файлов. К примеру в эту директорию можно направить логирование PHP.

ini_set('error_log', app::$config['dirs']['log'] . '/php.log');
/internals/modules/ Для модулей.
/internals/other/ Для стороннего кода.
/internals/models/  
/internals/services/ Для сервисов.
/internals/includes/ Для одиночных PHP-файлов не входящих в состав модулей и библиотек кода.
/internals/tmp/ Для временных файлов.
/internals/uploads/ Постоянное хранилище загруженных на сервер файлов.
/internals/uploads/protected/ Закрытое хранилище загруженных файлов. Данную директорию можно вынести за пределы document root или закрыть на уровне HTTP-сервера.
/index.php Точка входа в приложение (ТВП).
/internals/.htaccess

Директива Apache, закрывает доступ к некоторым файлам.

<FilesMatch "\.(php|html|sql|tpl|log|txt)$">
	deny from all
</FilesMatch>
/.htaccess  

 

© Автор и разработчик Михаил Шершнёв, 2006–2021
E-mail: support@bwframework.ru