Tôi khá mới đối với Lập trình hướng đối tượng. Tôi hiểu khá nhiều về các khái niệm, nhưng thực tế nói, tôi đang có một thời gian thực sự khó tìm kiếm thông tin về cách sử dụng tốt nhất Các mô hình trong các ứng dụng Zend Framework của tôi.Zend Framework: Sử dụng Mô hình và Chế độ xem, các phương pháp hay nhất
Cụ thể, tôi có một Mô hình (không mở rộng bất kỳ thứ gì) không sử dụng Bảng cơ sở dữ liệu. Nó sử dụng getters và setters để truy cập các thành viên được bảo vệ của nó. Tôi thấy mình đang phải vật lộn với cách hiển thị tốt nhất mô hình này trong khung cảnh. Tôi không muốn logic trong xem mẫu của tôi, nhưng tôi thấy mình trong tình huống sau đây:
Trong điều khiển của tôi:
$object = new Object();
$object->setName('Foo Bar');
$this->view->object = $object;
Trong mẫu quan điểm của tôi:
<h2><?= $this->object->getName() ?></h2>
I don' Tôi thực sự thích các chức năng gọi điện trong các mẫu xem của mình nhưng tôi không biết cách nào tốt hơn để làm điều này. Tôi không muốn các thành viên Mẫu của tôi để được công khai, nhưng tôi về cơ bản muốn đạt được kết quả tương tự:
<h2><?= $this->object->name ?></h2>
Tôi không muốn điều khiển của tôi để làm tất cả những công việc vì phải biết mọi thứ về các mô hình:
$object = new Object();
$object->setName('Foo Bar');
$this->view->object = $object;
$this->view->object->name = $object->getName();
Thực tiễn tốt nhất khi sử dụng các mô hình trong khung công tác Zend là gì? Bất cứ ai có thể khuyên bạn nên bất kỳ hướng dẫn mà có thể giúp tôi hiểu mô hình này/Xem tiến thoái lưỡng nan trong Zend Framework?
Đây thực sự là một cách làm việc kém. Bạn không chỉ cho phép truy cập tùy ý vào tất cả các thuộc tính, cho dù chúng là (un) được tuần tự hóa/từ một biểu mẫu hay không, nó cũng làm quá tải mô hình với khái niệm ánh xạ, đó là điều thực sự được yêu cầu. – Saem
Đưa logic biểu mẫu vào mô hình kết hợp chế độ xem và mô hình cũng có dạng kém. Và như tôi đã nói, việc ghi đè hành vi mặc định là rất đơn giản và tránh sự cần thiết phải tạo ra các getters và các bộ định vị boilerplate ngu ngốc. –
Và nếu bạn nhìn vào lớp Zend_Db_Table_Row bạn sẽ thấy rằng Zend thực sự sử dụng một nguyên tắc tương tự để trưng ra các trường và giá trị của chúng từ các bảng. –