Получить один столбец в виде массива
335742
public function fetchColumn($sql, $col, $values = null, $connection = null)
  {
    $st = $this->query($sql, $values, $connection);

    if (!$res = $st->fetchAll(\PDO::FETCH_ASSOC)) {
      return false;
    }

    if (!array_key_exists($col, current($res))) {
      Exception::ThrowError(Exception::COLUMN_NOT_EXISTS, $col);
    }

    $out = false;
    foreach ($res as $row) {
      $out[] = $row[$col];
    }

    return $out;
  }
1141109
function rss_body($foo_object=NULL, $foo_strip=0)
	{
		//TODO: Этот config пока используется только на лентах топиков:
		//TODO: http://www.wrk.ru/society/2014/08/topic-89787-rss.xml
		//TODO: Подумать, как сделать красиво и локально
		if(!\B2\Cfg::get('rss_skip_images') && ($image = object_property($this, 'image')))
 			$image_html = "<p>".$image->thumbnail('300x300')->html_code() . "</p>\n";
		else
			$image_html = '';

		if(($body = $this->description()))
			return $image_html . '<p>'.bors_lcml::bbh($body).'</p>';

//		if(($body = $this->source()))
//			return $image_html . '<p>'.bors_lcml::bbh($body).'</p>';

		return $image_html . '<p>'.$this->body().'</p>';
	}
1182725
static function copy($from, $to)
    {
        $result = false;
        if (file_exists($from)){
            $to = self::makeVirtualDir($to);
            // Если папки нет, то создаем её
            $dir = dirname($to);
            if(!is_dir($dir)){
                mkdir($dir, 0775, true);
            }
            if (is_file($to)){
                unlink($to);
            }
            $result = copy($from, $to);
            self::deleteVirtualDir($to);
        }
        return $result;
    }
106120
function __content() // пока не используется, т.к. более древнее в base_object
	{
		if(($render_class = $this->render_class()))
		{
			if($render_class == 'self')
				$render = $this;
			elseif(!($render = bors_load($render_class)))
				debug_exit("Can't load global render engine {$render_class} for object '{$this}'");

			return $render->rendering($this);
		}
	}
1156959
function () {
            // все аргументы, кроме последнего считаются необходимыми зависимостями
            var depsList = franky.toArray(arguments).slice(0, arguments.length - 1),
            // последний аргумент - функция в которую уйдут удовлетворенные зависимости
                callback = arguments[arguments.length - 1];
            // обработка зависимостей
            depsList = franky.map(depsList, function (depsItem) {
                if (!libs[depsItem]) {
                    throw new Error('Unmet dependency:' + depsItem);
                }
                // если модуль представляет из себя синглтон - кешируем его
                if (cached[depsItem]) {
                    libs[depsItem] = franky.isFunction(libs[depsItem]) ? libs[depsItem]() : libs[depsItem];
                    return libs[depsItem];
                } else {
                    return libs[depsItem]();
                }
            });

            // пробрасываем удовлетворенные зависимости
            callback.apply(this, depsList);

            return this;
        }
917885
public function delete()
    {
        // удаление ссылок с удаляемого материала
        $r = $this->getDbConnection()->query("select B.name, B.len, B.type, B.pseudo_type from types A, types_fields B where A.alias='".$this->table."' and B.id=A.id and (B.type=".FIELD_LINKSET." or B.type=".FIELD_MATSET.")");
        while ($f = $r->fetch(\PDO::FETCH_NUM)) {
            $tbl = ObjectDefinition::get_table($f[2], $f[1], $this->objectDefinition->id, $f[3]);
            if ($f[2] != FIELD_LINKSET && $f[3] != PSEUDO_FIELD_TAGS) {
            	$r1 = $this->getDbConnection()->query("select dest from ".$this->table."_".$tbl."_".$f[0]." where id=".$this->id);
            	while ($f1 = $r1->fetch(\PDO::FETCH_NUM)) {
            	   $m = Material::getById($f1[0], $f[1], $tbl);
            	   $m->delete();
            	}
            }
            $this->getDbConnection()->executeQuery("delete from ".$this->table."_".$tbl."_"."$f[0] where id=".$this->id);
        }
        
        // удаление ссылок на этот материал
        if (property_exists($this, 'idcat') && $this->idcat >= 0) {
        	$r = $this->getDbConnection()->query("select A.alias, B.name, B.type from types A, types_fields B where B.id=A.id and B.len=".$this->idcat." and (B.type=".FIELD_LINK." or B.type=".FIELD_LINKSET.")");
        	while ($f = $r->fetch(\PDO::FETCH_NUM)) {
              if ($f[2] == FIELD_LINK) {
        	    $this->getDbConnection()->executeQuery("update $f[0] set $f[1]=0 where $f[1]=".$this->id);
        	  } else {
        	    $this->getDbConnection()->executeQuery("delete from $f[0]"."_".$this->table."_"."$f[1] where dest=".$this->id);
        	  }
        	}
        } else {
        	$r = $this->getDbConnection()->query("select A.alias, B.name from types A, types_fields B where B.id=A.id and B.len = ".$this->objectDefinition->id." and B.type=".FIELD_MATSET);
            while ($f = $r->fetch(\PDO::FETCH_NUM)) {
        	  $this->getDbConnection()->executeQuery("delete from $f[0]"."_".$this->table."_"."$f[1] where dest=".$this->id);
        	}
        }
                
        // удаление самого материала
        $this->getDbConnection()->executeQuery("delete from ".$this->table." where id=".$this->id);
        
    }
189921
protected function isBehindSsl()
    {
        // Сначала проверьте наличие прокси-сервера
        $protocol = $this->getHeader('X_FORWARDED_PROTO');
        if ($protocol) {
            return $this->protocolWithActiveSsl($protocol);
        }

        $protocol = $this->getServerVar('HTTPS');
        if ($protocol) {
            return $this->protocolWithActiveSsl($protocol);
        }

        return (string)$this->getServerVar('SERVER_PORT') === '443';
    }
1053982
static function createStore($connect, &$errors = null)
    {
//        try{
//            if (!$errors) $errors = new \boolive\errors\Error('Некоректные параметры доступа к СУБД', 'db');
//            // Проверка подключения и базы данных
//            $db = new DB('mysql:host='.$connect['host'].';port='.$connect['port'], $connect['user'], $connect['password'], array(DB::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES "utf8" COLLATE "utf8_bin"'), $connect['prefix']);
//            $db_auto_create = false;
//            try{
//                $db->exec('USE `'.$connect['dbname'].'`');
//            }catch (\Exception $e){
//                // Проверка исполнения команды USE
//                if ((int)$db->errorCode()){
//                    $info = $db->errorInfo();
//                    // Нет прав на указанную бд (и нет прав для создания бд)?
//                    if ($info[1] == '1044'){
//                        $errors->dbname->no_access = "No access";
//                        throw $errors;
//                    }else
//                    // Отсутсвует указанная бд?
//                    if ($info[1] == '1049'){
//                        // создаем
//                        $db->exec('CREATE DATABASE `'.$connect['dbname'].'` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci');
//                        $db_auto_create = true;
//                        $db->exec('USE `'.$connect['dbname'].'`');
//                    }
//                }
//            }
//            // Проверка поддержки типов таблиц InnoDB
//            $support = false;
//            $q = $db->query('SHOW ENGINES');
//            while (!$support && ($row = $q->fetch(\PDO::FETCH_ASSOC))){
//                if ($row['Engine'] == 'InnoDB' && in_array($row['Support'], array('YES', 'DEFAULT'))) $support = true;
//            }
//            if (!$support){
//                // Удаляем автоматически созданную БД
//                if ($db_auto_create) $db->exec('DROP DATABASE IF EXISTS `'.$connect['dbname'].'`');
//                $errors->common->no_innodb = "No InnoDB";
//                throw $errors;
//            }
//            // Есть ли таблицы в БД?
//            $pfx = $connect['prefix'];
//            $tables = array($pfx.'ids', $pfx.'objects', $pfx.'protos', $pfx.'parents');
//            $q = $db->query('SHOW TABLES');
//            while ($row = $q->fetch(DB::FETCH_NUM)/* && empty($config['prefix'])*/){
//                if (in_array($row[0], $tables)){
//                    // Иначе ошибка
//                    $errors->dbname->db_not_empty = "Database is not empty";
//                    throw $errors;
//                }
//            }
            // Создание таблиц
            $db->exec("
                CREATE TABLE {ids} (
                   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
                   `uri` varchar(1000) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
                    PRIMARY KEY (`id`),
                    KEY `uri` (`uri`(255))
                ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='Идентификация путей (URI)'
            ");
            $db->exec("
                CREATE TABLE `objects` (
                    `id` int(10) unsigned NOT NULL COMMENT 'Идентификатор по таблице ids',
                    `parent` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Идентификатор родителя',
                    `proto` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Идентификатор прототипа',
                    `author` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Идентификатор автора',
                    `order` int(11) NOT NULL DEFAULT '0' COMMENT 'Порядковый номер. Уникален в рамках родителя',
                    `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'Имя',
                    `value` varchar(255) NOT NULL DEFAULT '' COMMENT 'Строковое значение',
                    `file` varchar(55) NOT NULL DEFAULT '' COMMENT 'Имя файла, если есть',
                    `is_text` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Признак, есть текст в таблице текста',
                    `is_draft` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Черновик или нет?',
                    `is_hidden` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Скрыт или нет?',
                    `is_link` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Используетя как ссылка или нет?',
                    `is_mandatory` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Обязательный (1) или нет (0)? ',
                    `is_property` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Свойство (1) или нет (0)? ',
                    `is_relative` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Относительный (1) или нет (0) прототип?',
                    `is_default_value` tinyint(1) NOT NULL DEFAULT '1' COMMENT 'Используется значение прототипа или своё',
                    `is_default_file` tinyint(1) NOT NULL DEFAULT '1' COMMENT 'Используется файл прототипа или свой?',
                    `is_default_logic` tinyint(1) NOT NULL DEFAULT '1' COMMENT 'Используется класс прототипа или свой?',
                    `created` int(11) unsigned NOT NULL DEFAULT '0' COMMENT 'Дата создания',
                    `updated` int(11) unsigned NOT NULL DEFAULT '0' COMMENT 'Дата изменения',
                    PRIMARY KEY (`id`),
                    KEY `child` (`parent`,`order`,`name`,`value`)
                ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Объекты'
            ");
            $db->exec("
                CREATE TABLE `text` (
                    `id` INT(10) UNSIGNED NOT NULL COMMENT 'Идентификатор объекта',
                    `value` TEXT NOT NULL COMMENT 'Текстовое значение',
                    PRIMARY KEY (`id`)
                ) ENGINE=MYISAM DEFAULT CHARSET=utf8 COMMENT='Текстовые значения объектов'
            ");
            $db->exec("
                CREATE TABLE `parents1` (
                  `id` INT(10) UNSIGNED NOT NULL,
                  `id1` INT(10) UNSIGNED NOT NULL,
                  `id2` INT(10) UNSIGNED NOT NULL,
                  `id3` INT(10) UNSIGNED NOT NULL,
                  `id4` INT(10) UNSIGNED NOT NULL,
                  `id5` INT(10) UNSIGNED NOT NULL,
                  `id6` INT(10) UNSIGNED NOT NULL,
                  `id7` INT(10) UNSIGNED NOT NULL,
                  `id8` INT(10) UNSIGNED NOT NULL,
                  `id9` INT(10) UNSIGNED NOT NULL,
                  `id10` INT(10) UNSIGNED NOT NULL,
                  PRIMARY KEY (`id`)
                ) ENGINE=INNODB DEFAULT CHARSET=utf8
            ");
            $db->exec("
                CREATE TABLE `protos1` (
                  `id` INT(10) UNSIGNED NOT NULL,
                  `id1` INT(10) UNSIGNED NOT NULL,
                  `id2` INT(10) UNSIGNED NOT NULL,
                  `id3` INT(10) UNSIGNED NOT NULL,
                  `id4` INT(10) UNSIGNED NOT NULL,
                  `id5` INT(10) UNSIGNED NOT NULL,
                  `id6` INT(10) UNSIGNED NOT NULL,
                  `id7` INT(10) UNSIGNED NOT NULL,
                  `id8` INT(10) UNSIGNED NOT NULL,
                  `id9` INT(10) UNSIGNED NOT NULL,
                  `id10` INT(10) UNSIGNED NOT NULL,
                  PRIMARY KEY (`id`)
                ) ENGINE=INNODB DEFAULT CHARSET=utf8
            ");
//        }catch (\PDOException $e){
//			// Ошибки подключения к СУБД
//			if ($e->getCode() == '1045'){
//				$errors->user->no_access = "No accecss";
//				$errors->password->no_access = "No accecss";
//			}else
//			if ($e->getCode() == '2002'){
//				$errors->host->not_found = "Host not found";
//                if ($connect['port']!=3306){
//                    $errors->port->not_found = "Port no found";
//                }
//			}else{
//				$errors->common = $e->getMessage();
//			}
//			if ($errors->is_exist()) throw $errors;
//		}
    }
486603
protected function getCurrentPort()
    {
        // Сначала проверьте наличие прокси-сервера
        $port = $this->getHeader('X_FORWARDED_PORT');
        if ($port) {
            return (string)$port;
        }

        $protocol = (string)$this->getHeader('X_FORWARDED_PROTO');
        if ($protocol === 'https') {
            return '443';
        }

        return (string)$this->getServerVar('SERVER_PORT');
    }
403577
public function doSuccess()
	{
		$date = date('Y-m-d H:i:s', time() - 60);
		$dateRefund = $this->updated_at; //даём минуту для прохождения оплаты
		if ($date > $dateRefund) {
			Refund::find($this->id)
				->whereStatus(self::C_STATUS_PROCESSING)
				->update(array('status' => self::C_STATUS_SUCCESS));
		}

		return Refund::find($this->id);
	}
114500
public function postCreateOrder()
	{
		$data = Input::all();
		//Проверяем данные на валидность
		$validator = Validator::make(
			$data,
			Validators::rulesForNewOrder(),
			Validators::messagesForErrors()
		);
		$userMessages = $validator->messages();

		//Если есть ошибки, возвращаем
		if ($validator->fails()) {
			$result['errors'] = array(
				'item'    => $userMessages->first('item'),
				'sum'     => $userMessages->first('sum'),
				'tel'     => $userMessages->first('tel'),
				'comment' => $userMessages->first('comment'),
			);

			return $result;
		}
		//Предполагаем ошибку
		$result['errors'] = array(
			'common' => 'Ошибка. Повторите ещё раз.',
		);

		//Создаём заказ
		$data['user_id'] = Config::get('ff-qiwi-shop::user_id');
		$validity = Setting::find($data['user_id'])->lifetime;
		$data['lifetime'] = date('Y-m-d H:i:s', time() + 3600 * 24 * $validity);

		$order = new Order();
		$order->saveData($data);

		//Если заказ создан, то вместо ошибки отдаём ОК
		if ($order) {
			$result = array(
				'result'   => 'ok',
				'order_id' => $order->id,
				'message'  => 'Заказ №' . $order->id . ' успешно создан.',
			);
		}

		return $result;
	}
540574
function get($rule = null, &$error = null)
    {
        // Если не указано правило и значение уже отфильтровано, то повторно фильтровать не нужно
        if (!$rule && $this->_filtered) return $this->getValue();
        // Если правило не указано, то берём по умолчанию
        if (!$rule) $rule = $this->getRule();
        // Если правило определено
        if ($rule instanceof Rule){
            return Check::filter($this->getValue(), $rule, $error);
        }
        $error = new Error(['Нет правила'], 'NO_RULE');
        return null;
    }
324996
protected function _initAutoFilters()
    {
        //Если автоопределение колонок не включено
        if (!$this->isEnabledAutoFilters) {
            return $this;
        }

        if (!$this->dataProvider) {
            return $this;
        }

        $dataProvider = clone $this->dataProvider;
        $models = $dataProvider->getModels();


        /**
         * @var $model Model
         * @var $model ActiveRecord
         */
        $model = reset($models);

        if (!$model) {
            $modelClass = $dataProvider->query->modelClass;
            $model = new $modelClass();
        }

        $result = [];

        $result['attributeDefines'] = [];
        if (method_exists($model, 'attributes')) {
            $result['attributeDefines'] = $model->attributes();
        }

        $result['attributeLabels'] = [];
        if (method_exists($model, 'attributeLabels')) {
            $result['attributeLabels'] = $model->attributeLabels();
        }


        $rules = [];
        $fields = [];

        if ($model instanceof ActiveRecord) {
            foreach ($model::getTableSchema()->columns as $key => $column) {
                if (in_array($column->type, ['string', 'text'])) {
                    $fields[(string)$key] = [
                        'class' => StringFilterField::class,
                    ];

                    $rules[] = [(string)$key, 'safe'];
                } else if (in_array($column->type, ['integer', 'decimal'])) {

                    $realKey = $key;
                    if (!empty($key) && strcasecmp($key, 'id')) {
                        if (substr_compare($key, 'id', -2, 2, true) === 0) {
                            $key = rtrim(substr($key, 0, -2), '_');
                        } elseif (substr_compare($key, 'id', 0, 2, true) === 0) {
                            $key = ltrim(substr($key, 2, strlen($key)), '_');
                        }
                    }

                    $keyMany = Inflector::pluralize($key);

                    $keyName = lcfirst(Inflector::id2camel($key, '_'));
                    $keyManyName = lcfirst(Inflector::id2camel($keyMany, '_'));


                    if ($relation = $model->getRelation($keyName, false)) {
                        if ($relation->modelClass && $relation->link) {

                            $arr = array_keys($relation->link);
                            $idName = $arr[0];
                            $modelClassName = $relation->modelClass;

                            $query = $modelClassName::find();

                            if ($query->count() > 1000) {
                                $fields[(string)$realKey] = [
                                    'class' => NumberFilterField::class,
                                ];
                            } else {
                                $fields[(string)$realKey] = [
                                    'class'             => NumberFilterField::class,
                                    'isAllowChangeMode' => false,
                                    'field'             => [
                                        'class'    => SelectField::class,
                                        'items'    => function () use ($idName, $query) {

                                            return ArrayHelper::map(
                                                $query->all(),
                                                $idName,
                                                'asText'
                                            );
                                        },
                                        'multiple' => true,
                                    ],
                                ];
                            }

                        }

                    }

                    if (!isset($fields[(string)$realKey])) {
                        $fields[(string)$realKey] = [
                            'class' => NumberFilterField::class,
                        ];
                    }

                    $rules[] = [(string)$realKey, 'safe'];

                } else {
                    $fields[(string)$key] = [
                        'class' => StringFilterField::class,
                    ];

                    $rules[] = [(string)$key, 'safe'];
                }

            }
        } elseif (is_array($model) || is_object($model)) {
            foreach ($model as $name => $value) {
                if ($value === null || is_scalar($value) || is_callable([$value, '__toString'])) {
                    $fields[(string)$name] = [
                        'class' => StringFilterField::class,
                    ];

                    $rules[] = [(string)$name, 'safe'];
                }
            }
        }

        $result['rules'] = $rules;
        $result['fields'] = $fields;
        $this->_autoDynamicModelData = $result;

        return $this;
    }
623002
public function main()
    {
        $mainPageHTML = '';
        $dbMaterials = array();

        // Получим все материалы
        if (
        dbQuery('samsoncms\api\Material')
            ->join('user')
            ->cond('Active', 1)
            ->cond('Draft', 0)
            ->order_by('Created', 'DESC')
            ->cond('Name', "", dbRelation::NOT_EQUAL)
            ->limit(5)
            ->exec($dbMaterials)
        ) {
            // Render material rows
            $rowsHTML = '';
            foreach ($dbMaterials as $dbMaterial) {
                $rowsHTML .= $this->view('main/row')
                    ->set($dbMaterial, 'material')
                    ->set(isset($dbMaterial->onetoone['_user']) ? $dbMaterial->onetoone['_user'] : array(), 'user')
                    ->output();
            }

            for ($i = sizeof($dbMaterials); $i < 5; $i++) {
                $rowsHTML .= $this->view('main/row')->output();
            }

            // Render main template
            $mainPageHTML = $this->view('main/index')->set($rowsHTML, 'rows')->output();
        }

        // Return material block HTML on main page
        return $mainPageHTML;
    }
630770
public function log()
	{
		$this->ip 	= $this->getIP();
		$this->ips 	= $this->getIPs();
		$this->url 	= $this->getURL();
		$file 			= file($this->dataWrite);
		$txt 				= $this->url.";";
		$dtime 			= date("d.m.y_G:i");
		$txt 				.= $dtime.";";
		$txt 				.= $this->name.";";
		$txt 				.= $this->tel.";";
		foreach ($this->ips as $key => $value) {
			$txt 			.= $value.";";
		}
		$txt 				.= "\n";
		if (isset($file[0]) && !empty($file[0])) {
			$firstLine 	=	explode(";", $file[0]); // Вытягиваем первую строку файла log.ini
			$date = explode(".", str_replace('_', '.', $firstLine[1])); // Вытягиваем дату. Преобразуем к удобному формату. Разбиваем на отдельные части (год, месяц ...)
			$time = explode(":", $date[3]); // Разбиваем врем на отдельные части
			$unixTime = mktime($time[0], $time[1], 0, $date[1], $date[0], $date[2]); // Переводим в UNIXTIME
			$period = $this->timeCleanLog * 24  * 60 * 60; // Период за через который будем очищать log файл
			$timeNow = time(); // Текущее время
			if($timeNow > ($unixTime + $period)){ // Очищаем log файл если прошло больше чем $timeCleanLog суток
				// Отправляем письмо с содержанием log файла перед его очисткой.
				$subject = $dtime." - Log файл  - ".$_SERVER['HTTP_HOST'];
				$message = "Log файл очистился за период: ".$this->timeCleanLog." суток \n\n";
				$message .= "Содержимое файла:\n\n";
				foreach ($file as $key => $value) {
					$message .= "\t$value \n";
				}
				$mail = new MailHelper;
				$mail->config->fromMail = 'log@gslots.net';
				$mail->config->fromName = 'log';
				//$mail->addMail('1@gslots.net');
				$mail->addMail('dellirom@gmail.com');
				$mail->sendMail($subject, $message, false);
				file_put_contents($this->dataWrite, ""); // Очищаем файл dataWrite (log.ini) после отправки информации на email.
			}
		}
		file_put_contents($this->dataWrite, $txt, FILE_APPEND); // Записываем информацию в файл dataWrite (log.ini)
		return true;
	}
726568
static function load_multi_array($class_names, $fields, $where)
	{
		$union	= array();
		$post	= array();
		foreach($class_names as $class_name)
		{
			$foo = new $class_name(NULL);
			$db_name = $foo->db_name();
			$dbh = new driver_mysql($db_name);
			$table_name = $foo->table_name();
			$class_file = $foo->class_file();
			$where['*fields'] = $fields;
			list($select, $where, $post_functions) = self::__query_data_prepare($foo, $where);

			if(count($select) != count($fields))
				bors_throw(ec('У класса ').$class_name
					.ec(' не хватает нужных полей. В наличии только ').join(', ', $select)
					.ec(' при необходимых ').join(', ', $fields));

			$select[] = "'$class_name' AS `class_name`";
			$post[$class_name] = $post_functions;
			$union[] = array($table_name, join(',', $select), $where, $class_name);
		}

		$datas = $dbh->union_select_array($union);
		$objects = array();

		foreach($datas as $data)
		{
			$class_name = $data['class_name'];
			$object = new $class_name(NULL);
//			$object->set_class_file($class_file);
			$object->set_id(@$data['id']);
			$object->data = $data;

			$object->set_is_loaded(true);

			if(!empty($post[$class_name]))
				self::post_functions_do($object, $post[$class_name]);

			$objects[] = $object;

			save_cached_object($object);
		}

		return $objects;
	}
1172870
function run()
	{
		if(!$this->is_initialized)
			$this->init();

		if(!defined('BORS_SITE'))
			define('BORS_SITE', COMPOSER_ROOT);

		// Пробуем искать по-новому
		// ...
		// https://github.com/phpixie/http
		// http://habrahabr.ru/post/256639/

//		PHPixie пока не трогаем, там какой-то свой PSR-7.
//		$slice = new \PHPixie\Slice();
//		$http = new \PHPixie\HTTP($slice);
//		$request = $http->request();
//		r($request->server()->get('http_host'));
//		r($request->query()->uri());
//		r((string)$request->uri());

		$view = NULL;

		if($this->cfg('view.preset'))
			$view = $this->cfg('view.preset');

		// composer: zendframework/zend-diactoros
		if(!$view && class_exists('\\Zend\\Diactoros\\ServerRequestFactory'))
		{
			$request = \Zend\Diactoros\ServerRequestFactory::fromGlobals();
//			$request = \Slim\Http\Request::createFromEnvironment(new \Slim\Http\Environment($_SERVER));

//			r((string)$request->getUri());
//			r((string)$request->getMethod());

			$view = $this->route_view($request);
		}

		if($view)
		{
			$ret = $view->pre_show();

			if($ret)
				return $ret;

//			r($view);
			$response = $view->response();
			if($response)
			{
				// composer: slim/slim>3
				$app = new \Slim\App;
				$app->respond($response);
				return;
			}
		}

		// Если ничего не нашли, то запускаем старый движок.
		return \bors::run();
	}