* and hope the developer won't let it fail silently. * * @param mixed $length * @return void * @throws Exception */ function random_bytes($length) { unset($length); // Suppress "variable not used" warnings. throw new Exception( 'There is no suitable CSPRNG installed on your system' ); } } } if (!is_callable('random_int')) { require_once $RandomCompatDIR . '/random_int.php'; }
if ($length < 1) { throw new InvalidArgumentException('First parameter ($length) must be greater than 0'); } // always use random_bytes() if it is available if (function_exists('random_bytes')) { return random_bytes($length); } // The recent LibreSSL RNGs are faster and likely better than /dev/urandom. // Parse OPENSSL_VERSION_TEXT because OPENSSL_VERSION_NUMBER is no use for LibreSSL. // https://bugs.php.net/bug.php?id=71143 if ($this->_useLibreSSL === null) {
} if ($length < 1) { throw new InvalidArgumentException('First parameter ($length) must be greater than 0'); } $bytes = $this->generateRandomKey($length); return substr(StringHelper::base64UrlEncode($bytes), 0, $length); } /** * Generates a secure hash from a password and a random salt. *
/** * Generates an unmasked random token used to perform CSRF validation. * @return string the random token for CSRF validation. */ protected function generateCsrfToken() { $token = Yii::$app->getSecurity()->generateRandomString(); if ($this->enableCsrfCookie) { $cookie = $this->createCsrfCookie($token); Yii::$app->getResponse()->getCookies()->add($cookie); } else { Yii::$app->getSession()->set($this->csrfParam, $token); }
*/ public function getCsrfToken($regenerate = false) { if ($this->_csrfToken === null || $regenerate) { $token = $this->loadCsrfToken(); if ($regenerate || empty($token)) { $token = $this->generateCsrfToken(); } $this->_csrfToken = Yii::$app->security->maskToken($token); } return $this->_csrfToken; }
*/ public static function csrfMetaTags() { $request = Yii::$app->getRequest(); if ($request instanceof Request && $request->enableCsrfValidation) { return static::tag('meta', '', ['name' => 'csrf-param', 'content' => $request->csrfParam]) . "\n " . static::tag('meta', '', ['name' => 'csrf-token', 'content' => $request->getCsrfToken()]) . "\n"; } return ''; } /**
* This method is mainly used internally to implement dynamic content feature. * @param string $statements the PHP statements to be evaluated. * @return mixed the return value of the PHP statements. */ public function evaluateDynamicContent($statements) { return eval($statements); } /** * Returns a list of currently active dynamic content class instances. * @return DynamicContentAwareInterface[] class instances supporting dynamic contents. * @since 2.0.14
$placeholder = "<![CDATA[YII-DYNAMIC-$n]]>"; $this->addDynamicPlaceholder($placeholder, $statements); return $placeholder; } return $this->evaluateDynamicContent($statements); } /** * {@inheritdoc} */ public function getDynamicPlaceholders()
* from `yii.js`. * * @since 2.0.13 */ public function registerCsrfMetaTags() { $this->metaTags['csrf_meta_tags'] = $this->renderDynamic('return yii\helpers\Html::csrfMetaTags();'); } /** * Registers a link tag. * * For example, a link tag for a custom [favicon](http://www.w3.org/2005/10/howto-favicon)
<meta charset="<?= Yii::$app->charset ?>"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="kmhe" content="Kmhe2018.unp.ac.id, kmhe unp 2018, Kontes Mobil Hemat Energi UNP 2018, KMHE 2018"> <link rel="shortcut icon" type="image/x-icon" href="<?= Yii::$app->getHomeUrl(); ?>kmhe.ico" /> <?php $this->registerCsrfMetaTags() ?> <title><?= Html::encode($this->title) ?></title> <?php $this->head() ?> </head> <body data-spy="scroll" data-target="#navbar-example"> <?php $this->beginBody() ?>
{ $_obInitialLevel_ = ob_get_level(); ob_start(); ob_implicit_flush(false); extract($_params_, EXTR_OVERWRITE); try { require $_file_; return ob_get_clean(); } catch (\Exception $e) { while (ob_get_level() > $_obInitialLevel_) { if (!@ob_end_clean()) { ob_clean(); }
$this->renderers[$ext] = Yii::createObject($this->renderers[$ext]); } /* @var $renderer ViewRenderer */ $renderer = $this->renderers[$ext]; $output = $renderer->render($this, $viewFile, $params); } else { $output = $this->renderPhpFile($viewFile, $params); } $this->afterRender($viewFile, $params, $output); } array_pop($this->_viewFiles); $this->context = $oldContext;
* @since 2.0.1 */ public function renderContent($content) { $layoutFile = $this->findLayoutFile($this->getView()); if ($layoutFile !== false) { return $this->getView()->renderFile($layoutFile, ['content' => $content], $this); } return $content; } /**
* @return string the rendering result. * @throws InvalidArgumentException if the view file or the layout file does not exist. */ public function render($view, $params = []) { $content = $this->getView()->render($view, $params, $this); return $this->renderContent($content); } /** * Renders a static string by applying a layout. * @param string $content the static string being rendered * @return string the rendering result of the layout with the given static string as the `$content` variable.
$searchModel = new KategoriKendaraanSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); return $this->render('index', [ 'searchModel' => $searchModel, 'dataProvider' => $dataProvider, ]); } /** * Displays a single KategoriKendaraan model. * @param integer $id * @return mixed
$args = $this->controller->bindActionParams($this, $params); Yii::debug('Running action: ' . get_class($this->controller) . '::' . $this->actionMethod . '()', __METHOD__); if (Yii::$app->requestedParams === null) { Yii::$app->requestedParams = $args; } return call_user_func_array([$this->controller, $this->actionMethod], $args); } }
} $result = null; if ($runAction && $this->beforeAction($action)) { // run the action $result = $action->runWithParams($params); $result = $this->afterAction($action, $result); // call afterAction on modules foreach ($modules as $module) { /* @var $module Module */
$parts = $this->createController($route); if (is_array($parts)) { /* @var $controller Controller */ list($controller, $actionID) = $parts; $oldController = Yii::$app->controller; Yii::$app->controller = $controller; $result = $controller->runAction($actionID, $params); if ($oldController !== null) { Yii::$app->controller = $oldController; } return $result; }
$params = $this->catchAll; unset($params[0]); } try { Yii::debug("Route requested: '$route'", __METHOD__); $this->requestedRoute = $route; $result = $this->runAction($route, $params); if ($result instanceof Response) { return $result; } $response = $this->getResponse(); if ($result !== null) {
{ try { $this->state = self::STATE_BEFORE_REQUEST; $this->trigger(self::EVENT_BEFORE_REQUEST); $this->state = self::STATE_HANDLING_REQUEST; $response = $this->handleRequest($this->getRequest()); $this->state = self::STATE_AFTER_REQUEST; $this->trigger(self::EVENT_AFTER_REQUEST); $this->state = self::STATE_SENDING_RESPONSE; $response->send();
require __DIR__ . '/../../common/config/main.php', require __DIR__ . '/../../common/config/main-local.php', require __DIR__ . '/../config/main.php', require __DIR__ . '/../config/main-local.php' ); (new yii\web\Application($config))->run();