Создание и запуск проекта Yii 2
Что такое Yii 2?
Yii 2 - это высокопроизводительный PHP фреймворк, подходящий для разработки современных веб-приложений. Он следует модели MVC (Model-View-Controller) и предоставляет полный набор функциональных возможностей и инструментов для быстрой разработки качественных веб-приложений. Yii 2 характеризуется высокой эффективностью, гибкостью и расширяемостью, что делает его предпочтительным выбором для многих разработчиков.
Основные характеристики и преимущества Yii 2
- Высокая производительность: Yii 2 - высокопроизводительный фреймворк, способный обрабатывать большое количество запросов одновременно.
- Модульность: предоставляет разнообразные модули и плагины для легкого расширения и настройки функционала.
- Безопасность: включает множество функций безопасности, таких как валидация ввода, фильтрация вывода, защита от CSRF и другие.
- Легкость в использовании: предоставляет простой и удобный API и богатую документацию, что позволяет разработчикам быстро освоиться.
- Сильная поддержка сообщества: имеет активное сообщество разработчиков и множество сторонних расширений.
Yii 2 помогает разработчикам быстро создавать высокопроизводительные и качественные веб-приложения, подходящие для проектов любого масштаба.
Создание и запуск проекта Yii 2 с использованием ServBay
В этой статье мы будем использовать PHP среду, предоставляемую ServBay, для создания и запуска проекта Yii 2. Мы будем использовать функцию "Хосты" в ServBay для настройки веб-сервера и получения доступа к проекту.
Обратите внимание: если вы были пользователем NGINX или Apache
По умолчанию ServBay использует Caddy в качестве веб-сервера. Пользователям, переходящим с NGINX или Apache на ServBay, следует учитывать некоторые важные изменения:
Конфигурация Caddy
В ServBay уже встроен Caddy с оптимизированной и настроенной по умолчанию конфигурацией. Разработчикам достаточно использовать функцию "Хосты" в ServBay для управления сайтами, не требуется вручную редактировать конфигурационные файлы Caddy.
Правила переписывания и .htaccess
В NGINX и Apache разработчики обычно сами пишут правила переписывания и файлы .htaccess для обработки переписывания URL и других настроек. В ServBay уже есть готовые правила для Caddy, и, если нет особых требований, разработчикам не нужно писать эти правила самим.
Узнайте больше
Дополнительную информацию смотрите в Переписывание и htaccess, Как мигрировать сайт с Apache на ServBay, Как мигрировать сайт с NGINX на ServBay.
Создание проекта Yii 2
TIP
ServBay рекомендует размещать сайты в каталоге /Applications/ServBay/www
для удобства управления.
Установка Composer
В ServBay изначально включен Composer, отдельная установка не требуется.
Создание проекта Yii 2
Используйте Composer для создания нового проекта на основе шаблона базового приложения Yii 2:
bashcd /Applications/ServBay/www mkdir servbay-yii2-app cd servbay-yii2-app composer create-project --prefer-dist yiisoft/yii2-app-basic .
1
2
3
4Переход в каталог проекта
Перейдите в каталог нового проекта Yii 2:
bashcd /Applications/ServBay/www/servbay-yii2-app
1
Инициализация конфигурации
Настройка подключения к базе данных
Настройте подключение к базе данных в файле
config/db.php
:phpreturn [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=127.0.0.1;dbname=servbay_yii2_app', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', ];
1
2
3
4
5
6
7Настройка кэша и компонента Redis
Добавьте настройки кэша и компонента Redis в файл
config/web.php
:php'components' => [ 'cache' => [ 'class' => 'yii\caching\MemCache', 'servers' => [ [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100, ], ], ], 'redis' => [ 'class' => 'yii\redis\Connection', 'hostname' => '127.0.0.1', 'port' => 6379, 'database' => 0, ], // ... ],
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Настройка веб-сервера
Используйте функцию "Хосты" в ServBay для доступа к проекту Yii 2 через веб-сервер. В настройках "Хосты" в ServBay добавьте новый хост:
- Название:
My First Yii 2 Dev Site
- Домен:
servbay-yii2-test.local
- Тип сайта:
PHP
- Версия PHP: выберите
8.3
- Корневая директория сайта:
/Applications/ServBay/www/servbay-yii2-app/web
Подробные шаги настройки см. в Добавление первого сайта.
Добавление примерного кода
Добавьте следующий код в файл controllers/SiteController.php
:
namespace app\controllers;
use Yii;
use yii\web\Controller;
use yii\web\Response;
class SiteController extends Controller
{
public function actionIndex()
{
return $this->render('index');
}
public function actionMemcached()
{
$cache = Yii::$app->cache;
$cache->set('key', 'Hello Memcached!', 60);
$value = $cache->get('key');
return $this->asText($value);
}
public function actionRedis()
{
$redis = Yii::$app->redis;
$redis->set('key', 'Hello Redis!');
$value = $redis->get('key');
return $this->asText($value);
}
public function actionMysqlAdd()
{
Yii::$app->db->createCommand()->insert('users', [
'name' => 'ServBay',
'email' => '[email protected]',
])->execute();
return $this->asText('User added');
}
public function actionMysql()
{
$users = Yii::$app->db->createCommand('SELECT * FROM users')->queryAll();
return $this->asJson($users);
}
}
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
Добавьте следующий код в файл views/site/index.php
:
<?php
/* @var $this yii\web\View */
$this->title = 'My Yii2 Application';
?>
<div class="site-index">
<div class="jumbotron">
<h1>Congratulations!</h1>
<p class="lead">You have successfully created your Yii2 application.</p>
</div>
</div>
2
3
4
5
6
7
8
9
10
Доступ к сайту
Откройте браузер и перейдите по URL:
https://servbay-yii2-test.local
: вы увидите стандартную приветственную страницу Yii 2.
Примеры NoSQL баз данных
Пример Memcached
Установка расширения Memcached
В ServBay расширение Memcached уже установлено, отдельная установка не требуется.
Настройка Memcached
Настройте подключение к Memcached в файле
config/web.php
:php'components' => [ 'cache' => [ 'class' => 'yii\caching\MemCache', 'servers' => [ [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100, ], ], ], // ... ],
1
2
3
4
5
6
7
8
9
10
11
12
13Использование Memcached
Используйте кэш в контроллере:
phppublic function actionMemcached() { $cache = Yii::$app->cache; $cache->set('key', 'Hello Memcached!', 60); $value = $cache->get('key'); return $this->asText($value); }
1
2
3
4
5
6
7
Пример Redis
Установка расширения Redis
В ServBay расширение Redis уже установлено, отдельная установка не требуется.
Настройка Redis
Настройте подключение к Redis в файле
config/web.php
:php'components' => [ 'redis' => [ 'class' => 'yii\redis\Connection', 'hostname' => '127.0.0.1', 'port' => 6379, 'database' => 0, ], // ... ],
1
2
3
4
5
6
7
8
9Использование Redis
Используйте кэш в контроллере:
phppublic function actionRedis() { $redis = Yii::$app->redis; $redis->set('key', 'Hello Redis!'); $value = $redis->get('key'); return $this->asText($value); }
1
2
3
4
5
6
7
Примеры реляционных баз данных
Создание структуры базы данных и файлов миграции
Создание файла миграции
Используйте инструмент Gii в Yii 2 для создания файла миграции:
bashphp yii migrate/create create_users_table
1Редактирование файла миграции
Найдите новый файл миграции в каталоге
migrations
и отредактируйте его для определения структуры таблицы базы данных:phppublic function up() { $this->createTable('users', [ 'id' => $this->primaryKey(), 'name' => $this->string()->notNull(), 'email' => $this->string()->notNull()->unique(), 'created_at' => $this->timestamp()->defaultExpression('CURRENT_TIMESTAMP'), 'updated_at' => $this->timestamp()->defaultExpression('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'), ]); }
1
2
3
4
5
6
7
8
9
10Запуск миграции
Используйте команду миграции Yii 2 для запуска миграции и создания таблицы базы данных:
bashphp yii migrate
1
Пример MySQL
Настройка MySQL
Настройте подключение к MySQL в файле
config/db.php
:phpreturn [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=127.0.0.1;dbname=servbay_yii2_app', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', ];
1
2
3
4
5
6
7Запись данных пользователя
Запишите данные пользователя в контроллере:
phppublic function actionMysqlAdd() { Yii::$app->db->createCommand()->insert('users', [ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return $this->asText('User added'); }
1
2
3
4
5
6
7
8Использование MySQL
Вызовите базу данных в контроллере:
phppublic function actionMysql() { $users = Yii::$app->db->createCommand('SELECT * FROM users')->queryAll(); return $this->asJson($users); }
1
2
3
4
5
Пример PostgreSQL
Настройка PostgreSQL
Настройте подключение к PostgreSQL в файле
config/db.php
:phpreturn [ 'class' => 'yii\db\Connection', 'dsn' => 'pgsql:host=127.0.0.1;dbname=servbay_yii2_app', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', ];
1
2
3
4
5
6
7Запись данных пользователя
Запишите данные пользователя в контроллере:
phppublic function actionPgsqlAdd() { Yii::$app->db->createCommand()->insert('users', [ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return $this->asText('User added'); }
1
2
3
4
5
6
7
8Использование PostgreSQL
Вызовите базу данных в контроллере:
phppublic function actionPgsql() { $users = Yii::$app->db->createCommand('SELECT * FROM users')->queryAll(); return $this->asJson($users); }
1
2
3
4
5
Следуя указанным выше шагам, вы успешно создадите и запустите проект Yii 2, а также используете функционалы, предоставляемые ServBay для управления и доступа к вашему проекту, подключите разные базы данных и вызовите данные. Надеюсь, эта статья поможет вам быстро освоиться с Yii 2 и применить его в ваших проектах.