controller.abstract.class.php 683 B

123456789101112131415161718192021222324252627
  1. <?php
  2. namespace Juju\App;
  3. require_once('router.class.php');
  4. use \Juju\Base;
  5. abstract class Controller {
  6. private $name;
  7. public abstract static function handle(Router $router);
  8. public static function controllers(){
  9. return array_filter(get_declared_classes(), function($class){
  10. return substr($class, 0, 11) == "Controller\\";
  11. });
  12. }
  13. public static function handle_all(Router $router){
  14. foreach(self::controllers() as $controller){
  15. $controller::handle($router);
  16. }
  17. }
  18. public static function name(){
  19. if(is_null(static::$name)){
  20. $name = get_called_class();
  21. return substr($name, strrpos($name, '\\') + 1);
  22. }
  23. return static::$name;
  24. }
  25. }
  26. ?>