Maison > cadre php > YII > le corps du texte

Créer un site Web de planification de mariage à l'aide du framework Yii

WBOY
Libérer: 2023-06-21 08:48:21
original
1492 Les gens l'ont consulté

Le mariage est un moment important dans la vie de chacun. Pour la plupart des gens, un beau mariage est très important. Lors de la planification d'un mariage, le couple prête non seulement attention à la taille et à la splendeur du mariage, mais accorde également plus d'attention aux détails et à l'expérience personnalisée du mariage. Pour résoudre ce problème, de nombreuses sociétés d’organisation de mariages ont été créées et ont développé leurs propres sites Web. Cet article explique comment utiliser le framework Yii pour créer un site Web de planification de mariage.

Le framework Yii est un framework PHP hautes performances. Sa simplicité et sa facilité d'utilisation sont profondément appréciées des développeurs. Grâce au framework Yii, nous pouvons développer plus efficacement un site Web de haute qualité. Ce qui suit explique comment utiliser le framework Yii pour créer un site Web de planification de mariage.

Étape 1 : Installer le framework Yii
Tout d'abord, nous devons installer le framework Yii. Vous pouvez l'installer via composer :

composer create-project --prefer-dist yiisoft/yii2-app-basic basic
Copier après la connexion

ou télécharger le package compressé du framework Yii et le décompresser dans le répertoire du serveur. Après décompression, exécutez la commande suivante pour installer les dépendances requises :

php composer.phar install
Copier après la connexion

Étape 2 : Créer la base de données et les tables correspondantes
Dans l'étape précédente, nous avons installé avec succès le framework Yii. Ensuite, vous devez créer la base de données et les tables correspondantes. Il peut être créé directement via des outils tels que MySQL Workbench.

Créez une base de données nommée wedding, puis créez une table avec la structure suivante :

CREATE TABLE IF NOT EXISTS `user` (
    `id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    `username` VARCHAR(255) NOT NULL,
    `password_hash` VARCHAR(255) NOT NULL,
    `email` VARCHAR(255) NOT NULL,
    `auth_key` VARCHAR(255) NOT NULL,
    `status` SMALLINT NOT NULL DEFAULT 10,
    `created_at` INT NOT NULL,
    `updated_at` INT NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `article` (
    `id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    `title` VARCHAR(255) NOT NULL,
    `content` TEXT NOT NULL,
    `status` SMALLINT NOT NULL DEFAULT 10,
    `created_at` INT NOT NULL,
    `updated_at` INT NOT NULL,
    `user_id` INT UNSIGNED NOT NULL,
    CONSTRAINT `fk_article_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Copier après la connexion

Parmi eux, la table user stocke les informations sur l'utilisateur et la table article stocke les informations sur l'article .

Étape 3 : Créer le modèle
Dans le framework Yii, le modèle fait partie du M (Modèle) dans l'architecture MVC et est responsable du traitement des données. Nous devons créer deux modèles, User et Article :

class User extends ActiveRecord implements IdentityInterface
{
    public static function findIdentity($id)
    {
        return static::findOne($id);
    }

    public static function findIdentityByAccessToken($token, $type = null)
    {
        throw new NotSupportedException('"findIdentityByAccessToken" is not implemented.');
    }

    public function getId()
    {
        return $this->getPrimaryKey();
    }

    public function getAuthKey()
    {
        return $this->auth_key;
    }

    public function validateAuthKey($authKey)
    {
        return $this->getAuthKey() === $authKey;
    }

    public static function findByUsername($username)
    {
        return static::findOne(['username' => $username, 'status' => self::STATUS_ACTIVE]);
    }

    public function validatePassword($password)
    {
        return Yii::$app->security->validatePassword($password, $this->password_hash);
    }
}

class Article extends ActiveRecord
{
    public function getUser()
    {
        return $this->hasOne(User::className(), ['id' => 'user_id']);
    }
}
Copier après la connexion

Dans le code ci-dessus, nous définissons deux modèles, User et Article, en héritant de la classe ActiveRecord. Le modèle User implémente l'interface IdentityInterface pour l'authentification de l'identité ; le modèle Article définit la relation entre les utilisateurs et les articles via la méthode getUser().

Étape 4 : Créer des contrôleurs et des vues
Dans le framework Yii, le contrôleur fait partie du C (Contrôleur) dans l'architecture MVC et est responsable du traitement des requêtes Web reçues. Nous devons créer deux contrôleurs : UserController et ArticleController, ainsi que les vues correspondantes.

UserController est utilisé pour gérer l'enregistrement des utilisateurs, la connexion et d'autres opérations :

class UserController extends Controller
{
    public function actionSignup()
    {
        $model = new SignupForm();

        if ($model->load(Yii::$app->request->post()) && $model->signup()) {
            Yii::$app->session->setFlash('success', 'Thank you for registration. Please check your inbox for verification email.');
            return $this->goHome();
        }

        return $this->render('signup', [
            'model' => $model,
        ]);
    }

    public function actionLogin()
    {
        $model = new LoginForm();

        if ($model->load(Yii::$app->request->post()) && $model->login()) {
            return $this->goBack();
        }

        return $this->render('login', [
            'model' => $model,
        ]);
    }

    public function actionLogout()
    {
        Yii::$app->user->logout();

        return $this->goHome();
    }
}
Copier après la connexion

ArticleController est utilisé pour gérer l'édition, l'affichage et d'autres opérations des articles :

class ArticleController extends Controller
{
    public function behaviors()
    {
        return [
            'access' => [
                'class' => AccessControl::className(),
                'only' => ['create', 'update'],
                'rules' => [
                    [
                        'actions' => ['create', 'update'],
                        'allow' => true,
                        'roles' => ['@'],
                    ],
                ],
            ],
            'verbs' => [
                'class' => VerbFilter::className(),
                'actions' => [
                    'delete' => ['POST'],
                ],
            ],
        ];
    }

    public function actionIndex()
    {
        $dataProvider = new ActiveDataProvider([
            'query' => Article::find(),
        ]);

        return $this->render('index', [
            'dataProvider' => $dataProvider,
        ]);
    }

    public function actionView($id)
    {
        return $this->render('view', [
            'model' => $this->findModel($id),
        ]);
    }

    public function actionCreate()
    {
        $model = new Article();

        if ($model->load(Yii::$app->request->post()) && $model->save()) {
            return $this->redirect(['view', 'id' => $model->id]);
        }

        return $this->render('create', [
            'model' => $model,
        ]);
    }

    public function actionUpdate($id)
    {
        $model = $this->findModel($id);

        if ($model->load(Yii::$app->request->post()) && $model->save()) {
            return $this->redirect(['view', 'id' => $model->id]);
        }

        return $this->render('update', [
            'model' => $model,
        ]);
    }

    public function actionDelete($id)
    {
        $this->findModel($id)->delete();

        return $this->redirect(['index']);
    }

    protected function findModel($id)
    {
        if (($model = Article::findOne($id)) !== null) {
            return $model;
        }

        throw new NotFoundHttpException('The requested page does not exist.');
    }
}
Copier après la connexion
#🎜 🎜# ci-dessus Dans le code, nous utilisons certains des composants et opérations intégrés de Yii, tels que AccessControl, ActiveDataProvider, VerbFilter, etc., pour développer plus efficacement.

Étape 5 : Configurer le routage et la base de données

Dans le framework Yii, la configuration du routage et la configuration de la connexion à la base de données doivent être configurées dans le fichier de configuration. Nous devons modifier les deux fichiers suivants :

/config/web.php :

return [
    'id' => 'basic',
    'basePath' => dirname(__DIR__),
    'bootstrap' => ['log'],
    'components' => [
        'request' => [
            'csrfParam' => '_csrf',
        ],
        'user' => [
            'identityClass' => 'appmodelsUser',
            'enableAutoLogin' => true,
        ],
        'session' => [
            // this is the name of the session cookie used for login on the frontend
            'name' => 'wedding_session',
        ],
        'log' => [
            'traceLevel' => YII_DEBUG ? 3 : 0,
            'targets' => [
                [
                    'class' => 'yiilogFileTarget',
                    'levels' => ['error', 'warning'],
                ],
            ],
        ],
        'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
                '' => 'article/index',
                '<controller>/<action>' => '<controller>/<action>',
                '<controller>/<action>/<id:d+>' => '<controller>/<action>',
            ],
        ],
        'db' => require __DIR__ . '/db.php',
    ],
    'params' => $params,
];
Copier après la connexion
Dans le code ci-dessus, vous devez configurer la base de données, le routage des URL et d'autres informations. afin que le projet puisse se dérouler sans problème. Les informations de connexion à la base de données doivent être configurées dans le fichier /config/db.php afin que le framework Yii puisse interagir avec la base de données.

Enfin, nous devons également configurer les informations d'envoi d'e-mails dans /config/params.php afin que les utilisateurs puissent recevoir des e-mails de vérification après une inscription réussie.

À ce stade, nous avons terminé tout le processus de création d'un site Web de planification de mariage à l'aide du framework Yii. Grâce à l'introduction de cet article, vous avez déjà compris l'utilisation de base du framework Yii et comment créer un site Web simple de planification de mariage. Si vous souhaitez créer un site Web de mariage plus complexe et professionnel, vous devez apprendre davantage le framework Yii pour développer des applications Web plus efficacement.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal