Créer et exécuter un projet Yii 2
Qu'est-ce que Yii 2 ?
Yii 2 est un framework PHP haute performance, adapté au développement d'applications Web modernes. Il suit le modèle de conception MVC (Model-View-Controller) et offre une riche panoplie de fonctionnalités et d'outils qui permettent aux développeurs de créer rapidement des applications Web de haute qualité. Yii 2 se distingue par son efficacité, sa flexibilité et son extensibilité, ce qui en fait le framework de choix pour de nombreux développeurs.
Principales caractéristiques et avantages de Yii 2
- Haute performance : Yii 2 est un framework haute performance capable de traiter un grand nombre de requêtes simultanées.
- Modularité : Il offre de nombreux modules et plugins, facilitant l'extension et la personnalisation des fonctionnalités.
- Sécurité : Il intègre diverses fonctionnalités de sécurité comme la validation des entrées, le filtrage des sorties et la protection CSRF.
- Facilité d'utilisation : Il propose une API simple et une documentation abondante, permettant aux développeurs de s'y familiariser rapidement.
- Soutien communautaire fort : Il possède une communauté de développeurs active et de nombreuses extensions tierces.
Yii 2 permet aux développeurs de construire rapidement des applications Web performantes et de haute qualité, adaptées à des projets de toutes tailles.
Créer et exécuter un projet Yii 2 avec ServBay
Dans cet article, nous allons utiliser l'environnement PHP fourni par ServBay pour créer et exécuter un projet Yii 2. Nous utiliserons la fonctionnalité « Hôte » de ServBay pour configurer le serveur Web et accéder au projet via une configuration simple.
Attention : Si vous avez déjà utilisé NGINX ou Apache
ServBay utilise par défaut Caddy comme serveur Web. Pour les utilisateurs qui migrent de NGINX et Apache vers ServBay, il y a quelques points clés à noter :
Configuration de Caddy
ServBay inclut Caddy par défaut avec une configuration pré-optimisée. Les développeurs peuvent gérer les sites via la fonctionnalité « Hôte » de ServBay sans modifier manuellement les fichiers de configuration de Caddy.
Règles de réécriture et fichiers .htaccess
Avec NGINX et Apache, les développeurs doivent généralement écrire des règles de réécriture et des fichiers .htaccess pour gérer les réécritures d'URL et autres configurations. Toutefois, ServBay configure déjà Caddy avec les règles nécessaires, sauf en cas de besoins spécifiques où les développeurs devront les écrire eux-mêmes.
En savoir plus
Pour plus d'informations, consultez Réécriture et htaccess, Comment migrer un site Apache vers ServBay, Comment migrer un site NGINX vers ServBay.
Créer un projet Yii 2
TIP
ServBay recommande de placer les sites Web dans le répertoire/Applications/ServBay/www
pour une gestion facile.
Installer Composer
ServBay est livré avec Composer pré-installé, il n'est donc pas nécessaire de l'installer séparément.
Créer un projet Yii 2
Utilisez Composer pour créer un nouveau projet de modèle d'application de base 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
4Accéder au répertoire du projet
Accédez au répertoire du nouveau projet Yii 2 :
bashcd /Applications/ServBay/www/servbay-yii2-app
1
Configuration initiale
Configurer la connexion à la base de données
Configurez les informations de connexion à la base de données dans le fichier
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
7Configurer le cache et le composant Redis
Ajoutez la configuration du cache et du composant Redis dans le fichier
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
Configurer le serveur Web
Utilisez la fonctionnalité « Hôte » de ServBay pour accéder au projet Yii 2 via un serveur Web. Dans les paramètres d'hôte de ServBay, ajoutez un nouvel hôte :
- Nom :
My First Yii 2 Dev Site
- Domaine :
servbay-yii2-test.local
- Type de site :
PHP
- Version de PHP : choisissez
8.3
- Répertoire racine du site :
/Applications/ServBay/www/servbay-yii2-app/web
Pour les étapes de configuration détaillées, consultez Ajouter le premier site Web.
Ajouter du code d'exemple
Ajoutez le code suivant dans le fichier 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
Ajoutez le code suivant dans le fichier 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
Accéder au site Web
Ouvrez votre navigateur et accédez à l'URL suivante :
https://servbay-yii2-test.local
: Vous verrez la page de bienvenue par défaut de Yii 2.
Exemples de bases de données NoSQL
Exemple de Memcached
Installer l'extension Memcached
Sur ServBay, l'extension Memcached est déjà préinstallée, il n'est pas nécessaire de l'installer en plus.
Configurer Memcached
Configurez les informations de connexion Memcached dans le fichier
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
13Utiliser Memcached
Utilisez le cache dans le contrôleur :
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
Exemple de Redis
Installer l'extension Redis
Sur ServBay, l'extension Redis est déjà préinstallée, il n'est pas nécessaire de l'installer en plus.
Configurer Redis
Configurez les informations de connexion Redis dans le fichier
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
9Utiliser Redis
Utilisez le cache dans le contrôleur :
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
Exemples de bases de données relationnelles
Créer la structure de la base de données et les fichiers de migration
Créer un fichier de migration
Utilisez l'outil Gii de Yii 2 pour créer un fichier de migration :
bashphp yii migrate/create create_users_table
1Modifier le fichier de migration
Trouvez le fichier de migration nouvellement créé dans le répertoire
migrations
et modifiez-le pour définir la structure de la table de la base de données :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
10Exécuter la migration
Utilisez la commande de migration de Yii 2 pour exécuter la migration et créer la table de la base de données :
bashphp yii migrate
1
Exemple de MySQL
Configurer MySQL
Configurez les informations de connexion MySQL dans le fichier
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
7Insérer des données utilisateur
Insérez des données utilisateur dans le contrôleur :
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
8Utiliser MySQL
Interrogez la base de données dans le contrôleur :
phppublic function actionMysql() { $users = Yii::$app->db->createCommand('SELECT * FROM users')->queryAll(); return $this->asJson($users); }
1
2
3
4
5
Exemple de PostgreSQL
Configurer PostgreSQL
Configurez les informations de connexion PostgreSQL dans le fichier
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
7Insérer des données utilisateur
Insérez des données utilisateur dans le contrôleur :
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
8Utiliser PostgreSQL
Interrogez la base de données dans le contrôleur :
phppublic function actionPgsql() { $users = Yii::$app->db->createCommand('SELECT * FROM users')->queryAll(); return $this->asJson($users); }
1
2
3
4
5
En suivant ces étapes, vous avez réussi à créer et exécuter un projet Yii 2 en utilisant les fonctionnalités offertes par ServBay pour gérer et accéder à votre projet, en vous connectant à diverses bases de données et en invoquant des données. J'espère que cet article vous aidera à vous familiariser rapidement avec Yii 2 et à l'appliquer à vos projets.