1. Trang chủ
  2. » Công Nghệ Thông Tin

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

14 2,7K 5
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 Hệ Thống UMX Framework CakePHP 1.3.x
Tác giả Vũ Huy Tuấn
Trường học University of Science and Technology (Học viện Khoa học Kỹ Thuật)
Chuyên ngành Computer Science
Thể loại Tài liệu hướng dẫn
Định dạng
Số trang 14
Dung lượng 511,53 KB

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

Nội dung

CakePHP là một Framework mã nguồn mở, miễn phí dành cho việc phát triển các ứng dụng web bằng ngôn ngữ PHP, mục đích của CakePHP là cung cấp một framework cho người sử dụng php phát triển những ứng dụng web nhanh, mạnh mà không mất tính linh hoạt của nó. CakePHP là một nền tảng phát triển ứng dụng nhanh, cấu trúc của nó được tạo ra để lập trình viên tạo các ứng dụng web. Nó tạo ra một nền tảng có cấu trúc, cho phép bạn làm việc trên cấu trúc đó một cách nhanh chóng mà không mất đi sự uyển chuyển. Ngoài ra, CakePHP loại bỏ sự nhàm chán trong phát triển ứng dụng web: cung cấp các công cụ để viết thứ ta cần, thay vì phải làm đi làm lại một thứ. Khi bắt đầu tạo mới dự án (project), chỉ cần tạo một bản copy của CakePHP và tập trung vào việc chính của dự án. CakePHP có một đội ngũ phát triển và cộng đồng năng động, điều này mang lại giá trị to lớn cho các dự án. Ngoài việc giúp bạn khỏi phải làm đi làm lại một việc nào đó, sử dụng CakePHP đồng nghĩa với phần cốt lõi của ứng dụng của bạn đã được kiểm chứng và cải tiến không ngừng.

Trang 1

FRAMWORK CAKEPHP 1.3.x

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…

Trang 2

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

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

Trang 3

- 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

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

Trang 4

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

http://book.cakephp.org/1.3/en/The-Manual/Developing-with-CakePHP/Models.html

2 Truy vấn dữ liệu từ câu lệnh query

Cú pháp $this->Model->query('SQL query');

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);

Trang 5

+ $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:

http://book.cakephp.org/1.3/en/The-Manual/Core-Helpers/Form.html

Để 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;

}

Trang 6

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ự

Để 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', 'vu.huy.tuan@framgia.com);

2) read ($name)

- Lấy giá trị session thông qua tên

Trang 7

Vd :

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

pr($this->Session->read('Person'));

//kết quả

Array

(

[name] => admin

[email] => vu.huy.tuan@framgia.com

)

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”

Trang 8

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

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

1 Comment

Trang 9

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"}

Trang 10

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

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

Trang 11

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

Trang 12

7 Include

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

VD:

8 Include_php

Trang 13

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

Qualifier Alternates Syntax Example Meaning PHP Equivalent

Trang 14

VD:

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

Ngày đăng: 24/07/2014, 14:30

TỪ KHÓA LIÊN QUAN

w