44
Yii Framework 2 Basic Training | Manop Kongoon Yii Framework 2 Basic Training MANOP KONGOON

Yii framework 2 basic training

Embed Size (px)

Citation preview

Yii Framework 2 Basic Training | Manop Kongoon

Yii Framework 2 Basic TrainingMANOP KONGOON

Yii Framework 2 Basic Training | Manop Kongoon

บทที่ 1 บทน ำ

2

Yii Framework 2 Basic Training | Manop Kongoon

ภำพรวมหลักสูตร (Course Overview)

•OOP Concept•MVC Pattern•Yii2 Convention•Routing & Request•M-V-C•Access Control

•Small Workshop•News•Gallery

3

Yii Framework 2 Basic Training | Manop Kongoon

ควำมช ำนำญท่ีแนะน ำ (Recommend Skill)

•PHP and MySQL•HTML and CSS•Bootstrap 3•JavaScript•MVC Concept•OOP Concept

4

Yii Framework 2 Basic Training | Manop Kongoon

บทที่ 2 เคร่ืองมือและกำรติดตัง้

5

Yii Framework 2 Basic Training | Manop Kongoon

เตรียมเครื่องมือ

•Web Server (WAMP - http://www.wampserver.com)•Composer http://getcomposer.org•GitHub Account http://github.com• IDE (NetbeansIDE - http://netbeans.org)

6

Yii Framework 2 Basic Training | Manop Kongoon

Web Server

•Web Server•PHP•MySQL

7

Yii Framework 2 Basic Training | Manop Kongoon

Composer

•ตัวจัดกำร Library auto update• ใช้ Folder vendor ส ำหรับเก็บ Library•ค้นหำ Library ได้ท่ี packagist.org•สำมำรถเช่ือมกับ Github และ Bitbucket•Library จะสำมำรถใช้งำนได้กับ Framework ต่ำงๆ•getcomposer.org

8

Yii Framework 2 Basic Training | Manop Kongoon

GitHub Account

•กำรติดตัง้ผ่ำน Composer•Github.com

9

Yii Framework 2 Basic Training | Manop Kongoon

NetBeansIDE

•ท ำไมต้อง NetbeansIDE?•ฟร!ี•มี Auto Complete•มี Auto Debug•มีระบบกำรจัด Format code•netbeans.org

10

Yii Framework 2 Basic Training | Manop Kongoon

บทที่ 3 เริม่ต้นกับ Yii Framework 2

11

Yii Framework 2 Basic Training | Manop Kongoon

รู้จักกับ Yii2

•ก ำเนิด Yii Framework และ Yii Framework 2 หรือ Yii2

12

Yii Framework 2 Basic Training | Manop Kongoon

MVC Concept

13

Yii Framework 2 Basic Training | Manop Kongoon

เทคโนโลยีท่ีเกี่ยวข้อง

•PSR-4 http://www.php-fig.org/psr/psr-4

14

Yii Framework 2 Basic Training | Manop Kongoon

Application Request

15

Yii Framework 2 Basic Training | Manop Kongoon

บทที่ 4 กำรติดตัง้ Yii2

16

Yii Framework 2 Basic Training | Manop Kongoon

ติดตัง้ด้วย Composer

•Set path php.exe ท่ี System variable•composer global require “fxp/composer-asset-plugin:1.0.0”•composer create-project yiisoft/yii2-app-basic your-app-name

17

Yii Framework 2 Basic Training | Manop Kongoon

ติดตัง้ด้วย Archive File

•http://www.yiiframework.com/download/•แตก Archive File• เปล่ียนค่ำใน config/web ส่วน CookieValidation

18

Yii Framework 2 Basic Training | Manop Kongoon

โครงสร้ำง Yii2

19

Yii Framework 2 Basic Training | Manop Kongoon

บทที่ 5 ธรรมเนียม Yii2

20

Yii Framework 2 Basic Training | Manop Kongoon

Model

•namespace app\models;•กำรตัง้ช่ือต่อกันด้วยตัวใหญ่ เช่นHelloWorld•สืบทอด (extends) มำจำก Model หรือ ActiveRecord•Property เป็นตัวแทนของข้อมูล

21

Yii Framework 2 Basic Training | Manop Kongoon

Model

•Model มี 2 แบบ•แบบไม่ใช้ตำรำงในฐำนข้อมูล ส่วนใหญ่ใช้ในกำรสร้ำง Form• extends Model

•แบบใช้ตำรำงในฐำนข้อมูล• extends ActiveRecord

22

Yii Framework 2 Basic Training | Manop Kongoon

View

• ช่ือ Folder เก็บ View ให้สอดคล้องกับช่ือ Controller เช่น HelloWorldController จะได้ Folder View ช่ือ hello-world• ช่ือ action ใน Controller ควรสร้ำง View ช่ือเดียวกัน หำกมีกำรต่อค ำ hello-world.php

23

Yii Framework 2 Basic Training | Manop Kongoon

View

•ประกอบไปด้วย Helper (ตัวช่วย) และ Widget (ตัวแสดงผล)ต่ำงๆ ในกำรแสดงผลข้อมูล•Html Helper•GridView, ListView และ DetailView

24

Yii Framework 2 Basic Training | Manop Kongoon

Controller

•namespace app\controllers;•กำรตัง้ช่ือต่อกันด้วยตัวใหญ่ แล้วตำมด้วย Controller เช่นHelloWorldController•สืบทอด (extends) มำจำก Controller•Method ท่ีเรียกจำก Route ขึน้ต้นด้วย action ตำมด้วยช่ือ เช่น actionHelloWorld()

25

Yii Framework 2 Basic Training | Manop Kongoon

Controller

•ตัวกลำงในกำรส่งค่ำตัวแปรระหว่ำง Model กับ View•ศูนย์รวม Logic ของโปรแกรม

26

Yii Framework 2 Basic Training | Manop Kongoon

บทที่ 6 สวัสดีชำวโลก

27

Yii Framework 2 Basic Training | Manop Kongoon

Hello World Controller

•สร้ำง HelloWorldController.php•สร้ำง actionSay()•สร้ำง view hello-world/say.php

•กำรส่งค่ำให้ view•กำรรับค่ำแบบ Get ผ่ำนController

28

Yii Framework 2 Basic Training | Manop Kongoon

กำรสร้ำง MVC แบบไม่ผูกตำรำง

29

Yii Framework 2 Basic Training | Manop Kongoon

กำรสร้ำง MVC แบบผูกตำรำง

30

Yii Framework 2 Basic Training | Manop Kongoon

บทที่ 7 กำรท ำงำนกับฐำนข้อมูล

31

Yii Framework 2 Basic Training | Manop Kongoon

Create Command

•$posts = $db->createCommand(“SELECT * FROM post”)->queryAll();

32

Yii Framework 2 Basic Training | Manop Kongoon

Query Builder

•$rows = (new \yii\db\Query())->select([‘id’, ‘username’, ‘email’])->from(‘user’)->where([‘firstname’=>’John’])->limit(4)->all();•https://github.com/yiisoft/yii2/blob/master/docs/guide/db-query-builder.md

33

Yii Framework 2 Basic Training | Manop Kongoon

Active Record

•$posts = Post::find();

34

Yii Framework 2 Basic Training | Manop Kongoon

Gii Generator

35

Yii Framework 2 Basic Training | Manop Kongoon

Model Generator

36

Yii Framework 2 Basic Training | Manop Kongoon

Controller Generator

37

Yii Framework 2 Basic Training | Manop Kongoon

CRUD Generator

38

Yii Framework 2 Basic Training | Manop Kongoon

Module Generator

39

Yii Framework 2 Basic Training | Manop Kongoon

Module Model Generator

40

Yii Framework 2 Basic Training | Manop Kongoon

Module CRUD

41

Yii Framework 2 Basic Training | Manop Kongoon

กำรสร้ำงระบบ User

•แบ่งสิทธิ์กำรเขำ้ถึง•ROLE_ADMIN = 10•ROLE_MANAGER = 5•ROLE_USER = 1

•แบ่งตำรำง user และ profile• ใช้ migrate ในกำรสร้ำงตำรำง user และ profile

42

Yii Framework 2 Basic Training | Manop Kongoon

WORKSHOPNews and Gallery

43

Yii Framework 2 Basic Training | Manop Kongoon

News and Gallery

•Create New Yii2 Project•Create IDE Project•Create and Connect Database•Migration•Model Generator•CRUD Generator

•User System•Backend Module

44