결혼식은 모든 사람의 인생에서 중요한 순간입니다. 대부분의 사람들에게 아름다운 결혼식은 매우 중요합니다. 결혼식을 계획할 때 부부는 결혼식의 규모와 화려함뿐만 아니라 결혼식의 세부 사항과 개인화 된 경험에도 더 많은 관심을 기울입니다. 이러한 문제를 해결하기 위해 많은 웨딩 기획사들이 자체 홈페이지를 구축, 개발하고 있습니다. 이 기사에서는 Yii 프레임워크를 사용하여 결혼 계획 웹사이트를 만드는 방법을 소개합니다.
Yii 프레임워크는 고성능 PHP 프레임워크로, 단순성과 사용 편의성으로 인해 개발자들에게 큰 사랑을 받고 있습니다. Yii 프레임워크를 사용하면 고품질 웹사이트를 보다 효율적으로 개발할 수 있습니다. 다음은 Yii 프레임워크를 사용하여 결혼 계획 웹사이트를 만드는 방법을 소개합니다.
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(Model)의 일부이며 데이터 처리를 담당합니다. User와 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']); } }
위 코드에서는 ActiveRecord 클래스를 상속하여 User와 Article이라는 두 가지 모델을 정의합니다. User 모델은 ID 인증을 위한 IdentityInterface 인터페이스를 구현합니다. Article 모델은 getUser() 메소드를 통해 사용자와 기사 간의 관계를 정의합니다.
4단계: 컨트롤러 및 뷰 만들기
Yii 프레임워크에서 컨트롤러는 MVC 아키텍처의 C(컨트롤러)의 일부이며 수신된 웹 요청을 처리하는 역할을 합니다. UserController와 ArticleController라는 두 개의 컨트롤러와 해당 뷰를 만들어야 합니다.
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.'); } }
위 코드에서는 Yii의 일부 내장 구성 요소와 작업을 사용합니다. , AccessControl, ActiveDataProvider, VerbFilter 등과 같은 기능을 사용하여 보다 효율적으로 개발할 수 있습니다.
5단계: 라우팅 및 데이터베이스 구성
Yii 프레임워크에서는 라우팅 구성 및 데이터베이스 연결 구성을 구성 파일에서 구성해야 합니다. 다음 두 파일을 편집해야 합니다.
/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 프레임워크를 사용하여 결혼 계획 웹사이트를 만드는 전체 과정을 완료했습니다. 이 글의 소개를 통해 이미 Yii 프레임워크의 기본 사용법과 간단한 결혼 계획 웹사이트를 만드는 방법을 이해하셨습니다. 보다 복잡하고 전문적인 웨딩 웹사이트를 만들고 싶다면 웹 애플리케이션을 보다 효율적으로 개발하기 위해 Yii 프레임워크를 더 배워야 합니다.
위 내용은 Yii 프레임워크를 사용하여 결혼 계획 웹사이트 만들기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!