สร้างโปรเจ็ค Yii2 พร้อมระบบ Authentication
Yii2 คือ php framework ที่ได้รับความนิยมติดอันดับต้นๆ เท่าที่เคยสัมผัสมาก็ถือว่าใช้ดีมากเลยทีเดียว อยากได้อะไรก็ config เพิ่มเติมนิดๆหน่อยๆ ก็พร้อมใช้งานแล้ว plugin component ก็มีตัวแจ่มๆให้ใช้เพียบ ใครอยากรู้อยากลองมาเริ่มต้นสร้างโปรเจ็คกันเลยครับ
ขั้นตอนที่ 1 : ติดตั้ง Composer
Composer คือเครื่องมือที่รวบรวม package ต่างๆที่ใช้สำหรับพัฒนาโปรแกรม โหลดได้ที่ลิงค์นี้เลยครับ https://getcomposer.org/download/
ขั้นตอนที่ 2 : รัน Command สร้างโปรเจ็ค
เปิด Command Prompt แล้วไปที่ root folder ที่ต้องการสร้างโปรเจ็ค(ตัวอย่าง : “C:\xampp\htdocs”)
รันคำสั่งนี้ (เปลี่ยน demoyii เป็นชื่อโปรเจ็คที่ต้องการ)
composer create-project --prefer-dist yiisoft/yii2-app-basic demoyii
จะได้โครงสร้างโปรเจ็คหน้าตาแบบนี้
เปิดบราวเซอร์เข้าไปที่ “http://localhost/demoyii/web/” ถ้าสำเร็จจะได้ผลลัพธ์ดังรูป
ขั้นตอนที่ 3 : ติดตั้งระบบ Authentication
3.1 ที่ Command Prompt รันคำสั่งนี้เพื่อติดตั้ง User Module
composer require "amnah/yii2-user"
3.2 ไปที่ไฟล์ config/db.php เพื่อตั้งค่า database
1 2 3 4 5 6 7 8 9 |
<?php return [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=localhost;dbname=demoyii', 'username' => 'root', 'password' => '', 'charset' => 'utf8', ]; |
3.3 รันคำสั่งนี้เพื่อ migrate database
php yii migrate --migrationPath=@vendor/amnah/yii2-user/migrations
3.4 ไปที่ไฟล์ config/web.php เพื่อตั้งค่า User Module
– ใน components => user ตั้งค่าดังนี้
1 2 3 |
'user' => [ 'class' => 'amnah\yii2\user\components\User', ], |
– เพิ่ม modules ต่อจาก components ดังนี้
1 2 3 4 5 6 7 |
'modules' => [ 'user' => [ 'class' => 'amnah\yii2\user\Module', 'loginRedirect' => '@web/index.php?r=site/home', 'logoutRedirect' => '@web/index.php?r=user/login' ], ], |
3.5 สร้างไฟล์ home.php ไว้ที่ views/site/ เพื่อให้เป็นหน้า home หลัง login (จากการตั้งค่า loginRedirect ในข้อ 3.4)
1 2 3 4 5 6 |
<?php $this->title = 'Home'; ?> <h1>Login Success</h1> Welcome <?=Yii::$app->user->identity->profile->full_name;?> |
3.6 ไปที่ไฟล์ controllers/SiteController.php สร้างฟังก์ชันชื่อ actionHome ดังนี้
1 2 3 |
public function actionHome(){ return $this->render('home'); } |
3.7 ไปที่ไฟล์ views/layouts/main.php แก้ไข Login url ให้เป็นดังนี้
1 |
['label' => 'Login', 'url' => ['/user/login']] |
3.8 เปิดบราวเซอร์เข้าไปที่ “http://localhost/demoyii/web/” แล้วกดปุ่ม Login จะเห็นหน้าจอ login ที่มีระบบ Register ดังรูป
ขั้นตอนที่ 4 : ทดสอบ Login
ทดสอบด้วย default user โดยระบุ Username คือ neo และ Password คือ neo จะได้ผลลัพธ์ดังรูป เป็นอันเสร็จเรียบร้อย!