2012-02-04 3 views
1

Я вижу, что в моделях cakePHP нет методов getter и setter для доступа к столбцам в базе данных (например, в symfony). Без этих методов getter и setter я не могу делать чисто программирование ООП в cakePHP.cakephp OOP getter and setter

Я не могу, например, создать объект с именем, скажем, книги, как:

$book = new Book(); 

А теперь доступ к свойствам книги как так:

$title = $book->getTitle(); 
$author = $book->getAuthor(); 

и т.д ... Кто-нибудь знает, как Я могу получить такие чистые функции OOP в cakePHP? Или мне нужно реализовать те геттеры и сеттеры себя в Модели.

Заранее спасибо

+5

«Без этих методов получения и сеттера я не могу делать чисто программирование ООП в cakePHP». Это не имеет никакого смысла для меня ... OOP _requires_ (уродливый) Getter/Setters? – KingCrunch

+0

Действительно, чистый ООП не нуждается в геттерах и сеттерах. См. [Java: есть ли геттеры и сеттеры злые?] (Http://stackoverflow.com/questions/565095/java-are-getters-and-setters-evil) и [оригинальная статья] (http: //www.javaworld .com/javaworld/jw-09-2003/jw-0905-toolbox.html) (игнорируйте всегда бессмысленное «злое» overdramatizing, все же некоторые соответствующие рекомендации в конце) и [оценка PHP] (http: // berryllium.nl/2011/02/getters-and-setters-evil-or-necessary-evil/) – mario

+0

Модели для торта вряд ли будут ООП для начала. Вы всегда можете реализовать свои собственные объекты поверх моделей Cake со всей необходимой OOPness. – deceze

ответ

2

Хотя он не использует набор или получить, это то, что вы ищете? http://book.cakephp.org/1.3/en/view/1028/field

Существует также такой вариант: http://book.cakephp.org/1.3/en/view/1026/findBy

Может быть, я не совсем понимаю, что именно вы пытаетесь достичь и почему метод требует именования включать набор и получить для того, чтобы быть считается «чистым оопом», как вы выразились. Я не читал нигде, что сеттеры и геттеры - это требование парадигмы ООП, которое считается «чистым оопом».

Однако, если вы застреваете, пытаясь что-то сделать, я буду рад помочь.