/** * Discovers all the annotations of a given class file * * @param string $class a class file * @return array */ public static function discover($class) { try { if (!file_exists($class)) { throw new Exception($class . " does not exist"); } $text = file($class, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $annotations = array(); $currentAnnotations = array(); foreach ($text as $key => $line) { if (strpos($line, "* @annotation") !== false) { $currentAnnotations[] = trim(str_replace("* @annotation", "", $line)); } else { $functionName = ""; if (count($currentAnnotations) > 0 && Annotation::discoverFunctionName($line, $functionName)) { $annotations[$functionName] = $currentAnnotations; $currentAnnotations = array(); } unset($text[$key]); } } return $annotations; } catch (Exception $e) { Functions::dump($e->getMessage()); return NULL; } }
/** * Renders the view body * * @param string $location the location of the partial view * @param string $file the actual view file * @return Mixed */ public function renderPartialView($location, $file) { try { if (!file_exists("application/views/templates/" . $location . "/" . $file . ".php")) { throw new Exception($location . "/" . $file . ".php partial view does not exist"); } include "application/views/templates/" . $location . "/" . $file . ".php"; } catch (Exception $e) { if ($this->displayErrors) { Functions::dump($e->getMessage()); } $this->displayErrors = false; } }
</p> <p> The <strong>php-label-for</strong>, <strong>php-input-for</strong>, and <strong>php-value-for</strong> rewrite the annotations provided by the view model and changes them into valid HTML elements. Each tag helper accepts a value corresponding to the name of a property of the view model. </p> <div class="highlight-php"> <?php highlight_string(file_get_contents("application/views/forms/Person/person.php")); ?> </div> </div> <div id="ExampleViewModelAnnotatedPost" class="col-md-12 example-panel hidden"> <?php if (!empty($_POST)) { Functions::dump(Base::capture($_POST)); } if (empty($_POST)) { ?> <p> Raw Post output only available after form has been submitted. </p> <?php } ?> </div> </div> </div> </div> Generated on <?php
/** * Static method that dispatches a controller based on the provided controller and action name * * @param string $controller the name of the controller without the trailing word Controller, e.g. Index as opposed to IndexController * @param string $action the name of the action without the trailing word Action, e.g. index as opposed to indexAction * @return object */ public static function dispatch($controller = "Index", $action = "index") { try { $controllerName = $controller . "Controller"; $controllerLocation = FrontController::retrieveControllerFileLocation($controllerName); if (!file_exists($controllerLocation)) { throw new Exception($controllerName . ".class.php does not exist"); } include $controllerLocation; eval("\$object = new " . $controllerName . "();"); $object->__set("action", $action); $object->__set("controller", $controller); $object->__set("controllerName", $controllerName); $object->__set("url", FrontController::retrieveURL()); $object->__set("method", FrontController::retrieveMethod()); $object->__set("model", FrontController::retrieveModel($controller)); $object->__set("view", new View($controller, $action)); if (method_exists($object, "initialize")) { $annotationFactory = new AnnotationFactory($controllerLocation, "initialize"); $object->initialize(); } return $object; } catch (Exception $e) { Functions::dump($e->getMessage()); return NULL; } }