%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/pn/utils/classes/
Upload File :
Create Path :
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;
    }
}

Zerion Mini Shell 1.0