예제 #1
0
 /**
  * method: execute
  *
  * execute the application, or process a web service, depending on the type of the route
  *
  * NOTE:
  * 	-	if the route has type='service' we are going to process a webservice
  * 	-	override this default behaviour by overriding this method with a customised version
  */
 public function execute($params = array())
 {
     //	If the url executed belonds to a web service, run the service code
     //	NOTE:	this isService() call, I think is a bit hacky, I would
     //			like to do away with it and have the framework do it
     if (Amslib_Router::isService()) {
         $this->runService();
     }
     //	Get the current route and acquire the api object for the current route and render it
     //	NOTE:	we do this so you can render pages from other plugins or the application based
     //			on what route has been opened, sometimes you want to define webpages in separate
     //			plugins and render them just based on the url and/or route
     $route = Amslib_Router::getRoute();
     if (!$route || !isset($route["group"])) {
         Amslib_Debug::log("ROUTE OR ROUTE/GROUP DOES NOT EXIST", $route);
         return;
     }
     $api = $this->getAPI($route["group"]);
     if (!$api || !method_exists($api, "render")) {
         Amslib_Debug::log("API OR ITS RENDER METHOD DOES NOT EXIST", get_class($api), $route);
         return;
     }
     //	If the url executed belongs to a page, render the default view of the application
     print $api->render("default", $params);
 }