我的 PHP 应用程序出现问题。我使用非开源的私有框架。我有一个包含静态变量的
conf.php
文件。我的控制器继承了此文件,但我的控制器不会考虑我对 conf.php
中的静态变量所做的更改。
我的
conf.php
文件:
<?php
class Conf{
static $debug = 1;
static $databases = array(
'default' => array(
'host' => 'localhost',
'database'=>'svidev_cpi',
'login' => 'svibdd_sv_ev',
'password' => 'aa1Wc_27'
)
);
static $mailer = array(
'host'=> 'mail.svidev.fr',
'secure'=>'ssl',
'port' => '465',
'user'=>'[email protected]',
'password'=>'ml6Av7*98',
'key' => 'test'
);
static $yousign = array(
'key'=> 'private',
);
}
date_default_timezone_set('Europe/Paris');
Controller.php
构造函数:
function __construct($request = null){
$this->Session = new Session();
$this->Form = new Form($this);
if($request){
$this->request = $request; // On stock la request dans l'instance
require ROOT.DS.'conf'.DS.'hook.php';
}
}
在我的控制器中调用静态变量:
function test() {
$key = Conf::$yousign['key'];
var_dump($key);
$this->ajax = true;
}
还有我得到的 PHP 致命错误:
致命错误:未捕获错误:访问未声明的静态属性 会议::$yousign in /var/www/vhosts/svidev.fr/cpi.svidev.fr/controller/yousign.php:112 堆栈跟踪:#0 /var/www/vhosts/svidev.fr/cpi.svidev.fr/core/Dispatcher.php(45): yousignController->conftest() #1 /var/www/vhosts/svidev.fr/cpi.svidev.fr/webroot/index.php(28): Dispatcher->__construct() #2 {main} 抛出 /var/www/vhosts/svidev.fr/cpi.svidev.fr/controller/yousign.php 在线 112
var_dump((new ReflectionClass(Conf::class))->getStaticProperties());
打印出什么?
你说过了
问题是我可以访问静态 $databases 和静态 $mailer,但不能访问静态 $yousign
请验证 $databases 或 $mailer 中的更改在该访问中是否可见。 如果没有,您可能编辑了错误的文件。