首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在应用程序启动前运行代码,这是Silex中的最佳方式

在应用程序启动前运行代码,这是Silex中的最佳方式
EN

Stack Overflow用户
提问于 2016-01-06 18:47:41
回答 1查看 184关注 0票数 0

我正在构建应用程序,用于服务器监控和监控数据过滤。这个应用程序使用Zabbix监控工具前端的遗留代码,它有一些需要包含的配置文件和一些与数据库一起工作的类。

在开始与数据库交互之前,我应该做3件主要的事情:

代码语言:javascript
运行
复制
DBstart();

$serviceFactory = new CApiServiceFactory();

API::setApiServiceFactory($serviceFactory);

CWebUser::login($_SERVER['PHP_AUTH_USER'], '');

在使用Silex时,如何或应该如何集成这些步骤?

带有静态方法调用的API类随处可见。

EN

回答 1

Stack Overflow用户

发布于 2016-01-06 19:08:25

您可以在Silex应用程序启动之前执行任何有效的php代码:

代码语言:javascript
运行
复制
<?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容器来真正地它。例如:

代码语言:javascript
运行
复制
$app['serviceFactory'] = $app->share(function () {
    return new CApiServiceFactory;
});
....
// later, when you need the API:
API::setApiServiceFactory($app['serviceFactory']);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34631206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档