Bonnes pratiques de developpement en PHPPascal MARTIN
Du haut de ses 14 ans, PHP est devenu une technologie utilisée pour de gros projets ; ce qui signifie besoins importants en termes de qualité, de robustesse, et d'outils de développement fiables.
Contrôle de sources, normes de codage, utilisation de Frameworks, documentation, tests unitaires / fonctionnels automatisés, intégration continue, déploiement, ...
Cette présentation a pour but d'introduire quelques bonnes pratiques de développement, ainsi que des outils permettant de les mettre en place sur des projets PHP.
Construire une application sur l'architecture modèle-vue-contrôleur en PHP à partir d'un exemple simple : une liste de choses à faire, avec deux pages types : liste et détails.
Bonnes pratiques de developpement en PHPPascal MARTIN
Du haut de ses 14 ans, PHP est devenu une technologie utilisée pour de gros projets ; ce qui signifie besoins importants en termes de qualité, de robustesse, et d'outils de développement fiables.
Contrôle de sources, normes de codage, utilisation de Frameworks, documentation, tests unitaires / fonctionnels automatisés, intégration continue, déploiement, ...
Cette présentation a pour but d'introduire quelques bonnes pratiques de développement, ainsi que des outils permettant de les mettre en place sur des projets PHP.
Construire une application sur l'architecture modèle-vue-contrôleur en PHP à partir d'un exemple simple : une liste de choses à faire, avec deux pages types : liste et détails.
Cette conférence a été donnée en collaboration avec Guillaume Ponçon, auteur du livre "PHP5 Best Practices". Elle évoque les outils et méthodes permettant de développer avec PHP de manière professionnelle.
Le Zend Framework s'est rapidement imposé comme un framework majeur de l'écosystème PHP. Sa prise en main peut sembler parfois intimidante, et pourtant démarrer un projet dans les règles de l'art ne prend que quelques minutes.
Cette présentation vous permettra de vous familiariser avec les concepts clé de Zend Framework, et vous guidera pour vos tous premiers pas avec cet excellent framework !
Objectif général
Prendre en main l’un des framework PHP les plus utilisés
Objectifs opérationnels
Structurer les fonctionnalités grâce aux bundles
Faire correspondre une URL donnée à un traitement précis grâce au routage
Traiter les requêtes grâce aux contrôleurs
Intégrer des données dans des templates grâce à TWIG
Faciliter la communication avec une base de données grâce à Doctrine
Permettre à un utilisateur d’initialiser ou de modifier les attributs d'un objet métier grâce aux formulaires
PHP Composer : Pourquoi ? Comment ? Et plus ...Romain Cambien
Présentation de la gestion de dépendance grâce à Composer. Comment l'installer et le principales commandes à connaitre. Présentation et demonstration du projet Toran Proxy.
Symfony2: 30 astuces et bonnes pratiquesNoel GUILBERT
Avec cette nouvelle version de votre framework préféré, de nouvelles fonctionnalités et de nouveaux usages sont apparus. Vous vous demandez comment structurer vos bundles? Comment organiser votre code source? Comment utiliser correctement l'injecteur de dépendance? Venez découvrir au cours de cette session les bonnes pratiques, et quelques astuces, qui vous aiderons dans la réalisation de vos projets avec Symfony2.
Objectif général : Prendre en main Express js, le mini-framework de Node js le plus utilisé
objectifs spécifiques :
Installer Node js et Express js
Créer une application Express js
Router les requêtes
Recevoir des données à partir de l’URL d’une requête
Recevoir des données à partir du corps d’une requête
Traiter des fichiers uploadés
Utiliser un moteur de template
Utiliser une base de données
Utiliser des middlewares
Objectif général : Prendre en main l’un des frameworks PHP les plus utilisés
Objectifs spécifiques
Faire correspondre une URL donnée à un traitement précis grâce au routage
Regrouper des traitements connexes grâce aux contrôleurs
Récupérer les données d’une requête http grâce à Request
Retourner des contenus aux formats texte, HTML, JSON, etc. grâce à Response
Intégrer des données dans des templates grâce à Blade
Interagir avec l’utilisateur grâce aux formulaires
Créer, mettre à jour et suivre les évolutions d’un schéma de base de données grâce aux migrations
Faciliter la communication avec une base de données grâce à Eloquent
Objectif général :
Prendre en main l’une des bibliothèques JavaScript les plus utilisés pour créer des interfaces utilisateurs
Objectifs spécifiques :
Découper l’interface utilisateur avec les composants
Passer des informations (données ou instructions) d’un composant à son composant fils avec « props »
Gérer l’état local d’un composant avec « state »
Afficher une listes de composants avec map()
Afficher un composant en fonction de l’état de l’application
Interagir avec un utilisateur grâce à la gestion des événements
Interagir avec un utilisateur par le biais des formulaires
Communiquer avec un serveur HTTP avec AJAX
Afficher des vues en fonction de l’URL avec le routage
Mettre en forme un composant
Au cours de cette session, nous présenterons d'une manière générale toutes les caractéristiques qui font de symfony un framework open source tourné vers le monde professionnel.
Il s'agira dans un premier temps de montrer que symfony n'est pas seulement une base de code mais un projet open source à part entière disposant d'un écosystème riche sur lequel n'importe quel développeur peut compter.
Nous porterons ensuite un oeil plus attentif aux fonctionnalités phares du framework telles que sa couche d'abstraction de base de données, son interface en ligne de commande, le routing bidirectionnel, les outils de test automatisés ou bien encore le générateur automatique de backoffice.
This document provides an overview of Symfony2, a PHP framework that includes reusable components and libraries, configuration, and an MVC architecture. It discusses installing Symfony2, creating an application bundle, defining a data model with Doctrine ORM, loading initial data with fixtures, adding routing and templates, and testing applications. The document also mentions additional Symfony bundles that can provide useful features like user management, administration interfaces, and pagination.
Premier chapitre d'une formation Symfony 2,
l'Objectif de ce chapitre peut se résumer dans les points suivants :
- Présentation du framework Symfony en sa version 2.x
- Première installation de Symfony, et découvert de son arborescence projet
- Notion des Bundles : Notion de contrôleur et Vue + Réalisation d'un premier contrôleur
- Système des Routes : utilisation des annotations pour définir des routes
Cette conférence a été donnée en collaboration avec Guillaume Ponçon, auteur du livre "PHP5 Best Practices". Elle évoque les outils et méthodes permettant de développer avec PHP de manière professionnelle.
Le Zend Framework s'est rapidement imposé comme un framework majeur de l'écosystème PHP. Sa prise en main peut sembler parfois intimidante, et pourtant démarrer un projet dans les règles de l'art ne prend que quelques minutes.
Cette présentation vous permettra de vous familiariser avec les concepts clé de Zend Framework, et vous guidera pour vos tous premiers pas avec cet excellent framework !
Objectif général
Prendre en main l’un des framework PHP les plus utilisés
Objectifs opérationnels
Structurer les fonctionnalités grâce aux bundles
Faire correspondre une URL donnée à un traitement précis grâce au routage
Traiter les requêtes grâce aux contrôleurs
Intégrer des données dans des templates grâce à TWIG
Faciliter la communication avec une base de données grâce à Doctrine
Permettre à un utilisateur d’initialiser ou de modifier les attributs d'un objet métier grâce aux formulaires
PHP Composer : Pourquoi ? Comment ? Et plus ...Romain Cambien
Présentation de la gestion de dépendance grâce à Composer. Comment l'installer et le principales commandes à connaitre. Présentation et demonstration du projet Toran Proxy.
Symfony2: 30 astuces et bonnes pratiquesNoel GUILBERT
Avec cette nouvelle version de votre framework préféré, de nouvelles fonctionnalités et de nouveaux usages sont apparus. Vous vous demandez comment structurer vos bundles? Comment organiser votre code source? Comment utiliser correctement l'injecteur de dépendance? Venez découvrir au cours de cette session les bonnes pratiques, et quelques astuces, qui vous aiderons dans la réalisation de vos projets avec Symfony2.
Objectif général : Prendre en main Express js, le mini-framework de Node js le plus utilisé
objectifs spécifiques :
Installer Node js et Express js
Créer une application Express js
Router les requêtes
Recevoir des données à partir de l’URL d’une requête
Recevoir des données à partir du corps d’une requête
Traiter des fichiers uploadés
Utiliser un moteur de template
Utiliser une base de données
Utiliser des middlewares
Objectif général : Prendre en main l’un des frameworks PHP les plus utilisés
Objectifs spécifiques
Faire correspondre une URL donnée à un traitement précis grâce au routage
Regrouper des traitements connexes grâce aux contrôleurs
Récupérer les données d’une requête http grâce à Request
Retourner des contenus aux formats texte, HTML, JSON, etc. grâce à Response
Intégrer des données dans des templates grâce à Blade
Interagir avec l’utilisateur grâce aux formulaires
Créer, mettre à jour et suivre les évolutions d’un schéma de base de données grâce aux migrations
Faciliter la communication avec une base de données grâce à Eloquent
Objectif général :
Prendre en main l’une des bibliothèques JavaScript les plus utilisés pour créer des interfaces utilisateurs
Objectifs spécifiques :
Découper l’interface utilisateur avec les composants
Passer des informations (données ou instructions) d’un composant à son composant fils avec « props »
Gérer l’état local d’un composant avec « state »
Afficher une listes de composants avec map()
Afficher un composant en fonction de l’état de l’application
Interagir avec un utilisateur grâce à la gestion des événements
Interagir avec un utilisateur par le biais des formulaires
Communiquer avec un serveur HTTP avec AJAX
Afficher des vues en fonction de l’URL avec le routage
Mettre en forme un composant
Au cours de cette session, nous présenterons d'une manière générale toutes les caractéristiques qui font de symfony un framework open source tourné vers le monde professionnel.
Il s'agira dans un premier temps de montrer que symfony n'est pas seulement une base de code mais un projet open source à part entière disposant d'un écosystème riche sur lequel n'importe quel développeur peut compter.
Nous porterons ensuite un oeil plus attentif aux fonctionnalités phares du framework telles que sa couche d'abstraction de base de données, son interface en ligne de commande, le routing bidirectionnel, les outils de test automatisés ou bien encore le générateur automatique de backoffice.
This document provides an overview of Symfony2, a PHP framework that includes reusable components and libraries, configuration, and an MVC architecture. It discusses installing Symfony2, creating an application bundle, defining a data model with Doctrine ORM, loading initial data with fixtures, adding routing and templates, and testing applications. The document also mentions additional Symfony bundles that can provide useful features like user management, administration interfaces, and pagination.
Premier chapitre d'une formation Symfony 2,
l'Objectif de ce chapitre peut se résumer dans les points suivants :
- Présentation du framework Symfony en sa version 2.x
- Première installation de Symfony, et découvert de son arborescence projet
- Notion des Bundles : Notion de contrôleur et Vue + Réalisation d'un premier contrôleur
- Système des Routes : utilisation des annotations pour définir des routes
Qu'y a-t-il à gagner à passer de Google Maps à OpenStreetMap pour un site web ?
Présentation effectué aux RMLL 2012 de Genève.
Source disponible : http://osm7.openstreetmap.fr/~fred/201207-GM2OSM/GM2OSM.svg
PostGreSQL est un SGBD (Système de Gestion de Base de Données) open source de très bonne qualité et le plus populaire au monde, notamment connu par sa robustesse, sa fiabilité et ses performances. De nombreuses applications professionnelles sont construites sur PostGreSQL. PostGIS est une surcouche de PostGreSQL qui permet de gérer la géométrie (l’information géospatiale).
PostGIS présente de nombreux avantages. Il permet de :
Stocker et administrer de manière sécurisée les données à référence spatiale
d’effectuer des opérations spatiales (calcul de longueurs, de surfaces, unions et intersections de géométrie, etc...) grâce à ses fonctions spatiales avancées
des connexions simultanées sur les données géographiques.
Visualiser les données géographiques grâce à un logiciel SIG comme QGIS
Diffuser les données géographiques à travers des serveurs web comme MapServer.
Le but de cette conférence est de montrer à l’audience les potentialités de PostGIS ainsi que les fonctions avancés qu’offre PostGIS aux services des utilisateurs SIG.
Cette présentation à pour but d'expliquer à des néophites les avantages du framework PHP Symfony.
Elle m'a servit en entreprise pour expliquer ses concepts complexe à des non-informaticiens.
Cette présentation à pour but d'expliquer à des néophites les avantages du framework PHP Symfony.
Elle m'a servit en entreprise pour expliquer ses concepts complexe à des non-informaticiens.
Survole de l'industrialisation pour les étudiants pour http://src-media.com/ et d'anciens étudiants.
Inspirez de http://hoa-project.net/Fr/Event/Phptour14.html pour le Slide 8.
Agenda :
Les enjeux de la performance d'un site Web
Les différents éléments de performance d'un site Web
Infrastructure, architecture technique, tuning, architecture applicative, WebPerf
L'obsession de la mesure
Les outils
Les quickwins
Caches, upscaling, outscaling, sharding
La démarche de test de charge
Méthodologie, outils, types de test, données de test
La démarche PDCA
Intégrer les tests de charge au cycle de développement
Environnement éphémère
Oxalide MorningTech #2 - Démarche de performance
2ème MorningTech @Oxalide, animé par Adrien Le Priol (@Priolix) et Ludovic Piot (@lpiot), le 28 février 2017.
Une vue d'ensemble sur la démarche et les outils pour aborder et maîtriser la performance de son site Web.
En 2012, Amazon publiait une étude indiquant que chaque seconde de performance perdue sur son site de commerce lui coûtait $1.6 milliards de chiffre d'affaire.
Par delà ce chiffre colossal avancé par le géant du Web, il est une réalité business : plus un site est lent, et moins les utilisateurs sont enclin à naviguer dessus. Les smartphones et le SoLoMo exacerbent cette réalité avec encore plus depuis 10 ans maintenant.
Sur le terrain, l'architecture technique des sites Web, de plus en plus complexe, rendent ses performances impossibles à prédire : complexité des développements applicatifs, multitude des composants impliqués dans l'architecture technique, recours à des services tiers (issus du SI de votre entreprise, ou de services tiers), big data, machine learning…
Une seule façon de prédire les performances : tester… en situation réelle.
A travers les différentes étapes d'une démarche d'optimisation des performances d'un site Web, les enjeux et les écueils d'une telle démarche vous seront détaillés.
Subject: Oxalide's MorningTech talk about an overview of how to deal with performance in a Web site.
Date: 28-feb-2017
Speakers: Adrien Le Priol (@Priolix, @Oxalide) and Ludovic Piot (@lpiot, @Oxalide)
Language: french
Lien SpeakerDeck : https://speakerdeck.com/lpiot/oxalide-morning-tech-number-2-demarche-performance
Lien SlideShare : https://www.slideshare.net/LudovicPiot/morning-tech-2-demarche-performance-slides
YouTube Video capture: https://youtu.be/a8jSbvyBzYU
Main topics:
* Les enjeux de la performance d'un site Web
* Les différents éléments de performance d'un site Web
** Infrastructure, architecture technique, tuning, architecture applicative, WebPerf
* L'obsession de la mesure
* Les outils
* Les quickwins
** Caches, upscaling, outscaling, sharding
* La démarche de test de charge
** Méthodologie, outils, types de test, données de test
* La démarche PDCA
** Intégrer les tests de charge au cycle de développement
** Environnement éphémère
* Questions / Réponses
Monitoring d'applications/environnements PHP : APM et PinbaIdaf_1er
PHP s'est industrialisé, aujourd'hui, un besoin de monitoring existe au niveau des applications écrites en PHP et de la plateforme sur laquelle elles reposent.
En parallèle, le besoin de montée en charge et de tolérance de faute est grandissant, en particulier avec le cloud computing, il devient donc crucial d'avoir la possibilité de surveiller l'ensemble de son infrastructure, à cette fin, cette session présentera une solution entièrement bâtie sur du logiciel libre.
Alternative PHP Monitor (APM) : extension PHP non-intrusive permettant la capture de divers évènements, tels que les erreurs et lenteurs d'exécution.
Pinba : extension PHP permettant la collecte en base de données d'informations relatives à l'exploitation de vos applications en production. De multiples rapports peuvent ensuite être élaborés pour fournir des statistiques, notamment de temps d'exécution sur des parties de codes.
Devoxx: Tribulation d'un développeur sur le CloudTugdual Grall
Comme beaucoup de développeurs une grande partie de mon temps libre est utilisé pour découvrir de nouvelles technologies et développer des applications avec celles-ci.
J'ai donc choisi de découvrir le développement d'application Java sur le cloud, avec Google AppEngine, pour créer le site http://www.resultri.com qui permet de gérer les resultats de triathlon (mon autre passion).
Développer cette application est une aventure interessante que je partage avec vous durant ce BOF:
découverte de GAE et des outils de developpement
les "surprises" du NoSQL, surtout pour un cerveau "cablé relationnel comme le mien"
hmmm tout n'est pas gratuit?
les quelques trucs à savoir : l'importance de memcache, utilisation de CloudSQL, les batchs....
Comment débuter en devops et apprendre à réaliser son premier pipeline. Très facilement et en toute simplicité.
Une formation gratuite pour s'initier au devops.
https://youtu.be/tiSfXCM8VTw
https://gitlab.com/xavki/pipeline-saison-1
PHP jouit parfois d'une mauvaise réputation au niveau des performances. Nous verrons si cette réputation est méritée, si les performances sont réellement un problème pour utiliser PHP.
PHP a une architecture qui lui permet de monter en charge sans mettre en place des solutions complexes. Entre l'installation, la configuration et les possibilités au niveau applicatif, cette session vous permettra de répondre efficacement à la problématique des performances.
Présentation effectuée au Meetup 24 Programmez (5 Avril 2022) par Christophe Villeneuve sur "Infrastructure as code Drupal".
Cette présentation aborde les rappels de l'IaC (infrastructure as code), comment l'utilisé avec le CMS Drupal et déployé automatiquement le contenu et les évolutions dans l'IaC.
Il y a plusieurs centaines de techniques pour accélérer ses pages côté client, mais à travers ce retour d'expérience nous allons voir qu'en ayant simplement appliqué les bases on a pu diviser les temps d'affichage utilisateur par 5.
Présenté à la soirée Webperf de novembre 2013
Conference drupal 8 au Forum PHP 2013 à ParisChipway
Conférence sur les nouveautés de Drupal 8 lors du Forum PHP 2013 à Paris.
Léon Cros a parlé de Views, Symfony2, Editeur CKEditor, Édition directe, HTML5, Mobile et smartphones, services web, ...
The document provides tips for creating reusable plugins in CakePHP. It discusses placing plugin code in standardized directories, extending and customizing existing plugins, using components and behaviors to add reusable logic, and automating tasks through callbacks and configuration. Emphasis is placed on writing clean, well-tested code and documenting plugins to make them easy for others to implement and extend.
Slides from the talk given by Charlie van de Kerkhof during the CakeFest #3 - July 2009
Note: the original pdf and the code related to this talk can be found on cakephp.org
Test and API-driven development of CakePHP BehaviorsPierre MARTIN
Slides from the talk given by Alexander Morland during the CakeFest #3 - July 2009
Note: the original pdf and the code related to this talk can be found on cakephp.org
Slides from the talk given by Neil Crookes during the CakeFest #3 - July 2009
Note: the original pdf and the code related to this talk can be found on cakephp.org
Internationalizing CakePHP ApplicationsPierre MARTIN
The document discusses internationalization in CakePHP, including:
- Using methods like __() and __n() to translate text strings, and Configure::write() to set the application language.
- The Translate behavior, which allows translating database records into multiple languages and automatically filtering by the current language.
- Generating translation files using the i18n extractor, editing them with POEDIT, and caching translated elements.
2. {{ Qui sommes nous ?
● Aurélien
● Développeur web
● Communauté CakePHP
● Membre AFUP
● Pierre
● Expert CakePHP (CakeDC)
● Geek
● (ex ?) blogueur : http://pierre-martin.fr
@pierremartin
3. {{ Un framework ?
● un framework est un kit de composants logiciels
structurels, qui définissent les fondations ainsi que les
grandes lignes de l'organisation de tout ou partie d'un
logiciel.
● un framework est conçu en vue d'aider les programmeurs
dans leur travail. L'organisation du framework vise la
productivité maximale du programmeur qui va l'utiliser.
(Wikipedia)
4. {{ Le framework CakePHP
● A la fois kit de composants et cadre de travail
● Open Source, licence MIT
● Communautaire !
● Orienté RAD
● Inspiré de Ruby on Rails
5. {{ Un peu d'histoire...
● Avril 2005 : création par Michal Tatarynowicz
● Juillet 2005 : version 0.9, départ de Michal, repris par
Larry Masters et Kamil Dzielinski, rejoints par Nate Abele
et Garret Woodworth
● Mai 2006 : CakePHP 1.0 est publié
● 2007 : sortie v 1.1
● Décembre 2008 : Cake 1.2 stable
● Octobre 2009 : scission → Lithium
6. {{ Un peu d'histoire...
● Décembre 2009 : Cake 1.3 bêta, migration Github, forte
implication de la communauté
● Avril 2010 : 1.3.0 stable
● Versions actuelles : 1.2.8 / 1.3.5
● 2011 : CakePHP 2.0 ?
7. {{ Quelques chiffres...
● Fin 2009 : 1 million de téléchargements depuis origine
● 305 000 l. de code (160 000 l. commentaires)
● 21 500 commits
● 45 contributeurs directs
● 15 000 membres sur le Google Group
● 900 membres sur le forum FR
● doc disponible en 25 langues
19. {{ Sources de données
● liens entre les modèles et la source de données qu'ils
représentent
● le + souvent BDD relationnelle
● annuaire LDAP, API, fichiers XML ou CSV
● support natif MySql(i), MSSsql, Oracle, Postgres, Sqlite
● support communautaire AdoDb, Db2, Firebird, ODBC,
Sybase, Pdo, etc.
20. {{ Comportements
● Extensions des modèles
● Logique partagée mais non directement métier
● Collection de fonctionnalités (Mixin) avec des callbacks
21. {{ Contrôleurs
● Logique applicative
● Répondent aux requêtes
● Appel aux modèles
● Interactions avec les vues
● Contrôle du flux
● Callbacks (beforeFilter, beforeRender)
22. {{ Composants
● Extensions des contrôleurs
● Regroupements de logique applicative
● Évite de dupliquer fonctionnalités (DRY)
23. {{ Vues
● Logique d'affichage
● Correspondent à une action d'un contrôleur
● Templates HTML avec un soupçon de logique PHP
● XML, JSON, CSV...
● Layouts
● Elements
● Thèmes
● Vues Média (fichiers binaires)
24. {{ Assistants
● Extensions des vues
● Classe encapsule logique de présentation
● Partage de fonctionnalités (DRY) entre vues, layouts et
elements
27. {{ Installation
Ingrédients
● Un serveur web, Apache, mais aussi IIS, Lighttpd, nginx
● PHP 4.3.2 >> PHP 5.3
● Une base de données (pas obligatoire techniquement) :
Mysql(i), Oracle, SQLServer, Postgres, SQLite
Préparation
● Téléchargement ou clone sur Github
● Copier les fichiers dans le webroot (ou autre)
29. {{ Conventions
● Nom de la table : recettes (PK : id, FK : auteur_id)
● Nom du modèle : Recette (app/models/recette.php)
● Nom du contrôleur : RecettesController
(app/controllers/recettes_controller.php)
● Nom du fichier de vue : index.ctp
(app/views/recettes/index.ctp)
http://www.example.com/cakephp/recettes/index
30. {{ Configuration
● Automatisée / Assistée si génération du code
● Base de données (config/database.php)
● config/core.php
● Security.salt
● Debug
● webroot/index.php
31. {{ Du code !
Microblog
● Création de l'application
● Configuration (très peu !)
● Base de données
● Un peu de magie
● Associations
● Authentification
● Vues
32. {{ Création de l'application
● Ligne de commande
$ cake bake microblog
Fait beaucoup de choses pour nous !
● Manuellement
● Dossier /app
35. {{ Un peu de magie
● cake bake all
● Demande à CakePHP de générer TOUT le code pour
nous
● Modèles, Contrôleurs, Vues, Tests, Café
● En pratique : cake bake
● Templates personnalisables
36. {{ Scaffolding
● Prototypage des actions / vues CRUD
● Aucun fichier créé
● Validation des modèles initiaux (conventions)
37. {{ Associations
● Tweet belongsTo User
● User hasMany Tweet
● User hasAndBelongsToMany Follower
● User hasAndBelongsToMany Following
● Nous n'avons pas suivi les conventions :(
users_users
● … parfois c'est mieux !
42. {{ Authentification 1/3
class AppController extends Controller {
public $components = array('Auth', 'Session');
}
● Inclusion du composant
43. {{ Authentification 2/3
class UsersController extends AppController {
// […]
public function login() {
// Nous n'avons besoin de rien faire, merci Cake !
}
public function logout() {
$this->Session->destroy();
$this->Session->setFlash('Vous êtes déconnecté');
$this->redirect($this->Auth->logout());
}
// [...]
}
● Création des actions login() et logout()
44. {{ Authentification 3/3
class UsersController extends AppController {
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allowedActions = array('index', 'view', 'add');
}
public function edit() {
$id = $this->Auth->user('id');
if (!empty($this->data)) {
$this->data['User']['id'] = $id;
// […] Sauvegarde
} else {
// […] Lecture
}
}
}
● Implémentation de notre logique !