好的,对我来说这个很奇怪。但我可能只是错过了一些东西。为什么所有Slim路线都在加载/启动时初始化?
我有一个使用Slim约20条路由的REST API。每条路由都会通过传递给构造的db配置加载一个MySQL类。但是,任何时候我添加一个新的数据库连接配置(我还没有在数据库中设置)的路线,它会抛出一个“坏数据库配置”异常,即使我不是调用新的/未完成的路线。
因此,每当我进行API调用时,似乎每个ROUTE中的MySQL类都正在实例化。
嗯..?
代码示例的每个请求:
$app->group('/content/get', function() use ($app) {
require('config/mysql.settings.php');
$db = new MySQL($dbconfig['pages']);
$app->get('/:site/:page', function ($site, $page) use ($app, $db) {
...
});
});
$app->group('/library/get', function() use ($app) {
require('config/mysql.settings.php');
$db = new MySQL($dbconfig['docs']);
$app->get('/:doc', function ($doc) use ($app, $db) {
...
});
});
$app->group('/price/get', function() use ($app) {
require('config/mysql.settings.php');
$db = new MySQL($dbconfig['price']);
$app->get('/:doc', function ($doc) use ($app, $db) {
...
});
});
如果“价格”配置处理不当的用户被添加到数据库,和我打个电话到/库/东西,我得到一个数据库错误。一旦我将价格用户添加到数据库,错误就会停止。
它已经完成了我在路由中指定的每个新的db用户 - 直到它实际添加到db。
还没有使用苗条,所以我不能在那里发表评论。但是可能需要在可以在需要时调用的单独类中初始化数据库连接(如果它已经存在,将不会被重新创建)。 – Sam
听起来很古怪。你能否提供一个代码示例,显示你的几条路线? –
@JeremyKendall:添加了代码示例 – Ahhk