public static function obterPropriedadeDaLinha($linha, $secao) { $propriedade = new ConfiguracaoPropriedade(); $posicao = strpos($linha, '='); $propriedade->setSecao($secao); $propriedade->setNome(trim(substr($linha, 0, $posicao))); $propriedade->setValor(trim(substr($linha, $posicao + 1))); if (in_array(strtolower($propriedade->getValor()), ['true', 'false'])) { $propriedade->setValor(strtolower($propriedade->getValor()) === 'true'); } else { if (is_numeric($propriedade->getValor())) { $propriedade->setValor($propriedade->getValor() + 0); } } return $propriedade; }
/** * Define um valor para a propriedade. * * @param string $nome * @param object $valor * @throws Exception */ public function set($nome, $valor) { if (is_null($nome)) { throw new Exception('O nome da propriedade precisa ser fornecido.'); } // Caso haja ponto de seção. Ex.: secao.propriedade $secao = null; if (strpos($nome, '.')) { $tmp = explode('.', $nome); $secao = $tmp[0]; $nome = $tmp[1]; } if (!$this->definirEmPropriedadeExistente($nome, $valor, $secao)) { // Do contrário, a propriedade não existe $propriedade = new ConfiguracaoPropriedade(); $propriedade->setSecao($secao); $propriedade->setNome($nome); $propriedade->setValor($valor); $this->_propriedades[] = $propriedade; } }