'ing', 'after' => 'ed'); $radicals = array('sav', 'validat', 'creat', 'updat', 'delet'); foreach ($radicals as $rad) { foreach ($hooks as $hook => $event) { $method = $hook.ucfirst($rad).'e'; if (method_exists($myself, $method)) { $eventMethod = $rad.$event; self::$eventMethod(function($model) use ($method){ return $model->$method($model); }); } } } } }