cach dang ky m88 |

Viết Component Joomla 2.5 : Mô hình Model-View-Controller

Để viết được componet trong Joomla 2.5 các bạn phải hiểu được mô hình MVC trong Joomla.

1. Việc phân chia mã nguồn :

Mô hình Model-View-Controller hay còn được viết tắt là mô hình MVC là một mô hình sử dụng trong lập trình với mục đích chính là để phân chia mã nguồn một cách hiệu quả và khoa học.

Thế tại sao cần phải phân chia mã nguồn? Bạn hãy hình dung tới các tình huống sau

Thứ nhất : các thao tác cần xử lý quá nhiều, ví dụ như com_khachsan trên, với mỗi loại dữ liệu như loại phòng, phòng, danh sách khách thuê, danh sách đặt phòng chúng ta cần phải xây dựng các chức năng nhập, sửa, xóa, hiển thị…, như vậy chúng ta không thể nào gom hết mã nguồn vào một tập tin được mà phải phân chia ra thành nhiều phần để dễ quản lý.

Thứ hai : nếu chúng ta có một nhóm cùng xây dựng component, chúng ta phải phân chia mỗi phần cho mỗi người thực hiện. Ai có phần người ấy code không liên quan đến nhau và cuối cùng chỉ cần gom lại là hoàn thành.

Thứ ba : vấn đề tính khoa học và hợp lý của chương trình, ta thấy rằng dù nhiều chức năng nhưng một phiên thực thi người dùng chỉ làm một chức năng mà thôi. Có nghĩa là người quản trị không thể vừa xem danh sách phòng vừa thêm mới phòng vừa xóa phòng trong cùng một lúc được. Vì vậy đặt ra yêu cầu là phiên thực thi liên quan đến chức năng gì thì chỉ phần mã nguồn của chức năng đó được include để webserver xử lý mà thôi.

Và còn nhiều lý do khác nữa bắt buộc muốn có một hệ thống tốt chúng ta phải phân chia mã nguồn một cách thật hợp lý và khoa học.

2. Model-View-Controller trong Joomla

Như đã nói thì MVC chỉ là một cách thức, một quy tắc giúp chúng ta phân chia mã ngồn thành nhiều thành phần nhỏ một cách hợp lý và khoa học. Trong mô hình MVC được phân chia theo quy tắc như sau:
Việc xử lý mỗi thành phần gồm có xử lý hiển thị (View) và xử lý logic, tính toán, dữ liệu…(Model). Nhiều thành phần sẽ có nhiều View và nhiều Model.
Việc kết hợp và điều khiển qua lại giữa các View, Model được thực hiện bởi thành phần Controller.
Hai hình sau cho ta cái nhìn tổng quát về quy tắc hoạt động mô hình Model-View-Controller

Mô hình MVC trong Joomla

 Còn các Sequence Diagram sau mô tả chi tiết hơn việc kết hợp hoạt động giữa các thành phần này theo trình tự thời gian trong Joomla.

 sự kết hợp model, controller, view

Luồng dữ liệu chạy trong joomla

Để tạo ra một component cho Joomla 2.5, chúng ta có thể thực hiện theo mô hình MVC hoặc không tuân theo mô hình này.

Để lập trình component theo mô hình MVC, ở khía cạnh mã nguồn, Joomla cung cấp sẵn một loạt các lớp cơ sở, người lập trình chỉ việc kế thừa chúng chúng trong các lớp dẫn xuất. Chi tiết sẽ được thể hiện trong các phần tiếp sau đây. Hình sau là danh sách các tập tin chứa các lớp cơ sở mà Joomla cung cấp sẵn cho người lập trình. Các tập tin này nằm trong thư mục libraries/joomla/application/component/

Cấu trúc thư mục và tập tin

Danh sách tên các lớp cơ sở gồm có:
 Model
o JModel
o JModelAdmin
o JModelForm
o JModelItem
o JModelList
 View
o JView
 Controller
o JController
o JControllerAdmin
o JControllerForm

Trong ứng dụng của mình, tùy từng loại chức năng cần xử lý mà ta kế thừa từ lớp tương ứng chứ không phải kế thừa tất cả các lớp trên.

3. Cấu trúc tập tin – thư mục của một component MVC trong Joomla
Một component viết theo mô hình MVC trong Joomla cần phải có các thành phần như sau.
tập tin <tên component>.php
Thư mục models chứa các tập tin model. Mỗi model tương ứng được đặt trong một tập tin
hư mục views chứa các view. Mỗi view là một thư mục có chứa tập tin view.html.php là tập tin xử lý hiển thị và các tập tin layout nằm trong thư mục Tập tin controller.php

Hình sau đây là cấu trúc tập tin – thư mục của component com_search ở front-end

Cấu trúc thư mục trong joomla

Ở đây, có thể nhận thấy component này có một model có tên search được cài đặt trong tập tin com_search/models/search.php.
Một view có tên search được cài đặt bởi các tập tin trong thư mục com_search/views/search/.
Controller được cài đặt trong tập tin có tên com_search/controller.php

Hổ trợ

Hổ trợ Hữu Phát

Nhân viên tư vấn thiết kế website Mr. Hữu -
Tư vấn Thiết kế website
0188.525.0716 
Yahoo
 
Nhân viên tư vấn thành lập công ty Mrs. Loan -
Tư vấn thành lập công ty
09.798.17170 
Yahoo
 
Nhân viên hổ trợ kỷ thuật mạng Mr. Công -
Nhân viên kỹ thuật
0985.012.596 
Yahoo
 

Tìm kiếm

Thanh toán:

Trao đổi backlink :
thiet ke website binh duong | thiết kế web tại bình dương |

quang cao google tai binh duong | quang ba web o binh duong |