1: <?php
2:
3: class ControllerInspector {
4:
5: public static function actions(\Controller $controller) {
6: $parentClassMethods = get_class_methods(get_parent_class($controller));
7: $subClassMethods = get_class_methods($controller);
8: $actions = array_diff($subClassMethods, $parentClassMethods);
9: if ($controller->scaffold !== false) {
10: foreach (array('index', 'add', 'view', 'edit', 'delete') as $action) {
11: if (!in_array($action, $actions)) {
12: $actions[] = $action;
13: }
14: }
15: }
16: return array_filter($actions, function($value) {
17: return strpos($value, '_') !== 0;
18: });
19: }
20:
21: public static function actionExists(\Controller $controller, $action) {
22: return in_array($action, self::actions($controller));
23: }
24:
25: }
26: