У меня есть некоторые переменные и константы в файле конфигурации, которые я хочу использовать в методе класса в другом config.php
а также myclass.php
находятся в той же папке.
config.php
<?php
$a=1;
myclass.php
class MyClass
{
protected function a () {
include_once('config.php');
echo $a; //$a is undefined here
}
}
Есть ли лучший подход для этого?
Вы можете создать другой класс в вашем конфигурационном файле, и он будет служить оболочкой для всех ваших значений конфигурации и операций. Это лучший подход также, если вы придает значение ООП в разработке вашего проекта.
config.php
<?php
/**
* PhpDoc...
*/
class YourConfig
{
/**
* Your constant value
*/
const DB_HOST = 'localhost';
/**
* @var string Some description
*/
private $layout = 'fluid';
/**
* Your method description
* @return string layout property value
*/
public function getLayout()
{
return $this->layout;
}
}
myclass.php
<?php
/**
* PhpDoc
*/
class MyClass
{
private $config;
public function __construct()
{
require_once( __DIR__ . '/config.php' );
$this->config = new Config();
}
protected function a()
{
// get a config
echo $this->config->getLayout();
}
}
Вы можете использовать и расширять этот подход для того, что / как вы хотите.
Других решений пока нет …