Версия: 6.x
burger close
Быстрый старт

Самый быстрый способ

Чтобы начать изучать возможности ReadyScript, достаточно создать PHP-файл(с именем, например, example.php) в корне сайта, подключить в нем конфигурационный файл /setup.inc.php. После подключения Setup произойдет инициализация всех подсистем(autoload, системы событий, языковых функций, и.т.д). Со следующей строки можно использовать все классы платформы.

Пример файла /example.php.

require('setup.inc.php');
//Здесь уже доступны все классы ReadyScript.
//Попробуем создать статью
$article = new \Article\Model\Orm\Article();
$article['title'] = 'Hello World!';
$article['content'] = 'Это наша первая статья!';
$article['short_content'] = 'Краткий текст нашей первой статьи';
if ($article->insert()) {
echo 'Все получилось!';
} else {
echo 'Что-то пошло не так!';
var_dump($article->getErrors());
}
//Можем зайти в панель администратора и посмотреть на созданную статью в разделе Веб-сайт -> Контент

Далее, следует набрать в браузере http://ваш_домен/example.php, чтобы запустить скрипт.

Заметки
Одиночный скрипт запускается не через единую точку входа /index.php, а соответственно не через диспетчер маршрутов. Это означает, что в системе будет не установлен текущий маршрут и некоторые функции, связанные с этим, будут недоступны.

Создание простейшего модуля

Создание простейшего модуля - отличный способ полноценно изучить все системы ReadyScript. Модуль будет отвечать на URL http://ваш_домен/example/ и передавать управление фронт-контроллеру.

Сперва потребуется создать следующую структуру в каталоге модулей /modules:

  • modulename //название модуля. Можно использовать любое английское имя
    • config //Здесь должны находиться конфигурационные классы модуля
      • file.inc.php //Конфигурационный файл модуля
      • module.xml //Файл со сведениями о модуле и его настройках по-умолчанию
      • handlers.inc.php //Файл с обработчиками событий, на которые подписан модуль
    • controller //Контроллеры модуля Main
      • front //Корневая папка для фронт контроллеров
        • example.inc.php //Фронт контроллер

Содержимое файла /modulename/config/file.inc.php:

<?php
namespace ModuleName\Config;
use \RS\Orm\Type;
//Класс конфигурации модуля. Будет полностью наследовать стандартное поведение конфигурационного класса
class File extends \RS\Orm\ConfigObject
{}

Содержимое файла /modulename/config/module.xml

<?xml version="1.0" encoding="utf-8"?>
<config>
<defaultValues>
<name multilanguage="true">Тест</name>
<description multilanguage="true">Тестовый модуль</description>
<version>1.0.0.0</version>
<author>ReadyScript lab.</author>
</defaultValues>
</config>

Содержимое файла /modulename/config/handlers.inc.php:

namespace ModuleName\Config;
// Класс устанавливает обработчики на системные события
class Handlers extends \RS\Event\HandlerAbstract
{
function init()
{
$this->bind('getroute');
}
// Возвращает маршруты данного модуля
public static function getRoute(array $routes)
{
//Добавляем маршрут в систему
$routes[] = new \RS\Router\Route(
'modulename-front-example', //ID маршрута
'/example/', //Обрабатываемые URL
null,
'Тестовая страница' //Название маршрута для админ. панели
);
return $routes;
}
}

Содержимое файла /modulename/config/example.inc.php:

namespace ModuleName\Controller\Front;
// Фронт-контроллер
class Example extends \RS\Controller\Front
{
function actionIndex()
{
$this->wrapOutput(false); //Не оборачиваем результат другим HTML'кодом
return 'Hello world!';
}
}

После того, как структура файлов будет создана в административной панели в разделе Веб-сайт → Настройка модулей появится возможность установить модуль.

installmodule.png
Установка нового модуля
Заметки
Если новый модуль не появляется в списке модулей, необходимо отключить кэширование в разделе Управление → Настройка системы или сбросить кэш, нажав на иконку со стрелками, расположенную в шапке административной панели.

После того, как модуль будет установлен, он будет обрабатывать URL http://ваш_домен/example/

Включение отображения ошибок

Для удобства разработки, рекомендуем включать подробное отображение ошибок в ReadyScript. Для этого переведите флаг display_errors в состояние on в файле .htaccess

php_flag display_errors on

А также включите опцию "Подробно отображать информацию об исключениях" в административной панели в разделе Управление → Настройка системы или создайте файл с именем _local_settings.php в корне сайта, рядом с файлом setup.inc.php со следующим содержимым:

<?php
\Setup::$DETAILED_EXCEPTION = true;