En tant que développeur web, apprendre et pratiquer l'utilisation du framework PHP est sans aucun doute essentiel. Parmi les nombreux frameworks PHP, le framework Yii est un framework efficace, élégant et sécurisé avec une large base d'utilisateurs.
Dans cet article, je vais expliquer comment utiliser le framework Yii pour créer une application de base de centre commercial en ligne. L'application aura des fonctions de base du centre commercial telles que la gestion des utilisateurs, la gestion des produits et les fonctions de panier d'achat. Cette application peut être utilisée comme pratique d'introduction pour les débutants souhaitant apprendre le framework Yii.
Installer Yii Framework
Avant de commencer à utiliser le framework Yii, nous devons d'abord installer le framework. Le framework Yii propose plusieurs méthodes d'installation, la méthode la plus couramment utilisée consiste à installer à l'aide de Composer. Avant l'installation, nous devons confirmer que Composer est installé.
Nous pouvons utiliser la commande suivante pour installer le framework Yii :
composer create-project --prefer-dist yiisoft/yii2-app-basic basic
La commande ci-dessus créera une application de base. Vous pouvez confirmer si le framework Yii est installé avec succès en visitant http://localhost/basic.
Conception de tableaux de données et remplissage des données
Avant de créer une application de centre commercial en ligne, nous devons créer un tableau de données lié au centre commercial et remplir les données. Cet article utilisera MySQL comme base de données et créera les tables de données suivantes :
L'ajout d'index appropriés aux tables de données ci-dessus peut améliorer l'efficacité des requêtes.
Ce qui suit est l'instruction SQL de création de table pour la table de données ci-dessus :
CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) NOT NULL, `password` varchar(255) NOT NULL, `email` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `product` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `price` float(10,2) NOT NULL, `description` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `order` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, `product_id` int(11) NOT NULL, `quantity` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `user_id` (`user_id`), KEY `product_id` (`product_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `cart` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, `product_id` int(11) NOT NULL, `quantity` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `user_id` (`user_id`), KEY `product_id` (`product_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Maintenant, nous devons remplir les données pour tester l'application. Ajoutez au moins un enregistrement utilisateur à la table utilisateur et au moins un enregistrement produit à la table produit. Nous utiliserons cet utilisateur et ce produit comme données de test pour le reste de cet article.
Création d'un contrôleur utilisateur
Nous commencerons par créer un contrôleur utilisateur. Dans le framework Yii, les contrôleurs sont les composants principaux qui gèrent les requêtes des applications. Le contrôleur est chargé de détecter le type de demande et d'appeler la méthode d'opération de réponse en fonction de la demande.
Maintenant, nous créons le UserController et ajoutons des méthodes d'action de base. Nous utiliserons l'extension yiiwebController pour créer le contrôleur.
Dans Yii, le nom de la classe du contrôleur est généralement suffixé par Controller, ce qui permet de mieux décrire les fonctions implémentées par la classe. Vous trouverez ci-dessous le code de base de la classe UserController :
<?php namespace appcontrollers; use yiiwebController; class UserController extends Controller { public function actionIndex() { return $this->render('index'); } public function actionLogin() { // code for login logic } public function actionRegister() { // code for registration logic } }
Dans le code ci-dessus, nous avons ajouté trois méthodes de fonctionnement de base. La méthode actionIndex() restituera le fichier de vue index.php. Il s'agit du nom de la méthode d'action par défaut. Les méthodes actionLogin() et actionRegister() seront utilisées pour la connexion et l'enregistrement des utilisateurs.
Maintenant, nous devons créer le fichier de vue index.php. Les fichiers de vue sont la sortie des méthodes d'action dans le contrôleur. Nous utiliserons la méthode Yii::$app->view->render() fournie par le framework Yii pour restituer la vue.
Créez le fichier index.php dans le dossier vues/utilisateur et ajoutez le code suivant :
<?php use yiihelpersHtml; $this->title = 'User'; $this->params['breadcrumbs'][] = $this->title; ?> <h1><?= Html::encode($this->title) ?></h1> <p> Welcome to the user homepage. </p>
Le code ci-dessus affichera un simple message de bienvenue sur le navigateur.
Création du contrôleur de produit et de la vue
Maintenant, nous allons passer à la création du contrôleur de produit et de la vue. Nous utiliserons l'extension yiidataActiveDataProvider pour obtenir les données de la liste de produits.
Créez le contrôleur ProductController et ajoutez la méthode d'action suivante :
<?php namespace appcontrollers; use yiiwebController; use appmodelsProduct; use yiidataActiveDataProvider; class ProductController extends Controller { public function actionIndex() { $dataProvider = new ActiveDataProvider([ 'query' => Product::find(), ]); return $this->render('index', [ 'dataProvider' => $dataProvider, ]); } public function actionAddtocart($id) { // code for add to cart logic } }
Comme indiqué dans le code, nous utilisons d'abord Product::find() pour obtenir tous les produits. Nous plaçons ensuite les données de la liste de produits dans un ActiveDataProvider et les transmettons à la vue. Après cela, nous créons la méthode actionAddtocart() pour ajouter des articles au panier.
Nous devons créer le dossier produit et créer le fichier de vue index.php sous ce dossier. Nous utilisons un widget GridView qui affichera une liste de produits basée sur les données fournies par le dataProvider. Nous ajoutons également un bouton pour ajouter des produits au panier.
Voici le code du fichier views/product/index.php :
<?php use yiihelpersHtml; use yiigridGridView; $this->title = 'Product'; $this->params['breadcrumbs'][] = $this->title; ?> <h1><?= Html::encode($this->title) ?></h1> <?= GridView::widget([ 'dataProvider' => $dataProvider, 'columns' => [ 'id', 'name', 'price', 'description', [ 'class' => 'yiigridActionColumn', 'buttons' => [ 'addtocart' => function ($url, $model) { return Html::a('Add to cart', ['product/addtocart', 'id' => $model->id]); } ], 'template' => '{addtocart}', ], ], ]); ?>
Maintenant, nous pouvons visiter http://localhost/basic/product/index dans le navigateur pour confirmer si la vue est rendue correctement.
Créer un contrôleur et une vue de panier d'achat
Nous avons besoin d'un contrôleur de panier et d'une vue pour gérer les articles ajoutés au panier dans le centre commercial. Nous utiliserons la session pour stocker les données du panier.
Nous créons le contrôleur CartController et ajoutons la méthode d'action suivante :
<?php namespace appcontrollers; use yiiwebController; use Yii; class CartController extends Controller { public function actionIndex() { $cart = Yii::$app->session->get('cart'); return $this->render('index', [ 'cart' => $cart, ]); } public function actionAdd($id) { // code for add product to cart logic } public function actionRemove($id) { // code for remove product from cart logic } }
Dans le code ci-dessus, nous récupérons d'abord les données du panier stockées dans la session. Dans la méthode actionAdd($id), nous ajouterons le produit avec le numéro d'identification spécifié au panier. Dans la méthode actionRemove($id), nous supprimerons du panier l'article portant le numéro d'identification spécifié.
Ensuite, nous devons créer le dossier cart et créer le fichier de vue index.php sous ce dossier. Nous utilisons le widget ListView qui affichera la liste du panier en fonction des données du panier stockées dans la session. Nous avons également ajouté quelques boutons pour augmenter ou diminuer le nombre d'articles dans le panier ou pour supprimer des articles du panier.
Ce qui suit est le code du fichier view/cart/index.php :
<?php use yiihelpersHtml; use yiiwidgetsListView; $this->title = 'Shopping Cart'; $this->params['breadcrumbs'][] = $this->title; ?> <h1><?= Html::encode($this->title) ?></h1> <?= ListView::widget([ 'dataProvider' => $dataProvider, 'itemView' => '_cart_item', 'emptyText' => 'Your cart is empty.', ]) ?>
在views/cart文件夹下创建_cart_item.php视图文件,该文件将被用于渲染购物车列表中的每一行。以下是views/cart/_cart_item.php文件的代码:
<?php use yiihelpersHtml; use yiiwidgetsActiveForm; $form = ActiveForm::begin([ 'id' => 'cart-item-' . $model['id'], ]); ?> <?= Html::a('Remove', ['cart/remove', 'id' => $model['id']]) ?> <?= $model['name'] ?> <?= $form->field($model, 'quantity')->textInput(['value' => $model['quantity']]) ?> <?= Html::submitButton('Update') ?> <?php ActiveForm::end(); ?>
以上代码将会在浏览器中显示购物车列表,用户可以在该列表中执行增加或减少商品数量的操作,也可以删除购物车中已有商品。
完成在线商城应用程序
现在,我们已经完成了基础的在线商城应用程序,该应用程序拥有用户管理,产品管理和购物车等基础功能。该应用程序可以作为初学者学习和实践Yii框架的入门实践。当然,在实际应用中,我们仍需要添加更多功能来满足商城的需求。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!