Hey ! Xin chào các bạn, hôm nay mình và các bạn sẽ đi tìm hiểu về một vấn đề khá quan trong mô hình MVC đó là Model trong bài viết Cách sử dụng Model trong Phalcon Framework.

Như các bạn đã biết trong mô hình MVC mỗi lớp sẽ đóng vai trò tách biệt nhau nhằm dễ dàng trong việc quản lý cũng như bảo trì hệ thống được tốt hơn và trong mô hình MVC thì Model có nhiệm vụ thao tác I/O (vào ra) với cơ sỡ dữ liệu là database.

Trước khi đi vào tìm hiểu về Model trong Phalcon Framework thì mình xin giới thiệu qua về một mô hình được áp dụng khá rộng rãi hiện nay đó là ORM.

1. Giới thiệu  về mô hình ORM

ORM (Object relational mapping) là một phương pháp lập trình để chuyển đổi từ mô hình database sang mô hình đối tượng.
ORM có nhiều thuận lợi hơn so với những phương pháp truy cập dữ liệu (data access) khác:

  1. ORM tự động hóa việc chuyển đổi từ object sang table và từ table sang object, giúp giảm thời gian và chi phí phát triển
  2. ORM cần ít code hơn store procedures, thay thế số lượng lớn store procedudres cần phát triển
  3. Tăng tốc độ thực thi của hệ thống

Một giải pháp ORM tốt sẽ giúp ứng dụng nhanh hơn và dễ hỗ trợ hơn.
Bạn có thể xem thêm để hiểu sâu hơn về ORM tại đây

2. Làm thế nào để có thể sử dụng Model trong Phalcon Framework

Phalcon cung cấp lớp Phalcon\Mvc\Model là cơ sở cho tất cả các các model trong một ứng dụng Phalcon (các model sẽ extend từ đây). Nó cung cấp các chức năng CRUD cơ bản, tìm kiếm nâng cao và mối quan hệ gữa các model, cùng với các service khác. Phalcon\Mvc\Model Tránh được việc sử dụng câu lệnh SQL bởi nó được biên dịch bởi những method một các tự động tương ứng với các toán tử trong database engine. Sau đây chúng ta sẽ đi làm demo module quản lý người dùng để hiểu rõ hơn về vấn đề này

2.1.  Tạo database

Đầu tiên chúng ta phải tạo database có tên là phalcon, sau đó tạo một bảng users để chứa thông tin của người dùng:

2.2. Kết nối Database

Để thao tác với Database chúng ta tiến hành mở file index.php cùng cấp với thư mục app để cấu hình kết nối tới DB.
Các bạn thiết lập các thông số kết nối như trong hình:

Đến bước này, chúng ra đã cấu hình xong kết nối database trong Phalcon Framework, tiếp theo chúng ta sẽ tiến hành tạo model.

2.3. Tạo model trong Phalcon

Model trong Phalcon là một class extend từ Phalcon\Mvc\Model . Nó phải được đặt trong thư mục models. Một file model phải chứa một class, tên của class nên có trong ký hiệu của camel case.
Ví dụ:

Chú ý là nó phải được kế thừa từ \Phalcon\Mvc\Model. Mặc định thì model “Users” sẽ được map tương ứng với bảng “users”. Nếu muốn sử dụng theo ý muốn thì có thể map bằng cách sử dụng phương thức getSource():

Và lúc này model sẽ được map với bảng user_tables, đến đây có thể sẽ có bạn không hiểu map là như thế nào, bạn có thể hiểu khi đã map model với bảng thì mỗibản ghi hay một dòng trong database lúc này chính là một đối tượng, là một thểhiện của class Users, vì thế chúng là chỉ việc trỏ đến và thiết lập giá trị cho từng thuộc tính có trong bảng.
Phalcon\Mvc\Model cung cấp một số phương thức cho việc truy vấn tới bản ghi. Ví dụ: -$users = User::find(); Lấy tất cả các bản ghi. $users = User::find(“name = ‘your name’”); hay order $users = User::find(array( “type = ‘private’”, “order” => “name” )); hay với hàm findFirst() tìm bản ghi tương ứng đầu tiên:

Cả hai hàm find() và findFirst() đều chấp nhận tìm kiếm kết hợp với tiêu chí

Thay vì sử dụng array parameter ta có thể tạo câu truy vấn theo cách hướng đối tượng ví dụ:

Tìm kiếm với phương thức findFirstBy<property-name>(): Phương thức này được mở rộng từ phương thức findFirst() ví dụ:

Để hiểu sâu hơn về model các bạn có thể xem doc của Phalcon tại đây

Tiếp theo chúng ta sẽ tạo Controller UserController.php để tạo chức năng đăng ký User như sau:

Như mình đã giới thiệu trong bài học tìm hiểu về View trong Phalcon . Mình sẽ tạo một folder trong file view để chứa các view của các function trong controller.
Các bạn tạo theo thứ tự như sau:

Ở view, phalcon cung cấp cho chúng ta các thư viện giúp cho việc render ra HTML nhưng mình và các bạn sẽ làm việc với HTML thuần trước, ở các buổi tiếp theo mình sẽ giới thiệu kĩ hơn cùng các bạn về những vấn đề đó .

Chúng ta sẽ tiến hành viết HTML để tạo form đăng ký người dùng như sau:

Chúng ta chọn phương thức POST để đẩy dữ liệu lên server, và mặc định form không có action nó sẽ action tới chính phương thức gọi tới view đó là signupAction().
Để đón dữ liệu gửi lên khi submit form bạn có thể sử dụng biến $_POST của PHP thuần nhưng Phalcon cung cấp cho bạn đối tượng request để lấy dữ liệu truyền lên. Mình sẽ dúng phương thức  $this->request->getPost() để lấy toàn bộ data gửi lên theo phương thức post.

Sau khi nhận được dữ liệu gửi lên từ Form, mình sẽ kiểm tra tồn tại post gửi lên có key ra register thì mình sẽ tiến hành lấy thông tin insert vào CSDL. Nếu insert thành công mình sẽ cho echo ra màn hình Register success.

Đến đây mình và các bạn đã hoàn thành bài hướng dẫn cách sử dụng Model trong Phalcon chức năng đăng ký người dùng.

Các bạn thấy đó, với việc sử dụng mô hình  ORM đã giúp chùng ta k phải viết các câu lệnh truy vấn dài dòng như khi làm PHP thuần nữa. Điều này giúp cho hiệu xuất của công việc tăng lên và kèm theo nhiều lợi ích khác nữa.
Hẹn gặp lại các bạn ở các bài viết sau nhé…

Gửi bình luận bằng Facebook

Bài viết liên quan

loading...