Mẹo Dự án PHP OOP MVC
Kinh Nghiệm Hướng dẫn Dự án PHP OOP MVC Chi Tiết
Hoàng Đại Thắng đang tìm kiếm từ khóa Dự án PHP OOP MVC được Cập Nhật vào lúc : 2022-12-16 23:38:02 . Với phương châm chia sẻ Thủ Thuật về trong nội dung bài viết một cách Chi Tiết 2022. Nếu sau khi Read tài liệu vẫn ko hiểu thì hoàn toàn có thể lại Comment ở cuối bài để Ad lý giải và hướng dẫn lại nha.Model–View–Controller (MVC) là một mẫu kiến trúc được sử dụng trong công nghệ tiên tiến phần mềm. Việc sử dụng thành công mẫu sẽ tách biệt logic trách nhiệm khỏi những xem xét về giao diện người tiêu dùng, dẫn đến một ứng dụng thuận tiện và đơn giản sửa đổi giao diện trực quan của ứng dụng hoặc những quy tắc trách nhiệm cơ bản mà không ảnh hưởng đến những ứng dụng khác. Trong MVC, quy mô đại diện cho thông tin (tài liệu) của ứng dụng;
Nội dung chính Show- ứng dụng ví dụViệc thực hiệnNgươi mâuPhần kết luận
- Model – đại diện cho hành vi và tài liệu của ứng dụng. Nó cũng thường được gọi là tên gọi miền. Miền đại diện cho vấn đề bạn đang nỗ lực giải quyếtView – đại diện cho bài thuyết trình. Nó hoàn toàn có thể truy vấn quy mô về trạng thái của nó và tạo ra sự trình bày của những đối tượng mô hìnhBộ điều khiển – đại diện cho quy trình thao tác của ứng dụng, nó xử lý những tham số yêu cầu và quyết định phải làm gì nhờ vào chúng. Thông thường, điều này liên quan đến thao tác với quy mô và hiển thị tài liệu trong chính sách xem đã chọn
Khi tôi nghĩ về mẫu MVC, tôi chỉ hoàn toàn có thể thấy một khía cạnh tiêu cực và một số trong những khía cạnh tích cực. Điều tiêu cực là mẫu MVC đưa vào dự án công trình bất Động sản sự phức tạp, điều này hoàn toàn có thể là gánh nặng cho những ứng dụng đơn giản, nhưng khi ứng dụng của bạn phát triển, khía cạnh tiêu cực này sẽ bị ảnh hưởng bởi những khía cạnh tích cực. Tôi sẽ mô tả vài khía cạnh tích cực mà tôi hoàn toàn có thể nghĩ ra
MVC tách quy mô khỏi chính sách xem, nghĩa là tài liệu khỏi màn biểu diễn của nó. Việc tách một quy mô khỏi màn biểu diễn của nó là một trong những quy tắc cơ bản của một thiết kế phần mềm tốt. Khi bạn tách một quy mô khỏi màn biểu diễn của nó, bạn hoàn toàn có thể thuận tiện và đơn giản thêm nhiều màn biểu diễn rất khác nhau của cùng một quy mô. Ví dụ: một ứng dụng web thường có màn biểu diễn HTML, được sử dụng bởi trình duyệt web và màn biểu diễn JSON được sử dụng bởi ứng dụng khách JavaScript AJAX
Vai trò MVC đặc biệt được cho phép chúng tôi phân phối nhân lực tốt hơn trong một dự án công trình bất Động sản lớn. Ví dụ: những Chuyên Viên về tên miền và cơ sở tài liệu hoàn toàn có thể thao tác trên một quy mô trong khi những nhà thiết kế web thao tác trên một khung nhìn. Bởi vì mỗi phần được phát triển bởi những nhà phát triển chuyên biệt, một ứng dụng hoàn toàn có thể có chất lượng tốt hơn. Điều này cũng ảnh hưởng đến thời gian phát triển, những dự án công trình bất Động sản hoàn toàn có thể được xây dựng nhanh hơn vì những nhà phát triển chuyên biệt hoàn toàn có thể thao tác đồng thời, từng người trong nghành trình độ của tớ mà không ảnh hưởng đến việc làm của những nhà phát triển khác (nhiều)
Việc bảo dưỡng và tăng cấp một ứng dụng phức tạp sẽ thuận tiện và đơn giản hơn vì nhà phát triển hoàn toàn có thể xem ứng dụng như một loạt những “mô-đun”, mỗi mô-đun gồm có Mô hình, Chế độ xem và phần Bộ điều khiển. Nhà phát triển hoàn toàn có thể sửa đổi một “mô-đun” và không cần lo ngại rằng những thay đổi mà anh ta đưa ra sẽ ảnh hưởng đến những phần khác của khối mạng lưới hệ thống (tôi tin rằng điều này được gọi là tách mối quan tâm). Ngoài ra, khi thêm hiệu suất cao mới vào ứng dụng, nhà phát triển hoàn toàn có thể chỉ việc tạo một “mô-đun” mới
ứng dụng ví dụ
Đối với hướng dẫn này, tôi đã tạo trình quản lý danh bạ đơn giản tương hỗ những thao tác CRUD cơ bản. Người dùng hoàn toàn có thể thêm một liên hệ mới, xóa nó, hiển thị rõ ràng liên hệ và hiển thị list tất cả những liên hệ. Tôi sẽ gọi những hoạt động và sinh hoạt giải trí sinh hoạt này là hành vi. Do đó, ứng dụng này còn có bốn hành vi rất khác nhau. thêm liên hệ, xóa liên hệ, hiển thị liên hệ và list liên hệ. Bạn hoàn toàn có thể xem kết quả của hành vi list liên hệ trong ảnh chụp màn hình hiển thị phía dưới
Việc thực hiện
Việc thực hiện gồm có những chỉ số. php và một số trong những tệp được đặt trong thư mục quy mô, chính sách xem và bộ điều khiển
chỉ mục. tập lệnh php là vấn đề truy cập trung tâm, tất cả những yêu cầu đều đi qua nó
Bộ điều khiển được định nghĩa trong thư mục bộ điều khiển
Danh bạTrình điều khiển. tập tin phpChế độ xem ứng dụng được xác định trong thư mục xem
Mâu liên hệ. php phụ trách hiển thị biểu mẫu “Thêm liên hệ mới” cho những người dân dùngtiếp xúc. php phụ trách hiển thị rõ ràng liên hệ, danh bạ. php phụ trách hiển thị list liên hệlỗi. php phụ trách hiển thị lỗiMô hình được xác định trong thư mục quy mô
Nó gồm có ba phần
Danh bạCổng. php là cổng tài liệu bảng vào bảng cơ sở tài liệu, tôi sẽ chỉ cho bạn sau,Danh bạDịch vụ. đối tượng php xác định API quy mô được sử dụng bởi bộ điều khiểnXác nhận ngoại lệ. php là một ngoại lệ được ném từ quy mô và được bộ điều khiển bắt trong trường hợp có bất kỳ lỗi xác thực nào. Sử dụng ValidationException, quy mô hoàn toàn có thể chú ý bộ điều khiển về những lỗi xác thực và bộ điều khiển hoàn toàn có thể chuyển chúng đến dạng xem để chúng hoàn toàn có thể được hiển thịNgươi mâu
Trước khi tôi lý giải mã nguồn, bạn phải biết đôi điều về quy mô. Mô hình có một thực thể duy nhất - Liên hệ được duy trì trong bảng liên hệ. Liên hệ không còn hành vi nên tôi đã sử dụng cấu trúc bảng SQL để xác định nó
CREATE TABLE `contacts` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(128) NOT NULL, `phone` varchar(64) DEFAULT NULL, `email` varchar(255) DEFAULT NULL, `address` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) )Không có lớp nào trong quy mô đại diện cho thực thể Người liên hệ, thay vào đó tôi đã sử dụng những đối tượng PHP tiêu chuẩn được tạo tự động từ bản ghi cơ sở tài liệu (tôi biết, nó không thật OO nhưng nó rất nhanh)
Chúng ta hoàn toàn có thể làm gì với quy mô đáng kinh ngạc đó?
class ContactsService private $contactsGateway = NULL; private function openDb() if (!mysql_connect("localhost", "root", "")) throw new Exception("Connection to the database server failed!"); if (!mysql_select_db("mvc-crud")) throw new Exception("No mvc-crud database found on database server."); private function closeDb() mysql_close(); public function __construct() $this->contactsGateway = new ContactsGateway(); public function getAllContacts($order) try $this->openDb(); $res = $this->contactsGateway->selectAll($order); $this->closeDb(); return $res; catch (Exception $e) $this->closeDb(); throw $e; public function getContact($id) try $this->openDb(); $res = $this->contactsGateway->selectById($id); $this->closeDb(); return $res; catch (Exception $e) $this->closeDb(); throw $e; return $this->contactsGateway->find($id); private function validateContactParams( $name, $phone, $email, $address ) empty($name) ) $errors[] = 'Name is required'; if ( empty($errors) ) return; throw new ValidationException($errors); public function createNewContact( $name, $phone, $email, $address ) try $this->openDb(); $this->validateContactParams($name, $phone, $email, $address); $res = $this->contactsGateway->insert($name, $phone, $email, $address); $this->closeDb(); return $res; catch (Exception $e) $this->closeDb(); throw $e; public function deleteContact( $id ) try $this->openDb(); $res = $this->contactsGateway->delete($id); $this->closeDb(); catch (Exception $e) $this->closeDb(); throw $e;Đối tượng ContactsService không thao tác trực tiếp với cơ sở tài liệu; . Kỹ thuật này được gọi là Cổng tài liệu bảng
NguồnTrước tiên hãy nhìn vào chỉ số. nguồn php
handleRequest(); ?>Tập lệnh này còn có vai trò đơn giản, nó khởi tạo đối tượng bộ điều khiển và trao cho nó quyền điều khiển ứng dụng thông qua phương thức handleRequest
Tất cả những yêu cầu phải đi qua chỉ mục. php vì MVC yêu cầu tất cả những yêu cầu được xử lý bởi bộ điều khiển được gọi từ chỉ mục. tập lệnh php. Các ứng dụng Web MVC thường chuyển hướng tất cả những yêu cầu đi qua chỉ mục. php hoàn toàn có thể được thực hiện trong thông số kỹ thuật sever
Hãy xem phương thức handleRequest của cục điều khiển
class ContactsController ... public function handleRequest() $op = isset($_GET['op'])?$_GET['op']:NULL; try if ( !$op catch ( Exception $e ) $this->showError("Application error", $e->getMessage()); ...Phương thức handleRequest hoạt động và sinh hoạt giải trí như một bộ điều phối cho những hành vi. Phương thức quyết định hành vi nào nó sẽ gọi nhờ vào giá trị của tham số HTTP GET “op” và gọi phương thức thực hiện hành vi đó. Nếu có bất kỳ ngoại lệ nào được ném ra từ những phương thức hành vi, phương thức handleRequest sẽ bắt chúng và in thông báo lỗi
Bây giờ, hãy xem xét những phương pháp hành vi
Đầu tiên, tất cả chúng ta có phương thức listContacts có quy trình thao tác đơn giản, nó đọc một tham số thiết yếu để sắp xếp những liên hệ, nhận những liên hệ đã sắp xếp từ quy mô, tàng trữ nó trong biến số liên hệ và ở đầu cuối, gồm có chính sách xem
Thứ hai, tất cả chúng ta có phương thức deleteContact đọc id của liên hệ và yêu cầu quy mô xóa nó. Cuối cùng, nó chuyển hướng người tiêu dùng trở lại chỉ mục. tập lệnh php đổi lại sẽ gọi hành vi list liên hệ. Hành động xóa liên hệ không thể hoạt động và sinh hoạt giải trí nếu không còn tham số id, do đó, phương thức sẽ đưa ra một ngoại lệ nếu id của liên hệ không được đặt
Phương thức thứ ba là phương thức showContact tương tự như phương thức deleteContact nên tôi sẽ không tiêu tốn lãng phí dung tích để lý giải về nó
Cuối cùng, phương thức saveContact hiển thị biểu mẫu “Thêm liên hệ mới” hoặc xử lý tài liệu được truyền từ biểu mẫu nếu nó được gửi. Nếu bất kỳ ValidationException nào xảy ra trong quy mô, những lỗi sẽ được thu thập từ ngoại lệ và được chuyển đến dạng xem. Lý tưởng nhất là khung nhìn sẽ hiển thị nó (và thực tế là như vậy, như bạn sẽ sớm thấy)
Bây giờ hãy xem một số trong những chính sách xem, trước tiên tôi muốn cho bạn xem những địa chỉ liên hệ. chính sách xem php đơn giản
Name | Phone | Address | ||
---|---|---|---|---|
name); ?> | phone); ?> | email); ?> | address); ?> | delete |
những địa chỉ liên lạc. Chế độ xem php, được sử dụng bởi hành vi list liên hệ, yêu cầu biến số liên hệ phải được lấp đầy bằng những đối tượng liên hệ. Biến được điền vào phương thức listContacts và được chuyển đến dạng xem bằng phương pháp sử dụng quy tắc phạm vi PHP, sau đó dạng xem sử dụng tài liệu từ nó để hiển thị những liên hệ dưới dạng bảng HTML
Tập lệnh như danh bạ. tập lệnh php được gọi là mẫu. Với một mẫu, nhà phát triển xác định một cấu trúc cố định và thắt chặt chứa đầy những giá trị biến từ ứng dụng (tại thời điểm chạy) và sau đó được trình bày cho những người dân tiêu dùng. Các mẫu chỉ chứa logic trình bày, do đó, chúng hoàn toàn có thể hiểu được bởi những người dân không phải là lập trình viên (nhà thiết kế,…), điều này làm cho nó rất hữu ích và thường được sử dụng trong những ứng dụng web
Bây giờ tất cả chúng ta hãy xem dạng xem phức tạp hơn, biểu mẫu liên hệ. chính sách xem php
Chế độ xem này, cũng là một mẫu, được sử dụng bởi hành vi thêm liên hệ và hiển thị biểu mẫu “Thêm liên hệ mới” cho những người dân tiêu dùng. Tất cả những biến theo yêu cầu của mẫu được điền vào phương thức hành vi saveContact, gồm có cả biến lỗi, nếu được đặt, sẽ được mẫu sử dụng để hiển thị những lỗi xảy ra trong quy mô khi nỗ lực tạo một liên hệ mới để người tiêu dùng hoàn toàn có thể sửa lỗi gây ra tài liệu không hợp lệ
Bản mẫu này cho tất cả chúng ta thấy tính hữu ích của việc phân tách chính sách xem bộ điều khiển, chính bới, nếu không còn nó, tất cả chúng ta sẽ đặt logic bộ điều khiển từ phương thức saveContact vào biểu mẫu liên hệ. tập lệnh php. Tôi nói tập lệnh chính bới nếu một mẫu chứa bất kỳ logic điều khiển nào trong đó, thì nó không hề là một mẫu nữa
Phần kết luận
Tôi kỳ vọng bạn hiểu MVC và bạn hiểu nó, hãy thử triển khai một số trong những ứng dụng mẫu bằng phương pháp sử dụng khung MVC đơn giản của riêng bạn, nhưng đừng phát minh lại bánh xe vì có rất nhiều khung MVC xuất sắc ngoài kia, cho bất kỳ ngôn từ lập trình nào. Chỉ cần google nó lên
Như mọi khi, nếu bạn có bất kỳ thắc mắc hoặc đề xuất nào, đừng ngần ngại viết chúng vào biểu mẫu nhận xét phía dưới
Tải xuống dự án công trình bất Động sản hoàn hảo nhất
Nguồn tải xuống
Masud Alam
Xin chào, Tên tôi là Masud Alam, thích thao tác với Công nghệ nguồn mở, sống ở Dhaka, Bangladesh. Tôi là Kỹ sư được ghi nhận về ZEND PHP 5. 3, Tôi đã phục vụ trong Mười lăm năm đầu tiên của tớ ở một số trong những vị trí lãnh đạo tại AmarBebsha Ltd với tư cách là CTO, Winux Soft Ltd, SSL Wireless Ltd, Cơ quan Phát triển Quốc tế Canada (CIDA), World Vision, Care Bangladesh, Helen Keller, US AID và MAX Group . , nhưng giờ đây tôi là người sáng lập và Giám đốc điều hành của TechBeeo Software Company Ltd. Tôi cũng là Giảng viên khóa học Chứng chỉ ZCPE PHP 7 và khóa học lập trình web chuyên nghiệp tại Học viện đào tạo lập trình viên w3 – Học viện đào tạo số 1 toàn nước
Tải thêm tài liệu liên quan đến nội dung bài viết Dự án PHP OOP MVC programming php
Post a Comment