10/10/2018, 11:22

Giúp đỡ em hiểu về mô hình MVC !

+> Em đang tìm hiểu về mô hình MVC thì em có tải trên Google tại các diễn đàn các code Demo về MVC thì em hiểu như thế này :

- Thư mục Model : theo em hiểu là chứa các file , trong các file là các hàm kết nối CSDL , xử lý dữ liệu , Insert , Delete , Update ,....Đúng ko các anh ???

- Thư mục Controller : theo em hiểu là để xử lý yêu cầu của Client , ví dụ khi Client POST hoặc GET thì nó xử lý và gọi các hàm xử lý về dữ liệu trong thư mục Model tương ứng với yêu cầu của Client . Sau đó đưa kết quả hiển thị vào các file trong thư mục View . Nhưng em đang thắc mắc là dữ liệu được hiển thị tại các file của thư mục views hay là tại các file của Controller ( trong các file của Controller ta include các file từ thư mục views ) ????

- Thư mục View : theo em hiểu là nơi chứa Form HTML , nói chung là về giao diện và chứa kết quả hiển thị dữ liệu . Vậy đúng ko các anh ????

- Các anh chỉ giúp đỡ em chi tiết với , và cho em xin 1 số ví dụ mới và chuẩn nhất 2011 về mô hình MVC với
php_code viết 13:31 ngày 10/10/2018
Các câu hỏi và trả lời của bạn đều đúng.

Mình có bổ sung ở ý 2 1 chút. Mọi dữ liệu đều dc show ở view, k show ở controller.

Học MCV bạn chịu khó học cho kỹ array trước nhé.

K cần phải tìm "ví dụ chuẩn nhất 2011 về mô hình MCV" đâu bạn, có tìm cũng k có, mỗi người sẽ code theo 1 kiểu. Bạn nên đi từ php thuần lên, học cái đó vững, array vững,....thì MCV sẽ k thành vấn đề.

Khi MVC cứng 1 chút thì chịu khó nghiên cứu tiếp Framwork luôn.
mr.mabu viết 13:28 ngày 10/10/2018
ok,bạn hiểu vậy là tốt rùi,tìm cái FW nào mà học
Để hiểu cặn kẽ về MVC thì e là bạn phải thuần thục design pattern,hiểu như bạn là học FW tốt rùi
Sau này đọc thêm về design pattern cũng được
FeS viết 13:35 ngày 10/10/2018
Được gửi bởi hocphp_2011
+> Em đang tìm hiểu về mô hình MVC thì em có tải trên Google tại các diễn đàn các code Demo về MVC thì em hiểu như thế này :

- Thư mục Model : theo em hiểu là chứa các file , trong các file là các hàm kết nối CSDL , xử lý dữ liệu , Insert , Delete , Update ,....Đúng ko các anh ???

- Thư mục Controller : theo em hiểu là để xử lý yêu cầu của Client , ví dụ khi Client POST hoặc GET thì nó xử lý và gọi các hàm xử lý về dữ liệu trong thư mục Model tương ứng với yêu cầu của Client . Sau đó đưa kết quả hiển thị vào các file trong thư mục View . Nhưng em đang thắc mắc là dữ liệu được hiển thị tại các file của thư mục views hay là tại các file của Controller ( trong các file của Controller ta include các file từ thư mục views ) ????

- Thư mục View : theo em hiểu là nơi chứa Form HTML , nói chung là về giao diện và chứa kết quả hiển thị dữ liệu . Vậy đúng ko các anh ????

- Các anh chỉ giúp đỡ em chi tiết với , và cho em xin 1 số ví dụ mới và chuẩn nhất 2011 về mô hình MVC với
Domain model ko phải là data access layer nha bạn, đừng để mấy cái ví dụ tào lao đó làm "confused"
Cái bạn đang đề cập tới là MVC-Push. Controller chọn model và data được đổ từ controller vào view.

Được gửi bởi mr.mabu
ok,bạn hiểu vậy là tốt rùi,tìm cái FW nào mà học
Để hiểu cặn kẽ về MVC thì e là bạn phải thuần thục design pattern,hiểu như bạn là học FW tốt rùi
Sau này đọc thêm về design pattern cũng được
MVC là Architecture Pattern thì đúng hơn Design Pattern. Mà để hiểu MVC cũng ko đến mức phải gạo cho nhuyễn 23 cái pattern kinh điển đâu
mr.mabu viết 13:31 ngày 10/10/2018
học ZF thì cứ lên document của nó mà học,vào zendvn học cái cơ bản
Hiểu về MVC như bạn là được rồi,đừng mất thêm thời gian học lí thuyết suông nữa,cứ viết lung tung đi rồi sau này sẽ hiểu
FeS viết 13:38 ngày 10/10/2018
@hocphp_2011: Cái tutorial đó đúng rồi bạn. Về cơ bản có thể xem nó là một ứng dụng viết theo kiến trúc MVC-Push. Sở dĩ nó không có "view.php" vì đó chỉ là ví dụ nhỏ cho người mới học hiểu. Trong thực tế sẽ có view để render.

Model: xử lý business logic - tức là các thao tác tính toán xử lý, validate...
Controller: điều phối request và respond, gọi model và view.
View: render kết quả với dữ liệu được đổ từ controller vào.

"Ví dụ cực chuẩn" có lẽ không có đâu bạn. Vì MVC chỉ là gợi ý thiết kế chứ không phải đặc tả chi tiết cài đặt cho nên người ta sẽ cài đặt khác nhau tùy theo triết lý thiết kế.

Mới học thì khoan nãy học Zend Framework, bạn nên học một số cái dễ hơn như CakePHP hay CodeIgniter để có khái niệm trước. Về cơ bản thì các framework đều giống nhau; đều hoạt động theo /controller/action/ url; đều có dispatcher, router...
FeS viết 13:31 ngày 10/10/2018
Validate ở đây là validate dữ liệu đầu vào bạn ah. Nếu nhét validation vào controller thì gây ra cái gọi là fat controller.
Validation thuộc domain model. Insert, update, delete... (data access layer) được xem như đóng gói trong model.
ngoc_viet08 viết 13:27 ngày 10/10/2018
ko if else sao mà phân biệt yêu cầu người dùng mà tính toán xử lý. thằng controller cứ như bộ não ấy. ko if else nó tính toán bằng niềm tin.
http://en.wikipedia.org/wiki/Model%E...0%93controller
The model manages the behavior and data of the application domain, responds to requests for information about its state (usually from the view), and responds to instructions to change state (usually from the controller). In event-driven systems, the model notifies observers (usually views) when the information changes so that they can react.
The view renders the model into a form suitable for interaction, typically a user interface element. Multiple views can exist for a single model for different purposes. A viewport typically has a one to one correspondence with a display surface and knows how to render to it.
The controller receives user input and initiates a response by making calls on model objects. A controller accepts input from the user and instructs the model and viewport to perform actions based on that input.
theo đó :
controller , đầu não , nhận yêu cầu , dữ liệu từ client để điều phối và sử dụng Model và View 1 cách phù hợp.

Model tính toán xử lý , làm việc với database.

View hiển thị

- Nhưng trong ví dụ dưới này em thấy họ kiểm tra điều kiện với if....else trong các file của thư mục Controllers đó anh :

http://php-html.net/tutorials/model-...roller-in-php/

- Còn trong các file của thư mục Models em ko thấy có bất cứ cái if...else nào cả .
tùy ví dụ chứ thường model mới tính toán , xử lý , validation đuối!

bắt tay làm là hiểu.
php_code viết 13:23 ngày 10/10/2018
Chủ thớt k chịu viết để để "cảm nhận" MCV, chỉ ngồi học lý thuyết suông.

Bạn đã thuần PHP chưa? đã hiểu array chưa? 1 số thứ khác nữa?
kenphan.info viết 13:29 ngày 10/10/2018
MVC s a very nice way to build web apps because it's clear and easy to maintain. It allows you to reuse a lot of code (your use of model code is shared across different views) or to change your input source (if your data base changes, you only need to modify the Model, the rest of your app works the same !) and your formatting (same data for a Web page and a RSS stream...) => all in your head
Bài liên quan
0