Découverte de l'environnement de la philosophie et du fonctionnement de Laravel. Pourquoi un tel succès ?
Présentation de différents composant Open Source qui permettent de débuter rapidement un projet Laravel.
Cette présentation fait partie d'une suite de présentations technologiques appelée "Symposium" chez Versusmind. Toutes les présentations sont disponibles sur http://versusmind.eu.
2. Présentation (1/3)
- Créé par Taylor Otwell
- En 2011
- Inspiré de Django, Ruby on rails, python, Symfony 2…
2
@taylorotwell
Trust me I'm an
engineer
3. Présentation (2/3)
- Composant Symfony 2 (13/28)
BrowserKit, Console, CssSelector, Debug, DomCrawler, EventDispatcher, Filesystem,
Finder,
HttpFoundation, HttpKernel, Process, PropertyAccess, Routing, Translation
- Les composants sont wrappés pour fournir une API simple et intuitive
3
4. Présentation (2/3)
- Le meilleur de PHP:
- Namespace
- Closure
- Méthodes magiques
- Interface
- Trait
- Respect des standards de la FIG
https://github.com/php-fig/fig-standards
4
6. Framework - IoC (1/4)
Inversion Of Control container
Le principe est de découpler les liens de dépendances entre objets. Ainsi les dépendances entre
composants logiciels ne sont plus exprimées dans le code de manière statique mais déterminées
dynamiquement à l'exécution.
Wikipedia
6
7. Framework - IoC (2/4)
7
class Car
{
public function start()
{
$engine = new Engine();
$engine->vroom();
}
}
$car = new Car();
$car->start();
8. Framework - IoC (3/4)
8
class Car
{
protected $engine;
public function __construct(Engine $engine)
{
$this->engine = $engine;
}
public function start()
{
$this->engine->vroom();
}
}
$car = App::make('Car');
$car->start();
Le container va par défaut lui-même créer et
injecter l’instance de Engine
9. Framework - IoC (4/4)
Ok et alors ?
9
App::bind('Engine', function () {
return new MockEngine();
});
21. Laravel 4 vs Laravel 5
21
● Contrôle simplifié des accès
● global.php moins fourre tout
● Formalisation de la validation des forms
● Handlers pour éviter la duplication de code
○ Bus
● Générateurs
22. Capitaliser le code
22
● Développement modulaire
● OpenSource ou non
● Installable via composer
"require": {
"lahaxearnaud/laravel-token": "~0.5",
...
},
23. Capitaliser le code
23
Un workbench peux contenir:
- des migrations
- des modèles
- des contrôleurs
- …
Mais surtout des tests
;(
34. Conclusion
34
- Bâti sur de bonnes bases
- Bonne communauté
- Construit pour être testable
- Popularité grandissante
- Plus mature dans sa version 5