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, ...
Un « site » sans Développeur ?
•
•
•
•
Core facile à installer
Complet (prêt à utiliser)
Dans ma langue / mes langues
Facile à utiliser
• Êtes-vous un cliqueur fou ?
Structurer : Field UI
•
•
•
•
•
•
•
Modes d'affichage (vue, formulaire...)
Aide dans le champ (placeholder, blur)
Cardinalité sur mesure
Préfixe de champ
CRUD amélioré
Validation séparée du formulaire (s2 validator)
Multiples téléversements (uploads)
Structurer : Field UI
• Field API entièrement réécrit
• Entités « fieldables » → « extensibles »
• Champ non partagé entre types d'entités
– Stockage / type d'entité
– Même nom dans types d'entité <>
• Accès simplifié aux champs, ex:
– $node->field_foo->value
Requête & Affichage : Views
•
•
•
•
•
•
Qui ne connait pas Views ?
Requête sur tous types d'entités
Filtres
Tris
Contextes
Affichages : Listes ..., grilles, slideshows
menus, ...
Requête & Affichage : Views
•
•
•
•
•
•
•
Dans le Core
Drupal 8 immédiatement utilisable
Page d'accueil
Administration des contenus, utilisateurs
Gestion des fichiers
Responsive web
+ sortie → services web
Page web : Affichage en Blocs
Tout est BLOC
●
Simplification
●
Multiples instances
●
Entités extensibles
●
Révisions
●
Support ESI
●
IHM Admin. Amélioré
●
Contexte
TWIG
•
•
•
•
•
•
•
•
Connu, documenté
Moins de templates / « Blocs Twig »
Facile
Plus Sécurisé que PHPTemplate
Extensible
Très rapide
Bonne intégration IDEs
Utilisé ailleurs : python, Ruby, ...
Parlez-vous TWIG ?
• Template, ex de nom : node.html.twig
• Commentaires avec variables disponibles
• Imprimer une variable : {{ title }}
• Plus compliqué : {{ content.field.image }}
• Commentaire {# @todo ... my comment here #}
• Test
• {% if title %}
• <h3>{{{ title }}</h3>
• {% endif %}
• Plus fort: partie personnalisée par autre template
•
{% block toto %}
•
que la partie différente !
Langues
Choix dès l'installation
●
Supprimer anglais ;)
●
Visibilité des blocs
●
Langue dans Views
●
Configuration souple
●
Affectation + large
●
●
●
Entités, Vues, Alias, Infos du site
Non affecté <> non applicable
Détection améliorée
●
Translitération
●
Traduction Interface
Traduire en anglais ;)
●
Nouvel interface + simple
●
●
pluriel
Suivi traductions Perso.
●
Import : Timeouts
●
Dossier centralisé
●
Mise à jour auto depuis
localize.drupal.org
●
Module séparé
●
Traduction du Contenu
Tous types d'entités
●
Configuration dynamique /
bundle / champ
●
Index recherche / langue
●
API de recherche
●
Support API node access
●
Services Web : REST
•
•
•
•
•
•
•
•
•
•
•
•
.
Inter-machines
Modules REST + Serialization + HAL
Formats de base JSON ou XML
Méthodes HTTP : POST, GET, PATCH, DELETE
Types de média json : json, hal+json
URIs : GET /node/1, GET /entity/node/1
Link Relations
Richardson Maturity Model : niveau 2. 3 @todo
Profite du nouvel Entity API, de Views
Accès / Cookies + token
← Serialize <> Normalize →
Extensible
Forum PHP 2013
50
50
Configuration en D8
Configuration stockée en fichiers
• modifs via l'interface admin
•
écrites directement dans fichier yml
• format populaire YAML
• facile à lire / « écrire »
• Entités de configuration
Configuration Management Interface
Règle d'or :
« Ne hackez jamais le core ! …
ou Dries tue un chaton»
« Ne hackez pas votre configuration active ! » *
* Alex Pott, Core committer and CMI maintainer
.
Forum PHP 2013
58
58
Architecture technique
• > 500 lignes dans CHANGELOG.txt
• 24 APIs nouveaux ou modifiés
• Plugins (← hooks)
•
•
•
•
•
•
Entity API dans Core + amélioré
CMI
Routage
Services
Objets Formulaires
...
Révolution POO
Il est temps
de passer
vraiment à
la POO !
This guy killed Procedural
Programming in Drupal
Améliorations diverses
• PHPUnit accélère les tests
• Module Tour
– Mieux que help
• Support ESI/CSI/SSI p. cache
• Amélioration API fichiers/médias
• Dossier Core/
Drupal 8 + difficile : Développer
●
Programmation orientée Objet (POO)
●
Symfony2
●
Plus difficile ? Ou plus simple ?
●
Déconstruire & reconstuire ?
.
Forum PHP 2013
70
70
Synthèse Drupal 8 - Core
Mobile / Responsive
Editeur disponible dès l'installation
Multilingue
Séparation Configuration / Contenu
Theming plus facile/ouvert
Tout est Bloc
Services web dans le Core
Cycle développement → Production géré
Et OOP !
.
Forum PHP 2013
71
71
Conclusion : Drupal 8 c'est plus
Harmonisé / simplifié / mieux intégré
Modernisé / Etat de l'art Dev PHP
Généralisé (mobiles, services...)
Localisé (langues, traductions)
Professionnalisé et Ouvert aux nouveaux
Sécurisé
« Accéléré »
Plus facile à Adopter
.
Forum PHP 2013
72
72
Planning Drupal 8
Gel du
Code
Début
Développement
10 Mar 2011
5 Jan 2011
Drupal
7.0
1 Juil 2013
17 Fév 2013
Gel des
Fonctionnalités
S2 2014 ?
Drupal
8.0
Remerciements
Slides :
Drupal :
●
Dries
Angela “webchick” Byron
●
●
Contributeurs
Kristof De Jaeger
●
●
Communauté
Jen Lampton
●
Dries Buytaert
●
Gábor Hojtsy
Déjà > 1600 contributeurs!
●
Larry Garfield
●
Jingsheng Wang
●
Christopher Skene
●
Boris Gordon
●