脚本宝典收集整理的这篇文章主要介绍了php – 如何使用SLIM Microframework组织大型Rest API?,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
$app->group('/robots',function () use ($app) { include_once('controller/RobotController.PHP'); $controller = new RobotController(); $app->get('/:id',array($controller,'getRobot')) ->condITions(array('id' => '[0-9]')); });
我只想拥有一个Controller(瘦)模型(胖)结构并响应json.但是我不希望将所有文件都放在一个文件中,而且我不想加载我不需要的每个控制器.
你有什么方法?
遗憾的是,此网址没有帮助:
http://www.slimframework.com/2011/09/24/how-to-organize-a-large-slim-framework-application.html
考虑这个例子:
$app->group('/group1',function () use ($app) { $app->get('/route1',function () use ($app) { echo '<br> group1 route1'; }); echo '<br>group1'; }); $app->group('/group2',function () use ($app) { echo '<br> group2'; }); $app->group('/grouP3',function () use ($app) { echo '<br> group3'; });
请求/ group1 / route1将输出
group1 group2 group3 group1 route1
在您的情况下,最好组织您的文件夹结构以利用PSR@L_304_10@加载.如果你已经在使用作曲家,这应该是微不足道的.然后你的小组看起来像
$app->group('/robots',function () use ($app) { $app->get('/:id','controller\RobotController:getRobot') ->conditions(array('id' => '[0-9]')); });
如果您的自动加载器知道命名空间“控制器”映射到“控制器”文件夹,那么您不需要手动包含所述类.
请注意我使用冒号:而不是paamayim ::,因为我希望Slim实例化RobotController并在该实例上调用非静态方法.
澄清:让自动加载器“知道”意味着添加适当的映射,在composer.json中指定自动加载器条目.这允许将命名空间映射到我们方便的任意文件夹
"autoload": { "psr-4": { "controller\\": "src/controllers_folder","model\\": "src/doctrine_models" } },
这将延迟控制器的实例化,直到您有匹配的路由.
您可以使用其他技巧,例如将不同的路由组保存在不同的文件中,然后只包括与请求的网址的第一部分匹配的路由(在您的情况下,路由将是robots.PHP)
以上是脚本宝典为你收集整理的php – 如何使用SLIM Microframework组织大型Rest API?全部内容,希望文章能够帮你解决php – 如何使用SLIM Microframework组织大型Rest API?所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。