我有一个包含6条路由的路由组。我根据数据库检查每条路由的参数。
实现这一点的最佳方法是什么?为它建立一个类?
在使用数据库时,这实际上取决于您将使用它的次数。Slim没有数据库集成,因此您可以通过使用基本的php或使用ORM工具来帮助您与数据库对话来访问数据库。
一个快速且易于使用的表单是idiorm http://idiorm.readthedocs.org/en/latest/index.html
还有其他更强大的东西,这完全取决于你想要完成什么。真的,要给出"最佳"解决方案,我们需要更多关于情况的信息,以及你如何量化"最佳"。"
尝试使用Slim Middleware
将您的check部分添加为一个中间件,并为所有路由共享一个中间件。
根据你的需要,你也可以尝试使用类实例作为路由回调。
定义一个具有所有数据库功能的基类,并使用2.4.0版本(2013年11月)以来可用的"类控制器"。
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();
}
}