【问题标题】:Silex add Routing file with all the routes to controllersSilex 添加路由文件,其中包含到控制器的所有路由
【发布时间】:2016-11-08 14:18:04
【问题描述】:

我正在使用 silex 创建我的 API REST。 在一个例子中,我找到了一种创建路线的方法

$api = $this->app["controllers_factory"];
$api->get('/notes', "notes.controller:getAll");
$api->get('/notes/{id}', "notes.controller:getOne");
$api->post('/notes', "notes.controller:save");
$api->put('/notes/{id}', "notes.controller:update");
$api->delete('/notes/{id}', "notes.controller:delete");

我正在寻找一种方法来包含一个包含所有路由的数组,并在我的应用引导文件上创建和实例化。有什么想法吗?

【问题讨论】:

    标签: php routes silex


    【解决方案1】:
    1. 扩展 Silex\Application
    2. 添加仅基于参数添加路由的函数
    3. 对具有所需参数的元素数组运行 foreach

    示例

    use Silex\Application as SilexApplication;
    
    class Application extends SilexApplication
    {
        public function addRoute($method, $route, $class, $callback)
        {
            $this->$method($route, array($class, $callback));
        }
    
        public function addRouteStatic($method, $route, $callback)
        {
            $this->$method($route, $callback);
        }
    
        public function addRoutes($routes)
        {
            foreach ($routes as $route) {
                $this->addRoute(
                    $route['method'],
                    $route['route'],
                    $route['class'],
                    $route['callback']
                );
            }
        }
    }
    
    $app = new Application();
    $app->addRoute('get', '/notes', 'My\Namespace\Note', 'getAllNotes');
    $app->addRouteStatic('get', '/notes', 'My\Namespace\Note::getAllNotesStatic');
    

    【讨论】:

      猜你喜欢
      • 2015-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-10
      • 1970-01-01
      • 2021-12-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多