2016-08-20 5 views
2

У меня есть некоторые переменные и константы в файле конфигурации, который я хочу использовать в методе класса в другом, и config.php, и myclass.php находятся в одной папке ,Как структурировать мой файл config.php для использования в классах в других файлах

config.php

<?php 
$a=1; 

myclass.php

class MyClass 
{ 
    protected function a() { 
    include_once('config.php'); 
    echo $a; //$a is undefined here 
    } 
} 

Есть ли лучший подход для этого?

+0

Вы также можете вернуть переменную (массив, возможно?) Из включенного файла. См. Пример № 5 в руководстве о 'include' – Jeff

ответ

1

Вы можете создать другой класс в своем файле конфигурации и он будет служить оболочкой для всех ваших значений конфигурации и операций. Это лучший подход, также если вы придаете значение ООП в разработке вашего проекта.

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(); 
    } 
} 

Вы можете использовать и распространить этот подход для того, что/как вы хотите.

+1

выглядит очень чистым. Спасибо – user2650277

+0

Добро пожаловать! – MNR