IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Débutez avec Zend_Auth

Traduction du tutoriel de Rob Allen : Getting started with Zend_AuthTutoriel original en Anglais .


précédentsommairesuivant

II. Mise en place

II-A. La table 'users'

La première chose dont nous avons besoin est une table 'users'. Ce n'est pas si compliqué, voici le schéma de la table users :

Schéma de la table users

La requête SQL pour créer cette table est la suivante :

 
Sélectionnez
CREATE TABLE users (
    id int(11)     NOT NULL         AUTO_INCREMENT,
    username     VARCHAR(50)     NOT NULL,
    password     VARCHAR(50)     NOT NULL,
    real_name     VARCHAR(100)     NOT NULL,
 
    PRIMARY KEY (id),
    UNIQUE KEY username(username)
);

On a aussi besoin d'un utilisateur qui puisse se connecter :

 
Sélectionnez
INSERT INTO users (id, username, password, real_name) VALUES (1, 'rob', 'rob', 'Rob Allen');

Exécutez ces requêtes dans votre client MySQL, par exemple phpMyAdmin ou la console MySQL directement (évidemment, vous pouvez changer les valeurs de username et password).

zf-tutorial/index.php
Sélectionnez
...
Zend_Loader::loadClass('Zend_Db_Table');
Zend_Loader::loadClass('Zend_Debug');
Zend_Loader::loadClass('Zend_Auth');
// load configuration
...
and
..
// setup database
$dbAdapter = Zend_Db::factory($config->db->adapter,
$config->db->config->asArray());
Zend_Db_Table::setDefaultAdapter($db);
Zend_Registry::set('dbAdapter', $db);
// setup controller
$frontController = Zend_Controller_Front::getInstance();
...

Tout ce que nous avons à faire ici est de s'assurer que nous avons chargé la classe Zend_Auth et intégré l'adaptateur dbAdapter dans le registre. Nous le stockons dans le registre puisque nous en aurons besoin plus tard pour l'authentification.

II-B. Le contrôleur Auth

Nous avons besoin d'un contrôleur pour mettre en place les actions login et logout. En toute logique, appelons-le AuthController.

Nous commencerons avec un IndexController simple :

zf-tutorial/application/controllers/AuthController.php
Sélectionnez
<?php
class AuthController extends Zend_Controller_Action
{
    function init()
    {
        $this->initView();
        $this->view->baseUrl = $this->_request->getBaseUrl();
    }
 
    function indexAction()
    {
        $this->_redirect('/');
    }
}

Nous créons d'abord la méthode init() pour que la vue soit initialisée et que baseUrl y soit assignée. Nous créons aussi la méthode indexAction() comme le nécessite le Zend_Controller_Action. Nous n'avons pas besoin de la méthode indexAction() puisque nous utiliserons les méthodes loginAction() et logoutAction(), donc nous redirigerons tous ceux qui tentent d'accéder par la barre d'adresse à auth/index sans s'être identifiés.


précédentsommairesuivant

Copyright © 2007 Benyacoub Rachid Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.