X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Ffactories%2Fclass_BaseFactory.php;h=3a89bac11fe335d4701061615be7fca82fff954d;hp=88b0ed407ec13de3a7d0b9215b7636325912bebc;hb=ae54dca581224b5fd6da5f90bb32f07eec43845e;hpb=45af8ed7a30c97088f29f0a2bb6ffcd4ab1ee5d7;ds=sidebyside diff --git a/inc/classes/main/factories/class_BaseFactory.php b/inc/classes/main/factories/class_BaseFactory.php index 88b0ed40..3a89bac1 100644 --- a/inc/classes/main/factories/class_BaseFactory.php +++ b/inc/classes/main/factories/class_BaseFactory.php @@ -22,6 +22,16 @@ * along with this program. If not, see . */ class BaseFactory extends BaseFrameworkSystem { + /** + * Total objects generated + */ + private static $total = 0; + + /** + * Counter of all objects + */ + private static $objectCounters = array(); + /** * Protected constructor * @@ -32,6 +42,44 @@ class BaseFactory extends BaseFrameworkSystem { // Call parent constructor parent::__construct($className); } + + /** + * Count given object + * + * @param $className Name of the class we shall count + */ + protected static final function countObject ($className) { + // Count it up in total sum + self::$total++; + + // Do we have an entry? + if (!isset(self::$objectCounters[$className])) { + // No, then generate one + self::$objectCounters[$className] = 0; + } // END - if + + // Count it up again + //* NOISY-DEBUG: */ print __METHOD__.': className=' .$className . "\n"; + self::$objectCounters[$className]++; + } + + /** + * Static getter for total object count + * + * @return $total Total amount of generated objects + */ + public static final function getTotal () { + return self::$total; + } + + /** + * Static getter for all object counters + * + * @return $objectCounters An array with all object counters + */ + public static final function getAllCounters () { + return self::$objectCounters; + } } // [EOF]