JLayer

1.42K
.
Сам jlayer кидаем в корень сайта.

Создаем папку с модулем.
Создаем индекс со следующим содержимым:

<?php

/** Path to module's directory */
define('JL_MODULE_DIR', rtrim(dirname(__FILE__), '\\/') . DIRECTORY_SEPARATOR);
/** Prefix for tables in database */
define('JL_TABLES_PREFIX', 'префикс_для_таблиц_базы_данных');
/** Default controller */
define('JL_DEFAULT_CONTROLLER', 'имя_контроллера_вызываемого_по_умолчанию');
/** Default action */
define('JL_DEFAULT_ACTION', 'index'); // Тут менять ничего не нужно
/** JohnCMS version */
define('JOHNCMS_VERSION', '5.0.1');

require '../jlayer/jlayer.php';


Создаем .htaccess

RewriteEngine On
RewriteBase /имя_директория_модуля
RewriteRule ^(?:controller|model|lang|view)\b.* index.php/$0 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT]

Создаем директории:
controller
model
lang
view

В директории контроллеров создаем дефолтный контроллер, который определили в JL_DEFAULT_CONTROLLER
Пусть будет index
Значит создаем файл index.php

class Controller_Index extends \jl\Controller {

/**
 * Default action
 *
 * @return string
 */
public function action_index($arg = 0, $arg_type = '') {
return $this->lng->test;
}
}

Метод action_index обязательно должен присутствовать в каждом контроллере, т.к. он определен абстрактным в родительском классе.

В директории lang создаем файл с именем языка по умолчанию и расширением json со следующим содержимым:
{
"test": "Тест"
}

Теперь можем перейти по адресу http://ваш_сайт/директорий_модуля

Должны увидеть слово Тест

Если страница пустая, проверьте логи в директории /jlayer/jl/logs
.
Итак, что осталось:
Отладить и протестировать плагины. Из всех плагинов, Плагин Image доработан до вменяемого состояния и впринципе готов к использованию. (Тот что в архиве выше - не он Гг) ну и Pagination. Остальные я особо не гонял.
Далее погонть обертку для функций, модель.
Разобраться с константами.
Доработать комменты к коду. И запилить мануал по использованию.
После этого можно будет приступить к генератору.
.
UA95, спасибо за отзыв Гг. От тебя то как раз я ничего и не ждал. Вот было бы интересно мнение Лимпа и других более продвинутых кодеров
.
Ну вроде как всё протестировал, сейчас еще пробегусь и начну запиливать мануал. Если за сегодня успею, что вряд ли, то выложу сегодня, иначе завтра - инфа 100%.
.
Я думал опоздаю, оказывается нет. Вот уже допиливаю руководство.
Оказалось многовато текста всё-таки. Там осталось описать работу с плагинами и адаптацию под другие версии. Ну и еще кое-какие мелочи. Постараюсь сегодня успеть выложить.
----------
Кто-нибудь переименуйте тему. Оставьте просто JLayer.
.
Встречайте! Beta-версия
Руководство прилагается.
Прикрепленные файлы:
.
Что касается генератора, то завтра постараюсь осилить большую часть. Когда закончу, сказать не могу. Но вообще со всем этим я планировал к концу следующей недели разобраться, а там уже у меня другие планы. Хотя бросать этот проект пока не собираюсь. Новых фич запиливать не буду, в первую очередь важно все тщательно отладить. Ну и постараться добиться большей независимости от движка.
.
5 раз скачали и ни одного комментария
Не осилили чтоли? Гг
.
╭∩╮ (`-`) ╭∩╮
Screamer (13.07.2013 / 20:51)
5 раз скачали и ни одного комментария
Не осилили чтоли? Гг
каменты будут позже, но пока надо пояснение
А именно:
1) Задача вывести "Hello world!" средствами Jlayer. Покажи на примере, как это сделать.
2) У нас есть написанный "Hello world!". Объясни принцип работы Jlayer, начиная с инициализации скрипта, принятия URI и заканчивая выводом "Hello world!". Не нужно объяснять принципы патернов, это можно прочитать из других источников. Ты просто объясни, какие классы и модули подключаются (поочередно, по мере их задействования).
.
AlkatraZ, Ну лови кубег Гг.
Но для начала отмечу:

Не нужно объяснять принципы патернов, это можно прочитать из других источников.

Я и не собирался, сам очень то и осведомлен в этих паттернах и прочем.

Создаем директорий модуля необходимые поддиректории .htaccess и index.php всё это описано в руководстве.
ХтАксесс перенаправляет все запросы на index.php
В индексе у нас объявляются необходимые константы и подключается jlayer/jlayer.php

Ну и далее по файлу:
Проверяется наличие необходимых констант.
Подключается файл функций.
Устанавливается обработчик неперехваченных исключений.
Подключаются классы исключений.
Подключаются системные классы.
Загружается DB_Wrapper - класс для работы с базой данных.
Загружается Engine_Wrapper - собственно сам конфиг и класс-обертка для функций, необходимый для связи с движком.
Проверяется наличие необходимых директорий модуля.
Подхватывается установленное соединение. Если соединение с базой не установлено по каким либо причинам, то создастся новое.
Создается объект класса шаблонизатора для контроллера.
Создается объект класса Jlayer - он необходим для связи с движком.

Далее в ход идет роутер.
Он разбивает URI на сегменты. В качестве разделителя выступает слеш.
Определяет какой контроллер следует загружать и какой метод вызывать.
Если определить не удалось, берет значения из установленных ранее констант.
Проверяет наличие файла и класса контроллера, если они присутствуют создает объект класса и проверяет, унаследован ли класс от jl\Controller, если да то проверяет наличие метода у объекта.
Если все проверки прошли успешно, то вызывает метод, попутно передавая ему аргументы полученные из URI
Если на каком либо этапе произошла ошибка, то срабатывает редирект.
Если редирект не сработал, то переменной $result присваивается значение возвращаемое методом. Если переменная не пуста, то вход идет шаблонизатор и выводит полученные данные, иначе ничего не происходит.
Как-то так вобщем.
Всего: 75