Как установить Yii и загрузить index.php?
Yii. Начал знакомство с этим замечательным фрэймворком. В сети масса инструкций, но когда пишешь – лучше запоминается, да и по своим записям проще ориентироваться потом.
Итак, я пошел самым простым путем – скачал, разархивировал и поместил папку с файлами Yii в директорию, доступную из веб. Хотя на официальном сайте много советов по использованию программы Composer. Не знаю, возможно так и лучше, но я пока с ней не знаком, поэтому – разархивировал поместил папку с файлами Yii в директорию, доступную из веб., Поскольку я работаю с IIS веб-сервером, то у меня получилось что-то вроде…
1 |
C:\www\myphpproject\yii-basic-app-2.0.9 |
Далее, согласно инструкции, открываем файл
1 |
C:\www\myphpproject\yii-basic-app-2.0.9\basic\config\web.php |
И правим там одну строчку. Присвоим значение cookieValidationKey Оно по умолчанию пустое
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
$config = [ 'id' => 'basic', 'basePath' => dirname(__DIR__), 'bootstrap' => ['log'], 'components' => [ 'request' => [ // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation 'cookieValidationKey' => '123ABC_ANY_VALUE_HERE', //<<< !!! SET ANY VALUE HERE, IF EMTY THAN ERROR ], 'cache' => [ 'class' => 'yii\caching\FileCache', ], 'user' => [ 'identityClass' => 'app\models\User', 'enableAutoLogin' => true, ], 'errorHandler' => [ 'errorAction' => 'site/error', ], 'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', // send all mails to a file by default. You have to set // 'useFileTransport' to false and configure a transport // for the mailer to send real emails. 'useFileTransport' => true, ], 'log' => [ 'traceLevel' => YII_DEBUG ? 3 : 0, 'targets' => [ [ 'class' => 'yii\log\FileTarget', 'levels' => ['error', 'warning'], ], ], ], 'db' => require(__DIR__ . '/db.php'), /* 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ ], ], */ ], 'params' => $params, ]; |
В принципе это всё, получим следующий результат…
Простой пример. Как добавить свою страницу?
В файл controllers/SiteController.php добавим один метод в класс SiteController
1 2 3 4 |
public function actionHello() { return $this->render('hello'); } |
Во views/site/ добавим файл hello.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?php /* @var $this yii\web\View */ use yii\helpers\Html; $this->title = 'Привет мир)'; $this->params['breadcrumbs'][] = $this->title; ?> <div class="site-about"> <h1><?= Html::encode($this->title) ?></h1> <p> Привет мир, привет <?= $yiiName ?>! </p> <code><?= __FILE__ ?> -- это можно убрать в коде =))</code> </div> |
views/layouts/main.php
Добавим одну строчку
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<?php NavBar::begin([ 'brandLabel' => 'My Company', 'brandUrl' => Yii::$app->homeUrl, 'options' => [ 'class' => 'navbar-inverse navbar-fixed-top', ], ]); echo Nav::widget([ 'options' => ['class' => 'navbar-nav navbar-right'], 'items' => [ ['label' => 'Привет', 'url' => ['/site/hello']], //<<< ссылка на нашу страницу ['label' => 'Home', 'url' => ['/site/index']], ['label' => 'About', 'url' => ['/site/about']], ['label' => 'Contact', 'url' => ['/site/contact']], Yii::$app->user->isGuest ? ( ['label' => 'Login', 'url' => ['/site/login']] ) : ( '<li>' . Html::beginForm(['/site/logout'], 'post', ['class' => 'navbar-form']) . Html::submitButton( 'Logout (' . Yii::$app->user->identity->username . ')', ['class' => 'btn btn-link'] ) . Html::endForm() . '</li>' ) ], ]); NavBar::end(); ?> |
В результате получим следующее…
Нажав на ссылку, соответственно переходим…