Общий код Slim framework в маршрутах

У меня есть группа маршрутов с 6 маршрутами внутри нее. Я проверяю параметры каждого маршрута по базе данных.

Каков наилучший способ добиться этого? Построить класс для него?


person Andy    schedule 28.07.2014    source источник


Ответы (3)


При работе с базой данных это действительно зависит от того, как часто вы будете ее использовать. Slim не имеет интеграции с базой данных, поэтому вы можете получить доступ к базе данных либо с помощью базового php, либо с помощью инструмента ORM, который поможет вам общаться с вашей базой данных.

Одной из быстрых и простых в использовании форм является idiorm http://idiorm.readthedocs.org/en/latest/index.html

Есть и другие более надежные вещи, и все зависит от того, чего вы пытаетесь достичь. На самом деле, чтобы предложить «лучшее» решение, нам потребуется больше информации о ситуации, а также о том, как можно количественно определить «лучшее».

person Rob    schedule 04.08.2014

Попробуйте использовать тонкое промежуточное ПО.

Добавьте свою контрольную часть в качестве одного промежуточного программного обеспечения и поделитесь промежуточным программным обеспечением для всех маршрутов. Тогда вы будете счастливы.

person lijinma    schedule 07.08.2014

В зависимости от ваших потребностей вы также можете попробовать использовать экземпляры класса в качестве обратных вызовов маршрута.

Определите базовый класс со всеми функциями базы данных и используйте «контроллеры классов», доступные начиная с версии 2.4. .0 (ноябрь 2013 г.).

class Base  {
    // Define all your shared DB methods and properties here
}

Используйте дочерние классы вашего базового класса в качестве экземпляров класса контроллера, в качестве обратных вызовов для маршрутов ваших приложений Slim (и их параметров):

$app->get('/user/:id/', '\Base\User:find');

Получить экземпляр $app в экземпляре класса обратного вызова достаточно просто:

class User extends \Base {
    public function find($theUserId) {
        // ...
        // You can easily get access to $app here, too:
        // $app = \Slim\Slim::getInstance();
    }
}
person Werner    schedule 15.10.2014