我对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();