/** * method: initialise * * todo: write documentation */ public static function initialise() { if (self::$is_initialised) { return; } $search = array_merge($_SERVER, $_GET); self::$pathList["__WEBSITE_ROOT__"] = $search["__WEBSITE_ROOT__"]; self::$path = NULL; self::$base = self::getPath("__WEBSITE_ROOT__"); if (self::$base) { // Obtain the path within the website, without the website base // we use this to calculate the path inside the website, not relative to the document root self::$path = Amslib_String::lchop($_SERVER["REQUEST_URI"], self::$base); self::$path = Amslib_String::rchop(self::$path, "?"); self::$path = Amslib_File::reduceSlashes("/" . self::$path . "/"); } // Now automatically load the amslib routers configuration as the framework system // This allows amslib to add routes the system can use to import/export router configurations // This isn't part of your application, this is part of the system and used to self-configure self::load(Amslib::locate() . "/router/router.xml", "xml", "framework"); self::$is_initialised = true; // remove this from the $_GET superglobal, it's kind of annoying to keep finding it in the application code Amslib_GET::delete("__WEBSITE_ROOT__"); }
/** * method: __construct * * todo: write documentation */ public function __construct($name, $location, $config = NULL) { parent::__construct(); // unless I think of a reason to not do this, always initialise sessions @session_start(); // This is needed so non-routed-services will work without modification // NOTE: probably I shouldn't need to do this, I need to find a way to make this redundant Amslib_Router::initialise(); // NOTE: I think that this method is redundant and the system should do it for me // NOTE: I'm not sure whether this method is actually useful anymore, I think it's out of date maybe Amslib_Website::set(); $base = Amslib_Router::getBase(); Amslib_Website::setPath("amslib", Amslib::locate()); Amslib_Website::setPath("website", $base); Amslib_Website::setPath("website_ext", Amslib_Router_URL::externalURL($base)); Amslib_Website::setPath("host", Amslib_Router_URL::externalURL()); // NOTE: I don't think I want this __ADMIN__ parameter anymore Amslib_Website::setPath("admin", "__ADMIN__"); Amslib_Website::setPath("plugin", "__PLUGIN__"); Amslib_Website::setPath("docroot", Amslib_File::documentRoot()); $this->completionCallback = array(); // Set the name, location and config of the plugin that was found in the hard disk $this->setName($name); $this->setLocation($location); $this->setConfigSource($config); }