default help action

@param array 		$params
@return void
974462
public function action_help( $params ) {
		if ( method_exists( $this, 'help' ) ) 
		{
			 CCCli::line( $this->help_formatter( $this->help() ) ); return;
 		}
		CCCli::line( 'This console controller does not implement an help function or action.' , 'cyan' );
	}
153760
public function setupParams($params = [])
    {
        if (is_array($params)) {
            $this->params = array_merge($this->params, $params);
        }
        return $this;
    }
376225
public function forward( $params )
	{
        $controller_name = $params["controller"];
        $action_name     = $params["action"];
        $params          = isset($params["params"]) ? $params["params"] : array();

        $this->_route->setControllerName( $controller_name );
        $this->_route->setActionName( $action_name );
        $this->_route->setParams( $params );

		$this->_was_forwarded = true;
	}
641463
protected function applyActionsBuilderDefaults(array $params)
    {
        if (!array_key_exists('namespace_prefix', $params) || !array_key_exists('bundle_name', $params)) {
            return $params;
        }

        $routeBase = $params['namespace_prefix'].'_'.$params['bundle_name'].'_'.$this->getBaseGeneratorName();

        if (array_key_exists('object_actions', $params) && is_array($params['object_actions'])) {
            foreach ($params['object_actions'] as $name => $config) {
                $baseKey = 'object_actions.'.$name;

                if (is_array($config) && array_key_exists('route', $config) && $config['route'] === 'inject_object_defaults') {
                    $customized = $params['object_actions'][$name];
                    unset($customized['route']);

                    $params['object_actions'][$name] = $this->recursiveReplace(array(
                        'route'         => $routeBase.'_object',
                        'label'         => $baseKey.'.label',
                        'csrfProtected' => true,
                        'params'        => array(
                            'pk'        => '{{ '.$this->getBaseGeneratorName().'.id }}',
                            'action'    => $name,
                        ),
                        'options'       => array(
                            'title'     => $baseKey.'.title',
                            'success'   => $baseKey.'.success',
                            'error'     => $baseKey.'.error',
                        ),
                    ), $customized);
                }
            }
        }

        if (array_key_exists('batch_actions', $params) && is_array($params['batch_actions'])) {
            foreach ($params['batch_actions'] as $name => $config) {
                $baseKey = 'batch_actions.'.$name;

                if (is_array($config) && array_key_exists('route', $config) && $config['route'] === 'inject_batch_defaults') {
                    $params['batch_actions'][$name] = $this->recursiveReplace($params['batch_actions'][$name], array(
                        'route'         => $routeBase.'_batch',
                        'label'         => $baseKey.'.label',
                        'csrfProtected' => true,
                        'params'        => array(
                            'action'    => $name,
                        ),
                        'options'       => array(
                            'title'     => $baseKey.'.title',
                            'success'   => $baseKey.'.success',
                            'error'     => $baseKey.'.error',
                            'notfound'  => $baseKey.'.notfound',
                        ),
                    ));
                }
            }
        }

        return $params;
    }
456557
protected function actionMain($params = array())
    {
        $token = isset($params['token'])?$params['token']:null;
        $allMethods = array(
            'help' => array(
                'main' => array(
                    'description' =>'Помощь',
                    'params' => array(),
                ),
            ),
            'build' => array(
                'add' => array(
                    'description' => 'Добавление здания',
                    'params' => array(
                        'street' => array(
                            'type' => 'string',
                            'required' => true,
                            'description' => 'Название улицы',
                        ),
                        'number' => array(
                            'type' => 'string',
                            'required' => true,
                            'description' => 'Номер здания',
                        ),
                        'latitude' => array(
                            'type' => 'double',
                            'required' => true,
                            'description' => 'Координата широта',
                            'minimal' => -90,
                            'maximal' => 90,
                        ),
                        'longitude' => array(
                            'type' => 'double',
                            'required' => true,
                            'description' => 'Координата долгота',
                            'minimal' => -180,
                            'maximal' => 180,
                        ),
                    ),
                ),
                'get' => array(
                    'description' => 'Поиск списка зданий по параметрам',
                    'params' => array(
                        'ids' => array(
                            'type' => 'string',
                            'required' => false,
                            'description' => 'ID зданий. Перечисляются через запятую',
                        ),
                        'street' => array(
                            'type' => 'string',
                            'required' => false,
                            'description' => 'Название улицы',
                        ),
                        'number' => array(
                            'type' => 'string',
                            'required' => false,
                            'description' => 'Номер здания',
                        ),
                        'offset' => array(
                            'type' => 'integer',
                            'required' => false,
                            'default' => 0,
                            'minimal' => 0,
                            'description' => 'Смещение выборки',
                        ),
                        'count' => array(
                            'type' => 'integer',
                            'required' => false,
                            'default' => 100,
                            'minimal' => 1,
                            'maximal' => 100,
                            'description' => 'Количество возвращаемых зданий',
                        ),
                    ),
                ),
            ),
            'rubric' => array(
                'add' => array(
                    'description' => 'Добавление рубрики',
                    'params' => array(
                        'name' => array(
                            'type' => 'string',
                            'required' => true,
                            'description' => 'Название рубрики. Допускаются символы латинского и русского алфавита, цифры и пробел',
                        ),
                        'parent' => array(
                            'type' => 'string',
                            'required' => false,
                            'default' => 'root',
                            'description' => 'ID родительской рубрики',
                        ),
                    ),
                ),
            ),
            'company' => array(
                'add' => array(
                    'description' => 'Добавление фирмы',
                    'params' => array(
                        'build' => array(
                            'type' => 'string',
                            'required' => true,
                            'description' => 'ID здания',
                        ),
                        'name' => array(
                            'type' => 'string',
                            'required' => true,
                            'description' => 'Название фирмы',
                        ),
                    ),
                ),
                'addPhones' => array(
                    'description' => 'Привязка телефона к фирме',
                    'params' => array(
                        'company' => array(
                            'type' => 'string',
                            'required' => true,
                            'description' => 'ID фирмы',
                        ),
                        'phones' => array(
                            'type' => 'string',
                            'required' => true,
                            'description' => 'Номера телефона. Перечилсяются через запятую',
                        ),
                    ),
                ),
                'addRubrics' => array(
                    'description' => 'Привязка фирмы к рубрике',
                    'params' => array(
                        'company' => array(
                            'type' => 'string',
                            'required' => true,
                            'description' => 'ID фирмы',
                        ),
                        'rubrics' => array(
                            'type' => 'string',
                            'required' => true,
                            'description' => 'ID рубрик. Перечилсяются через запятую',
                        ),
                    ),
                ),
                'removeRubrics' => array(
                    'description' => 'Удаление фирмы из рубрик',
                    'params' => array(
                        'company' => array(
                            'type' => 'string',
                            'required' => true,
                            'description' => 'ID фирмы',
                        ),
                        'rubrics' => array(
                            'type' => 'string',
                            'required' => true,
                            'description' => 'ID рубрик. Перечилсяются через запятую',
                        ),
                    ),
                ),
                'removePhones' => array(
                    'description' => 'Удаление телефона из телефонов фирмы',
                    'params' => array(
                        'company' => array(
                            'type' => 'string',
                            'required' => true,
                            'description' => 'ID фирмы',
                        ),
                        'phones' => array(
                            'type' => 'string',
                            'required' => true,
                            'description' => 'Номера телефона. Перечилсяются через запятую',
                        ),
                    ),
                ),
                'getByAddress' => array(
                    'description' => 'Поиск фирм по адресу',
                    'params' => array(
                        'street' => array(
                            'type' => 'string',
                            'required' => true,
                            'description' => 'Название улицы',
                        ),
                        'number' => array(
                            'type' => 'string',
                            'required' => true,
                            'description' => 'Номер здания',
                        ),
                        'offset' => array(
                            'type' => 'integer',
                            'required' => false,
                            'default' => 0,
                            'minimal' => 0,
                            'description' => 'Смещение в выборке',
                        ),
                        'count' => array(
                            'type' => 'integer',
                            'required' => false,
                            'default' => 100,
                            'minimal' => 1,
                            'maximal' => 100,
                            'description' => 'Количество возвращаемых фирм',
                        ),
                    ),
                ),
                'getByBuildId' => array(
                    'description' => 'Поиск фирм по ID здания',
                    'params' => array(
                        'id' => array(
                            'type' => 'string',
                            'required' => true,
                            'description' => 'ID зданий. Разделяются запятой',
                        ),
                        'offset' => array(
                            'type' => 'integer',
                            'required' => false,
                            'default' => 0,
                            'minimal' => 0,
                            'description' => 'Смещение в выборке',
                        ),
                        'count' => array(
                            'type' => 'integer',
                            'required' => false,
                            'default' => 100,
                            'minimal' => 1,
                            'maximal' => 100,
                            'description' => 'Количество возвращаемых фирм',
                        ),
                    ),
                ),
                'getById' => array(
                    'description' => 'Поиск фирм по ID',
                    'params' => array(
                        'id' => array(
                            'type' => 'string',
                            'required' => true,
                            'description' => 'ID фирм. Разделяются запятой',
                        ),
                        'offset' => array(
                            'type' => 'integer',
                            'required' => false,
                            'default' => 0,
                            'minimal' => 0,
                            'description' => 'Смещение в выборке',
                        ),
                        'count' => array(
                            'type' => 'integer',
                            'required' => false,
                            'default' => 100,
                            'minimal' => 1,
                            'maximal' => 100,
                            'description' => 'Количество возвращаемых фирм',
                        ),
                    ),
                ),
                'getAround' => array(
                    'description' => 'Поиск фирм в указанном радиусе относительно точки',
                    'params' => array(
                        'latitude' => array(
                            'type' => 'double',
                            'required' => true,
                            'description' => 'Широта точки',
                            'minimal' => -90,
                            'maximal' => 90,
                        ),
                        'longitude' => array(
                            'type' => 'double',
                            'required' => true,
                            'description' => 'Долгота точки',
                            'minimal' => -180,
                            'maximal' => 180,
                        ),
                        'radius' => array(
                            'type' => 'integer',
                            'required' => true,
                            'description' => 'Радиус поиска в метрах',
                            'minimal' => 1,
                            'maximal' => 5000,
                        ),
                        'offset' => array(
                            'type' => 'integer',
                            'required' => false,
                            'default' => 0,
                            'minimal' => 0,
                            'description' => 'Смещение в выборке',
                        ),
                        'count' => array(
                            'type' => 'integer',
                            'required' => false,
                            'default' => 100,
                            'minimal' => 1,
                            'maximal' => 100,
                            'description' => 'Количество возвращаемых фирм',
                        ),
                    ),
                ),
                'getInRectangle' => array(
                    'description' => 'Поиск фирм в указанном радиусе относительно точки',
                    'params' => array(
                        'latitude' => array(
                            'type' => 'double',
                            'required' => true,
                            'description' => 'Самая северная координата области поиска (Широта)',
                            'minimal' => -90,
                            'maximal' => 90,
                        ),
                        'longitude' => array(
                            'type' => 'double',
                            'required' => true,
                            'description' => 'Самая западная координата области поиска (Долгота)',
                            'minimal' => -180,
                            'maximal' => 180,
                        ),
                        'width' => array(
                            'type' => 'integer',
                            'required' => true,
                            'description' => 'Ширина области поиска в метрах',
                            'minimal' => 1,
                            'maximal' => 5000,
                        ),
                        'height' => array(
                            'type' => 'integer',
                            'required' => true,
                            'description' => 'Высота области поиска в метрах',
                            'minimal' => 1,
                            'maximal' => 5000,
                        ),
                        'offset' => array(
                            'type' => 'integer',
                            'required' => false,
                            'default' => 0,
                            'minimal' => 0,
                            'description' => 'Смещение в выборке',
                        ),
                        'count' => array(
                            'type' => 'integer',
                            'required' => false,
                            'default' => 100,
                            'minimal' => 1,
                            'maximal' => 100,
                            'description' => 'Количество возвращаемых фирм',
                        ),
                    ),
                ),
            ),
        );
        $response = array(
            'errors' => array(),
            'data' => array(),
        );
        foreach ($allMethods as $object=>$methods) {
            foreach ($methods as $method=>$data) {
                if (Core::app()->isAllow($object,$method,$token)) {
                    $response['data'][$object.'.'.$method] = $data;
                }
            }
        }
        ksort($response['data']);
        return $response;
    }
627558
public function setParams(array $params)
    {
        foreach ($this->params as $param) {
            if (!array_key_exists($param, $params)) {
                $methodName = 'unset'.ucfirst($param);

                if (method_exists($this, $methodName)) {
                    call_user_func(
                        [$this, $methodName]
                    );
                    continue;
                }
            }

            if (property_exists($this, $param)) {
                $methodName = 'set'.ucfirst($param);

                if (method_exists($this, $methodName)) {
                    call_user_func(
                        [$this, $methodName],
                        $params[$param]
                    );
                }
            }
        }

        return $this;
    }
952215
public function action_create( $params )
	{
		$name = array_shift( $params );
		
		$file = \DB\Migrator::path( $name );
		
		\CCFile::write( $file, "# ---> up\n\n\n\n# ---> down\n\n" );
	}
814422
protected function ensureAccess($params = [])
    {
        if (!isset($this->checkAccess))
            return;

        $params['action'] = $this;

        if (call_user_func($this->checkAccess, $params))
            return;

        $user = \Yii::$app->user;

        if ($user->getIsGuest())
            $user->loginRequired();
        else
            throw new ForbiddenHttpException(\Yii::t(
                Constants::MSG_CATEGORY_NAME,
                'You are not allowed to perform this action.'
            ));

    }
1293493
public function clean($params = [])
    {
        if ( ! empty($this->config['primary_config_file']))
        {
            $default_settings = Arr::dot(Config::get($this->config['primary_config_file']));
            $saved_settings   = Arr::dot($this->getAll($cache = false));

            if (array_key_exists('flush', $params) && $params['flush'] == true)
            {
                $this->flush();

                $saved_settings = [];
            }
            else
            {
                foreach ($saved_settings as $key => $value)
                {
                    if ( ! array_key_exists($key, $default_settings))
                    {
                        if ( ! key_represents_an_array($key, $default_settings))
                        {
                            $this->forget($key);
                        }
                    }
                }
            }


            // update with new settings
            foreach ($default_settings as $key => $value)
            {
                if ( ! preg_key_exists($key, $saved_settings))
                {
                    // check if key does not represents an array and exists in saved settings
                    if ( ! key_represents_an_array($key, $saved_settings))
                    {
                        $this->set($key, $value);
                    }
                }
            }
        }
    }
713378
public function setParams(array $params)
    {
        foreach ($params as $param) {
            $this->config->setEndpoint(
                str_replace('{' . $param['placeholder'] . '}', $param['value'], $this->config->getConfig()['endpoint'])
            );
        }

        $this->parentParams = $params;
    }
1344095
public function params($params) {

		if(false === is_array($params)) {
			return trigger_error(sprintf('Argument 1 passed to %s() must be of the type array, "%s" given', __METHOD__, gettype($data)), E_USER_ERROR);
		}

		$this -> params = $params;

		return $this;
	}
548217
protected function addCondition($method, array $params)
    {
        $target = $this->getCurrentPredicate();
        
        # Set default operator if any.
        if ($operator = $this->getDefaultOperator()) {
            $target->$operator;
        }
        
        call_user_func_array([$target, $method], $params);
    }
776581
public function runWithParams($params)
    {
        $args = $this->controller->bindActionParams($this, $params);
        Log::debug('Running action: ' . get_class($this->controller) . '::' . $this->actionMethod . '()' . __METHOD__);
        if (Zilf::$app->requestedParams === null) {
            Zilf::$app->requestedParams = $args;
        }

        return call_user_func_array([$this->controller, $this->actionMethod], $args);
    }
202340
private static function _checkParams(array $params) : void
    {
        // check existence of mandatory parameters

        // driver
        if (! isset($params['driver']) && ! isset($params['driverClass'])) {
            throw DBALException::driverRequired();
        }

        // check validity of parameters

        // driver
        if (isset($params['driver']) && ! isset(self::$_driverMap[$params['driver']])) {
            throw DBALException::unknownDriver($params['driver'], array_keys(self::$_driverMap));
        }

        if (isset($params['driverClass']) && ! in_array(Driver::class, class_implements($params['driverClass'], true))) {
            throw DBALException::invalidDriverClass($params['driverClass']);
        }
    }
123938
public function init(array $params)
    {
        if ($this->config->bowerFileExists()) {
            $bowerJson = $this->config->getBowerFileContent();
            $this->config->setSaveToBowerJsonFile();
            $this->config->updateBowerJsonFile2($bowerJson, $params);
        } else {
            $this->config->initBowerJsonFile($params);
        }
    }
648135
private function initialize($params = array())
	{
		if (count($params) > 0)
		{
			foreach ($params as $key => $value)
			{
				if (isset($this->{$key}))
				{
					$this->{$key} = $value;
				}
				else if (strpos($key, 'CURLOPT_') === 0) 
				{
					curl_setopt($this->ch, $key, $value);    
				}
			}
		}
	}
70135
public function doAction($action,$params){
        if(method_exists($this,$action)){
            $this->$action($params);
        }
        else{
            $this->ActionNotFound($action,$params);
        }
    }