ホームページ >PHPフレームワーク >YII >Yii フレームワークを使用して結婚式計画 Web サイトを作成する
結婚式は誰にとっても人生の重要な瞬間です。ほとんどの人にとって、美しい結婚式は非常に重要です。結婚式を計画するとき、カップルは結婚式の規模や豪華さに注意を払うだけでなく、結婚式の詳細や個人的な体験にもさらに注意を払います。この問題を解決するために、多くのウェディング プランニング会社が独自の Web サイトを開設し、開発しています。この記事では、Yii フレームワークを使用して結婚式の企画 Web サイトを作成する方法を紹介します。
Yii フレームワークは高パフォーマンスな PHP フレームワークであり、そのシンプルさと使いやすさが開発者に深く愛されています。 Yii フレームワークを使用すると、高品質な Web サイトをより効率的に開発できます。ここでは、Yii フレームワークを使用して結婚式の企画 Web サイトを作成する方法を紹介します。
ステップ 1: Yii フレームワークをインストールする
まず、Yii フレームワークをインストールする必要があります。これは、composer:
composer create-project --prefer-dist yiisoft/yii2-app-basic basic
を通じてインストールするか、Yii フレームワーク圧縮パッケージをダウンロードしてサーバー ディレクトリに抽出できます。解凍後、次のコマンドを実行して必要な依存関係をインストールします。
php composer.phar install
ステップ 2: データベースと対応するテーブルを作成する
前のステップで、Yii フレームワークが正常にインストールされました。次に、データベースと対応するテーブルを作成する必要があります。 MySQL Workbench などのツールを使用して直接作成できます。
wedding という名前のデータベースを作成し、次の構造のテーブルを作成します。
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;
このうち、user テーブルにはユーザー情報が格納され、article テーブルには記事情報が格納されます。
ステップ 3: モデルを作成する
Yii フレームワークでは、モデルは MVC アーキテクチャの M (モデル) の一部であり、データの処理を担当します。 User と Article の 2 つのモデルを作成する必要があります。
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']); } }
上記のコードでは、ActiveRecord クラスを継承することによって、User と Article の 2 つのモデルを定義します。 User モデルは ID 認証用の IdentityInterface インターフェイスを実装し、Article モデルは getUser() メソッドを通じてユーザーと記事の間の関係を定義します。
ステップ 4: コントローラーとビューを作成する
Yii フレームワークでは、コントローラーは MVC アーキテクチャの C (コントローラー) の一部であり、受信した Web リクエストの処理を担当します。 UserController と ArticleController の 2 つのコントローラーと、対応するビューを作成する必要があります。
UserController は、ユーザー登録、ログイン、その他の操作を処理するために使用されます:
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(); } }
ArticleController は、記事の編集、表示などの操作を処理するために使用されます:
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.'); } }
上記のコード内, より効率的な開発のために、AccessControl、ActiveDataProvider、VerbFilter などの Yii の一部の組み込みコンポーネントとオペレーションを使用します。
ステップ 5: ルーティングとデータベースを設定する
Yii フレームワークでは、ルーティング設定とデータベース接続設定を設定ファイルで設定する必要があります。次の 2 つのファイルを編集する必要があります。
/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, ];
上記のコードでは、データベース、URL ルーティング、およびその他の情報を設定して、プロジェクトがスムーズに走行できます。 Yii フレームワークがデータベースと対話できるように、データベース接続情報を /config/db.php ファイルで設定する必要があります。
最後に、ユーザーが登録に成功した後に確認メールを受信できるように、/config/params.php でメール送信情報を構成する必要もあります。
この時点で、Yii フレームワークを使用してウェディング プランニング Web サイトを作成するプロセス全体が完了しました。この記事の導入により、Yii フレームワークの基本的な使用法と、簡単な結婚式計画 Web サイトの作成方法をすでに理解できました。より複雑でプロフェッショナルな結婚式 Web サイトを作成したい場合は、Yii フレームワークをさらに学習して Web アプリケーションをより効率的に開発する必要があります。
以上がYii フレームワークを使用して結婚式計画 Web サイトを作成するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。