* @version 0.3.0 * @copyright Copyright(c) 2007, 2008 Roland Haeder, this is free software * @license GNU GPL 3.0 or any newer version * @link http://www.mxchange.org * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ // Does the user has an application specified? if (!empty($_GET[FrameworkConfiguration::getInstance()->readConfig("app_selector_get")])) { // Set the application from string $application = (string) $_GET[FrameworkConfiguration::getInstance()->readConfig("app_selector_get")]; } elseif (!empty($_SERVER['argv'][1])) { // Set the application from string $application = (string) $_SERVER['argv'][1]; $app = explode("=", trim($application)); if ($app[0] == FrameworkConfiguration::getInstance()->readConfig("app_selector_get")) { // Application is valid! $application = trim($app[1]); } else { // Invalid entry found, first must be "app"! $application = FrameworkConfiguration::getInstance()->readConfig("default_application"); } } else { // Set the "application selector" application $application = FrameworkConfiguration::getInstance()->readConfig("default_application"); } // Secure it, by keeping out tags $application = htmlentities(strip_tags($application), ENT_QUOTES); // Secure it a little more with a reg.exp. $application = preg_replace('/([^a-z_-])+/i', "", $application); // Try to load these includes in the given order $configAppIncludes = array( sprintf("class_%s", FrameworkConfiguration::getInstance()->readConfig("app_helper_class")), // The ApplicationHelper class "config", // The application's own configuration "init", // The application initializer "loader", // The application's class loader "debug", // Some debugging stuff "exceptions", // The application's own exception handler "starter", // The application starter (calls entryPoint(), etc.) ); // Load them all (try only) foreach ($configAppIncludes as $inc) { // Skip starter in test mode if (($inc == "starter") && (defined('TEST'))) { // Skip it here continue; } // Generate a FQFN for the helper class $fqfn = sprintf("%s%s/%s/%s%s", PATH, FrameworkConfiguration::getInstance()->readConfig("application_path"), $application, $inc, FrameworkConfiguration::getInstance()->readConfig("php_extension") ); // Does the include file exists? if ((file_exists($fqfn)) && (is_file($fqfn)) && (is_readable($fqfn))) { // Load it require_once($fqfn); } elseif (FrameworkConfiguration::getInstance()->readConfig("verbose_level") > 0) { // File is missing trigger_error(sprintf("Cannot load application script %s! File is missing or read-protected.", $inc . FrameworkConfiguration::getInstance()->readConfig("php_extension") )); } } // [EOF] ?>