Re: DataObjects - Reset?

From: Date: Wed, 18 Dec 2002 04:12:28 +0000
Subject: Re: DataObjects - Reset?
References: 1  Groups: php.pear.general 
Request: Send a blank email to pear-general+get-3027@lists.php.net to get a copy of this message
Sorry for not getting back sooner - been a bit busy, with php#, and fixing my sons windows box (that he seems to have destroyed :)
Hi all, thanks in advance for any feedback. I am try to run a series of validation on data before running an insert or delete or whatever. The thing is that if I run a fetch() on the data, and then subsequently try an insert(), the data that was set during the fetch() is still assigned to the member vars.
Is there some way to simply 'reset' an instance of the DO class so that it assumes all member var information is empty?
At present no, there are a number of reasons for this - primarily, if you extend the class and add some extra variables eg. $this->percentSold = $this->inStock / $this->maxStock; there is is not really 100% consistant way of removing them. A simple method, obviously would be just to take the table definition, and reset that eg. something like $keys = array_keys($this->_get_table()); foreach ($keys as $k) { unset($this->$k); } If you think this is valueable - I'll add it as DB_DataObject::unsetObjectVars(); The other option would be to unset everything that is not private : eg. $keys = array_keys(get_object_vars()); foreach ($keys as $k) { if ($k{0} == '_') continue; unset($this->$k); } The best way to do it really is to create new instances of the object. , or to clone the object.., rather than working on the same object all the time.. out of interest - are you looking at using it for phpshop? or just another project? Regards Alan
This will help when doing multiple validation checks followed by an update/insert/delete from the database. Thanks! Pablo
-- Can you help out? Need Consulting Services or Know of a Job? http://www.akbkhome.com

« previous php.pear.general (#3027) next »