Avec la popularité d'Internet et l'amour des gens pour les films, les sites Web de films sont devenus un type de site Web populaire. Lors de la création d’un site Web de cinéma, un bon framework est indispensable. Le framework Yii est un framework PHP hautes performances, facile à utiliser et offrant d'excellentes performances. Dans cet article, nous explorerons comment créer un site Web de films à l'aide du framework Yii.
Avant d'utiliser le framework Yii, vous devez d'abord installer le framework. L'installation du framework Yii est très simple, il suffit d'exécuter la commande suivante dans le terminal :
composer create-project yiisoft/yii2-app-basic
Cette commande créera une application Yii2 de base dans le répertoire courant. Vous êtes maintenant prêt à commencer à créer votre site Web de film.
Le framework Yii fournit ActiveRecord, un moyen de faciliter le travail avec les bases de données. Dans cet exemple, nous allons créer une table de données appelée films, qui contient des informations telles que l'identifiant du film, le titre, le réalisateur, l'acteur, l'année, le genre et la note. Pour créer la table, accédez au répertoire racine de l'application dans le terminal et exécutez la commande suivante :
php yii migrate/create create_movies_table
Modifiez ensuite le fichier de migration généré avec le contenu suivant :
<?php use yiidbMigration; /** * Handles the creation of table `{{%movies}}`. */ class m210630_050401_create_movies_table extends Migration { /** * {@inheritdoc} */ public function safeUp() { $this->createTable('{{%movies}}', [ 'id' => $this->primaryKey(), 'title' => $this->string()->notNull(), 'director' => $this->string()->notNull(), 'actors' => $this->text()->notNull(), 'year' => $this->integer()->notNull(), 'genre' => $this->string()->notNull(), 'rating' => $this->decimal(3,1)->notNull(), ]); } /** * {@inheritdoc} */ public function safeDown() { $this->dropTable('{{%movies}}'); } }
Exécutez maintenant la migration pour créer la table de données des films.
php yii migrate
Dans le framework Yii, il est très simple de définir le modèle de la table de données à l'aide d'ActiveRecord. Nous pouvons créer un modèle nommé Movie dans le répertoire models et spécifier le nom de la table et le nom du champ dans la définition du modèle.
<?php namespace appmodels; use yiidbActiveRecord; class Movie extends ActiveRecord { /** * {@inheritdoc} */ public static function tableName() { return '{{%movies}}'; } /** * {@inheritdoc} */ public function rules() { return [ [['title', 'director', 'actors', 'year', 'genre', 'rating'], 'required'], [['year'], 'integer'], [['rating'], 'number'], [['actors'], 'string'], [['title', 'director', 'genre'], 'string', 'max' => 255], ]; } /** * {@inheritdoc} */ public function attributeLabels() { return [ 'id' => 'ID', 'title' => 'Title', 'director' => 'Director', 'actors' => 'Actors', 'year' => 'Year', 'genre' => 'Genre', 'rating' => 'Rating' ]; } }
Le contrôleur de film sera responsable du traitement de toutes les demandes concernant les films, telles que les demandes d'ajout, de modification, de suppression et d'affichage de la liste de films. Nous pouvons créer un contrôleur nommé MovieController dans le répertoire des contrôleurs et ajouter le code suivant :
<?php namespace appcontrollers; use Yii; use yiiwebController; use appmodelsMovie; class MovieController extends Controller { /** * Shows all movies. * * @return string */ public function actionIndex() { $movies = Movie::find()->all(); return $this->render('index', ['movies' => $movies]); } /** * Creates a new movie. * * @return string|yiiwebResponse */ public function actionCreate() { $model = new Movie(); if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['index']); } return $this->render('create', [ 'model' => $model, ]); } /** * Updates an existing movie. * * @param integer $id * @return string|yiiwebResponse * @throws yiiwebNotFoundHttpException */ public function actionUpdate($id) { $model = $this->findModel($id); if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['index']); } return $this->render('update', [ 'model' => $model, ]); } /** * Deletes an existing movie. * * @param integer $id * @return yiiwebResponse * @throws yiiwebNotFoundHttpException */ public function actionDelete($id) { $this->findModel($id)->delete(); return $this->redirect(['index']); } /** * Finds the Movie model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * * @param integer $id * @return ppmodelsMovie * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = Movie::findOne($id)) !== null) { return $model; } throw new NotFoundHttpException('The requested page does not exist.'); } }
Parmi eux, la méthode actionIndex affichera la liste de tous les films, les méthodes actionCreate et actionUpdate seront utilisées pour créer et éditer des films, et le La méthode actionDelete supprimera le film.
Ensuite, nous devons créer le fichier de vue pour afficher la liste des films, ajouter un film et modifier les formulaires de film. Stockez les fichiers de vue dans le répertoire vues/movie.
<?php use yiihelpersHtml; use yiigridGridView; /* @var $this yiiwebView */ /* @var $movies appmodelsMovie[] */ $this->title = 'Movies'; $this->params['breadcrumbs'][] = $this->title; ?> <h1><?= Html::encode($this->title) ?></h1> <p> <?= Html::a('Create Movie', ['create'], ['class' => 'btn btn-success']) ?> </p> <?= GridView::widget([ 'dataProvider' => new yiidataArrayDataProvider([ 'allModels' => $movies, 'sort' => [ 'attributes' => [ 'title', 'director', 'year', 'genre', 'rating', ], ], ]), 'columns' => [ ['class' => 'yiigridSerialColumn'], 'title', 'director', 'actors:ntext', 'year', 'genre', 'rating', ['class' => 'yiigridActionColumn'], ], ]); ?>
<?php use yiihelpersHtml; use yiiwidgetsActiveForm; /* @var $this yiiwebView */ /* @var $model appmodelsMovie */ $this->title = 'Create Movie'; $this->params['breadcrumbs'][] = ['label' => 'Movies', 'url' => ['index']]; $this->params['breadcrumbs'][] = $this->title; ?> <h1><?= Html::encode($this->title) ?></h1> <div class="movie-form"> <?php $form = ActiveForm::begin(); ?> <?= $form->field($model, 'title')->textInput(['maxlength' => true]) ?> <?= $form->field($model, 'director')->textInput(['maxlength' => true]) ?> <?= $form->field($model, 'actors')->textarea(['rows' => 6]) ?> <?= $form->field($model, 'year')->textInput() ?> <?= $form->field($model, 'genre')->textInput(['maxlength' => true]) ?> <?= $form->field($model, 'rating')->textInput() ?> <div class="form-group"> <?= Html::submitButton('Save', ['class' => 'btn btn-success']) ?> </div> <?php ActiveForm::end(); ?> </div>
<?php use yiihelpersHtml; use yiiwidgetsActiveForm; /* @var $this yiiwebView */ /* @var $model appmodelsMovie */ $this->title = 'Update Movie: ' . $model->title; $this->params['breadcrumbs'][] = ['label' => 'Movies', 'url' => ['index']]; $this->params['breadcrumbs'][] = ['label' => $model->title, 'url' => ['view', 'id' => $model->id]]; $this->params['breadcrumbs'][] = 'Update'; ?> <h1><?= Html::encode($this->title) ?></h1> <div class="movie-form"> <?php $form = ActiveForm::begin(); ?> <?= $form->field($model, 'title')->textInput(['maxlength' => true]) ?> <?= $form->field($model, 'director')->textInput(['maxlength' => true]) ?> <?= $form->field($model, 'actors')->textarea(['rows' => 6]) ?> <?= $form->field($model, 'year')->textInput() ?> <?= $form->field($model, 'genre')->textInput(['maxlength' => true]) ?> <?= $form->field($model, 'rating')->textInput() ?> <div class="form-group"> <?= Html::submitButton('Save', ['class' => 'btn btn-primary']) ?> </div> <?php ActiveForm::end(); ?> </div>
Maintenant, nous avons j'ai fini de créer le site Web du film Yii framework et tout le code est en place. Pour exécuter un site Web de film localement, accédez au répertoire racine de l'application dans le terminal et exécutez la commande suivante :
php yii serve
Cela démarrera un serveur Web local et exécutera votre application sur le port 8000. Maintenant, vous pouvez ouvrir http://localhost:8000/ dans votre navigateur et voir le site Web de votre film.
Dans cet article, nous avons montré comment créer un site Web de film à l'aide du framework Yii. L'utilisation du framework Yii accélérera votre développement et fournira de nombreuses fonctionnalités utiles, telles qu'ActiveRecord, l'architecture MVC, la validation de formulaire, la sécurité, etc. Pour en savoir plus sur le framework Yii, consultez sa documentation.
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!