Tải bản đầy đủ (.pdf) (14 trang)

Tài liệu cakephp tiếng việt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (511.53 KB, 14 trang )


TÌM HIỂU HỆ THỐNG UMX VŨ HUY TUẤN

FRAMWORK CAKEPHP 1.3.x

I. CẤU TRÚC THƯ MỤC

Thư mục
+ App: là nơi chứa mã nguồn của ứng dụng.
+ Cake: là lơi chứa mã nguồn của framework cakephp.
+ Pugins: Chứa các thành phần mở rộng cho ứng dụng.
+ Vendors: chứa dứng dụng của bên thứ 3.


+ Config: chứa các file cấu hình của hệ thống
+ Controllers: chứa các controller
+ Locale: chứa file ngôn ngữ
+ Model : chứa file model
+ Plugins : chứa các gói mở rộng
+ Tmp : thư mục tạm của ứng dụng
+ Vendors: chứa ứng dụng bên thứ 3
+ Views: chứa các file giao diện
+ Webroot: chứa các file, images, js, css…

II. MÔ HÌNH HOẠT ĐỘNG


TÌM HIỂU HỆ THỐNG UMX VŨ HUY TUẤN


CakePHP hoạt động theo mô hình MVC. Mô hình MVC trong Cakephp chia ứng dụng ra 3 phần chính:


Model, View và Controller, việc phân tách ứng dụng rõ ràng như vậy sẽ giúp bạn tách các phần xử lý
riêng biệt, code sáng sủa hơn, dễ lập trình, quản lý , chỉnh sửa, nâng cấp.

+ Model: giao tiếp với Database
+ View: nhận thông tin đã được xử lý gởi đến từ Controller, hiện thị cho người dùng.
+ Controller: xử lý và điều hướng các yêu cầu của Client

Cách thức hoạt động.

1. Đầu tiên client sử dụng web browser để gửi yêu cầu đến dụng, hoặc click vào đường link có dạng.

http://localhost/cakephp/product/detail/10
http://{Domain}/{application}/{controller}/{action}/{Parameter}

2. Bộ phận điều vận Dispatcher (Là 1 thành phần của CakePHP) sẽ phân thích URL, controller,
action,
3. Sử dụng Router, xác định controller nào sẽ thực thi và gởi yêu cầu tới controller tương ứng
4. Khi gởi đến Controller nó sẽ làm 1 và thao tác cần thiết, có thể sẽ xử lý ngay tại controller hoặc sự
dụng Model tương ứng để truy xuất dữ liệu.

Sau khi lấy được dữ liệu, Controler sẽ đưa dữ liệu ra View, và View sẽ được hiển thị ra ngoài trình
duyệt.


III. Quy tắc đặt tên trong CakePhp 1.3.x

Model

- Class: viết số ít, viết hoa chữ cái đầu mỗi từ.
Vd: class User extends AppModel { // function }

- File: viết hình thức số ít, chữ thường, và cách nhau bằng dấu gạch dưới.
Vd: user.php, user_framgia.php
- Table: viết dạng số nhiều
Vd: users.php, post_framgias.php

Controller

- Class: viết hình thức số nhiều, viết hoa chữ cái đầu tiên của mỗi từ, kết thúc bằng Controller
Vd: class UsersController extends AppController { //function }
- File: viết hình thức số nhiều, viết thường, mỗi từ cách nhau bằng dấu gạch chân, kết thúc bằng
controller
- Vd: users_controller.php, posts_controller.php


TÌM HIỂU HỆ THỐNG UMX VŨ HUY TUẤN
View

- Path: Mỗi file trong view được đặt trong thư mục tương ứng với một controller
Vd: app/view/users
- File: tên file trùng với tên hàm tương ứng trong controller. Vd: add.ctp, edit.ctp



IV. Truy vấn dữ liệu

1. Truy vấn dữ liệu tự động thông qua các hàm viết sẵn của CakePHP

Cú pháp: $this->Model->find($type,$params);
+ $type là phương thức truy vấn dữ liệu, có thể là : “all”, “first”, “count”, “list”, “neighbors” ,
“threaded”, giá trị mặc định là “first”

+ $this->User->find(‘all’); // select *from users
+ find(‘first’,’$param’) //trả về kết quả duy nhất
+ find(‘count’) //trả về tổng sô dòng được tìm thấy
+ find('threaded',$param) // trả về 1 mảng danh sách
+ find(‘neighbors’,’$param’) // trả về 1 kết quả đứng trước và đứng sau kết quả tìm được.
+ find('threaded',$param) // trả về kết quả là 1 mảng lồng nhau

+ $params là một mảng tập hợp các điều kiện lấy dữ liệu, gom cụm dữ liệu, sắp xếp hoặc thể hiện dữ
liệu
array(
'conditions' => array('Model.field' => $thisValue), // mảng các điều kiện tìm kiếm
'recursive' => 1, //là một giá trị số nguyên , có thể là -1, 0, 1 hoặc 2
'fields' => array('Model.field1', 'DISTINCT Model.field2'), //mảng các cột dữ liệu muốn lấy ra
'order' => array('Model.created', 'Model.field3 DESC'), //xắp xếp dữ liệu
'group' => array('Model.field'), //mệnh đề Group By
'limit' => n, //số nguyên
'page' => n, // số nguyên
'offset'=> n, // số nguyên
'callbacks' => true //các giá trị bao gồm true, false, 'before', 'after'
)



Truy vấn có điều kiện và biểu thức so sánh




TÌM HIỂU HỆ THỐNG UMX VŨ HUY TUẤN







Tham khảo thêm tại địa chỉ :



2. Truy vấn dữ liệu từ câu lệnh query
Cú pháp $this->Model->query('SQL query');

V. Form Helper trong CakePHP

Helpers là một tập hợp các thư viện hữu ích để dùng trong View. CakePHP đã xây dựng sẵn rất nhiều
helper như Form, Html, Ajax, Number, Session, Rss, Xml, Time… Những helper này thường xuyên
được sử dụng để tạo các form, định dạng lại các thành phần trong view, thay đổi các thành phần đó theo
ý muốn.

Khai báo Form helper như sau:
var $helpers = 'Form';
Khi sử dụng Form helper, trong view dùng cú pháp:
echo $this->Form->method(); // hoặc : echo $form->method();

Mở đầu form:

echo $this->Form->create($model,$option);

TÌM HIỂU HỆ THỐNG UMX VŨ HUY TUẤN


+ $model: là tên model đang sử dụng, mặc định là null
+ $option: là mảng các giá trị của create(), bao gồm 'type', 'action', 'url', 'default',
'inputDefaults'
type: là phương thức của form, có thể là get, post, hoặc file(dùng trong việc upload file). Mặc
định của type là post.

Vd: echo $this->Form->create('User', array('action' => 'login'));

Kết thúc form:

echo $this->Form->end('Submit')

Tham khảo thêm tại:



VI. Data Validation

Để sử dụng Datavalidation thì trong ứng dụng của chúng ta cần có hai thành phần chính :
var $helpers = array ('Html','Form');
Thành phần namespace validate : sử dụng các tập luật để validation dữ liệu
var $validate = array(tập_luật);
Vd:
class valid extends AppModel{
var $useTable = false;
var $validate = array();
// Valid 01 : one rule
function vidu_01(){
$this->validate = array(
"title" => array(

"rule" => "notEmpty",
"message" => "Please enter title !",),
"info" => array(
"rule" => "notEmpty", // tập luật là không rỗng
"message" => "Please enter info !", // thông báo khi có lỗi)
);
if($this->validates($this->validate))
// nếu dữ liệu đã được validate (hợp lệ)
return TRUE;
else
return FALSE;
}


TÌM HIỂU HỆ THỐNG UMX VŨ HUY TUẤN

Một số tập luật thông dụng :

'rule' => 'alphaNumeric' : chỉ có số hoặc chữ
'rule' => array('between', 5, 15) : giá trị nằm trong khoản từ 5-15
'rule' => array('comparison', '>=', 18) : giá trị phải lớn hơn 18
'rule' => array('email', true) : định dạng email
'rule' => array('extension', array('gif', 'jpeg', 'png', 'jpg')) : dành cho upload file , kiểm tra
extension
'rule' => array('minLength', 8) : độ dài nhỏ nhất là 8
'rule' => array('maxLength', 8) : độ dài tối đa là 8
'rule' => 'numeric' : dữ liệu nhập là số
'rule' => 'notEmpty' : dữ liệu không được bỏ trống
'rule' => 'url' : định dạng địa chỉ url


Regular expression
Để sử dụng Regular Expression thì cú pháp như sau :
'rule' => '/^nội_dung_regular_expression$/i';
Ví dụ :
+ 'rule' => '/^[a-z0-9]{4,10}$/i' //Dữ liệu chỉ là chữ thường và số, có từ 4-10 kí tự


VII. Session trong CakePHP
Để sử dụng được Session, đầu tiên ta phải khai báo:
var $helpers = array('Html', 'Form','Javascript','Ajax','Common',’Session’);
Hoặc
var $components = array('Acl',’Mail’,’Session’);
+ Cú pháp sử dụng
1) write($name,$value)
- Lưu Session có giá trị $value vào tên $name
- $name có thể sử dụng dấn (.) để tạo thành mảng session
Vd:
//Lưu theo cú pháp thông thường
$this->Session->write('Username','huytuan');

//Lưu dạng mảng
$this->Session->write('Person.name', 'admin');
$this->Session->write('Person.email', ');
2) read($name)
- Lấy giá trị session thông qua tên



TÌM HIỂU HỆ THỐNG UMX VŨ HUY TUẤN


Vd :
echo $this->Session->read('Username'); //kết quả huytuan


pr($this->Session->read('Person'));
//kết quả
Array
(
[name] => admin
[email] =>
)
3) check($name)
- Kiểm tra xem có tồn tại session có tên là $name hay không
Vd: $this->Session->check('Username'); // trả về TRUE, FALSE
4) delete($name)
- Xóa Session thông qua tên:
Vd :
//Xóa Session Username
$this->Session->delete('Username');
//Chỉ xóa Session email của Person
$this->Session->delete('Person.email');
//Xóa toàn bộ Session Person
$this->Session->delete('Person');


5) Destroy()
- Xóa toàn bộ Cookie và Session
$this->Session->destroy();
6) seFlash($message,$element=”default”,$params=array(),$key=”flash”)
- Thường sử dụng trong Controller

+ $mesages: nội dung hiển thị
+ $element: Load file chứa nội dung bao quanh $messages. Nội dung được lưu dạng file *.ctp trong
thư mục app/view/elements/
+ $param: dùng để thay đổi các thuộc tính như : class, id, style…
+ $key: mặc định là “flash”



TÌM HIỂU HỆ THỐNG UMX VŨ HUY TUẤN

Vd:
ta có file vidu.ctp (app/views/elements/vidu.ctp)
<div id="flashMessage" class="message_01"><?php echo $message ;?></div>
Thực hiện lệnh
$this->Session->setFlash('Hello World, 'vidu',array('class' =>'message_02'))
Thì nội dung file sms.ctp sẽ được load và hiển thị là :
<div id="flashMessage" class="message_02">Hello World</div>


SMARTY FRAMWORK

I. Giới thiệu
Smarty là một hệ thống tạo mẫu web (web template system) được viết trên nền PHP. Smarty được giới
thiệu như là một công cụ cho việc chia nhỏ quá trình thiết kế.
Một số ưu điểm:
+ Tốc độ load trang rất nhanh. (do tạo được cache)
+ Code ứng dụng trở lên trong sáng, mạch lạc và dễ bảo trì (do tách biệt phần code và templates)
+ Hiệu quả tối đa (Người thiết kế và người lập trình làm việc hoàn toàn độc lập, thay đổi website 1 cách nhanh
chóng)
+ Được sự dụng phổ biến.

Cấu trúc cơ bản của Smarty bao gồm các thành phần nằm trong thư mục libs. Khi sử dụng ta cần phải khai báo.
require ‘Smarty.class.php’; //gọi lớp Smarty
$smarty = new Smarty(); //Khởi tạo biến $smarty

II. Các cú pháp cơ bản của Smarty
1. Comment







TÌM HIỂU HỆ THỐNG UMX VŨ HUY TUẤN

Những đoạn cần comment được đặt trong tags: {* comment vào đây *}
Vd:








2. Variables:
Các biến được bắt đầu bởi dấu $. File biến config là 1 ngoại lệ đối với cú pháp thông thường
Vd:











3. Functions
{funcname attr1="val" attr2="val"}

TÌM HIỂU HỆ THỐNG UMX VŨ HUY TUẤN
Vd:







4. Capture
Được sử dụng để đưa đầu ra của template vào trong một file riêng biệt thay vì trình bày chúng.

Attributes
Type
Required
Default
Description
name
string

no
default
Tên của khối capture
assign
string
no
n/a
Tên biến nơi mà định nghĩa đầu ra
của capture

VD:









5. Config_load
Được sử dụng để load các biến từ file cấu hình vào trong template
Attributes
Type
Required
Default
Description
file
string
yes

n/a

section
string
no
n/a


TÌM HIỂU HỆ THỐNG UMX VŨ HUY TUẤN
scope
string
no
local

global
boolean
no
no


VD:












6. Foreach, foreachelse: (tạo vòng lặp)
Được sử dụng để duyệt qua các phần tử của mảng.
Attributes
Type
Required
Default
Description
from
array
yes
n/a

item
string
yes
n/a

key
string
no
n/a

name
string
no
no



TÌM HIỂU HỆ THỐNG UMX VŨ HUY TUẤN
VD:
















7. Include
Được sử dụng để nạp những template khác vào trong 1 template.

Attributes
Type
Required
Default
Description
file
string
yes
n/a


assign
string
no
n/a

[var ]
[var type]
no
n/a

VD:




8. Include_php

TÌM HIỂU HỆ THỐNG UMX VŨ HUY TUẤN
Được sử dụng để nạp một script php vào trong template.







VD:















9. If, elseif, else:
{if} trong smarty rất linh hoạt khi dùng trong template. {if} phải được kết thúc bởi 1 {/if}. {else} và
{elseif} được sử dụng trong tình huống cần duyệt nhiều trường hợp khác nhau.

Attributes
Type
Required
Default
Description
file
string
yes
n/a

once
boolean
no
n/a


assign
string
no
n/a

Qualifier
Alternates
Syntax Example
Meaning
PHP Equivalent
= =
eq
$a eq $b
equals
= =
! =
ne, neq
$a neq $b
not equals
! =
>
gt
$a gt $b
greater than
>
<
lt
$a lt $b
less than

<
>=
Gte, ge
$a ge $b
greater than or equal
>=
<=
lte, le
$a le $b
less than or equal
<=

TÌM HIỂU HỆ THỐNG UMX VŨ HUY TUẤN


VD:

= = =

$a = = = 0
check for identity
= = =
!
not
not $a
negation (unary)
!
%
mod
$a mod $b

modulous
%
is [not] div by

$a is not div by 4
divisible by
$a % $b == 0
is [not] even

$a is not even
[not] an even number (unary)
$a % 2 == 0
is [not] even by

$a is not even by $b
grouping level [not] even
($a / $b) % 2 == 0
is [not] odd

$a is not odd
[not] an odd number (unary)
$a % 2 != 0
is [not] odd by

$a is not odd by $b
[not] an odd grouping
($a / $b) % 2 != 0

×