CakePHP et PunBB : introduction
Par foxmask le jeudi, décembre 6 2007, 14:00 - Lien permanent
Après l'édpisode des comparatifs de framework PHP, voici une astuce pour vous permettre de franchir le pas vers CakePHP (un bon framework PHP utilisant MVC) tout en utilisant PunBB comme outil de forum.
L'idée de base est la suivante : je veux créer un portail basé sur le framework CakePHP mais en utilisant une seul et unique session entre mon portail et mon forum.
Donc pour y parvenir, dans le script dispatcher.php de CakePHP je fais le classique include du script common.php de punbb comme suit :
j'edite le script cake/dispatcher.php et au dessus de
class Dispatcher extends Object {
j'ajoute :
define('PUN_ROOT',WWW_ROOT. 'forums/');
require PUN_ROOT.'include/common.php';
de là, partout dans CakePHP nous avons la "main" sur les variables punBB et la gestion de la session.
Donc dans mon controlleur gérant l'utilisateur contiendra ni plus ni moins qu'un copier/coller du code de gestion de la fonction login (avec l'action = in et out selon le cas)
class UsersController extends AppController {
public function login ()
{
global $pun, $db, $pun_config, $db_type, $lang_login;
$this->set('error', false);
#soumission du formulaire de login
if (!empty($this->data))
{
#analyse du login/pass ; recherche dans la base et creation du cookie
}
}
}
évidement on n'oubliera pas d'ajouter un global $pun_user par exemple, dans la fonction login, pour manipuler les données que cette variable contient.
Dans un prochain billet, j'aborderai les vues (le V de MVC
et comment produire un menu et recuperer dans un bloc de son portail les 'n' derniers sujets recents du forum.