Данное руководство является изложением видео курса Codecourse: Authentication with Slim 3.
С краткими пояснениями и дополнениями.

ссылка на видео

 

Установку фреймворка как и всех его дополнительных компонентов удобнее производить через менеджер зависимостей Composer.

Локально необходимо настроить WEB сервер. Рекомендую установить новую сборку OpenServer и настроить работу с  PHP7.

Заходим на сайт https://www.slimframework.com/ и в разделе User Guide -> Installation копируем команду установки Slim в Composer:

composer require slim/slim "^3.0"

При установке Slim дополнительно инсталлируются модули:

psr/container – описывает общий интерфейс, согласно PHP Standard Recommendation PSR-11

container-interop/container-interop – пакет container-interop обеспечивает набор интерфейсов, которые контейнер может реализовать. Основной интерфейс ContainerInterface определяет два метода — один для получения сервиса, другой для проверки - определен ли сервис. Расширяет psr/container

interface ContainerInterface

{

    public function get($id);

    public function has($id);

}

 

pimple/pimple – контейнер внедрения Dependency Injection. Реализация через container-interop/container-interop

nikic/fast-route – маршрутизатор с поддержкой HTTP методов

psr/http-message – реализация рекомендации PSR-7: HTTP message interfaces.

Psr\Http\Message\RequestInterface

Psr\Http\Message\ResponseInterface

 

После установки имеем следующую структуру папок:

 

Создадим каталог public а в нём index.php и проверим работу WEB сервера:

  

 

Приступим к работе с фреймворком:

Создаём каталог bootstrap – загрузчик, в нём файл app.php 

строка 3 – подключение автозагрузчика классов созданных Composer

строка 5 – создаём объект приложения с установленным свойством displayErrorDetails (показывает сведения об ошибках), по умолчанию данная опция отключена. Настройки передаются в виде ассоциативного массива. Полный список конфигурационных настроек 

 

Все запросы обрабатываются с помощью маршрутизатора (роутера).

Создаём файл routes.php в папке app. Работа маршрутизатора в Slim построена согласно рекомендации PSR-7. 

get() обрабатывает только http запросы и метод GET и принимает 2 аргумента:

шаблон маршрута, и анонимную функцию также известную как замыкание

 

Подключаем загрузчик и роутер в index.php

Не забываем вызвать метод run() приложения.

Проверяем работу в браузере:

 

 

Далее настроим .htaccess нашего WEB приложения. Я предлагаю конфигурацию немного отличающуюся от показанной в курсе Codecourse:

Теперь нет необходимости вызова index через public.  Достаточно написать имя сайта и WEB сервер выполнит редирект на public\index.