我的控制器不考虑对 config.php 文件中静态变量的更改,即使它继承了它们

问题描述 投票:0回答:1

我的 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

  1. 我已验证 config.php 中的更改已正确保存。
  2. 我已清除浏览器缓存。
  3. 我已重新启动我的网络服务器。
php config static-variables
1个回答
0
投票
  1. var_dump((new ReflectionClass(Conf::class))->getStaticProperties());
    打印出什么?

  2. 你说过了

问题是我可以访问静态 $databases 和静态 $mailer,但不能访问静态 $yousign

请验证 $databases 或 $mailer 中的更改在该访问中是否可见。 如果没有,您可能编辑了错误的文件。

© www.soinside.com 2019 - 2024. All rights reserved.