コード例 #1
0
ファイル: index.php プロジェクト: Cano78/api-pistache
<?php

ini_set('display_errors', 1);
require 'vendor/autoload.php';
$router = new App\Router\Router($_GET['url']);
$router->get('/', "Accueil#index");
// page qui ne sert à rien ;)
$router->get('/connect', "Connect#index");
// par défault on retourn "Mouhahahaa t'as cru quoi toi !". Ou alors on dit juste "bonjour".
$router->post('/connect/:id', "Connect#firststep")->with('id', '[0-9]+');
// on chope un id et on retourne le token_key
$router->post('/connect/:token_key-:pass', "Connect#secondstep")->with('token_key', "[a-zA-Z0-9]+")->with('pass', "[a-zA-Z0-9]+");
// on vérifie que le token_key existe,
// on dé-hash le mdp et on le re-hash avec la clé serveur
// si aucune erreur, on retourne true
// ET on revoie la clé d'iD tout en mettant la date à 0.
// Le token_key est en fait la clé de hash coté utilisateur, mais générée coté serveur. Ainsi le mdp n'apparait jamais en clair.
// On envoit donc la token_key fraichement générée et rangée dans un tableau 'token_key_table', et une fois qu'il est utilisé, on le supprime (la table doit donc etre vide la plupart du tps)
// lorsque le serveur a vérifié que le mdp est correct, le token_key devient la clé d'iD de la famille (et non plus son id qui elle etant fixe est reperable).
// A partir de maintenant, dès que la connection est établie : chaque objet JSON doit avoir en premier parametre la clé d'iD dans le champ 'KEY'.
// POUR TOUTE LA SUITE ON SUPPOSE LA CONNEXION ETABLIE, ET ON SUPPOSE QUE LA VERIFICATION SE FERA PAR L'APPEL D'UNE FONCTION GLOBALE.
// Trois différentes requetes
/*
	
	SELECT : $router->get(...);		// avec des parametre url pour filtrer par champs par exemple
	INSERT : $router->post(/create/...);
	UPDATE : $router->post(/update/...);
*/
// Ordre/Menu
/*	
	INSERTs (creations)
コード例 #2
0
ファイル: bootstrap.php プロジェクト: harmim/framework
<?php

/*
 * @author Dominik Harmim <*****@*****.**>
 */
mb_internal_encoding("UTF-8");
define('ROOT_DIR', realpath(__DIR__ . '/..'));
define('APP_DIR', realpath(__DIR__));
define('CONTROLLERS_DIR', APP_DIR . '/controllers');
define('MODEL_DIR', APP_DIR . '/model');
define('VIEW_DIR', APP_DIR . '/view');
define('VENDOR_DIR', ROOT_DIR . '/vendor');
// load dependecies
require VENDOR_DIR . '/autoload.php';
$loader = new Symfony\Component\ClassLoader\ClassLoader();
$loader->addPrefixes(['App' => ROOT_DIR]);
$loader->register();
//dibi::connect([
//	'driver' => '',
//	'host' => '',
//	'username' => '',
//	'password' => '',
//	'database' => '',
//	'lazy' => TRUE,
//]);
$router = new App\Router\Router($_SERVER['REQUEST_URI']);
$router->createRouter();
コード例 #3
0
<?php

// gestion des erreurs
ini_set('display_errors', 'on');
error_reporting(E_ALL);
// on appel l'autoloading
require "vendor/autoload.php";
// on créé un objet $router
$router = new App\Router\Router($_GET['url']);
// exemple de route créé par le router
$router->get("/", function () {
    echo "Bonjour";
});
$router->get("/posts", function () {
    echo "Tous les articles";
});
$router->get("/posts/:slug-:id", function ($slug, $id) use($router) {
    echo $router->url('post.show', ['id' => 1, 'slug' => 'salut-les-gens']);
}, 'post.show')->with('slug', '[a-z\\-0-9]+')->with('id', '[0-9]+');
// $router->get("/posts/:id", function($id) { echo "Afficher l'article ".$id; });
$router->get("/posts/:id", "Posts#show");
$router->post("/posts/:id", function ($id) {
    echo "Poster pour l'article " . $id;
});
// on démarre l'application
$router->run();