13. Pourquoi changer
Drupal?
“The complexity of the custom code that’s
used and the non-standard architecture
combines to create a barrier to entry
for developers new to Drupal
(both experienced and novice
developers alike).”
buytaert.net
14. Stop NIH / RTW
• Not Invented Here
• Reinventing The Wheel
15. ClassLoader
• Le composant ClassLoader charge vos
classes automatiquement si elles
suivent une certaine convention
16. HttpFoundation
• Le composant HTTPFoundation
fournit une couche remplie de
fonctionnalités et complètement
orientée objet pour les messages HTTP
• Il remplace les variables globales
natives à PHP afin d’écrire un code
meilleur, plus sûr et facilement
testable.
17. HttpFoundation
• Le composant HTTPFoundation
fournit une couche remplie de
fonctionnalités et complètement
orientée objet pour les messages HTTP
• Il remplace les variables globales Response
natives à PHP afin d’écrire un code HTTP/1.1 200 OK
Date: Wed, 15 Oct 2005 07:07:07 GMT
Content-Length: 14
meilleur, plus sûr et facilement
Content-Type: text/html
Hello World!
testable. use SymfonyComponentHttpFoundationResponse;
$response = new Response('Not Found', 404,
array('Content-Type' => 'text/plain'));
$response = new Response();
$response->setContent('Hello World');
19. Routing
• Le composant Routing découple
l’apparence des url du code qui les
traite.
use SymfonyComponentRoutingRequestContext;
use SymfonyComponentRoutingMatcherUrlMatcher;
$matcher = new UrlMatcher($routes, new RequestContext());
$attributes = $matcher->match('/node/12');
$attributes = $matcher->match($request->getPathInfo());
print_r($attributes);
array(
'_route' => 'node',
'id' => 12,
'_controller' => 'SomeClass::someMethod',
);
22. • Le HttpKernel par défaut fait en sorte
que Drupal soit intéropérable avec
n’importe quelle autre application
utilisant cette même interface
• Le DrupalHttpKernel étend le
HttpKernel par défaut