-- [email protected] <[email protected]> wrote (on Wednesday, 03 June 2009, 02:13 PM -0500): > Andrew Ballard wrote: > > I have been looking over the data mapper pattern used in the current > > Quickstart. I like the separation of the data model from the storage, > > but I have a question. > > > > In the guestbook model, setId() and setCreated() are declared public. > > I realize this is necessary in the example because the values are > > being set by the mapper, which is external to the domain model class. > > However, I would think that it would be desirable some properties such > > as these one to be generally read-only. Is there any way to control > > which external classes are able to use these methods? Java has a > > package scope that would work, but PHP doesn't even have a concept of > > packages in its OO implementation. > > > > Andrew > > > If you can have the external classes be derived classes, then you can > make them protected and the derived classes can access them.
But in the case of mappers, that doesn't work; the intention is to separate the domain objects from the data persistence, and this is done via the DataMapper. Having it extend the domain object would be counter-productive. -- Matthew Weier O'Phinney Project Lead | [email protected] Zend Framework | http://framework.zend.com/
