E learning lab - Tim hieu Cake PHP
-
Upload
elearninglabvn -
Category
Education
-
view
1.255 -
download
3
description
Transcript of E learning lab - Tim hieu Cake PHP
E-Learning Lab
Thí sinh dự thi
“Dạy Online – Share khoảnh khắc”
Link:
http://home.e-learninglab.co/su-kien/
TÌM HIỂU FRAMEWORK CAKEPHP
NỘI DUNG TRÌNH BÀY
GIỚI THIỆU CAKEPHP1
1
MÔ HÌNH MVC TRONG CAKEPHP FRAMEWORK2
1. GIỚI THIỆU CAKEPHP
2
CakePHP là một Framework phát triển ứng dụngweb mã nguồn mở. Mục tiêu chính là cho phépbạn làm việc một cách nhanh chóng và có cấutrúc mà không làm mất tính linh hoạt.
CakePHP được cấp phép theo giấy phép MIT. Cónghĩa là bạn được tự do sửa đổi, phân phối vàphát hành lại mã nguồn với điều kiện là bảnquyền còn nguyên vẹn. Bạn cũng được miễn phíđể kết hợp CakePHP vào bất kỳ ứng dụngthương mại hoặc ứng dụng mã nguồn đóng.
1. GIỚI THIỆU CAKEPHP
3
Đặc điểm nổi bật:
- Mã nguồn mở, miễn phí
- Xây dựng theo mô hình MVC
- Xây dựng nhiều thư viện hỗ trợ cho View như: Ajax, HTML Form, Javascrip….
- Xây dựng nhiều thư viện hỗ trợ cho Controller: Email, Session, Cookies…
- Kiểm tra rang buộc dữ liệu.
1.GIỚI THIỆU CAKEPHP
THỨ HẠNG CỦA CAKEPHP
Số Thứ Tự Hot PHP Framework Ranking PHP Framework
1 Yii Yii
2 CodeIgniter PHPOpenbiz
3 CakePHP CodeIgniter
4 Zend CakePHP
5 Symfony Symfony
6 PHPDevShell PHPDevShell
7 Prado Prado
8 Akelos Akelos
9 ZooP Zend
10 QPHP eZ Components
4
1.GIỚI THIỆU CAKEPHP
Một số website ứng dụng framework CakePHP
Website Teamspeak.net
5
1.GIỚI THIỆU CAKEPHP
Một số website ứng dụng framework CakePHP
Website followmy.tv
6
2. MVC TRONG CAKEPHP
7
(1): Yêu cầu của người dung được gửiđến Controller (2): Controller sẽ xử lý yêu cầu(thêm, cập nhật….) và gọi tới Model để truycập dữ liệu.(3): Model sẽ thực hiện yêu cầu củaController bằng cách lấy cập nhật hoặclưu trữ dữ liệu và trả lời cho Controller.(4): Sau đó Controller sẽ trả dữ liệuđầu ra đến View.(5): View sẽ thể hiện kết quả của yêucầu người dùng ra với một định dạngxác định.
Sơ đồ hoạt động của mô hình MVC
2. MVC TRONG CAKEPHP
8
2.1 View
View là những dữ liệu đầu ra hay gọi là dữ liệu trả về chongười dùng khi một yêu cầu được thực thi. Nó cơ bảnchứa những đoạn mã HTML nhúng với các đoạn mã PHP.View được xem giống như tầng đại diện cho bộ mặt củaứng dụng. Không thể gọi View một cách trực tiếp mà phảithông qua Controller.
Một số thư viện hỗ trợ cho view như: FormHelper,HTMLHelper…
2. MVC TRONG CAKEPHP
9
2.1.1 FormHelper
- Tạo Form:<?php echo $this->Form->create('Nhacungcap', array(‘inputDefaults’ => array(‘div’ =>false))); ?>
Trong đó:• inputDefaults: thiết lập giá trị mặc định cho các input
của Form như bỏ đi lable hay div trong Form.• type: phương thức của Form, có thể là get, post,
file(dùng trong file Upload).... Mặc định của type làpost.
• action: sử dụng để xử lý dữ liệu, action trong Cakephpđược viết thành function nằm trong Controller.
- Kết thúc Form: <?php echo $this->Form->end();?>
2. MVC TRONG CAKEPHP
10
2.1.1 FormHelper
- Ngoài ra còn sử dụng một số input phổ biến:• textbox:
Cách 1: <?php echo $this->Form->textbox(‘vidu’); ?>
Cách 2: <?php echo $this->Form->input(‘vidu’, array(‘type’ => ‘text’, ‘name’ => ‘vidu’));?>
• textarea:Cách 1: <?php echo $this->Form->textarea(‘textarea’)?>
Cách 2: <?php echo $this->Form->input(‘textarea’,
array(‘type’ => ‘textarea’, ‘name’ => ‘textarea’)); ?>
• password:Cách 1: <?php echo $this->Form->password(); ?>
Cách 2: <?php echo $this->Form->input(‘password’,
array(‘type’ => ‘password’, ‘name’ => ‘password’));?>
2. MVC TRONG CAKEPHP
11
2.1.2 HTMLHelper
Vai trò của HtmlHelper trong CakePHP là thực hiện nhữngtùy chọn liên quan đến HTML nhanh hơn, dễ dàng hơn vàdễ thay đổi.
Sau đây là một số phương thức của HtmlHelper và cách sửdụng: • HtmlHelper::charset()• HtmlHelper::css()• HtmlHelper::docType()• HtmlHelper::image()• HtmlHelper::link ()• HtmlHelper::script()
2. MVC TRONG CAKEPHP
12
2.1.2.1 HtmlHelper::charset($charset==null)
Sử dụng để tạo thẻ meta, mặc định là UTF-8.
Cú pháp:
<?php echo $this->Html->charset(); ?>
Kết quả:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
2. MVC TRONG CAKEPHP
13
2.1.2.2 HtmlHelper::css($path, array options=array())
Trong đó:• $path: đường dẫn• $options(array): mảng các tùy chọn
Cú pháp:<?php echo $this->Html->css(array('reponsive', 'menu')); ?>
<?php echo $this->Html->charset(); ?>
Kết quả:<link rel="stylesheet" type="text/css" href="/css/main.css" /><link rel="stylesheet" type="text/css" href="/css/reponsive.css" /><link rel="stylesheet" type="text/css" href="/css/menu.css" />
2. MVC TRONG CAKEPHP
14
2.1.2.3 HtmlHelper::doctype(string $type=‘xhtml-stric’)
$type: loại doctype được sử dụng Các loại doctype:
Loại Mô tả
html4-strict HTML4 Strict
html4-trans HTML4 Transitional
html4-frame HTML4 Frameset
html5 HTML5
xhtml-strict XHTML1 Strict
xhtml-trans XHTML1
Transitional
xhtml-frame XHTML1 Frameset
xhtml11 XHTML1.1
Ví dụ:<?php echo $this->Html-> docType(); ?>
<?php echo $this->Html->docType(‘html5’); ?>
<?php echo $this->Html->docType(‘html4-trans’); ?>
2. MVC TRONG CAKEPHP
15
2.1.2.4 HtmlHelper::image(string $path, array options=array())
Tạo ra một thẻ định dạng hình ảnh. Trong đó:• $path: đường dẫn đến hình ảnh• $options(array): mảng các tùy chọn
Ví dụ:<?php echo $this->Html->image('cake_logo.png'); ?>
Kết quả:<img src="/img/cake_logo.png"/>
2. MVC TRONG CAKEPHP
16
2.1.2.5 HtmlHelper::link($title, $url=null, array options=array(),
$confirmMessage=false)
Trong đó:• $path: Tên liên kết• $options(array): mảng các tùy chọn của HTML• $url: đường dẫn
Ví dụ:<?php echo $this->Html->link('Delete',array('controller' => 'recipes',
'action' => 'delete', 6),array(),"Bạn chắc muốn xóa?"); ?>
Kết quả:<a href="/recipes/delete/6" onclick="return confirm('Bạn chắc muốn
xóa?');">Delete</a>
2. MVC TRONG CAKEPHP
17
2.1.2.6 HtmlHelper::script($url=null, array options=array())
Trong đó:• $url: đường dẫn đến một file javascript hay nhiều file
javascript• Options: mảng các tùy chọn HTML
Ví dụ:<?php echo $this->Html->script(‘scripts’); ?>
Kết quả:<script type="text/javascript" href="/js/scripts.js"></script>
2. MVC TRONG CAKEPHP
17
2.1.3 SessionHelper
Khai báo Session: var $helper=array(‘Session’);
Gọi sử dụng: $session -> method();
Các phương thức chính:
• read($key): Đọc Session. Trả về một chuỗi hoặc mộtmảng tùy vào nội dung Session.
• check($key): Kiểm tra sự tồn tại của Session.• error(): Xác định lỗi liên quan đến Session.• flash($key= ‘flash’, array $params=array()): Hiển
thị thông báo.
2. MVC TRONG CAKEPHP
18
2.2 Model
Model là những lớp được xây dựng nhằm trao đổi thôngtin với cơ sở dữ liệu. Một lớp Model có thể thực hiện cáctác vụ truy vấn thêm, xóa, cập nhật dữ liệu.
Model nằm trong thư mục /app/Model chứa mã nguồnứng dụng. Model chứa các file Model, Behavior, Datasource.
Cách khai báo Model:class TenModel extends AppModel{
…………………….}
2. MVC TRONG CAKEPHP
19
2.2.1 Lấy dữ liệu
Dùng hàm find($type, $param)Cú pháp: <?php $this->Model->find($type, $params); ?>
Trong đó:
• $type: phương thức truy vấn dữ liệu. Có thể là‘all’, ‘first’, ‘list’, ‘count’, ‘neighbors’, ‘threaded’. Giátrị mặc định là ‘first’.
• $param: 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
2. MVC TRONG CAKEPHP
20
2.2.1 Lấy dữ liệu
Dùng hàm find($type, $param) Một số tùy chọn $param:
array(
'conditions' => array('Model.field' => $thisValue), //mảng các điềukiện tìm kiếm'recursive' => 1,// la mot gia tri so nguyen, co the la -1, 0, 1 hoac 2'fields' => array('Model.field1', 'DISTINCT Model.field2'),//mang cac
cot du lieu muon lay ra'order' => array('Model.created', 'Model.field3 DESC'), //menh de
ORDER BY sap xep thu tu ket qua sau khi tim kiem la tang dan (ASC) hoac giam dan (DESC)
group' => array('Model.field'), //menh de GROUP BY'limit' => n, //so nguyen'page' => n, //so nguyen'offset'=>n, //so nguyen'callbacks' => true //cac gia tri bao gom true, false, 'before', 'after‘
)
2. MVC TRONG CAKEPHP
21
2.2.1 Lấy dữ liệu
Dùng hàm find($type, $param)
find(‘all’): trả về tất cả kết quả tìm đượcCú pháp: <?php $this->Model->find(‘all’); ?>Ví dụ 1: Tìm tất cả thành viên trong bảng User<?php $this->User->find(‘all’); ?>
Ví dụ 2: Tìm thành viên với id=2<?php
$this->User->find(‘all’, array(‘conditions’ => array(User.id =>2)));?>
find(‘first’): trả về một kết quả duy nhấtCú pháp: <?php $this->Model-> find(‘first’); ?>Ví dụ: Tìm thành viên. Trả về với thành viên có id=1
<?php $this->User->find(‘first’); ?>
2. MVC TRONG CAKEPHP
22
2.2.1 Lấy dữ liệu
Dùng hàm find($type, $param)
find(‘count’): kết quả trả về là một số nguyênCú pháp: <?php $this->Model->find(‘count’); ?>Ví dụ : Đếm tất cả thành viên<?php $this->User->find(‘count’); ?>
find(‘list’): trả về một mảng danh sách thường dùngtrong input của dropdown hay selectbox
Cú pháp: <?php $this->Model-> find(‘list’); ?>Ví dụ: Hiển thị list username
<?php $this->User->find(‘list’); ?>Kết quả:array([1] => user1, [2] =>user2)
2. MVC TRONG CAKEPHP
23
2.2.1 Lấy dữ liệu
Dùng hàm find($type, $param)
find(‘neighbor’): tương tự như find(‘list’), nhưng kết quảtrả về là kết quả đứng trước và đứng sauCú pháp: <?php $this->Model->find(‘neighbor’, $param); ?>Ví dụ:<?php $this->User->find(‘neighbor’, array(‘field’ =>’id’, ‘value’=>2));?>
Kết quả:array(
[prev] => array([User] =>array([id] => 1, [username] => user1))[next] => array([User] =>array([id] => 3, [username] => user3))
)
2. MVC TRONG CAKEPHP
24
2.2.1 Lấy dữ liệu
Dùng câu truy vấn
Cú pháp: <?php $this->Model->query(‘SQL query’); ?>
Ví dụ:<?php $this->User->query(‘select * form users where id=1’)
Kết quả:array(
[0] => array([User] =>array([id] => 1, [username] => user1)))
2. MVC TRONG CAKEPHP
25
2.2.2 Lưu dữ liệu
Dùng hàm save() Save không có tham số: Sử dụng kết hợp với set()Cú pháp:
<?php $this->Model->set(‘fieldname’, ‘value’); ?><?php $this->Model->save(); ?>
Ví dụ: <?php
$this->User->set(array(‘username’ => ‘user1’, ‘email’ => ‘[email protected]’));
$this->User->save();?>
2. MVC TRONG CAKEPHP
26
2.2.2 Lưu dữ liệu
Dùng hàm saveField(): Sử dụng khi muốn lưu một trườngdữ liệu trong bảng
Cú pháp: <?php $this->Model->saveField(‘fieldname’, ‘value’); ?>
Ví dụ: <?php $this->User->saveField(‘username’,’use1’); ?>
2. MVC TRONG CAKEPHP
27
2.2.3 Các mệnh đề điều kiện khi truy vấn
Truy vấn có điều kiện: Trong CakePHP conditions tươngđương mệnh đề WHERE trong SQl, array là tập hợp cácđiều kiện của WHERECú pháp:
‘conditions’ => array()
Ví dụ: <?php
$this->User->find(‘all’, array(‘conditions’=> array(‘User.id’ => 1)))?>
Trong truy vấn SQL:select * from User where id=1
2. MVC TRONG CAKEPHP
28
2.2.3 Các mệnh đề điều kiện khi truy vấn
Các biểu thức logic: Các biểu thức điều kiện trongCakePHP đều được thể hiện dưới một phần tử của mảng. Gồm các biểu thức điều kiện: AND, OR, NOT…
Ví dụ: Tìm tất cả User có tham số active =1, hoặc thuộcgroup có id=1
<?php$this->User->find(‘all’, array(‘conditions’=> array(‘or’ => array(‘User.active’=>1, ‘User.group_id’=>1)))); ?>
Ví dụ: Tìm user không phải là admin<?php $this->user->find(‘all’, array(‘conditions’ => array(‘not’=>array(‘User.username’ => ‘admin’)))); ?>
2. MVC TRONG CAKEPHP
29
2.3 ControllerController điều khiển luồng xử lý của ứng dụng. TrongController thường chứa những lệnh gọi tới Model để truycập dữ liệu. Controller được xem là tầng điều khiển củaứng dụng. Controller chỉ nên khai báo các action(gọi làphương thức xử lý, được đặt trùng tên với tên file View).
Cách khai báo Controller:class DemosController extends AppController{
var $name = ‘Demos’;function add() {
………………………….}
}
2. MVC TRONG CAKEPHP
30
2.3 Controller
Session Component Khai báo Session
var $components = array(‘Session’);
Các sử dụng: write ($name, $value): lưu session có giá trị
$value vào $name read($name): đọc session thông qua $name check($name): kiểm tra session có tồn tại hay
không delete($key): xóa session thông qua tên destroy(): xóa toàn bộ session error(): xác định lỗi cuối cùng liên qua đến session
2. MVC TRONG CAKEPHP
31
2.3 Controller
Ví dụ:
write: <?php $this->Session->write(‘username’,’user1’); ?>
read: <?php $this->Session->read(‘username’); ?>
check: <?php $this->Session->check(‘username’); ?>
delete: <?php $this->Session->delete(‘username’); ?>
destroy: <?php $this->Session->destroy(); ?>