imagecms/ImageCMS

View on GitHub
application/modules/template_manager/installer/DemodataDirector.php

Summary

Maintainability
A
45 mins
Test Coverage
<?php

namespace template_manager\installer;

/**
 * Image CMS
 * Module Template_manager
 * class DependenceDirector
 */
class DemodataDirector
{

    /**
     * Status of dependences verify
     * @var boolean
     */
    private $status = TRUE;

    /**
     * SilmpleXmlElement dependence node
     * @var \SilmpleXmlElement
     */
    private $demodata;

    /**
     * Error messages array
     * @var array
     */
    private $messages = [];

    public function __construct(\SimpleXMLElement $demodata) {
        $this->demodata = $demodata;
    }

    /**
     * Verify dependences
     * @return boolean
     */
    public function install() {
        foreach ($this->demodata->children() as $demodataName => $node) {
            $handlerClass = 'Demodata' . ucfirst($demodataName);
            include_once __DIR__ . DIRECTORY_SEPARATOR . $handlerClass . EXT;

            $handlerClass = 'template_manager\\installer\\' . $handlerClass;
            $demodata = new $handlerClass($node);

            $status = $demodata->install();
            if ($status == FALSE) {
                $this->status = FALSE;
            }
            //
            // gathering messages
            if (FALSE !== $msgs = $demodata->getMessages()) {
                foreach ($msgs as $message) {
                    $this->messages[] = ['text' => $message];
                }
            }
        }
        return $this->status;
    }

    /**
     * Get error messages
     * @return string
     */
    public function getMessages() {
        return $this->messages;
    }

}