%PDF- %PDF-
Direktori : /var/www/pn/utils/classes/ |
Current File : /var/www/pn/utils/classes/ProjectCreator.php |
<?php namespace WebPappers\ProjectCreator; use Exception; use WebPappers\IadbProject\IadbProject as IadbProject; use WebPappers\IadbParser\IadbParser as IadbParser; use WebPappers\AdbProject\AdbProject as AdbProject; use WebPappers\AdbParser\AdbParser as AdbParser; use WebPappers\WorldbankParser\WorldbankParser as WorldbankParser; use WebPappers\WorldbankProject\WorldbankProject as WorldbankProject; use WebPappers\GizProject\GizProject as GizProject; use WebPappers\GizParser\GizParser as GizParser; use DiDom\Document; class ProjectCreator { protected $type; protected $url; protected $dom; public function __construct($type, $url) { $this->type = $type; $this->url = $url; $this->dom = new Document(); } public function create() { if($this->type === IADB_NAME){ $parser = new IadbParser(IADB_PARSE_URL, $this->dom); $projectDom = $parser->getPageDom($this->url); $project = new IadbProject($projectDom, $this->url); }elseif($this->type === ADB_NAME){ $parser = new AdbParser(ADB_PARSE_URL, $this->dom); $projectDom = $parser->getPageDom($this->url); $project = new AdbProject($projectDom, $this->url); }elseif($this->type === WORLDBANK_NAME){ $parser = new WorldbankParser(WORLDBANK_PARSE_URL, $this->dom); $dataUrl = $parser->getDataUrlByProjectUrl($this->url); $projectDetails = $parser->getPageHtml($dataUrl); $projectDetails = json_decode($projectDetails); foreach($projectDetails->projects as $key => $value){ $projectDom = $value; } $project = new WorldbankProject($projectDom, $this->url); }elseif($this->type === GIZ_NAME){ $parser = new GizParser(GIZ_PARSE_URL, $this->dom); $projectDom = $parser->getPageDom($this->url); $project = new GizProject($projectDom, $this->url); }else{ throw new Exception('Undefinded project type: ' . $this->type); } return $project; } }