Autor Zpráva
Mesiah
Profil
Dobrý den,
prosím Vás, mám třídu v ní dejme tomu metodu A, která pracuje s konfiguračním asociativním polem $config, ale toto pole je v samostatném souboru config.php.
$config = array("neco" => "medvidek");

Jde mi o to, že když použiju include/require mimo třídu
include './config/config.php';

class Class
{
  public function A()
  {
    echo $config["neco"]; // $config["neco"] obsahuje null
  }
}


k tomu, aby metoda A() vytiskla "medvidek" musím require být v této metodě, nebo $config musí být deklarován jako global po zavolání include/require, ale obě možnosti se mi zdají děsivé.... Existuje elegantní řešení?
Alphard
Profil
Je více možností, můžete třeba udělat třídu Config (jako singleton nebo staticky) a poté kdekoliv vytáhnout konfiguraci.
Další možnost je předat třídě Class konfiguraci explicitně. Buď přímo např.
public function setConfig($config)
{
  $this->config = $config;
}
nebo nyní módní dependency injection, v konstruktoru předat kontejner se vším.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0