optimize Tinebase_Record_Abstract::_hasToArray
authorPaul Mehrer <p.mehrer@metaways.de>
Sun, 22 Dec 2013 14:20:07 +0000 (15:20 +0100)
committerPhilipp Schüle <p.schuele@metaways.de>
Mon, 23 Dec 2013 11:20:09 +0000 (12:20 +0100)
as most properties are no objects, the old logic called is_object twice, it just stacks over time! Also a call to in_array AND class_implements is slower than just one call to method_exists.

For showing a list of 50 addressbook entries this saves around 50-60ms while xhprof being turned on on my local machine

Change-Id: I675b342c02c101ce0eb4cec9f2fe080f10ab05fa
Reviewed-on: https://gerrit.tine20.org/tine20/2677
Tested-by: jenkins user
Reviewed-by: Philipp Schüle <p.schuele@metaways.de>
tine20/Tinebase/Record/Abstract.php

index 4f00c38..be986bc 100644 (file)
@@ -525,10 +525,7 @@ abstract class Tinebase_Record_Abstract implements Tinebase_Record_Interface
      */
     protected function _hasToArray($mixed)
     {
-        return (is_object($mixed) && 
-                        (in_array('Tinebase_Record_Interface', class_implements($mixed)) || 
-                        $mixed instanceof Tinebase_Record_Recordset) ||
-                        (is_object($mixed) && method_exists($mixed, 'toArray')));
+        return is_object($mixed) && method_exists($mixed, 'toArray');
     }
     
     /**