12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- <?php
- namespace Boris;
- class Config {
- private $_searchPaths;
- private $_cascade = false;
- private $_files = array();
-
- public function __construct($searchPaths = null, $cascade = false) {
- if (is_null($searchPaths)) {
- $searchPaths = array();
- if ($userHome = getenv('HOME')) {
- $searchPaths[] = "{$userHome}/.borisrc";
- }
- $searchPaths[] = getcwd() . '/.borisrc';
- }
- $this->_cascade = $cascade;
- $this->_searchPaths = $searchPaths;
- }
-
- public function apply(Boris $boris) {
- $applied = false;
- foreach($this->_searchPaths as $path) {
- if (is_readable($path)) {
- $this->_loadInIsolation($path, $boris);
- $applied = true;
- $this->_files[] = $path;
- if (!$this->_cascade) {
- break;
- }
- }
- }
- return $applied;
- }
-
- public function loadedFiles() {
- return $this->_files;
- }
-
- private function _loadInIsolation($path, $boris) {
- require $path;
- }
- }
|