1. Trang chủ
  2. » Luận Văn - Báo Cáo

TÌM HIỂU VỀ Yii FRAMEWORK VÀ XÂY DỰNG ỨNG DỤNG MINH HỌA

90 6,1K 91
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm Hiểu Về Yii Framework Và Xây Dựng Ứng Dụng Minh Họa
Tác giả Phạm Thị Hoài Thương
Người hướng dẫn Th.S Đỗ Thanh Bình
Trường học Trường Đại Học Dân Lập Phương Đông
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2012
Thành phố Hà Nội
Định dạng
Số trang 90
Dung lượng 4,45 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trước đây Internet là một khái niệm khá xa lạ với mọi người. Internet dường như chỉ được sử dụng trong phạm vi nhỏ và chỉ dành cho những người có kiến thức về tin học.Nhưng ngày nay, người sử dụng Internet có thể là bất cứ ai, chỉ cần vài bước đơn giản là người dùng có thể sử dụng Internet một cách dễ dàng để thực hiện một số nhu cầu của mình như:xem phim, chơi game, đọc báo.. Có thể nói Internet là một một thư viện thông tin khổng lồ được cập nhật liên tục từng phút từng giây, và phát triển với tốc độ chóng mặt, nội dung của những thông tin đó sẽ được hiển thị trên những trang web. Với sự ra đời của Web 2.0 thì số lượng người sử dụng Internet lại càng tăng cao, và các ứng dụng của nó ngày càng phổ biến, điều đó được thể hiện trên những trang web với nhiều thể loại khác nhau như:web tin tức, web bán hàng, web giải trí.. Để có được những trang web như vậy thì phải cần đến những lập trình viên, họ là những người tạo nên những trang web với những ngôn ngữ lập trình khác nhau. Hiện nay có rất nhiều ngôn ngữ lập trình web như:ASP, ASP.NET, C#, VB, PHP, JAVA.. và phổ biến nhất hiện nay là ASP và PHP. Trong đó thì PHP được sử dụng rộng rãi vì đây là mã nguồn mở rất dễ sử dụng. Ngôn ngữ PHP có thêm những framework hỗ trợ người lập trình rất nhiều trong quá trình viết code. Đứng đầu trong nhóm framework đó thì Yii là giải pháp tốt nhất cho người lập trình vì các đặc tính nổi trội của nó, đây cũng là lý do em chọn đề tài tìm hiểu về Yii và xây dựng ứng dụng.

Trang 1

KHOA: CÔNG NGHỆ THÔNG TIN NGÀNH: QUẢN TRỊ MẠNG

*******

ĐỒ ÁN TỐT NGHIỆP

ĐỀ TÀI:

6 TÌM HIỂU VỀ Yii FRAMEWORK VÀ XÂY

DỰNG ỨNG DỤNG MINH HỌA

Hà Nội 2012

Trang 2

KHOA: CÔNG NGHỆ THÔNG TIN NGÀNH: QUẢN TRỊ MẠNG

Trang 3

MỤC LỤC:

LỜI NÓI ĐẦU: 1

BỐ CỤC CỦA ĐỒ ÁN 2

CHƯƠNG 1 :MỞ ĐẦU 3

1.1.SYMFONY 3

1.2.PRADO 3

1.3.CAKEPHP 4

1.4.ZEND 4

1.5.CODEIGNITER 5

1.6.GIỚI THIỆU YII VÀ FRAMEWORD 5

CHƯƠNG 2:GIỚI THIỆU VỀ YII FRAMEWORK 7

2.1.KHÁI QUÁT VỀ YII: 7

2.1.1 Lịch sử phát triển: 7

2.1.2 Các ưu điểm: 7

2.2.KIẾN TRÚC YII FRAMEWORK: 8

2.3.CẤU TRÚC THƯ MỤC YII: 10

2.4 APPLICATION: 12

2.5 MODEL-TRAO ĐỔI THÔNG TIN: 14

2.5.1 Tạo model: 14

2.5.2 Định nghĩa lớp model: 15

2.5.3 Đặt luật cho model: 15

2.5.4 Kết nối với bảng trong cơ sở dữ liệu 15

2.5.5 Ánh xạ các cột trong cơ sở dữ liệu thành các thuộc tính của model 16

2.5.6 Cách thức truy vấn từ bảng cơ sở dữ liệu trong model 18

2.6 CONTROLER-BỘ ĐIỂU KHIỂN: 19

2.7 VIEW-HIỆN DỮ LIỆU: 20

CHƯƠNG 3:CÁC KĨ THUẬT ÁP DỤNG ĐỂ XÂY DỰNG ỨNG DỤNG 24

4.1.KIẾN TRÚC MVC: 24

4.2.CÁC MỞ RÔNG(EXTENSIONS): 26

4.3.TẠO KHUNG ỨNG DỤNG: 29

CHƯƠNG 4:XÂY DỰNG ỨNG DỤNG BẰNG YII 31

4.1 KHẢO SÁT HIỆN TRẠNG VÀ ĐÁNH GIÁ KHẢ THI: 31

4.1.1 Khảo sát quy trình tác nghiệp: 31

4.1.2 Khảo sát yêu cầu của một số cửa hàng kinh doanh sản phẩm di động: 31

4.1.3 Khảo sát yêu cầu hệ thống: 32

4.1.4 Một số biểu mẫu thường dùng: 32

4.2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG VỀ CHỨC NĂNG: 35

4.2.1 Xác định tác nhân ngoài và hồ sơ dữ liệu: 35

Trang 4

4.2.2 Nhóm chức năng quản lý công việc: 36

4.2.3 Các biểu tượng, hình vẽ và ký hiệu sử dụng trong bài PTTKHT 37

4.2.4 Mô hình xác định phạm vi hệ thống: 37

4.3.THIẾT KẾ MÔ HÌNH CƠ SỞ DỮ LIỆU: 49

4.4.SƠ ĐỒ THỰC THỂ QUAN HỆ 54

4.5.MÔ TẢ ỨNG DỤNG MINH HỌA: 55

4.5.1 User: 55

4.5.2 Member : 68

4.5.3 Quản trị: 70

KẾT LUẬN 79

PHỤ LỤC 80

DANH MỤC TÀI LIỆU THAM KHẢO 85

LỜI CAM ĐOAN: 86

Trang 5

LỜI NÓI ĐẦU:

Trước đây Internet là một khái niệm khá xa lạ với mọi người Internetdường như chỉ được sử dụng trong phạm vi nhỏ và chỉ dành cho những người cókiến thức về tin học.Nhưng ngày nay, người sử dụng Internet có thể là bất cứ ai,chỉ cần vài bước đơn giản là người dùng có thể sử dụng Internet một cách dễdàng để thực hiện một số nhu cầu của mình như:xem phim, chơi game, đọc báo

Có thể nói Internet là một một thư viện thông tin khổng lồ được cập nhật liên tụctừng phút từng giây, và phát triển với tốc độ chóng mặt, nội dung của nhữngthông tin đó sẽ được hiển thị trên những trang web Với sự ra đời của Web 2.0thì số lượng người sử dụng Internet lại càng tăng cao, và các ứng dụng của nóngày càng phổ biến, điều đó được thể hiện trên những trang web với nhiều thểloại khác nhau như:web tin tức, web bán hàng, web giải trí

Để có được những trang web như vậy thì phải cần đến những lập trình viên,

họ là những người tạo nên những trang web với những ngôn ngữ lập trình khácnhau Hiện nay có rất nhiều ngôn ngữ lập trình web như:ASP, ASP.NET, C#,

VB, PHP, JAVA và phổ biến nhất hiện nay là ASP và PHP Trong đó thì PHPđược sử dụng rộng rãi vì đây là mã nguồn mở rất dễ sử dụng Ngôn ngữ PHP cóthêm những framework hỗ trợ người lập trình rất nhiều trong quá trình viết code.Đứng đầu trong nhóm framework đó thì Yii là giải pháp tốt nhất cho người lậptrình vì các đặc tính nổi trội của nó, đây cũng là lý do em chọn đề tài tìm hiểu vềYii và xây dựng ứng dụng

Hà Nội ngày tháng năm 2012

SVTH: Phạm Thị Hoài Thương

Mã số: 508100180

Trang 6

Chương 2: Các thành phần trong Yii framework:

Trình bài về Yii framework:khái quát, lịch sử, các ưu điểm chính.Giới thiệuchi tiết về cấu trúc của Yii, đặt biệt là về mô hình MVC

Chương 3:Các kĩ thuật áp dụng trong ứng dụng minh hoạ

Giới thiệu về những chức năng của Yii và việc áp dụng nó vào việc xâydựng ứng dụng minh hoạ như:các thành phần mở rộng(extension), ajax

Chương 4:Xây dựng ứng dụng bằng Yii

Giới thiệu về kết quả của ứng dụng đã được xây dựng bằng Yiiframework:website bán điện thoại di động

Trang 7

Chương 1 :

MỞ ĐẦU1.1 SYMFONY

Hinh 1-1:Symfony

Ban đầu Symfony do một cá nhân phát triển chỉ dành riêng cho công ty.Sau này được công bố và có phiên bản chính thức 1.1 và phiên bản 1.2 cho cáclập trình viên Được đánh giá thích hợp cho những dự án lớn Symfony đượcviết hoàn toàn bằng PHP5 theo mô hình MVC(Model-View-Controller), chứanhiều công cụ ứng dụng và lớp giúp phát triển nhanh một ứng dụng web Tươngthích với hầu hết các công cụ cơ sở dữ liệu có sẵn, bao gồm cả MySQL,PostgreSQL, Oracle, và Microsoft SQL Server Dễ dàng mở rộng và tích hợpcác thư viện của nhà cung cấp khác

web

Trang 8

1.3 CAKEPHP

Hình 1-3: CakePHP

Là một framework mã nguồn mở, miễn phí dành cho việc phát triển ứngdụng web bằng PHP mục đích của CakePHP là cung cấp một framework chongười sử dụng PHP phát triển những ứng dụng web nhanh, mạnh mà không mấttính linh hoạt của nó Được xây dựng theo mô hình MVC, hỗ trợ tạo kết nối cơ

sở dữ liệu một cách dễ dàng, sinh code tự động, cung cấp khả năng bắt lỗi, tíchhợp nhiều thư viện hỗ trợ ajax, HTML Có sẵn các công cụ xử lý Email,Security, Session, Cookies, Request Handling

Trang 9

để đảm bảo website được tổ chức theo cách tốt nhất, ngoài ra nó còn có cácthành phần khác như xác thực (authentication), tìm kiếm(searching),localization, PDF, email và web services Hỗ trợ đầy đủ các tính năng cần thiếtcho ứng dụng như kiểm tra lỗi (debug), bộ nhớ điệm(cache), bộ lọc(filter).

1.5 CODEIGNITER

Hình 1-5:CodeIgniter

CodeIgnniter là một nền tảng của ứng dụng web mã nguồn mở được viếtbằng ngôn ngữ PHP bởi Rick Elli Được thiết kế theo mô hình MVC, gói cài đặtnhỏ gọn, tốc độ nhanh:nhờ cơ chế lưu vào bộ nhớ đệm, miễn phí:cho phép ngườidùng thay đổi, phát triển và phân phối mã nguồn mở, hệ thống thư viện phongphú, cơ chế kiểm tra dữ liệu chặc chẽ

1.6 GIỚI THIỆU YII VÀ FRAMEWORD

Yii framework là một framework nổi bật hiện nay Được xây dựng theo môhình MVC, gói cài đặt nhanh chóng, hiệu suất nhanh, miễn phí, sử dụng dễdàng, dễ quản lý sửa code, hệ thống thư viện phong phú

Yii là một framework có rất nhiều tính năng rất nổi bậc:nhanh, gọn, hiệusuất làm việc cao

Trang 10

Hình 1- 6:Hiệu suất Yii

RPS (request per page) viết tắt của “yêu cầu mỗi giây” trong đó mô tả baonhiêu yêu cầu một ứng dụng được viết trong một khuôn khổ có thể xử lý mỗigiây

Trang 11

Chương 2:

GIỚI THIỆU VỀ YII FRAMEWORK2.1 KHÁI QUÁT VỀ Yii:

Yii là từ viết tắt của Yes, it is! hoặc cũng có thể là viết ngắn gọn 3 chữ cái

đầu của Easy (dễ dàng), Efficient (hiệu quả) và Extensible (khả năng mở rộng).Yii là một PHP framework mã nguồn mở và hoàn toàn miễn phí, có hiệu năngcao, giúp người lập trình phát triển tốt nhất các ứng dụng Web 2.0 Yii cho phéptái sử dụng tối đa các thành phần của ứng dụng để tăng tốc độ viết ứng dụng

Tiền thân của Yii chính là PRADO framework Tác giả của Yii là QiangXue, một người Trung Quốc Qiang Xue bắt đầu xây dựng Yii vào khoảng1/1/2008 Qiang Xue cũng chính là người đã từng phát triển và duy trì PRADO,tuy nhiên, nhận thấy PRADO có nhiều hạn chế và bản thân Qiang Xue muốnphát triển một framework mang những đặc điểm như dễ sử dụng, dễ tiếp cận,bảo mật cao và chuyên nghiệp hơn nên Qiang Xue đã sử dụng kinh nghiệm củamình trong thời gian phát triển PRADO để viết ra Yii Sau gần 1 năm phát triển,tới 8/12/2008, bản Yii đầu tiên đã được công bố và nhanh chóng được mọi

người đón nhận.

2.1.2. Các ưu điểm:

Ưu điểm của Yii là tính đơn giản trong cách viết kết hợp với thế mạnh PHP

và cơ chế mảng index (associative array) Yii cũng được viết bởi những ngườiviết "thực tế" hơn Zend nên có sẵn những công cụ "phù hợp" nhất cho ngườiviết ứng dụng

Yii là framework MVC nhưng có kiến trúc OOP rất tốt và lại hướng đốitượng nên mức độ tái sử dụng giữa các dự án rất cao Yii đặc biệt chạy nhanhhơn Zend và Symfony Yii rất nhẹ và được trang bị giải pháp bộ nhớ đệm tối ưunên nó đặc biệt hữu dụng cho ứng dụng web có dung lượng dữ liệu trên đường

truyền lớn như web portal, forum, CMS, e-commerce, v.v Nó là kết quả của

kinh nghiệm phát triển ứng dụng Web lâu năm của các tác giả và sự phân tích kỹlưỡng, tận dụng những điểm mạnh của các framework khác

Trang 12

2.2 KIẾN TRÚC Yii FRAMEWORK:

Yii được viết theo mô hình MVC, đây là mô hình thông dụng trong lậptrình web Mô hình MVC tách biệt phần xử lý dữ liệu ra khỏi phần giao diện,cho phép kiểm tra, quản lý và bảo trì một cách dễ dàng và độc lập:

Hình 2-1: Mô hình MVC

Bên cạnh đó Yii còn phát triển thêm một bộ điều khiển phía trước gọi làApplication Application thu thập một số yêu cầu của người dùng sau đó đưađến cho controller thích hợp để xử lý thêm

Hình 2-2: Cấu trúc tĩnh của Yii Application

Để hiểu rõ hơn về cách thức phối hợp của Yii ta có thể xem ví dụ dưới đây về các xử lý yêu cầu nhập vào từ người dùng

widget

index.php application

controller

app components s

app components s

View

Controller

Model

Trang 13

Hình 2-3: Quy trình làm việc của một ứng dụng Yii

Quá trình phối hợp của Yii được mô tả theo các bước sau:

- Bước1: người dùng tạo yêu cầu đối với url (ví dụ:với thanh địa chỉ:

web xử lý yêu cầu đó bằng cách thực hiện script bootstrap index.php

- Bước 2: script bootstrap tạo ra một Application và chạy nó

- Bước 3:Application có được chi tiết yêu cầu của người dùng từ

application component có tên là request

Controller

filters

action

4 5

urlManager

index php index php

Trang 14

- Bước 4: Application này xác định yêu cầu controller và action với sự

giúp đỡ của một application component có tên urlManager

- Bước 5: Application tạo ra một bộ điều khiển để tiếp tục xử lý yêu cầu

người dùng, bộ điều khiển nhận thấy action (show) có liên quan đếnphương thức(actionShow) trong controller Sau đó nó sẽ tạo ra các bộlọc để kết hợp với action này.Các action sẽ được thực hiện dưới sự chophép của các bộ lọc

- Bước 6: Action sẽ đọc Post model với ID=1 với dữ liệu từ database

- Bước 7: Action sẽ render một view có tên là show với Post model

- Bước 8:View sẽ đọc là trình bài các thuộc tính của Post model

- Bước 9: View sẽ thực hiện một số widgets

- Bước 10: Kết quả của view sẽ được nhúng vào layout

- Bước 11:Action hoàn thành các kết quà của view và hiện kết quả

nguời dùng

2.3 CẤU TRÚC THƯ MỤC Yii:

Hình 2-4: Cấu trúc Yii

Trang 15

Trong đó thư mục chính là 3 thư mục:models, controllers, views

index.php file script truy cập đến ứng dụng web

index-test.php file script truy cập đến các chức năng

kiểm định

protected chứa các file bảo vệ của ứng dụng

components chứa các components có thể sử dụng

lại

controller chứa các tập tin lớp điều khiển

view chứa các file điều khiển xem và bố trí

của ứng dụng

Unix/Linux

Bảng 2-5:Chức năng các thư mục và file trong cấu trúc Yii

2.4 APPLICATION:

Application có nhiệm là thu thập một số thông tin cơ bản về yêu cầu ngườidùng, và gửi nó đến một bộ controller thích hợp để xử lý Các đối tượng

Trang 16

application được khởi tạo như một singleton của entry script Các applicationsingleton có thể được gọi bất cứ nơi nào nhờ Yii::app().

Application Base Directory:

Application base directory là thư mục gốc,chứa tất cả các PHP script bảo

mật và dữ liệu Nội dung của nó cần được bảo vệ chống lại sự truy cập Web Với máy chủ Apache HTTP, điều này có thể được thực hiện dễ dàng bằng cách

đặt một tập tin htaccess trong thư mục gốc Nội dung của tập tin này như sau:deny from all

Application Components có chức năng giúp người lập trình sử dụng và mở

rộng các application một cách dễ dàng Bằng cách cấu hình các thành phần của

các ví dụ application, chúng ta có thể tùy chỉnh các giá trị lớp của bất kỳ thànhphần ứng dụng được sử dụng Ví dụ, chúng ta có thể cấu hình thành phần

CMemCache để nó có thể sử dụng nhiều máy chủ cho bộ nhớ đệm

Core Application Components là một tập hợp các thành phần ứng dụng cốtlõi để cung cấp các tính năng phổ biến trong các ứng dụng Web Bằng cách cấu

array('host'=>'server1', 'port'=>11211, 'weight'=>60),

array('host'=>'server2', 'port'=>11211, 'weight'=>40),

),

), ), )

Trang 17

hình các thuộc tính của các thành phần cốt lõi, chúng ta có thể thay đổi hành vimặc định gần như mọi khía cạnh của Yii Dưới đây là danh sách các thành phầnứng dụng

TÊN CÁC THÀNH PHẦN ỨNG

assetManager: CAssetManager quản lý việc xuất bản các tập tin

riêng

authManager: CAuthManager quản lý kiểm soát truy cập

cache: CCache cung cấp dữ liệu bộ nhớ đệm

clientScript: CClientScript quản lý lệnh của người dùng

(JavaScript và CSS)

coreMessages: CPhpMessageSource cung cấp thông điệp cốt lõi dịch được

sử dụng bởi các khuôn khổ Yii

db: CDbConnection Cung cấp các kết nối cơ sở dữ

liệu.Lưu ý, phải cấu hình connectionString để sử dụng thành phần này

errorHandler: CErrorHandler xử lý lỗi

format: CFormatter định dạng dữ liệu giá trị cho mục đích

hiển thịmessages: CPhpMessageSource cung cấp thông dịch được sử dụng

bởi ứng dụng Yiirequest: CHttpRequest cung cấp thông tin liên quan đến yêu

cầu người dùngsecurityManager: CSecurityManage

cụcurlManager: CUrlManager cung cấp các phân tích cú pháp URL

và chức năng sáng tạouser: CWebUser mang thông tin liên quan đến danh

Trang 18

tính người dùng hiện hànhthemeManager: CThemeManager quản lý chủ đề

Bảng 2-6:Bảng các thành phần ứng dụng trong Yii

Model là lớp được xây dựng nhằm trao đổi thông tin với cơ sở dữ liệu Mộtlớp model có thể thực hiện việc kết nối, thêm, xoá, sửa dữ liệu Theo lời khuyêncủa các lập trình viên ta nên tuân theo một số nguyên tắc sau:

 Không nên sử dụng $_GET, $_POST hoặc các biến tương tự được gắnliền với yêu cầu người dùng

 Tránh nhúng đoạn mã HTML vào model

 Tên lớp được viết hoa chữ cái đầu tiên, các chữ còn lại viết thường, ví dụnhư:Products,Ticket

 Tên tập tin được đặt tên trùng với tên lớp và được đặt vào thư mụcprotected/models

 Bắt buộc thừa kế từ lớp model Trong hàm tạo lớp con phải gọi đến hàmlớp cha

2.5.1 Tạo model:

Để xây dựng một lớp model, phải quyết định loại dữ liệu từ người dùngyêu cầu và những luật lệ mà những dữ liệu này phải tuân theo Một model, nhưđịnh nghĩa, là nơi trung tâm để xác nhận yêu cầu

Tùy thuộc vào cách ta sử dụng các đầu vào của người sử dụng, ta có thể tạo

ra hai loại mô hình Nếu yêu cầu của người dùng nhập vào được sử dụng và sau

đó bỏ đi, ta sẽ tạo ra một form_model, nếu yêu cầu của người dùng nhập vào

được lưu vào cơ sở dữ liệu, ta sẽ sử dụng một active record thay thế

Dưới đây là lớp Products dùng để xử lý phần sản phẩm:

Trang 19

class Products extends CActiveRecord{

public static function model($className = CLASS ) {

return parent::model ( $className );

}

Khi đã định nghĩa xong lớp model ta sẽ đặt luật cho model

Để đặt luật cho model ta dùng hàm

// Đặt luật cho model

Một khi người dùng gửi các yêu cầu của mình ta cần đảm bảo chúng phải

hợp lệ trước khi sử dụng Ta xác định luật trong phương thức rules (), tuỳ

thuộc vào yêu cầu mà ta xác lập trong hàm rules() sẽ trả về điều kiện theo ta đặt ra:

2.5.4 Kết nối với bảng trong cơ sở dữ liệu

Lớp model có chức năng kết nối với các bảng trong cơ sở dữ liệu Để thể hiện mối liên kết đó ta dùng

Trang 20

Hàm này có chức năng ánh xạ các cột trong bảng của cơ sở dữ liệu thành các thuộc tính của model, để model có thể truy xuất và sử dụng.Ví dụ sử dụng bảng products sau đây:

TÊN CỘT TRONG BẢNG

PRODUCTS

TÊN CÁC THUỘC TÍNH TRONG MODEL

Trang 21

Hinh 2-9: Bước tạo lớp products

Đầu tiên ta chọn mục Model Generator, sau đó điền tên bảng (trùng tênbảng trong cơ sở dữ liệu), tiếp tục ta nhấn nút Generate, thì chức năng này sẽ tựphát sinh ra code tạo ra file Products trong thư mục model chứa lớp Products.Lớp này cũng tương tự như ta viết code tay nhưng hàm rules() lại trả về mảng,phần tử của mảng là các thuộc tính trong bảng

Trang 22

public function rules()

// Please remove those attributes that should not be searched.

array('id, name, cat_id, img, quantity, warranty, description, price, is_hot, create_user, create_date, Click, promotion_id, GPRS, Bluetooth, BG, Camung', 'safe', 'on'=>'search'),

);

}

Tương tự đối với hàm attributeLabels() cũng vậy

2.5.6 Cách thức truy vấn từ bảng cơ sở dữ liệu trong model

Nhờ vào model mà ta có thể truy vấn đến dữ liệu trong cơ sở dữ liệu Bằngviệc định nghĩa thêm các hàm ta có thể thực hiện các chức năng chỉnh sửa, truyxuất hay xoá các dữ liệu trong bảng cơ sở dữ liệu

-Hàm chỉnh sửa updateRowById() : hàm này có chức năng chỉnh

sửa thông tin theo tham số truyền vào

-Hàm thêm mới insertRow(): có chức năng thêm mới trong cơ sở

dữ liệu.

Trang 23

-Hàm xoá deleteRowById($id) : hàm này có chức năng xoá trong bảng cơ sở dữ liệu theo điều kiện id phù hợp.

-Hàm lấy toàn bộ dữ liệu getAllRows(): chức năng của hàm là truy xuất toàn bộ dữ liệu từ một bảng trong cơ sở dữ liệu

Như vậy nhiệm vụ của model là liên kết với cơ sở dữ liệu, và để sử dụngnhững kết quả mà lớp model thực hiện thì ta phải cần đến bộ điềukhiển(controller) Tại đây những hàm trong model sẽ được gọi lại và xử lý theoyêu cầu người dùng

Controller là những lớp đóng vai trò trung gian giữa view và model

Controller nhận các yêu cầu từ phía người dùng, kiểm tra chúng trước khichuyển qua cho model Sau khi model xử lý yêu cầu và trả về cho controller,controller sẽ chuyển sang view để hiện thị dữ liệu cho người dùng

Một lớp controller trong Yii có dạng:

class ProductsController extends Controller

{

/* Các hàm xu ly */

}

Khai báo hàm cotroller ta cần tuân theo một số nguyên tắc

- Tên lớp được viết hoa chữ cái đầu tiên, các chữ còn lại viết thường, ví

- Cotroller thể hiện của lớp CController hoặc của một lớp mở rộng từ

CController Khi một controller chạy nó thực hiện các hành động đượcyêu cầu thường là mang từ model và sau đó render đến view Một hànhđộng, thực chất là một lớp điều khiển có tên bắt đầu bằng action

Trang 24

Các thành phần chính của controller

Route

Route là thành phần quan trọng trong controller, nó giúp controller địnhtuyến một địa chỉ khi người dùng gửi yêu cầu đến hệ thống.Ví dụ khi ngườidùng nhập điạ chỉ http://hostname/index.php?r=post/edit/, thì địa chỉ này sẽđược bộ điều hướng của Yii xử lý và gọi đến action được yêu cầu trongcontroller Trong đó

- post: là tên controller

- edit:là tên action trong controller

Action:

Phương thức làm việc trong controller là làm nhiệm vụ tiếp nhận và xử lýyêu cầu Sau khi nhận kết quả từ model trả về, controller sẽ gọi đến view để hiệnthị kết quả cho người dùng

Một action thường được định nghĩa như một phương pháp có tên bắt đầubằng action Thông thường trong controller ta sẽ khai báo thêm các hàm action

để thực hiện các yêu cầu người dùng Cũng giống như model ta có thể dùng Gii

để tạo controller, nhưng kết quả trong controller chỉ tạo ra actionIndex

Đây là hành động sẽ điều khiển đến trang index.php

Trang 25

chỉ là một phần của trang web (header, footer, ) Nội dung của view ngoài mãHTML còn có mã PHP View không bao giờ được gọi trực tiếp mà phải thông

qua controller Ví dụ ta có một actionView($id) trong lớp NickchatController

như sau:

Thì trong view ta sẽ có nội dung :

Nội dung của view bao gồm mã html(thẻ <div>, <b>, <br>) và mã php

Trong đó thì Yii dùng hàm echo CHtml::encode($data->getAttributeLabe(‘’));

để lấy ánh xạ các tên cột trong bảng nickchat thành các thuộc tính trong model,

ví dụ như ‘mota’=>‘Mota’.Và hàm CHtml::link() để tạo link liên kết

Trang 26

Bên cạnh đó trong view của Yii còn hỗ trợ về form

Một số khái niệm liên quan đến view:

Nó là một view đặc biệt được dùng để trang trí cho view Layout thườngchứa một phần của giao diện người dùng được phổ biến một vài lần.Ví dụ mộtlayout có thể chứa phần header và footer, nhúng thêm phần nội dung hiển thịcủa view:

Layout được sử dụng khi ta gọi hàm render(), theo mặc định file main.php trong thư mục protected/views/layouts được sử dụng làm layout trong view.Ta

có thể tuỳ chỉnh bằng cách thay đổi

CWebApplication::layout,CController::layout Nếu view mà không cần một layout nào ta dùng hàm renderPartial ()

Widget:

Widget có thể được định nghĩa là một lớp con, có thể sử dụng lại nhằm tạođiều kiện tốt hơn trong mã giao diện người dùng

Được thể hiện bởi CWidget hoặc lớp con của CWidget Đó là một thành

phần chủ yếu cho các mục đích presentational Để dùng lại widget ta dùng

<?php $this->widget('ProductNew')?>

Đặc biệt những lớp gọi bằng widget phải được viết trong thư mụccomponents, ví dụ:protected/components/ProductNew.php Trong đó fileProductNew chứa lớp ProductNew kế thừa từ CPortlet

……… header here………

<?php echo $content ?>

……… footer here ………

Trang 27

Lớp này sẽ thực hiện một số yêu cầu xử lý và truyền vào view chứa trongthư mục components/view có nội dụng như sau:

echo "<li style='width:33.33%'>";

echo "<a href='".$url->createUrl("products/productdetail") "?id="

echo "</li>";

}

?>

Trang 28

class Category extends CPortlet

{

protected function renderContent(){

$model = new CategoryProduct();

$data = $model->getAllRows();

$this->render("list",array("data"=>$data));

}

}

Đầu tiên ta khai báo biến $model cho kế thừa từ lớp CategoryProduct Sau

đó ta chỉ việc gọi đến hàm getAllRows() trong lớp CategoryProduct, thì hàm

này sẽ xử lý yêu cầu lấy ra tất cả các nhà sản xuất, và hiện ra giao diện chongười dùng trong file list.php có nội dung như sau

Trang 30

Đặt biệt Yii hỗ trợ ajax rất nhiều, có thể kết hợp ajax và jquery rất dễ dàng

Hàm login() xử lý chức năng đăng nhập, hàm này sẽ chuyển yêu cầu tới

actionAjaxLogin trong controller

Đây là phần mở rộng trong Yii với nhiều phần rất hữu ích Được cung cấp

tại web site chính:http://www.yiiframework.com/extensions/

Hình 3-1: Extensions của Yii

Ví dụ trong phần xây dựng ứng dụng, em đã dùng phần PHPMailer_v5.1.Yêu cầu để xử dụng được phần extension này thì sau khi download góiPHPMailer_v5.1, ta phải giải nén và đưa và thư mục protected/extension, và để

sử dụng được ta sẽ gọi lại hàm cần thiết trong Controller

Trang 31

$mail->IsSMTP(); // set mailer to use SMTP

$mail->Host = "smtp.gmail.com";

$mail->Port = 465; // set the port to use

$mail->SMTPAuth = true; // turn on SMTP authentication

$mail->SMTPSecure = 'ssl';

$mail->Username = "thuongpham@gmail.com";

$mail->Password = "pass";

$from = "thuongpham@gmail.com"; // Reply to this email

$to=($remail); // Recipients email ID

$name=($reusename); // Recipient's name

$mail->From = $from;

$mail->FromName = "thuongphammobile.org";

Trang 32

Đây là action được khai báo trong controller để thực hiện yêu cầu gửi mail.

Để sử dụng action này đầu tiên ta sẽ dùng câu lệnh:

$mail->Body = ($description); //HTML Body

$mail->AltBody = "Bạn Nhận Được Thư 'Lấy Lại Mật Khẩu' - http://dhphuongdong.com"; //Text Body

//$mail->SMTPDebug = 2;

if(!$mail->Send()) {

echo "<h1>Loi khi goi mail: " $mail->ErrorInfo ; }

else {

echo "<h1>Send mail thanh cong</h1>";

Trang 33

Lệnh này sẽ import extensions cho ta sử dụng.Với ứng dụng của extensionsnày ta có thể mượn địa chỉ gmail để gửi mail, đây là một tiện ích rất hay của Yii

Công cụ yiic giúp ta tạo ra ứng dụng một cách nhanh chóng

C:\xampp\htdocs\Yii\framework>yiic webapp C:\xampp\htdocs\vidu

Ví dụ ta tạo một ứng dụng tên là vidu được lưu trong thư mục C:\xampp\

htdocs Sau đây là kết quả của câu lệnh trên, ta sẽ được một ứng dụng như sau:

Hình 3-2:Ứng dụng ví dụ

Và thư mục vidu có cấu trúc như thế này:

Hình 3-3: Cấu trúc của ứng dụng vidu

Trang 34

Kết quả của việc tạo bộ khung ứng dụng ta có:

Trang 35

Chương 4:

XÂY DỰNG ỨNG DỤNG BẰNG YII4.1 KHẢO SÁT HIỆN TRẠNG VÀ ĐÁNH GIÁ KHẢ THI:

4.1.1 Khảo sát quy trình tác nghiệp:

Đối tượng khảo sát: một số website kinh doanh điện thoại qua mạng như :

 Phần 2 dành cho người quản trị hệ thống để quản lý sản phẩm,khách hàng,quản lý sản phẩm,thống kê sản phẩm,tiếp nhận ý kiến khách hàng…

4.1.2 Khảo sát yêu cầu của một số cửa hàng kinh doanh sản phẩm di động:

Sau khi tiến hành một số cuộc điều tra tại các cửa hàng điện thoại di động trên địa bàn Hà Nội em đã rút ra được các nội dung cơ bản sau:

KẾT QUẢ PHỎNG VẤN

1.Chủ cửa

hàng

Nhiệm vụ bán hàng

-Quản lý danh mục các sản phẩm,thông tin về sản phẩm,tin tức,thông tinkhuyến mại của cửa hàng, thông tinkhách hàng trên website

-Tiếp nhận và xử lý,xuất hóa đơn giaotới khách

Trang 36

-Cập nhật và thêm mới -Giải đáp các thắc mắc, hỗ trợ trả lờitrực tuyến.

4.1.3 Khảo sát yêu cầu hệ thống:

a) Lưu trữ:

 Thông tin về sản phẩm kinh doanh

 Thông tin về nhà cung cấp

Trang 37

Số điện thoại người nhận:………

Phương thức thanh toán:………

Người mua hàng

(ký,ghi rõ họ tên)

……… ………

Người giao hàng (Ký,ghi rõ họ tên)

……… ………

Chủ cửa hàng (Ký,ghi rõ họ tên)

……… ………

Yêu cầu:………

Trang 38

Người giao hàng (Ký, họ tên)

Trang 39

4.2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG VỀ CHỨC NĂNG:

4.2.1 Xác định tác nhân ngoài và hồ sơ dữ liệu:

LIỆU

Sơ đồ ngữ cảnh của hệ thống:

Cửa hàng cần nắm được thông tin và tài khoản của khách hàng để làm hóađơn theo những thông tin này.Sau khi đặt hàng,khách hàng sẽ nhận sản phẩm và hóa đơn từ cửa hàng chuyển tới.Thông qua hệ thống khách hàng tìm kiếm sản phẩm hay tin tức

4.2.2 Nhóm chức năng quản lý công việc:

Hệ thống website bán điện thoại di

Trang 40

CÁC CHỨC NĂNG GỘP CÁC CHỨC

NĂNG

GỘP CÁC CHỨC NĂNG

1.1 Xem thông tin thành viên

1.2 Kích hoạt tài khoản Quản lý thành viên

Quản trị hệ thống admin

1.2 Quản lý loại tin

1.3 Quản lý tin khuyến mại

Ngày đăng: 25/07/2013, 09:30

HÌNH ẢNH LIÊN QUAN

Hình 1-4:  Zend - TÌM HIỂU VỀ Yii FRAMEWORK  VÀ XÂY DỰNG ỨNG DỤNG MINH HỌA
Hình 1 4: Zend (Trang 8)
Hình 1- 6:Hiệu suất Yii - TÌM HIỂU VỀ Yii FRAMEWORK  VÀ XÂY DỰNG ỨNG DỤNG MINH HỌA
Hình 1 6:Hiệu suất Yii (Trang 10)
Hình 2-2: Cấu trúc tĩnh của Yii Application - TÌM HIỂU VỀ Yii FRAMEWORK  VÀ XÂY DỰNG ỨNG DỤNG MINH HỌA
Hình 2 2: Cấu trúc tĩnh của Yii Application (Trang 12)
Hình 2-3:  Quy trình làm việc của một ứng dụng Yii - TÌM HIỂU VỀ Yii FRAMEWORK  VÀ XÂY DỰNG ỨNG DỤNG MINH HỌA
Hình 2 3: Quy trình làm việc của một ứng dụng Yii (Trang 13)
Sơ đồ luồng dữ liệu mức dưới đỉnh “Quản lý thành viên” - TÌM HIỂU VỀ Yii FRAMEWORK  VÀ XÂY DỰNG ỨNG DỤNG MINH HỌA
Sơ đồ lu ồng dữ liệu mức dưới đỉnh “Quản lý thành viên” (Trang 48)
Sơ đồ luồng dữ liệu mức dưới đỉnh “Quản lý đơn hàng” - TÌM HIỂU VỀ Yii FRAMEWORK  VÀ XÂY DỰNG ỨNG DỤNG MINH HỌA
Sơ đồ lu ồng dữ liệu mức dưới đỉnh “Quản lý đơn hàng” (Trang 49)
Sơ đồ luồng dữ liệu mức dưới đỉnh “Ý kiến phản hồi” - TÌM HIỂU VỀ Yii FRAMEWORK  VÀ XÂY DỰNG ỨNG DỤNG MINH HỌA
Sơ đồ lu ồng dữ liệu mức dưới đỉnh “Ý kiến phản hồi” (Trang 50)
Sơ đồ luồng dữ liệu mức dưới đỉnh “khách vãng lai”: - TÌM HIỂU VỀ Yii FRAMEWORK  VÀ XÂY DỰNG ỨNG DỤNG MINH HỌA
Sơ đồ lu ồng dữ liệu mức dưới đỉnh “khách vãng lai”: (Trang 52)
Bảng : khuyến mại - TÌM HIỂU VỀ Yii FRAMEWORK  VÀ XÂY DỰNG ỨNG DỤNG MINH HỌA
ng khuyến mại (Trang 54)
Bảng : đơn hàng - TÌM HIỂU VỀ Yii FRAMEWORK  VÀ XÂY DỰNG ỨNG DỤNG MINH HỌA
ng đơn hàng (Trang 56)
Bảng : Nickchat - TÌM HIỂU VỀ Yii FRAMEWORK  VÀ XÂY DỰNG ỨNG DỤNG MINH HỌA
ng Nickchat (Trang 57)
Sơ đồ thực thể quan hệ - TÌM HIỂU VỀ Yii FRAMEWORK  VÀ XÂY DỰNG ỨNG DỤNG MINH HỌA
Sơ đồ th ực thể quan hệ (Trang 58)
Hình 4-1:Giao diện web - TÌM HIỂU VỀ Yii FRAMEWORK  VÀ XÂY DỰNG ỨNG DỤNG MINH HỌA
Hình 4 1:Giao diện web (Trang 59)
Hình 4-3:Trang xem Sản phẩm - TÌM HIỂU VỀ Yii FRAMEWORK  VÀ XÂY DỰNG ỨNG DỤNG MINH HỌA
Hình 4 3:Trang xem Sản phẩm (Trang 61)
Hình 4-4:Tooltip - TÌM HIỂU VỀ Yii FRAMEWORK  VÀ XÂY DỰNG ỨNG DỤNG MINH HỌA
Hình 4 4:Tooltip (Trang 62)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w