Tải bản đầy đủ (.pptx) (47 trang)

Tiểu luận Lập trình ứng dụng web CakePHP Framework

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 (663.29 KB, 47 trang )

LOGO
“ Add your company slogan ”
CakePHP Framework
Sinh viên thực hiện:
Nguyễn Thị Mến 09520563
Nguyễn Thị Nương 09520599
Trần Thị Xuân Hiệp 09520520
Nguyễn Thị Lệ Huyền 09520529
Nội dung
Giới thiệu CakePHP
1
Cài đặt CakePHP
2
MVC trong CakePHP
3
Một số quy ước cơ bản trong CakePHP
4
Demo
5
Giới thiệu CakePHP

Nguồn mở, miễn phí,

Tương thích PHP4 và PHP5 và trong tương lai là PHP6.

CakePHP được xây dựng theo mô hình MVC

Hỗ trợ tạo kết nối đến cơ sở dữ liệu một cách đơn giản và thuận lợi, chỉ với
một chuỗi kết nối đặt trong file configs/database.php
Giới thiệu CakePHP


Sinh code tự động dựa trên cơ sở dữ liệu đã có, kiểm tra và nhận biết tự
động các ràng buộc, quan hệ trong cơ sở dữ liệu.

Tích hợp sẵn nhiều thư viện hỗ trợ cho việc lập trình và thiết kế giao diện trở
nên đơn giản như: Ajax, HTML Form, Javascript…


Cài đặt CakePHP
1.Dowload( và giải nén cakephp vào web server.
2.Cài đặt
3.Chạy thử trên trình duyệt.
Model-View-Controller
- Cũng như các PHP framework khác, CakePHP hoạt động theo mô hình MVC.
- Việc phân tách ứng dụng rõ ràng như vậy sẽ giúp bạn tách bạch các phần xử lý
riêng biệt cho website của bạn, nó giúp cho code của bạn trong sáng hơn, dễ lập
trình, dễ quản lý, chỉnh sửa, nâng cấp.
Model-View-Controller

Model:Là lớp đầu tiên tương tác với cơ sở dữ liệu trong các ứng dụng của bạn.
Trên Model ta có thể thiết lập các ràng buộc dữ liệu, quan hệ giữa các bảng, bạn
sẽ viết các truy vẫn cũng như các xử lý logic ở đây.

View:Đảm nhận việc hiển thị thông tin đã được xử lý gởi đến từ Controller.

Ví dụ: Model trả về 1 tập các dữ liệu, View sẽ sử dụng để tạo các file HTML hiển
thị cho người sử dụng.
Model-View-Controller
Ngoài ra, View còn được sử dụng để cung cấp một loạt các định dạng: Video,
Music, Document, …


Controller:
Xử lý và điều hướng các yêu cầu của client.
Nơi trực tiếp xử lý các request từ url và form để thao tác trực tiếp với Model, sau
đó dùng View để hiển thị ra.
Model-View-Controller
Controllers
AppController
- Các lớp Controller trong ứng dụng kế thừa từ lớp AppController.
- AppController được định nghĩa trong thư mục /app/Controller/AppController.php.
<?php
# /app/Controller/RecipesController.php
class RecipesController extends AppController {
public function view($id) {
//action logic goes here }
public function share($customerId, $recipeId) {
//action logic goes here }
} ?>
Controllers
Controller Methods
1. Tương tác với Views
Controller tương tác với View theo một số cách:
set(string $var, mixed $value)
Phương thức set() là cách chính để gửi dữ liệu từ Controller đến View.
<?php
// First you pass data from the controller:
$this->set('color', 'pink');
// Then, in the view, you can utilize the data:
?>
Controllers
- render(string $action, string $layout, string $file)

render() được gọi tự động ở cuối mỗi lần yêu cầu controller. Phương thức này
được thực hiện ở tất cả các view (sử dụng dữ liệu được đưa ra trong set()), thay
chỗ các view vào trong các layout và thể hiện ra giao diện người dùng.
<?php
class RecipesController extends AppController {
//
public function search() {
// Render the view in /View/Recipes/search.ctp
$this->render(); }
// } ?>
Controllers

Controller Attributes
$name: dùng để đặt tên cho controller, thông thường tên chỉ là số nhiều
của tên Model được sử dụng.
<?php
// $name controller attribute usage example
class RecipesController extends AppController {
public $name = 'Recipes';
}
?>
Controllers
$layout: Thuộc tính $layout có thể được gán bằng tên của một layout được lưu
trữ trong/app/views/layouts.
Bạn có thể chỉ rõ một layout bằng cách gán bằng tên layout bỏ đi.ctp. Nếu bạn
không định nghĩa, thì mặc định nó sẽ lấy /app/views/layouts/default.ctp vốn có sẵn
trong CakePHP.
Controllers
<?php
// Using $layout to define an alternate layout

class RecipesController extends AppController {
function quickSave() {
$this->layout = 'ajax';
}
}
?>
Controllers
$params: Thuộc tính này sẽ cung cấp truy cập thông tin của yêu cầu hiện tại.
Hầu hết việc sử dụng $this->params là để truy cập thông tin từ controller thông
qua POST và GET.
- $this->params['controller']: lưu trữ tên controller hiện tại trong yêu cầu (request).
Ví dụ: nếu URL /posts/view/1 được yêu cầu thì $this>params['controller'] là
"posts".
Controllers
- $this->params['action']: lưu trữ tên của action hiện tại chứa trong yêu cầu.
Ví dụ: nếu yêu cầu URL /posts/view/1 được yêu cầu thì $this>params['action']
chứa"view".
- $this->params['pass']: trả về một mảng (đánh chỉ số bằng số) các tham số sau
action.
- $this->params['form']: lưu trữ dữ liệu POST từ form được lưu trữ. Thông tin kèm
theo cũng được chứa trong $_FILES.
Views
Lớp View là nơi thể hiện dữ liệu đã được xử lý ra cho người dùng.
Các hình thức thông thường: HTML, XML, JSON, có thể tạo ra các file PDF mà
người dùng có thể tải về.
Tập tin của View được lưu trong /app/views, được đặt tên theo các hành động
tương ứng với nó.
Ví dụ: file view của Products controller là hành động “view()”, bình thường sẽ
được tìm thấy ở /app/views/products/view.ctp.
Views

View Method:
set(string $var, mixed $value):
Views có hàm set() tương tự như set() của đối tượng controller.
Sử dụng set() là cách chính để gửi dữ liệu từ controller đến view của bạn. Một khi
bạn sử dụng set() biến đó có thể được truy cập trong view.
<?php $this->set('activeMenuButton', 'posts'); ?>
Sau đó trong layout biến $activeMenuButton sẽ có hiệu lực và có giá trị “posts”.
Views
getVar(string $var): lấy giá trị của viewVar với tên là $var.
getVars(): lấy tất cả danh sách các biến có sãn trong phạm vi hiện hành. Trả về
một mảng các biến.
addScript(string $name, string $content)
Phương thức này hữu ích khi tạo các Helpers cần phải thêm javascript hoặc css
trực tiếp cho layout. Phương pháp này thường được sử dụng từ các Helpers bên
trong, giống như Javascript và Html Helpers.
Views
blocks(): Lấy tên của tất các các block được định nghĩa như là một mảng.
$output: Chứa nội dung kết xuất cuối cùng từ một View, hoặc xem các tập tin,
hoặc nội dung layout.
$request: Một thực thể của CakeRequest. Sử dụng thực thể này để truy cập thông
tin về các yêu cầu hiện tại.
Models
Một Model đại diện cho mô hình dữ liệu của bạn.
Đây là một ví dụ đơn giản về việc định nghĩa một Model trong CakePHP:
<?php
class Ingredient extends AppModel {
public $name = 'Ingredient';
}
?>
Models

Tạo tập tin PHP cho Model của bạn trong /app/models/ hoặc trong thư mục con
của /app/models/ . CakePHP sẽ tìm kiếm nó ở một nơi bất kỳ trong thư mục.
Theo quy ước nó cần có cùng tên với lớp.
Ví dụ : ingredient.php
Với Model đã được định nghĩa, nó có thể được truy cập từ bên trong
Controller của bạn. CakePHP tự động làm cho Model cho phép truy cập khi nó có
tên phù hợp với Controller.
Models
Ví dụ :
Một Controler được đặt tên là IngredientsController sẽ tự độngkhởi tạo model
Ingredient và gắn nó vào controller bằng
$this->Ingredient.
<?php
class IngredientsController extends AppController {
public function index() {
//grab all ingredients and pass it to the view:
$ingredients = $this->Ingredient->find('all');
$this->set('ingredients', $ingredients); }
}
?>
Models
Model Method:
field(string $name, array $conditions = null, string $order = null)
Trả về giá trị của một trường duy nhất được chỉ định bằng biến $name từ bản ghi
đầu tiên thỏa mản $conditions với thứ tự sắp xếp bởi biến $order .
<?php
$this->Post->id = 22;
echo $this->Post->field('name');
// echo the name for row id 22
?>

×