Как создать приложение
Например уже создан один сайт с доменом site.ru и директория сайта находиться по пути /var/www/site.ru, а директория ядра по пути /var/www/site.ru/kernel/, тогда примерный план по созданию нового приложения (сайта) будет таким.
Примерный план по созданию нового приложения.
- Создать директорию для нового приложения.
mkdir /var/www/new-site.ru chown -R nginx:nginx /var/www/new-site.ru chmod -R 0664 /var/www/new-site.ru
- Создать в директории приложения ссылку на директорию ядра.
cd /var/www/new-site.ru ln -s /var/www/site.ru/kernel kernel
- На уровне HTTP-сервера, создать новый хост new-site.ru и указать путь к директории сайта /var/www/new-site.ru.
- Распаковать прототип приложения "blank" (заготовка).
unzip /var/www/site.ru/kernel/prototype/blank.zip -d /var/www/new-site.ru
- Создать конфигурационный файл приложения, настроить и разместить в директории /var/www/new-site.ru/kernel/configs
- Прописать имя нового приложения в /var/www/new-site.ru/kernel/configs/kernel.php
Прототип приложения blank.zip
По другому этот прототип называется "Заготовка" и содержит в себе файловую структуру под будущее приложения.
Директория | Описание |
---|---|
/index.php | Точка входа в приложение (ТВП). |
/robots.txt | |
/.gitignore | |
/.htaccess | |
/internals/ | Внутренности приложения. |
/internals/includes/ | |
/internals/includes/app.php | Класс приложения. Программист может переопределять этот класс под нужды приложения. Например благодаря этому классу, можно делать доступными различные данные в любом месте приложения, для этого существует массив app::$data, дополнять этот класс своими свойствами, методами, константами. Все свойства и методы должны быть статичными. app::$my_object; app::my_method(); |
/internals/includes/http_pages/ | Директория с макетами HTTP-ответов. Страницы предназначены для вывода в случае HTTP-ошибок. Можно поменять на свой вариант дизайна. |
/internals/services/ | Пустая директория для размещения сервисов. |
/internals/modules/ | Пустая директория для размещения модулей. |
/internals/controllers/ | Пустая директория для размещения контроллеров. |
/internals/cache/ | Для закрытых автоматически сгенерированных данных, для кэш-данных, для скомпилированных шаблонов и т.п. Должна быть закрыта на уровне HTTP-сервера. |
/internals/cli/ | Для фоновых скриптов, запускаемых из консоли, через планировщик (CRON). |
/internals/dictionaries/ | Для файлов словарей. |
/internals/pubcache/ | Для любых автоматически сгенерированных файлов доступных извне (public cache, публичный кэш). Например для склеенных и сжатых js, css, спрайтов, нарезок картинок. Пользоваться данной директорией нужно с тем расчётом, что её содержимое может в любое время быть очищено и поэтому в данном директории не стоит размещать какие бы то ни было оригиналы. |
/internals/uploads/ | Для загруженных файлов. |
/internals/uploads/editor/ | Директория для загруженных файлов через визуальный редактор. Используется в CMS. |
/internals/uploads/protected/ | Директория для загруженный оригиналов. Должна быть закрыта на уровне HTTP-сервера. |
/internals/pages/ | Для страниц. Страницы используются в CMS. |
/internals/pages/default.php | Программный файл страницы. |
/internals/blocks/ | Для блоков. Блоки используются в CMS. |
/internals/blocks/default.php | Программный файл блока. |
/internals/other/ | Для сторонних скриптов. |
/internals/tmp/ | Для складирования временных файлов. |
/internals/log/ | Для логов приложения, сюда можно определить логи HTTP-сервера, логи PHP и т.п. |
/internals/exchange/ | Для файлов обмена. |
/internals/interfaces/ | Директория для интерфейсов (дизайнов, шаблонов) приложения. |
/internals/interfaces/default/ | Название интерфейса. |
/internals/interfaces/default/.metadata/ | Описание интерфейса, используется в CMS. |
/internals/interfaces/default/css/ | Для файлов стилей. |
/internals/interfaces/default/js/ | Для JavaScript'ов. Можно здесь размещать и сторонние JavaScript'ы, но для всего написанно сторонними разработчиками, имеется директория /internals/other/ |
/internals/interfaces/default/images/ | Для картинок. |
/internals/interfaces/default/fonts/ | Для шрифтов. |
/internals/interfaces/default/templates/ | Для шаблонов. |
/internals/interfaces/default/views/ | Для представлений (рендереров). Это почти конечная точка приложения. Задача представления подготовка данных перед выводов в шаблон страницы. |