使用 php 类中的配置文件



我对PHP OOP有点陌生,但我对OO背后的概念有相当不错的理解。我想要一个配置文件,其中包含可以在整个应用程序中使用的常规应用程序数据。很正常,但我不确定该怎么做。我不想创建一个类,然后要求该类,扩展它,或者在每个类中都需要配置文件。我的配置文件看起来像这样:

<?php
$configs = array(
   'pagination' => 20,
   'siteTitle' => 'Test site',
   'description' => 'This is a test description',
   'debug' => true
);
?>

我唯一能想到的就是以下几点:

<?php 
class user {
   public function __construct() {
       require 'config.php';
       if(configs['debug']) {
           echo 'Debugging mode';
       }
   }
}
?>

用这种方法看到的问题是,我必须手动将此配置文件包含在我想使用的每个类中,这似乎是多余的。理想情况下,我想将文件包含在绝对根路径中,然后能够使用任何类中的任何值,但是如果您只需要类之外的文件,则该类将无法访问这些值。我也不想创建一个配置类,然后每个需要这些值的类都让它们扩展配置类。这似乎又是多余的。

不确定我是否有意义,我只是想要一种简单的方法来在每个类中携带配置值并使用它们,而不必键入过于冗余的代码。

提前感谢!

在一个类(config.php)中声明一个变量,然后在另一个类中使用它是一种不好的做法。 您应该从配置文件返回 config 数组,然后您可以根据需要将其分配给变量或将其作为参数传递。

尝试这样的事情:

配置.php:

<?php
return array( /* ... config values ... */ );

用户.php:

<?php
class User { 
    private $config;
    public function __construct(array $config) {
        $this->config = $config;
        if ($this->config['debug']) {
            // debug
        }
    }
    public function someOtherMethod() {
        if ($this->config['debug']) {
            // debug
        }
    }
}

电话区号:

<?php
$user = new User(require 'config.php');
$user->someOtherMethod();

相关内容

  • 没有找到相关文章

最新更新