Пример #1
0
<?php

namespace infrajs\crumb;

use infrajs\controller\Controller;
use infrajs\controller\Each;
use infrajs\path\Path;
use infrajs\event\Event;
use infrajs\sequence\Sequence;
use infrajs\template\Template;
use infrajs\controller\External;
Path::reqif('*controller/infra.php');
Event::handler('oninit', function () {
    $root = Crumb::getInstance();
    Sequence::set(Template::$scope, Sequence::right('infra.Crumb.query'), $root->query);
    Sequence::set(Template::$scope, Sequence::right('infra.Crumb.params'), Crumb::$params);
    Sequence::set(Template::$scope, Sequence::right('infra.Crumb.get'), Crumb::$get);
    $cl = function ($mix = null) {
        return ext\Crumb::getInstance($mix);
    };
    Sequence::set(Template::$scope, Sequence::right('infra.Crumb.getInstance'), $cl);
    External::add('child', 'layers');
    External::add('childs', function (&$now, &$ext) {
        //Если уже есть значения этого свойства то дополняем
        if (!$now) {
            $now = array();
        }
        Each::forx($ext, function (&$n, $key) use(&$now) {
            if (@$now[$key]) {
                return;
            }
Пример #2
0
 public static function set(&$layer, $name, &$value)
 {
     if (!isset($layer['dyn'])) {
         $layer['dyn'] = array();
     }
     $layer['dyn'][$name] = $value;
     if (isset($layer['parent'])) {
         $root =& $layer['parent'][$name];
     } else {
         $root =& Crumb::getInstance();
     }
     if ($layer['dyn'][$name]) {
         $layer[$name] =& $root->getInst($layer['dyn'][$name]);
     } else {
         $layer[$name] =& $root;
     }
 }