/** * construtor * * @param ConfigAbstract $config * */ public function __construct(ConfigAbstract $config) { $this->_config = $config; # inicia o setup das configurações de ambiente $this->setupEnvironment($this->_config); # registra o bootstrap na registry Registry::set('bootstrap', $this); # setup default module/functionaly/action $tmpCfgApp = $this->_config->get('app'); # setup persistcofig PersistConfig::registerConfigs($tmpCfgApp->get('persist')->toArray()); $moduleDefault = $tmpCfgApp->get('module.default'); Request::$moduleDefault = $moduleDefault->get('name'); Request::$functionalityDefault = $moduleDefault->get('functionality'); Request::$actionDefault = $moduleDefault->get('action'); /* recupera */ $this->_request = new Request(); /* aponta para o config.ini do módulo selecionado, caso este possui um .ini próprio */ $this->_useEspecificConfigIniFileIfExistsOne(); # registra o local de armazenamento do cache dos Values Object AnnotationCache::$cacheDir = $tmpCfgApp->get('cache.home'); # inicializa a requisicao $this->_request->setBehaviorMagicQuotesGPC($config->get('php.environment.magic_quotes_gpc')); # inicializa o manipulador de constantes $this->_constantHandler = ConstantHandler::factory($this); $this->_autoloadConstant(); # habilita ou nao uso de registro de log $this->_enablePersistLog($this->_config); }
/** * o primeiro param pode ser uma Query ou um objeto Entity. Se uma Entity for informado, então Config * torna-se-á obrigatório devido a necessidade de estabelecer a conexao com o respositorio de dados. * a fonte de dados poderá ser informado por meio de terceiro para ou omitido para ser utilizado * a fonte de dados padrao. * * @param DSLinkerReferenceable $target * @param Config $config * @param string $dsName * */ public function __construct(DSLinkerReferenceable $target, Config $config = NULL, $dsName = 'default') { # se o target for uma referencia para Entity ou Query entao sera # necessario um objeto executor de consulta Persist if ($target instanceof Entity || $target instanceof QueryAbstract) { $info = $config->get($config->get($dsName)); $target = QueryAbstract::factory($info->get('driver'), $target); PersistConfig::registerConfigs($config->toArray()); $pConfig = $configPersist = PersistConfig::factory($config->get($dsName)); $namespace = sprintf('br\\gov\\sial\\core\\persist\\%s\\Persist', $pConfig->get('adapter')); $executor = Persist::factory($namespace, $pConfig); $target = $executor->execute($target); } $this->_result = $target; /* necessario para tornar o */ $this->next(); }