예제 #1
0
<?php

use Pie\Pie;
use Pie\Modules\Http\Http;
return call_user_func(function () {
    $app = Pie::module('Http');
    $app->service('http', new Http());
    return $app;
});
예제 #2
0
<?php

use Pie\Crust\Controller;
use Pie\Crust\Event;
use Pie\Pie;
use Pie\Modules\Route\Route;
use Pie\Modules\Route\RouteParams;
return call_user_func(function () {
    $app = Pie::module('Route');
    $route = new Route();
    $routeParams = new RouteParams();
    $app->service('route', $route);
    $app->service('routeParams', $routeParams);
    $app->method = strtolower(filter_input(INPUT_SERVER, 'REQUEST_METHOD'));
    $app->path = $route->pathToArray(rtrim(filter_input(INPUT_SERVER, 'REQUEST_URI'), '/'));
    $app->query = $route->queryString(filter_input(INPUT_SERVER, 'REQUEST_URI'));
    parse_str($app->query, $_GET);
    $app->listen('cleanup', function ($parent) use($route, $app) {
        $controller = $route->findRoute($app);
        if (isset($controller['settings']['modules'])) {
            $parent->addDepndencies($controller['settings']['modules']);
        }
        if ($controller !== null) {
            $parent->exec($controller);
        }
        $app->broadcast('routeComplete', [$controller, $parent]);
    });
    $app->listen('routeComplete', function ($controller, $parent) use($route) {
        if (isset($route->getAlways()['displayAs']) || isset($controller['settings']['displayAs']) || isset($controller['settings']['controller'])) {
            if (isset($controller['settings']['controller']) && is_string($controller['settings']['controller']) && $this->controllerExists($controller['settings']['controller'], $contrl)) {
                $name = $controller['settings']['controller'];
예제 #3
0
<?php

use Pie\Pie;
use Pie\Modules\Database\Db;
return call_user_func(function () {
    $app = Pie::module('Database');
    $app->service('db', new Db());
    return $app;
});
예제 #4
0
<?php

use Pie\Modules\Session\Session;
use Pie\Pie;
return call_user_func(function () {
    $app = Pie::module('Session', []);
    $app->service('session', new Session());
    return $app;
});
예제 #5
0
<?php

use Pie\Pie;
use Pie\Modules\Media\Media;
return call_user_func(function () {
    $app = Pie::module('Media', []);
    $app->service('media', new Media());
    return $app;
});
예제 #6
0
<?php

use Pie\Pie;
use Pie\Crust\Scope;
use Pie\Modules\Tpl\RepeatInfo;
use Pie\Modules\Tpl\Tpl;
use Pie\Modules\Tpl\Element;
use Pie\Modules\Tpl\TplAttr;
return call_user_func(function () {
    $app = Pie::module('Tpl');
    $app->listen('routeComplete', function ($controller, $parent) {
        $tpl = new Tpl();
        // $app->routeChange = function ($value, $parent) use ($tpl){
        $tpl->setParent($parent);
        if (isset($controller['settings']['templateUrl'])) {
            $filename = $tpl->getRealFile($controller);
            $basefile = '';
            if (isset($controller['globalSettings']['baseTemplateUrl'])) {
                $basefile = $tpl->getBase() . $controller['globalSettings']['baseTemplateUrl'];
            }
            if (isset($controller['settings']['baseTemplateUrl'])) {
                if (!empty($controller['settings']['baseTemplateUrl'])) {
                    $basefile = $tpl->getBase() . $controller['settings']['baseTemplateUrl'];
                } else {
                    $basefile = null;
                }
            }
            if (!empty($basefile)) {
                $doc = new DOMDocument();
                libxml_use_internal_errors(true);
                $doc->loadHTMLFile($basefile, LIBXML_HTML_NODEFDTD | LIBXML_HTML_NOIMPLIED);