Giải thích về thực hiện điều khiển trong khuôn khổ
trừu tượng Đủ rồi, chúng ta hãy đào sâu vào những gì điều khiển của khung được thực sự làm. Tất cả các yêu cầu HTTP đến trong thông qua một điểm duy nhất. Cách mà các yêu cầu được định tuyến tất cả phụ thuộc vào các thông số của request. Các thông số điều khiển xác định bộ điều khiển để sử dụng. Các thông số hành động xác định hàm nào để gọi trong bộ điều khiển. Các mặc định là, điều khiển = 'mặc định' andaction = 'xem'. Để cho bộ điều khiển để xử lý các hành động khác nhau, nó phải thực thi một phương thức với chương trình đặt tên sau đây: public function ACTION_action () nơi HÀNH ĐỘNG là các giá trị của tham số theaction. Nếu các phương pháp hành động trả về một chuỗi, sau đó điều khiển sẽ in các header và footer trên chuỗi, nếu không điều khiển sẽ không làm bất cứ điều gì sau khi phương pháp hành động được gọi. Quay trở lại khoảng trống hay sai là hữu ích cho khi bạn thực sự phải tùy chỉnh đầu ra hoặc muốn tránh in header / footer hoàn toàn (ví dụ như đáp ứng dịch vụ web). Tất nhiên, tất cả các kiểm tra an ninh được thực hiện trước khi các phương pháp hành động để đảm bảo rằng người dùng sẽ được đăng nhập và có khả năng thích hợp. Để biết thêm thông tin về bộ điều khiển, đọc địa phương / mr / tài liệu, xem mã nguồn oflocal / mr / framework / điều khiển / *.
Xem
xem xử lý các bài thuyết trình và không xử lý bất kỳ chế biến, kinh doanh logic phức tạp.
Với sự ra đời của kết xuất đồ họa trong Moodle 2.0, Khung Moodlerooms bây giờ có thể sử dụng kết xuất đồ họa để tạo ra xem. Mặc dù, không phải mọi thiết bị đầu cuối điều khiển có thể cần một phương pháp renderer cụ thể, nó có lợi để viết render như họ có thể được tái sử dụng và ghi đè bởi các nhà phát triển chủ đề. Khung sẽ cung cấp một số kết xuất đồ họa mặc định mà có thể dễ dàng truy cập thông qua bộ điều khiển và Moodle API.
Ưu điểm của quan điểm (AKA Moodle kết xuất đồ họa):
• trình bày Cửa hàng.
• tách logic / mã xử lý từ mã hiển thị.
• render lại sử dụng được.
• Dễ dàng hơn để tùy chỉnh vẽ qua một plugin hoặc chủ đề.
mẫu
mô hình xử lý logic kinh doanh bằng cách xử lý dữ liệu và lưu trữ quy tắc kinh doanh trong họ.
Mô hình nhà dữ liệu của ứng dụng của bạn để có thể dễ dàng hơn đảm bảo tính chính xác của dữ liệu. Mô hình không chứa logic hiển thị, nhưng đúng hơn, chỉ logic cho việc truy cập, thiết lập và xác nhận dữ liệu. Nó được khuyến khích rằng các plugin có thư mục mô hình riêng của họ đến nhà cắm các lớp mô hình cụ thể.
Ưu điểm của mô hình:
• logic kinh doanh cửa hàng. EG:. Các giá trị hợp lệ cho tài sản foo widget
. • Tái sử dụng
• Dễ dàng hơn để kiểm tra và sửa đổi.
• Giúp làm giảm sự trùng lặp mã.
Helpers
Các mẫu thiết kế helper được mượn từ Helpers Hành động Zend Framework. Nhãn hiệu của Zend có một mô tả tuyệt vời về mục đích của những người giúp đỡ:
. Hành động Helpers nhằm giảm thiểu sự cần thiết phải mở rộng các hành động điều khiển trừu tượng để có thể tiêm hành động phổ biến các chức năng điều khiển
Vì vậy, nói cách khác, những người giúp việc cung cấp một cách dễ dàng để tái sử dụng mã thông qua ứng dụng mà không cần phải quá mở rộng lớp học, mà có thể dẫn đến vô tình ghi đè lên một chức năng được sử dụng bởi các lớp cha mẹ (ví dụ như một phiên bản mới của các lớp cha mẹ đi ra và thực hiện một chức năng mới mà bạn đã thực hiện trong lớp con của bạn) .
việc thực hiện của những người giúp đỡ trong khung Moodlerooms không theo thực hiện Zend chính xác, mà đúng hơn là nó đã được đơn giản hóa và khái quát hóa. Vì vậy, việc thiết kế trợ giúp trong khung Moodlerooms có thể được sử dụng bên ngoài của bộ điều khiển để toàn bộ ứng dụng có thể sử dụng lại các mã trong những người trợ giúp. Điều này có nghĩa rằng những người giúp việc bây giờ giống như một thư viện trợ giúp đó là dễ dàng để truy cập, tải trọng động và đòi hỏi rất ít thiết lập.
Helpers không thay thế mô hình hoặc các lớp học khác với mục đích rõ ràng
Các điểm Helpers không phải là để thay thế mô hình hoặc các lớp học khác, nhưng để thay thế các tập tin như /path/to/plugin/locallib.php và cung cấp chức năng qua các lớp trong plugin của bạn.
Ưu điểm của những người giúp đỡ về thư viện truyền thống:
• số một trong những sử dụng và lợi thế của người giúp việc là trong bộ điều khiển. Điều này cho phép bộ điều khiển vẫn gầy bởi chỉ cần có phương pháp liên quan đến việc định tuyến, an ninh, vv
• Helpers thay thế cần thiết cho một /path/to/plugin/locallib.php mà có thể đồ sộ, chưa được tổ chức và sử dụng nhiều bộ nhớ hơn bởi vì nó đã được nạp tất cả cùng một lúc mỗi khi bất kỳ phương pháp được sử dụng.
• Helpers đang được coi là độc thân, vì vậy nhà nước của họ vẫn không đổi trong suốt thực thi các kịch bản của bạn. Điều này có nghĩa rằng bất kỳ thiết lập chỉ xảy ra một lần, bộ nhớ đệm là dễ dàng, giúp đỡ của bạn có thể có một nhà nước.
• Không có vấn đề không gian tên. Lớp của helper được dựa trên vị trí trong các cơ sở mã và tên của nó. Không hơn, block_crazy_block_name_now_we_get_to_function_name () loại định nghĩa hàm.
• Tự động tải. Các tập tin lớp được bao gồm và các lớp được khởi tạo chỉ cho những người giúp đỡ được sử dụng. Điều này là tốt hơn so với tải một thư viện 10.000 dòng tập mọi lúc.
• Dễ dàng cài đặt và nó là như nhau cho mọi người giúp đỡ. Chỉ cần bao gồm bootstrap.php của khuôn khổ, làm cho một thể hiện của các helper và bạn
đang được dịch, vui lòng đợi..
