我正在构建应用程序,用于服务器监控和监控数据过滤。这个应用程序使用Zabbix监控工具前端的遗留代码,它有一些需要包含的配置文件和一些与数据库一起工作的类。
在开始与数据库交互之前,我应该做3件主要的事情:
DBstart();
$serviceFactory = new CApiServiceFactory();
API::setApiServiceFactory($serviceFactory);
CWebUser::login($_SERVER['PHP_AUTH_USER'], '');在使用Silex时,如何或应该如何集成这些步骤?
带有静态方法调用的API类随处可见。
发布于 2016-01-06 19:08:25
您可以在Silex应用程序启动之前执行任何有效的php代码:
<?php
require_once __DIR__.'/../vendor/autoload.php';
$app = new Silex\Application();
// the code you like to execute before the app starts goes here
DBstart();
$serviceFactory = new CApiServiceFactory();
API::setApiServiceFactory($serviceFactory);
CWebUser::login($_SERVER['PHP_AUTH_USER'], '');
// Silex app starts:
$app->run(); 但你真的应该从服务的角度考虑,重构你的遗留代码,利用pimple容器来真正地它。例如:
$app['serviceFactory'] = $app->share(function () {
return new CApiServiceFactory;
});
....
// later, when you need the API:
API::setApiServiceFactory($app['serviceFactory']);https://stackoverflow.com/questions/34631206
复制相似问题