public function testLoad() { $autoloader = new Autoloader(); $autoloader->addPath('Foo', 'src/Cache'); $autoloader->addPath('Foo', 'src/I18n'); // $autoloader->addPath('Foo\Selection', 'src/Models/Selection'); $this->assertFalse($autoloader->load('Bar')); $this->assertFalse($autoloader->load('Foo\\Bar')); $this->assertTrue($autoloader->load('Foo\\I18n')); $this->assertTrue($autoloader->load('Foo\\Cache')); // $this->assertTrue($autoloader->load('Foo\Selection\SelectionBuilder')); // TODO: mock loadFrom and test paths etc. }
* @return string the class path */ private static function package($path, $class, $type) { if (substr($path, -1) != '/') { $path .= '/'; } $tokens = array(); $bits = preg_split('`([A-Z][a-z0-9]*)`', $class, null, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE); while ($bit = array_shift($bits)) { if (preg_match('`^[A-Z]$`', $bit)) { while (count($bits) && preg_match('`^[A-Z]$`', $bits[0])) { $bit .= array_shift($bits); } } $tokens[] = $bit; } array_pop($tokens); // Exception while (count($tokens) && !file_exists(APPLICATION_BASE . '/classes/' . $path . implode('', $tokens) . $type . 's.class.php')) { array_pop($tokens); } return $path . (count($tokens) ? implode('', $tokens) : '') . $type . 's'; } } /** * Register autoload */ spl_autoload_register(function ($class) { Autoloader::load($class); });
<?php ini_set('display_errors', 1); //On prépare le script à recevoir des objets JSON header("Content-type : application/json ; charset=UTF-8", true); //On autoload les classes en faisant appel à la classe autoload require '../Autoloader.php'; Autoloader::load(); //On créer les objets des controllers $authControl = new AuthController(); $questionControl = new QuestionnaireController(); $progControl = new ProgrammeController(); $userControl = new UserController(); $rituelControl = new RituelController(); $adminControl = new AdminController(); $habitsControl = new HabitsController(); //On recherche dans toutes les superglobales d'entête HTTP pour chercher l'information au bon endroit et rediriger le script vers la bonne méthode à appeler. Le champs action doit être renseigner pour demander une action de la part des scripts PHP. //Get doit être utilisé que lorsque l'on souhaite récupérer des informations if (isset($_GET['action'])) { switch ($_GET['action']) { //Permet d'obtenir toutes les informations nécessaire à un questionnaire (questions/réponses/profils de réponse). Champs requis : idProg (contient l'id BDD du programme dont on veut le questionnaire) case 'survey': echo $questionControl->showQuestions(); break; //Permet de recevoir une liste de tout les programmes. //Permet de recevoir une liste de tout les programmes. case "programs": echo $progControl->showProg(); break; //Permet de recevoir une ou plusieurs informations sur un profil utilisateur. Champs requis : accessToken, field (contient le ou les noms de champs dont on veux la valeur. Chaque nom doit être séparé par des virgules) //Permet de recevoir une ou plusieurs informations sur un profil utilisateur. Champs requis : accessToken, field (contient le ou les noms de champs dont on veux la valeur. Chaque nom doit être séparé par des virgules)
function __autoload($class) { switch ($class) { default: Autoloader::load($class); } }
function __autoload($class) { $a = new Autoloader(); return $a->load($class); }