Общая структура приложения
Под приложением понимается совокупность файлов и директорий проекта определенной структуры.
Под ядром приложения понимается группа базовых компонентов под общим названием BFF, возможный вариант ее объяснения - Best Friends Forever.
Рассмотрим структуру директорий приложения:
- app - классы приложения, унаследованные с целью добавления дополнительной логики приложения либо изменения логики поведения основных компонентов ядра
-
bff - ядро приложения (базовые классы, модули, компоненты...)
- base - базовые компоненты, перегружаемые в последствии аналогичными внешними классами
- cache - классы реализующие работу с кешированием
- captcha - капча
-
db - компоненты работы с базой данных
- comments - компонент, реализующий работу с комментариями
- dynprops - компонент, реализующий работу с динамическими свойствами
- migrations - шаблоны классов миграций
- nestedsets - компонент, реализующий работу с древовидной NestedSets структурой таблиц
- publicator - компонент Publicator, альтернатива wysiwyg редактору
- sphinx - компонент работы со Sphinx
- tags - компонент, реализующий работу с тегами
- extend - базовые классы расширений приложения
-
external - внешние компоненты используемые в ядре / приложении
- hybridauth - библиотека реализующая API для авторизации через соц. сети
- jevix - парсер HTML / текста, реализующий контроль допустимых тегом и атрибутов а также минимально необходимое типографирование
- minifier - компонент отвечающий за минимизацию статических файлов (css,js)
- parsedown - компонент реализующий поддержку Markdown разметки
- phpmailer - отправка e-mail писем через sendmail, smtp
- sphinx - API для работы с движком Sphinx
- files - компоненты работы с файлами
- fonts - файлы шрифтов используемые в ядре / приложении
- gettext - компоненты работы с расширением gettext
- img - компоненты работы с изображениями - загрузка, нарезка
- logs - компоненты работы с логами (логированием)
- modules - модули ядра
- session - компоненты при работе с сессией и форумами
- tpl - компоненты ядра отвечащие за отрисовку форм и списков в админ-панели
- utils - дополнительные утилиты
-
config - файлы настроек приложения
- db.tables.php - общие таблицы приложения
- sys.php - файл системных настроек (домен проекта, доступ к базе данных и другие)
- custom - директория хранения модифицированных файлов расширений
-
files - системные статические файлы
- cache - файловый кеш
- extensions - загружаемые файлы расширений (недоступные по прямой ссылке)
- ipgeobase - файлы выгрузки баз ipgeobase.ru
- locale - файлы локализации gettext
- logs - лог-файлы
- mail - шаблоны писем
- migrations - файлы миграций базы данных
- smarty - скомпилированные шаблоны smarty
- install - файлы необходимые для установки приложения: инструкции, дамп базы данных install.sql
- modules - модули приложения
- plugins - плагины приложения
-
public_html - public директория приложения (файл доступные по прямой ссылке)
- css - css файлы приложения
- custom - модифицированные статические файлы приложения
-
files - загружаемая статика
- bnnrs - баннеры
- extensions - загружаемые файлы расширений (доступные по прямой ссылке)
- im - файлы вложений внутренней почты
- images - изображения
- min - минифицированные статические файлы приложения и расширений
- pages - статические страницы
-
img - изображения приложения
- admin - изображения используемые в админ-панели приложения
-
js - javascript файлы приложения
- bff - javascript компоненты ядра приложения
- plugins - статические файлы плагинов (css,js,img)
- themes - статические файлы тем (css,js,img)
- themes - темы приложения
-
tpl - шаблоны приложения (в корне)
- admin - шаблоны для админ-панели приложения
- vendor - директория хранения внешних библиотек установленных посредством Composer
Базовые классы и компоненты приложения
bff
- класс приложения
Cache
- базовый класс работы с кешированием
Comments
- компонент для работы с комментариями
Component
- базовый компонент
config
- компонент для работы с настройками
Database
- класс работы с базой данных
Dynprops
- компонент динамических свойств
Errors
- класс работы с ошибками
Files
- набор функций общего назначения для работы с файлами
func
- набор общих вспомогательных функций
HTML
- класс вспомогательных HTML методов
js
- класс вспомогательных методов работы с javascript кодом
Input
- класс валидации входящих данных (GET, POST, COOKIE ...)
Locale
- класс работы с локализацией
CMail
- класс выполняющий отправку почты (на основе PHPMailer)
Model
- класс модели
Module
- базовый компонент модуля
Pagination
- компонент выполняющий формирование "постраничной навигации"
Publicator
- компонент Publicator
Request
- класс вспомогательных методов работы с параметрами запроса
Security
- класс работы с сессией и реализацией механизмов защиты
Tags
- компонент для работы с тегами
TextParser
- класс вспомогательных методов обработки текста
tpl
- вспомогательные методы для форматирования данных в шаблонах
User
- класс работы с данными авторизованного пользователя
View
- класс работы с отображением шаблонов