Example #1
0
 /**
  * Helper function
  * Retrieves data filters by model
  * @param persistr\Interfaces\Model $model
  * @param persistr\Object\Registry $registry
  * @return array
  */
 private static function getDataFiltersByModel(Interfaces\Model $model, persistr\Object\Registry $registry = null)
 {
     $className = $model->getClassName();
     if (self::persisted($className)) {
         $persistor = self::persistor($className);
     } else {
         $persistor = self::persistClass($className);
     }
     if (is_null($registry)) {
         $registry = $model->getRegistry();
     }
     $filter = null;
     if (!$registry->hasDataFilters() && $persistor->hasDataFilters()) {
         $filters = $persistor->getDataFilters();
         foreach ($filters as $filter) {
             if (is_object($filter)) {
                 $registry->addDataFilter(clone $filter);
             }
         }
     } else {
         $filter = $registry->getDataFilters();
     }
     return $filter;
 }