Сайт FSA

Перейти к оглавлению

Класс App

Перед началом использования фреймворка необходимо создать класс (например, App), который должен наследоваться от абстрактного класса FSA\Neuron\App.

Внутри класса необходимо объявить методы, которые, по сути, являются константами:

class App extends FSA\Neuron\App
{
    protected static function constVarPrefix(): string
    {
        return "my_app";
    }

    protected static function constSessionName(): string
    {
        return "my_app";
    }

    protected static function constSettingsFile(): string
    {
        return __DIR__ . '/../settings.php';
    }
}

Назначение методов:

При необходимости, можно передать в шаблоны необходимые значения, например, имя сайта и данные сессии пользователя и другое:

    protected static function getContext(): array
    {
        return [
            'title' => 'MyApp',
            'session' => self::session(),
            ...
        ];
    }

Если требуется дополнительная инициализация приложения, то можно переопределить метод App::init(), например, можно открыть подключение к системному журналу, чтобы в дальнейшем использовать команду syslog:

    public static function init()
    {
        parent::init();
        ini_set('syslog.filter', 'raw');
        openlog('my_app', LOG_PID | LOG_ODELAY, LOG_USER);
    }

Шаблоны страниц располагаются в пространстве имён Templates. Однако эти значения можно переопределить, создав метод App::getTemplates():

    protected static function getTemplates(): array
    {
        return [
            \Templates\Main::class,
            \Templates\Login::class,
            \Templates\Message::class
        ];
    }

Методы для работы с ответом

App::init(): Response

Простая инициализация, если не требуется вывод. Обычно должны использоваться App::initHtml() или App::initJson().

App::initHtml(): ResponseHtml

Инициализация режима вывода HTML. Производит вызов App::init() и устанавливает перехват исключений, в результате чего любые ошибки в коде будут направляться пользователю в виде страницы с ошибкой или всплывающего окна. Метод возвращает объект response, тот же, что будет возвращать App::response().

App::initJson(): ResponseJson

Инициализирует режим вывода JSON. Производит вызов App::init() и устанавливает перехват исключений, в результате чего ошибки в коде будут направляться в виде JSON ответа с описанием ошибки или в виде кода ошибки HTML. Метод возвращает объект response, тот же, что будет возвращать App::response().

App::response(): Response|ResponseHtml|ResponseHTML

Возвращает объект response, который позволяет с помощью своих методов отправлять ответы в ранее инициализированном формате.

Методы для взаимодействия с базами данных

App::sql(): PDO

Возвращается объект PostgreSQL, который является потомком PDO. Объект всегда создаётся в единственном экземпляре.

App::sqlCallback(): callable

Возвращает объект, который можно передать в другие методы в виде функции обратного вызова, которая будет вызывать App::sql(). В отличии от последней, если внутри метода не происходит обращения к базе данных, то соединение с базой данной не инициализируется.

App::redis(): Redis

Возвращается объект RedisDB, который является потомком Redis. Объект всегда создаётся в единственном экземпляре.

App::redisCallback(): callable

Возвращает объект, который можно передать в другие методы в виде функции обратного вызова, которая будет вызывать App::redis(). В отличии от последней, если внутри метода не происходит обращения к базе данных, то соединение с базой данной не инициализируется.

Методы для работы с сессией пользователя

App::session(): Session

Возвращает объект Session, который содержит информацию о сессии пользователя.

App::login(
    string $login,
    string $password
): void

Позволяет начать сессию пользователя, если его login и password будут опознаны.

App::logout(): void

Завершает текущую сессию пользователя.

Методы для работы с настройками приложения

App::getSettings(
    string $name,
    mixed $default_value = null
): mixed

Возвращает значение из файла настроек.

Список параметров:

Методы для работы с переменными приложения

Сохранение производится в базе данных Redis. Каждая переменная получает префикс приложения.

App::setVar(
    string $name,
    mixed $value
): bool

Сохраняет значение переменной.

Возвращает true в случае успеха, или false при возникновении ошибок.

Список параметров:

App::getVar($name): string|bool

Возвращает значение переменной, установленной через App::setVar. В случае возникновения ошибки может вернуть false.

App::setVarJson(
    string $name,
    mixed $value
): bool

Аналогично App::setVar, но при сохранении значения производится JSON-кодирование входных данных.

App::getVarJson(string $name): mixed

Аналогично App::getVar, но полученное значение обрабатывается функцией json_decode.

App::delVar(string $name): int

Удаляет значение переменной. Возвращает количество удалённых ключей.