결혼식은 모든 사람의 인생에서 중요한 순간입니다. 대부분의 사람들에게 아름다운 결혼식은 매우 중요합니다. 결혼식을 계획할 때 부부는 결혼식의 규모와 화려함뿐만 아니라 결혼식의 세부 사항과 개인화 된 경험에도 더 많은 관심을 기울입니다. 이러한 문제를 해결하기 위해 많은 웨딩 기획사들이 자체 홈페이지를 구축, 개발하고 있습니다. 이 기사에서는 Yii 프레임워크를 사용하여 결혼 계획 웹사이트를 만드는 방법을 소개합니다.
Yii 프레임워크는 고성능 PHP 프레임워크로, 단순성과 사용 편의성으로 인해 개발자들에게 큰 사랑을 받고 있습니다. Yii 프레임워크를 사용하면 고품질 웹사이트를 보다 효율적으로 개발할 수 있습니다. 다음은 Yii 프레임워크를 사용하여 결혼 계획 웹사이트를 만드는 방법을 소개합니다.
1단계: Yii 프레임워크 설치
먼저 Yii 프레임워크를 설치해야 합니다. Composer:
1 | composer create-project --prefer-dist yiisoft/yii2-app-basic basic
|
로그인 후 복사
를 통해 설치하거나 Yii 프레임워크 압축 패키지를 다운로드하여 서버 디렉토리에 추출할 수 있습니다. 압축을 푼 후 다음 명령을 실행하여 필요한 종속성을 설치합니다.
1 | php composer.phar install
|
로그인 후 복사
2단계: 데이터베이스 및 해당 테이블 생성
이전 단계에서는 Yii 프레임워크를 성공적으로 설치했습니다. 다음으로 데이터베이스와 해당 테이블을 생성해야 합니다. MySQL Workbench와 같은 도구를 통해 직접 생성할 수 있습니다.
wedding이라는 데이터베이스를 생성한 후, 다음과 같은 구조의 테이블을 생성합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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이라는 두 가지 모델을 만들어야 합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | 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는 사용자 등록, 로그인 및 기타 작업을 처리하는 데 사용됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | 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는 기사 편집, 표시 및 기타 작업을 처리하는 데 사용됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | 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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | return [
'id' => 'basic' ,
'basePath' => dirname(__DIR__),
'bootstrap' => [ 'log' ],
'components' => [
'request' => [
'csrfParam' => '_csrf' ,
],
'user' => [
'identityClass' => 'appmodelsUser' ,
'enableAutoLogin' => true,
],
'session' => [
'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 중국어 웹사이트의 기타 관련 기사를 참조하세요!