Your IP : 216.73.216.216


Current Path : /proc/thread-self/root/var/tmp/
Upload File :
Current File : //proc/thread-self/root/var/tmp/phpqKkaV7

<?php


namespace Nextend\Framework\Pattern;


use Nextend\Framework\Platform\Platform;
use Nextend\Framework\Url\Url;

trait GetAssetsPathTrait {

    use GetPathTrait;

    public static function getAssetsPath() {

        return Platform::filterAssetsPath(self::getPath() . '/Assets');
    }

    public static function getAssetsUri() {
        return Url::pathToUri(self::getAssetsPath());
    }
}<?php

namespace Nextend\Framework\Pattern;

use ReflectionClass;

trait GetPathTrait {

    public static function getPath() {

        $reflection = new ReflectionClass(static::class);

        return dirname($reflection->getFileName());
    }
}<?php


namespace Nextend\Framework\Pattern;


use Nextend\Framework\Application\AbstractApplication;
use Nextend\Framework\Application\AbstractApplicationType;
use Nextend\Framework\Router\Router;

trait MVCHelperTrait {

    /** @var MVCHelperTrait */
    protected $MVCHelper;

    /**
     * @return Router
     */
    public function getRouter() {
        return $this->MVCHelper->getRouter();
    }

    /**
     * @param array|string $url
     * @param bool         $isPost
     * @param bool         $isAjax
     *
     * @return string
     */
    public function createUrl($url, $isPost = false, $isAjax = false) {
        return $this->MVCHelper->getRouter()
                               ->createUrl($url, $isPost, $isAjax);
    }

    /**
     * @param array|string $url
     *
     * @return string
     */
    public function createAjaxUrl($url) {
        return $this->MVCHelper->getRouter()
                               ->createAjaxUrl($url);
    }

    /**
     * @return AbstractApplication
     */
    public function getApplication() {

        return $this->MVCHelper->getApplication();
    }

    /**
     * @return AbstractApplicationType
     */
    public function getApplicationType() {
        return $this->MVCHelper->getApplicationType();
    }

    /**
     * @param MVCHelperTrait $helper
     *
     */
    protected function setMVCHelper($helper) {
        $this->MVCHelper = $helper;

        if (!method_exists($helper, 'getRouter') || !method_exists($helper, 'getApplication') || !method_exists($helper, 'getApplicationType')) {
            debug_print_backtrace();
            echo 'Object should has MVCHelperTrait';
            exit;
        }
    }

    /**
     * @return MVCHelperTrait
     */
    public function getMVCHelper() {
        return $this->MVCHelper;
    }
}<?php

namespace Nextend\Framework\Pattern;

trait OrderableTrait {

    public function getOrdering() {

        return isset($this->ordering) ? $this->ordering : 1000000;
    }

    /**
     * @param OrderableTrait[] $items
     */
    public static function uasort(&$items) {
        uasort($items, array(
            OrderableTrait::class,
            'compare'
        ));
    }

    /**
     * @param OrderableTrait $a
     * @param OrderableTrait $b
     *
     * @return int
     */
    public static function compare($a, $b) {
        return $a->getOrdering() - $b->getOrdering();
    }
}<?php

namespace Nextend\Framework\Pattern;

trait PluggableFactoryTrait {

    use SingletonTrait;

    private static $types = array();

    public static function addType($name, $className) {
        self::$types[$name] = $className;
    }

    public static function getType($name) {

        if (isset(self::$types[$name])) {
            return self::$types[$name];
        }

        return false;
    }

    public static function getTypes() {

        return self::$types;
    }
}