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

Php 在应用程序启动前运行代码,这是Silex中的最佳方式,php,symfony,silex,Php,Symfony,Silex,我正在构建应用程序,用于服务器监控和监控数据过滤。此应用程序使用Zabbix监控工具frontend的遗留代码,其中包含一些需要包含的配置文件和一些用于处理数据库的类 在开始与数据库交互之前,我应该做3件主要的事情: DBstart(); $serviceFactory = new CApiServiceFactory(); API::setApiServiceFactory($serviceFactory); CWebUser::login($_SERVER['PHP_AUTH_USER

我正在构建应用程序,用于服务器监控和监控数据过滤。此应用程序使用Zabbix监控工具frontend的遗留代码,其中包含一些需要包含的配置文件和一些用于处理数据库的类

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

DBstart();

$serviceFactory = new CApiServiceFactory();

API::setApiServiceFactory($serviceFactory);

CWebUser::login($_SERVER['PHP_AUTH_USER'], '');
在使用Silex时,我应该如何集成这些步骤


到处都在使用带有静态方法调用的API类。

您可以在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(); 

是的,你可以在before()中添加所有这些调用
$app['serviceFactory'] = $app->share(function () {
    return new CApiServiceFactory;
});
....
// later, when you need the API:
API::setApiServiceFactory($app['serviceFactory']);