Dự án php oop mvc
Hiện tại, lập trình hướng đối tượng (OOP) đã trở nên phổ biến và khá quen thuộc với dân lập trình. Lập trình OOP sẽ giúp lập trình viên đóng gói các lớp xử lý nghiệp vụ một cách dễ dàng; . Các chuyên gia lập trình hiện nay thường sử dụng kỹ thuật này để xây dựng nên các khung mã nguồn. Khi đó các thành viên lập trình khác có thể tái sử dụng lại khung đó, kế thừa và sử dụng các lớp nghiệp vụ mà nó hỗ trợ trong dự án của mình một cách dễ dàng và nhanh chóng, giúp giảm thời gian xây dựng và phát triển . Vậy framework là gì? Framework là một bộ mã nguồn được xây dựng, phát triển và đóng gói – được phân phối bởi các chuyên gia lập trình hoặc bởi các công ty lập trình. Nó sẽ cung cấp một tiêu chuẩn phát triển cấu trúc kiến trúc để các nhà phát triển dựa vào đó xây dựng và phát triển các dự án. Đi kèm theo nó là một kho thư viện bao gồm nhiều lớp/hàm xử lý được đặt trong các gói hoặc không gian tên riêng. Các chuyên gia lập trình sử dụng nhiều kỹ thuật lập trình và giải thuật/thuật toán để xây dựng các lớp xử lý một cách tối ưu nhất, giải quyết các bài toán lập trình nhanh chóng và chính xác. Các lớp trong một khung sẽ hoạt động tốt nhất với cấu trúc chuẩn mà khung đó cung cấp PHP là một ngôn ngữ script khá mạnh mẽ được sử dụng để xây dựng trang web và hiện tại nó cũng có rất nhiều framework tốt như. zend framework, symfony, yii framework, codeigniter… được rất nhiều lập trình viên yêu thích và sử dụng. Các PHP Framework đều được xây dựng theo tiêu chuẩn mô hình MVC (Model – View – Controller) và cung cấp rất nhiều lớp hỗ trợ xử lý về bảo mật, phân quyền, captcha, trình trợ giúp xem, trình quản lý mô-đun, cơ sở dữ liệu, dịch vụ… khi đó Dưới đây là liệt kê danh sách các PHP Framework CodeIgniter Framework- http. // người viết mã. com MVC là gì?MVC hay (Model-View-Controller) là một mẫu kiến trúc phần mềm trong kỹ thuật kỹ sư phần mềm. Khi sử dụng đúng cách, mẫu MVC giúp người phát triển phần mềm thiết lập các nguyên tắc nghiệp vụ và giao diện người dùng rõ ràng hơn. Phần mềm phát triển theo mẫu MVC tạo ra nhiều thuận lợi cho việc bảo trì vì các nguyên tắc nghề nghiệp và giao diện ít liên quan với nhau Trong model Model-View-Controller, model (model) object tượng trưng cho dữ liệu của chương trình phần mềm. Tầm nhìn hay khung nhìn (view) bao gồm các thành phần của giao diện người dùng. Bộ kiểm tra hay bộ điều chỉnh (bộ điều khiển) quản lý sự trao đổi giữa dữ liệu và các nguyên tắc nghề nghiệp trong các thao tác liên quan đến mô hình Ngô Tôn Blog hướng dẫn cách xây dựng 1 MVC PHP Framework đơn giản từ mới bắt đầu đến cuối Đầu tiên mà framework cần làm là tạo điểm bắt đầu (vd. mục lục. php), đó là nơi cho phép tất cả các bộ điều khiển có thể thông qua và hoạt động VD. Tài liệu. htaccess sẽ viết lại đường dẫn cho ta có định dạng This is file. htaccess của ứng dụng RewriteEngine on # Cho nay la duong dan chinh cua thu muc lam viec (http://localhost/) => RewriteBase / # Neu thuc muc la http://localhost/blog/ => RewriteBase /blog/ RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?rt=$1 [L,QSA] Cấu trúc của ứng dụng MVC - ứng dụng htaccess mục lục. php chỉ mục tệp. php mục lục. php set up the error report (error_reporting), include file init. php, và xác định hằng số đường dẫn của trang web (__SITE_PATH) Dĩ nhiên là trước khi tạo tập tin này, chúng ta cần phải định nghĩa các lớp cần thiết cho hệ thống như. bộ điều khiển, sổ đăng ký, bộ định tuyến, mẫu. Các lớp này sẽ tự động đưa vào chương trình (bắt buộc để hệ thống hoạt động) /bao gồm/init. php Registry là 1 đối tượng (registry object) cho phép lưu __set() và truy xuất __get() các biến mà ta không cần phải sử dụng biến toàn cục (biến toàn cục) /ứng dụng/đăng ký. tầng lớp. php vars[$index] = $value; } /** * * @get variables * * @param mixed $index * * @return mixed * */ public function __get($index) { return $this->vars[$index]; } } ?> Chúng ta ta thấy có 2 phương thức tự động. __set() và __get() để tạo ra các biến sử dụng xuyên suốt trong chương trình như biến toàn cục. Cách sử dụng $registry->newval = 'This is value of variable name newval'; echo $registry->newval; bộ định tuyến Đây là lớp giúp mô hình MVC chọn đúng bộ điều khiển đang hoạt động Ví dụ ta có 1 router sử dụng bộ điều khiển “tin tức” /ứng dụng/bộ định tuyến. tầng lớp. php registry = $registry; } Phương thức khởi tạo class router sẽ giúp ta tạo 1 object router mới thông qua object $registry mà ta đã tạo sẵn trong init. php. Thêm đoạn mã sau để thực hiện tạo mới 1 bộ định tuyến trong chỉ mục. php *** load the router ***/ $registry->router = new router($registry); Để chọn thư mục điều khiển được làm việc, ta viết thêm phương thức setPath trong bộ định tuyến. lớp học. php /**
*
* @set controller directory path
*
* @param string $path
*
* @return void
*
*/
function setPath($path) {
/*** check if path i sa directory ***/
if (is_dir($path) == false)
{
throw new Exception ('Invalid controller path: …Và bây giờ ta truyền thư mục điều khiển đang làm việc cho lớp bộ định tuyến trong chỉ mục. php ________số 8_______ Sau khi bộ định tuyến kiểm tra tính hợp lệ của bộ điều khiển truyền vào thông qua phương thức setPath(), ta tiếp tục tải bộ điều khiển /** * * @load the controller * * @access public * * @return void * */ public function loader() { /*** check the route ***/ $this->getController(); /*** if the file is not there diaf ***/ if (is_readable($this->file) == false) { $this->file = $this->path.'/error404.php'; $this->controller = 'error404'; } /*** include the controller ***/ include $this->file; /*** a new controller class instance ***/ $class = $this->controller . 'Controller'; $controller = new $class($this->registry); /*** check if the action is callable ***/ if (is_callable(array($controller, $this->action)) == false) { $action = 'index'; } else { $action = $this->action; } /*** run the action ***/ if(!empty($this->args)) $controller->$action($this->args); else $controller->$action(); } Phương thức loader() sẽ gọi phương thức getController() với ý nghĩa getController() sẽ thông qua chuỗi truy vấn. $_GET[‘rt’] mà ta truyền (http. //ví dụ/chỉ mục. php?rt=news/view/3) để xác định bộ điều khiển mà ta thực hiện Bộ điều khiển (C trong MVC) là 1 lớp hiển thị định nghĩa tất cả các bộ điều khiển của ứng dụng, nó bao gồm. object $registry Support data transfer, object $model to get data from Model (M), object $view to transfer data and output View (V) method default index() for controller does not have action (task) as /application/controller_base. tầng lớp. php 1Model (M trong MVC) Thành phần xử lý các dữ liệu từ textfile, database, objects,…. baseModel sẽ được gọi từ Controller khi cần đến, baseModel có nhiệm vụ thao tác với Database /application/model_base. tầng lớp. php 2Mở rộng thêm cho các bạn tham khảo View (V in MVC) is a data section format, send andNhận dữ liệu từ form, display html & css,… /application/view_base. tầng lớp. php 3 Viết 1 ứng dụng blog có chức năng như sau
With error404Controller has used View “error404” Tiếp theo ta tạo Controller Index
With indexController has used View “index” Như vậy là xong, bây giờ ta kiểm tra kết quả 2/ If user access http. //thí dụ. com/blog thì sẽ xuất ra màn hình của tất cả các bài Blog Tiếp tục theo cấu hình kết nối trong ta. /config. php 9Tương tự như index Controller ta tạo ra blog Controller with action index() for this function /bộ điều khiển/blogController. php 0With blogController has used model “blogModel” with method get_blogs()
Với blogController có sử dụng chế độ xem “blog_index” Như vậy là xong, chúng ta kiểm tra kết quả 3/ If user access http. //ví dụ. com/blog/view/id thì sẽ xuất màn hình chi tiết của bài blog có id là “id” Tương tự như blog Controller ta bổ sung blogController with action view() for this function 4
With action view() has used model “blogModel” with method get_blog_detail()
Với blogController có sử dụng chế độ xem “blog_view” Như vậy là xong, chúng ta kiểm tra kết quả end. Qua bài hướng dẫn hơi dài, mình cố gắng xây dựng mô hình MVC rất chi tiết này, mong các bạn đóng góp ý kiến để bài viết hoàn thiện hơn |