/** * * @param Container $container * @param Environment $environment */ public function __construct(Container $container, Environment $environment) { $this->container = $container; $this->environment = $environment; $this->setPatternPath('/vendor/itephp/framework/pattern/migrate.txt'); $this->setSavePath('/config/migrate.' . $this->environment->getName() . '.txt'); $this->setStagePath('/src/Migrate'); }
/** * * @param Request $request * @param Response $response */ public function render(Request $request, Response $response) { if ($this->environment->getName() !== 'test') { header('HTTP/1.1 ' . $response->getStatusCode() . ' ' . $response->getStatusMessage()); foreach ($response->getHeaders() as $name => $value) { header($name . ': ' . $value); } } echo (string) $response->getContent(); }
/** * * @param Response $response */ private function setHeaders(Response $response) { if ($this->environment->getName() === 'test') { return; } header('HTTP/1.1 ' . $response->getStatusCode() . ' ' . $response->getStatusMessage()); header('Content-type: application/json'); foreach ($response->getHeaders() as $name => $value) { if ($name != 'content-type') { header($name . ': ' . $value); } } }
/** * Init framework config */ private function initConfig() { //config structure $structureConfig = new ConfigBuilder(); $xmlReader = new XmlFileReader($this->environment->getConfigPath() . '/structure.xml'); $structureConfig->addReader($xmlReader); $structureNode = new ConfigBuilderNode('structure'); $structureNode->addAttribute('class'); $structureConfig->addNode($structureNode); $structureContainer = $structureConfig->parse(); $xmlReader = new XmlFileReader($this->environment->getConfigPath() . '/' . $this->environment->getName() . '.xml'); $importConfig = new ConfigBuilder(); $importConfig->addReader($xmlReader); //config import $importNode = new ConfigBuilderNode('import'); $importNode->addAttribute('file'); $importConfig->addNode($importNode); $importContainer = $importConfig->parse(); //config main $mainConfig = new ConfigBuilder(); foreach ($importContainer->getNodes('import') as $importNode) { /** * @var ConfigContainer $importNode */ $xmlReader = new XmlFileReader($this->environment->getConfigPath() . '/' . $importNode->getAttribute('file')); $mainConfig->addReader($xmlReader); } foreach ($structureContainer->getNodes('structure') as $structureNode) { /** * @var ConfigContainer $structureNode */ $className = $structureNode->getAttribute('class'); /** * @var Structure $structureObj */ $structureObj = new $className(); $structureObj->doConfig($mainConfig); } $this->config = new Config($mainConfig->parse()); }