<?php

>>390177

> Далее вот это непонятно: $this->router->map($route);

> По alt+click sublime меня отправляет на функцию router. Но тут-то без (), значит это свойство класса, но его там нет.

Sublime ищет только функции и классы по Alt + Click. По слову router кликать бесполезно, надо найти место в классе (скорее всего конструктор) где это поле инициализируется. 

Но явно поле router в классе не задано. В конструкторе мы можем увидеть только такую конструкцию: 

// Default router
        $this->container->singleton('router', function ($c) {
            return new \Slim\Router();
        });

Это так называемые синглетоны в Слиме (документация: http://d...content-available-to-author-only...k.com/#DI-Overview )

Это значит что при первом обращении к  свойсвту router Слим вызовет функцию (и создаст объект Slim\Router) а при втором и далее будет просто возвращать существующий объект.

Слим реализует это за счет магического метода _ _ get ( http://p...content-available-to-author-only...p.net/manual/ru/language.oop5.overloading.php )

Таким образом map это метод класса Slim\Router.

Функция get('/', function ...) просто создает объект Route (маршрут или правило разбора URL) и добавляет его в список правил внутри Slim\Route (роутера).

