Установка / инсталляция фреймворка

 
+
-
edit
 

Balancer

администратор
★★★★★
В настоящее время идёт неторопливая адаптация фреймворка BORS© под установку через Composer и возможность начала быстрой работы через встроенный Web-сервер PHP-5.4. Но это пока скорее вопрос концептуальный, на стадии раннего альфа-тестирования.

Так что пока фреймворк устанавливается вручную и для работы требует полноценного Web-сервера под Linux (Nginx/Lighttpd/Apache). Задумывался он и как работающий под Windows (в том же Denver), но из-за отсутствия потребности в этом, совместимость с Windows давно поломана.

Итак, компоненты фреймворка:

bors-core


Источник: bitbucket.org/Balancer/bors-core
Установка: hg clone https://Balancer@bitbucket.org/Balancer/bors-core
Основная часть, ядро. Подразумевается, что когда-то там будет самый минимум, необходимый для основных задач, но сейчас там много компонентов, используемых редко. Исторически так сложилось. Понемногу такие переносятся в bors-ext, но процесс весьма фоновый :)

bors-ext


Источник: bitbucket.org/Balancer/bors-ext
Установка: hg clone https://Balancer@bitbucket.org/Balancer/bors-ext
Как понятно из названия — набор расширений. То, что нужно не во всех проектах.

bors-third-party


Источник: bitbucket.org/Balancer/bors-third-party
Установка: hg clone https://Balancer@bitbucket.org/Balancer/bors-third-party
Фреймворк в своей работе использует множество сторонних библиотек. Например, шаблонизатор Smarty или множество классов из PEAR. Можно их все ставить вручную, по мере надобности, но чтобы не делать это каждый раз, все они собраны у меня в отдельный огромный (сейчас более 400Мб) репозиторий. Соответственно, для компактного развёртывания можно/нужно ставить всё что нужно вручную, а если лениво — то можно скачать этот репозиторий чохом. Заодно не придётся настраивать пути к библиотекам. Они тут итак все есть.

Дальше — как со всей этой фигнёй взлететь.
 2828
+
-
edit
 

Balancer

администратор
★★★★★
Чтобы запустить фреймворк в общем случае, нужно определить константы с путями ко всем трёх основным репозиториям и к репозиторию сайта/проекта. После этого вызвать инициализацию фреймворка загрузкой файла init.php в bors-core. И, наконец, передать управление файлу main.php там же. Т.е. полный скрипт обработки запроса выглядит примерно так:
code php
  1. <?php
  2.  
  3. define('BORS_CORE', '/var/www/bors/bors-core');
  4. define('BORS_EXT', '/var/www/bors/bors-ext');
  5. define('BORS_3RD_PARTY', '/var/www/bors/bors-third-party');
  6. define('BORS_SITE', '/var/www/mysite/bors-site');
  7. require_once(BORS_CORE.'/init.php');
  8. require_once(BORS_CORE.'/main.php');


Скажем, кладём этот файл в корень сайта и настройками Web-сервера заворачиваем на него все обращения к несуществующим файлам. Скажем, пусть этот скрипт называется bors-loader.php и тогда .htaccess для Apache будет выглядеть так:

code apache
  1. # Если нет запрашиваемого файла
  2. RewriteCond %{REQUEST_FILENAME} !-f
  3. # И каталога такого нет
  4. RewriteCond %{REQUEST_FILENAME} !-d
  5. # То все запросы перенаправить на фреймворк
  6. RewriteRule .* /bors-loader.php [L]


На самом деле main.php и init.php имеют средства автоматического определения конфигурации. Поэтому, достаточно bors-ext и bors-third-party положить в тот же каталог, что и bors-core, репозиторий своего сайта поместить в каталог bors-site на один уровень выше DOCUMENT_ROOT (скажем, если корень сайта лежит в /var/www/balancer.ru/htdocs, то репозиторий — в /var/www/balancer.ru/bors-site) и вызывать main.php в bors-core. То есть весь скрипт запуска превращается в
code php
  1. <?php
  2.  
  3. require_once('/var/www/bors/bors-core/main.php');


Или, если настройки Web-сервера позволяют, можно передать в этот скрипт управление прямо из сервера. Тогда никакого загрузчика не понадобится вообще.
 2828
+
-
edit
 

Balancer

администратор
★★★★★
Фреймворк активно использует унифицированные css, js, изображения и другую статику. Чтобы искать её всегда на одних и тех же местах, пути к ней жёстко прописываются в заданных подкаталогах в корне сайта. Чтобы привязать такие подкаталоги, достаточно просто поставить симлинки на соответствующие подкаталоги htdocs во всех трёх репозиториях — bors_core/bors_ext и bors-third-party.

code bash
  1. $ ls -l /var/www/balancer.ru/htdocs/_bors
  2. /var/www/balancer.ru/htdocs/_bors -> /var/www/bors/bors-core/htdocs/_bors
  3. /var/www/balancer.ru/htdocs/_bors-3rd -> /var/www/bors/bors-third-party/htdocs/_bors-3rd
  4. /var/www/balancer.ru/htdocs/_bors3rdp -> /var/www/bors/bors-third-party/shared
  5. /var/www/balancer.ru/htdocs/_bors-ext -> /var/www/bors/bors-ext/htdocs/_bors-ext


(исключение — в предпоследней строчки. Проблема legacy-кода :))
 2828

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru