From bcd67198452bd84abf26de7e9b69bf0526683a2c Mon Sep 17 00:00:00 2001 From: Nicolas Le Goff Date: Wed, 28 Dec 2011 19:31:38 +0100 Subject: [PATCH] add enhancement --- .../Core/Configuration/Application.php | 14 ++++++---- .../Phrasea/Core/Configuration/Handler.php | 27 ++++++++++++++----- .../Core/Configuration/Specification.php | 7 +++++ 3 files changed, 36 insertions(+), 12 deletions(-) diff --git a/lib/Alchemy/Phrasea/Core/Configuration/Application.php b/lib/Alchemy/Phrasea/Core/Configuration/Application.php index 5625552aea..66bb0b91a5 100644 --- a/lib/Alchemy/Phrasea/Core/Configuration/Application.php +++ b/lib/Alchemy/Phrasea/Core/Configuration/Application.php @@ -38,11 +38,11 @@ class Application implements Specification */ public function getConfFileFromEnvName($name) { - if($name === self::EXTENDED_MAIN_KEYWORD) + if ($name === self::EXTENDED_MAIN_KEYWORD) { - return $this->getMainFile(); + return $this->getMainConfigurationFile(); } - + return new \SplFileObject(sprintf("%s/config_%s.%s" , $this->getConfigurationFilePath() , $name @@ -58,8 +58,12 @@ class Application implements Specification { return __DIR__ . '/../../../../../config'; } - - public function getMainFile() + + /** + * + * {@inheritdoc} + */ + public function getMainConfigurationFile() { $path = __DIR__ . '/../../../../../config/config.yml'; return new \SplFileObject($path); diff --git a/lib/Alchemy/Phrasea/Core/Configuration/Handler.php b/lib/Alchemy/Phrasea/Core/Configuration/Handler.php index 6ca9182a86..6815a0f9ca 100644 --- a/lib/Alchemy/Phrasea/Core/Configuration/Handler.php +++ b/lib/Alchemy/Phrasea/Core/Configuration/Handler.php @@ -40,20 +40,38 @@ class Handler * @param ConfigurationSpecification $configSpec * @param Parser\ParserInterface $parser */ - public function __construct(Application $configSpec, Parser $parser) + public function __construct(Specification $configSpec, Parser $parser) { $this->confSpecification = $configSpec; $this->parser = $parser; } /** + * Getter + * @return Specification + */ + public function getSpecification() + { + return $this->confSpecification; + } + + /** + * Getter + * @return Parser + */ + public function getParser() + { + return $this->parser; + } + + /** * Stacks all envrironnement in $env that extends the loaded configuration file * * @param SplFileObject $file File of the current loaded config file * @param array $envs A stack of conf environnments * @return array */ - private function retrieveExtendedEnvFromFile(\SplFileObject $file, Array $allEnvs = array()) + public function retrieveExtendedEnvFromFile(\SplFileObject $file, Array $allEnvs = array()) { $env = $this->parser->parse($file); @@ -119,7 +137,6 @@ class Handler */ public function handle($name) { - //get the corresepondant file $file = $this->confSpecification->getConfFileFromEnvName($name); @@ -171,10 +188,6 @@ class Handler $searchArray[$k] = $value; break; //quit } - else - { - continue; - } } } }; diff --git a/lib/Alchemy/Phrasea/Core/Configuration/Specification.php b/lib/Alchemy/Phrasea/Core/Configuration/Specification.php index 7f241a7893..74e73ca546 100644 --- a/lib/Alchemy/Phrasea/Core/Configuration/Specification.php +++ b/lib/Alchemy/Phrasea/Core/Configuration/Specification.php @@ -29,6 +29,13 @@ interface Specification */ const EXTENDED_MAIN_KEYWORD = 'main'; + /** + * Return the main configuration file + * + * @return \SplFileObject + */ + public function getMainConfigurationFile(); + /** * Return an array of paths that CAN'T be extended by ONLY one or more of their value * but must be fully replaced with new values