PHP MVC framework là gì?
PHP MVC là một mẫu thiết kế ứng dụng phân tách dữ liệu ứng dụng và logic nghiệp vụ (mô hình) khỏi bản trình bày (chế độ xem). MVC là viết tắt của Model, View & Controller.
Bộ điều khiển làm trung gian giữa các mô hình và khung nhìn.
Hãy nghĩ về mô hình thiết kế MVC như một chiếc xe hơi và người lái xe.
Xe có kính chắn gió (chế độ xem) mà người lái (người điều khiển) sử dụng để theo dõi giao thông phía trước, sau đó là tốc độ hoặc phanh (kiểu xe) tùy thuộc vào những gì anh ta nhìn thấy phía trước.
Tại sao sử dụng PHP MVC Framework?
- PHP MVC Framework đơn giản hóa làm việc với các công nghệ phức tạp bằng cách;
- Ẩn tất cả các chi tiết triển khai phức tạp
- Cung cấp các phương pháp tiêu chuẩn mà chúng tôi có thể sử dụng để xây dựng các ứng dụng của mình.
- Tăng năng suất của nhà phát triển, điều này là do việc triển khai cơ sở của các hoạt động như kết nối với cơ sở dữ liệu, làm sạch đầu vào của người dùng, v.v. đã được thực hiện một phần.
- Tuân thủ các tiêu chuẩn mã hóa chuyên nghiệp
Trong hướng dẫn này, bạn sẽ học-
- Mẫu thiết kế MVC PHP
- Các loại khung công tác PHP MVC
- Chuyển ứng dụng thăm dò ý kiến sang CodeIgniter
- Cài đặt cấu hình cơ sở dữ liệu
- Tạo mô hình của chúng tôi
- Tạo quan điểm của chúng tôi
- Kiểm tra ứng dụng của chúng tôi
Mẫu thiết kế MVC PHP
Bây giờ chúng ta hãy thảo luận ngắn gọn về từng thành phần của mẫu thiết kế MVC.
Mô hình - phần này liên quan đến logic nghiệp vụ và dữ liệu ứng dụng. Nó có thể được sử dụng để thực hiện xác nhận dữ liệu, xử lý dữ liệu và lưu trữ nó. Dữ liệu có thể đến từ;
- tập tin phẳng
- cơ sở dữ liệu
- Tài liệu XML
- Các nguồn dữ liệu hợp lệ khác.
Bộ điều khiển - đây là phần xử lý các yêu cầu của người dùng về tài nguyên từ máy chủ.
Ví dụ: khi người dùng yêu cầu URL… /index.php?products=list, bộ điều khiển sẽ tải mô hình sản phẩm để truy xuất dữ liệu sản phẩm sau đó xuất kết quả trong chế độ xem danh sách.
Tóm lại, bộ điều khiển liên kết các mô hình và chế độ xem với nhau tùy thuộc vào các tài nguyên được yêu cầu.
Chế độ xem - phần này liên quan đến việc trình bày dữ liệu cho người dùng. Điều này thường ở dạng các trang HTML.
Các loại khung công tác PHP MVC
Lựa chọn khung công tác PHP tốt nhất là một thách thức.
Bạn không cần phải viết khuôn khổ của riêng mình để hưởng lợi từ những ưu điểm của MVC.
Bạn chỉ nên cố gắng tạo thiết kế ứng dụng liên quan đến MVC của riêng mình để hiểu cách hoạt động của các khung MVC.
Khi bạn đã cảm thấy thoải mái với cách thức hoạt động của các khuôn khổ MVC, bạn nên chuyển sang các khuôn khổ trưởng thành và đã được thử nghiệm.
Bảng dưới đây mô tả ngắn gọn một số khung công tác php phổ biến và các tính năng mà mỗi khung công tác cung cấp.
Khuôn khổ | Sự miêu tả |
---|---|
![]() | Nó là một trong những framework PHP MVC phổ biến nhất. Nó nhẹ và có một đường cong học tập ngắn. Nó có một bộ thư viện phong phú giúp xây dựng các trang web và ứng dụng một cách nhanh chóng. Người dùng có kiến thức hạn chế về lập trình OOP cũng có thể sử dụng nó. Các ứng dụng được hỗ trợ bởi CodeIgniter bao gồm;
|
![]() | Đó là một khung công tác nhẹ và an toàn của Bộ điều khiển Chế độ xem Mô hình phân cấp HMVC. Nó có một tập hợp các thành phần phong phú để phát triển các ứng dụng một cách nhanh chóng. Các công ty sử dụng Kohana bao gồm;
|
![]() | Nó được mô phỏng theo Ruby on rails. Nó được biết đến với các khái niệm như các mẫu thiết kế phần mềm, quy ước về cấu hình, ActiveRecord, v.v. Các ứng dụng hỗ trợ CakePHP bao gồm;
|
![]() | Đó là một khuôn khổ mạnh mẽ;
|
Chuyển ứng dụng thăm dò ý kiến sang CodeIgniter
Trong hướng dẫn này, chúng tôi đã tạo một ứng dụng thăm dò PHP. Ở đây, chúng tôi sẽ chuyển mã đó sang CodeIgniter
- Tải xuống phiên bản CodeIgniter mới nhất từ trang web của họ.
- Trích xuất nội dung của tệp nén vào thư mục phát triển của bạn trong thư mục máy chủ web của bạn. Chúng ta sẽ sử dụng ciopinionpoll làm tên thư mục trong bài học này.
- Duyệt đến URL http: // localhost / ciopinionpoll /
Bây giờ chúng tôi sẽ chuyển ứng dụng thăm dò ý kiến của chúng tôi sang CodeIgniter. Nhớ lại rằng ứng dụng của chúng tôi được chia thành ba thành phần chính là;
- Bộ điều khiển phía trước - đây là phần phản hồi các yêu cầu URL và trả về trang được yêu cầu. Mã này sẽ đi vào bộ điều khiển
- Mô hình - đây là mã phản hồi dữ liệu được yêu cầu và trả về dữ liệu được yêu cầu. Mã này sẽ đi vào mô hình
- Chế độ xem - đây là mã chịu trách nhiệm định dạng và hiển thị dữ liệu. Mã này sẽ đi vào chế độ xem
- Duyệt đến thư mục ciopinionpoll
- Mở tệp database.php nằm trong thư mục application / config.
- Tìm các dòng mã sau
Cài đặt cấu hình cơ sở dữ liệu
- Đặt tên người dùng thành root
- Đặt mật khẩu thành mật khẩu gốc localhost của bạn
- Tên cơ sở dữ liệu cho ý kiến_đăng ký. Lưu ý rằng chúng ta sẽ sử dụng cơ sở dữ liệu đã tạo trong bài trước.
- Lưu các thay đổi và đóng tệp.
Tạo mô hình của chúng tôi
Tiếp theo, chúng tôi sẽ tạo mô hình của chúng tôi sẽ mở rộng CI_Model. CI_Model là một phần của thư viện CodeIgniter. Mô hình sẽ được đặt trong ứng dụng / mô hình ý kiến_poll_model.php
load->database();}public function total_votes(){$query = $this->db->select('COUNT(choice) as choices_count')->get('js_libraries');return $query->row()->choices_count;}public function get_results(){$libraries = array("", "JQuery", "MooTools", "YUI Library", "Glow");$table_rows = '';for ($i = 1; $i < 5; $i++){$sql_stmt = "SELECT COUNT(choice) choices_count FROM js_libraries WHERE choice = $i;";$result = $model->select($sql_stmt); $table_rows .= "";}public function add_vote($choice){$ts = date("Y-m-d H:i:s"); $data = array('choice' => $choice, 'ts' => $ts); $this->db->insert('js_libraries', $data);}}?> " . $ libraries [$i] . " Got: " . $result[0] . " votes
ĐÂY,
- “Class Opinion_poll_model mở rộng CI_Model…” là mô hình của chúng tôi mở rộng CI_Model
- “… Cha :: __construct ();” gọi hàm tạo CI_Model
- “$ This-> load-> database ();” tải thư viện cơ sở dữ liệu để ứng dụng của chúng tôi có thể tương tác với cơ sở dữ liệu
- “$ This-> db->” là bản ghi hoạt động của CodeIgniter. Kiểm tra liên kết này để biết thêm thông tin về hồ sơ hoạt động.
Tạo bộ điều khiển của chúng tôi Bây giờ chúng ta hãy tạo bộ điều khiển. Chúng tôi sẽ sử dụng bộ điều khiển CodeIgniter mặc định nằm trong application / controllers / welcome.php. Thay thế mã nguồn của nó bằng mã sau.
load->model('opinion_poll_model');}public function index() {if ($this->input->post('submitbutton') && !$this->input->post('vote')) {echo "";}if ($this->input->post('vote')) {$this->opinion_poll_model->add_vote($this->input->post('vote'));$data['total_votes'] = $this->opinion_poll_model->total_votes();$data['rows'] = $this->opinion_poll_model->get_results();$this->load->view('results', $data);} else {$this->load->view('opinion_poll_form');}}}/* End of file welcome.php *//* Location: ./application/controllers/welcome.php */?>
ĐÂY,
- “If (!ined ('BASEPATH')) exit ('Không cho phép truy cập tập lệnh trực tiếp');" đảm bảo rằng người dùng không truy cập trực tiếp vào lớp bộ điều khiển
- “Lớp Chào mừng mở rộng CI_Controller…” bộ điều khiển của chúng tôi mở rộng lớp CI_Controller
- “Public function __construct ()” gọi phương thức cấu trúc lớp của CI_Controller và tải mô hình Opinion_poll_model của chúng tôi
- “Public function index ()…” là hàm ánh xạ tới index.php. nó sử dụng lớp đầu vào của CodeIgniter để kiểm tra xem một phiếu bầu đã được gửi hay chưa, thêm nó vào cơ sở dữ liệu sau đó hiển thị kết quả. Nếu mảng bài đăng của lớp đầu vào trống, nó sẽ tải trang bỏ phiếu.
- “$ This-> input-> post ('…')” là lớp đầu vào CodeIgniter lấy nội dung của biến toàn cục $ _POST.
- “$ This-> idea_poll_model-> add_vote ($ this-> input-> post ('vote'))" gọi phương thức add_vote của mô hình để thêm phiếu bầu vào cơ sở dữ liệu.
Tạo quan điểm của chúng tôi
Nhớ lại ví dụ trước rằng chúng ta có hai trang HTML, một trang để bỏ phiếu và trang kia cho kết quả. Chúng tôi sẽ sử dụng cùng một mã HTML với các sửa đổi tối thiểu để tạo các chế độ xem của chúng tôi. Tạo các tệp sau trong thư mục ứng dụng / chế độ xem
opinion_poll_form.phpJavaScript Libraries - Opinion Poll JavaScript Libraries - Opinion Poll
What is your favorite JavaScript Library?
Bây giờ hãy tạo trang kết quả results.php
JavaScript Libraries - Opinion Poll Results JavaScript Libraries - Opinion Poll Results
What is your favorite JavaScript Library?
people have thus far taken part in this poll:
Kiểm tra ứng dụng của chúng tôi
Giả sử thư mục gốc của ứng dụng của bạn là ciopinion, hãy duyệt đến http: // localhost / ciopionpoll /
Bấm vào nút OK, bạn sẽ thấy thông báo cảnh báo sau
Bình chọn cho ứng cử viên yêu thích của bạn sau đó nhấp vào OK Bạn sẽ thấy trang kết quả sau
Phần kết luận
CodeIgniter là một framework PHP MVC dễ học và sử dụng, có thể giảm đáng kể thời gian dành cho việc phát triển các ứng dụng.
Tóm lược
- Khung công tác là một tập hợp các thư viện cung cấp việc triển khai từng phần các tác vụ chung.
- PHP có một số khuôn khổ MVC đã trưởng thành và đã được thử nghiệm mã nguồn mở.
- Một cách tiếp cận phát triển tốt sẽ tách dữ liệu ra khỏi bản trình bày và khuyến khích việc sử dụng một điểm nhập duy nhất vào một ứng dụng.
- Các ứng dụng PHP truyền thống tuân theo các phương pháp hay nhất về thiết kế ứng dụng có thể được chuyển sang các khuôn khổ MVC với những sửa đổi tối thiểu.