Как создать приложение

Например уже создан один сайт с доменом 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/ Для представлений (рендереров). Это почти конечная точка приложения. Задача представления подготовка данных перед выводов в шаблон страницы.
© Автор и разработчик Михаил Шершнёв, 2006–2021
E-mail: support@bwframework.ru