Php 类中需要配置文件

Php 类中需要配置文件,php,require,Php,Require,我想在类中使用config.php文件中声明的变量进行测试。我不确定这样做是否正确,就像我做的那样 我有一个配置文件config.php: class Config { public $hosts = array( 'a' => '192.168.1.10' 'b' => '192.168.1.11', ); public $ports = array( 'a' => 22, 'b' =

我想在类中使用config.php文件中声明的变量进行测试。我不确定这样做是否正确,就像我做的那样

我有一个配置文件config.php:

class Config {

    public $hosts = array(
        'a' => '192.168.1.10'
        'b' => '192.168.1.11',
    );

    public $ports = array(
        'a' => 22,
        'b' => 22,
    );
}
我希望在名为Tests.php的文件中包含以下变量:

require_once 'config.php';

    class Test extends PHPUnit_Framework_TestCase
    {
        protected $hosts;
        protected $ports;

        public function __construct()
        {
            $config = new Config();
            $this->hosts = $config->hosts;
            $this->portsSsh = $config->ports;
        }


        public function testConnect()
        {
            $session = $this->connect($this->hosts['a'], $this->ports['a']);
            $this->closeConnection($session);
        }
    ...
    }
这样做对吗? 我觉得太复杂了。我必须为config.php文件创建一个类,在测试类中,我必须像映射$this->hosts=$config->hosts那样做


难道没有更简单的方法吗?我不想用globals

那太好了

PhpUnit有一个名为setUp的方法,用于这种情况。 在运行每个测试方法之前调用它


还有一个tearDown()以防万一。

为什么不使用parse_ini_file PHP函数解析一个真正的配置文件(config.ini)?就其本身而言,这里唯一直接的问题是与
config
相关的代码应该在
setUp
方法中,而不是在构造函数中。但是我更担心的是你编写
Config
类的方式。用PHP硬编码配置被认为是相当不安全的,并且会使代码难以在大型项目中使用。请考虑发布您的一些代码来获取更多的细节,以及如何更好地解决这些问题的一些建议。issue@Elias范奥特格姆:谢谢你的回答和推荐。我做到了。你是说用setUp()方法而不是构造函数?是的!这样,如果在其他文件中需要这些设置,可以将其移动到父类中。