logo       

Re: Best practices in a thin-controller application: msg#00124

php.zend.framework.mvc

Subject: Re: Best practices in a thin-controller application



On Sat, Jul 19, 2008 at 1:35 AM, Adam Jensen <jazzslider-Re5JQEeQqe8AvxtiuMwx3w@xxxxxxxxxxxxxxxx> wrote:
<snip/>

OK...so if the object can't be constructed valid, it shouldn't be
constructed at all.  As far as I know, the only way to do that in PHP
is with exceptions, as per my first example.  And then I can use
multiple exception subclasses to handle the various reasons why the
construction failed, which the controller can use to provide the user
with appropriate error messages.


So -- would you advocate, e.g., a model constructor roughly like

function __construct($id = null) {

   if (! $id) { throw new Exception("missing id parameter"); }

   if (!$this->isValidId($id)) {throw new Exception("invalid id"); }

   // instantiate a subclass of Zend_Db_Table_Abstract $this->someTable

   if (! $object = $this->someTable->find($id)) {

              throw new Exception("record $id not found"); }
 
  // continue initializing etc

}

I seem to recall reading somewhere that throwing exceptions in a constructor is bad form but I forget where or why.



--
David Mintz
http://davidmintz.org/

The subtle source is clear and bright
The tributary streams flow through the darkness
<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise