Introduction à Laravel 4 @Dogstudio

1,326
-1

Published on

A 2h introduction into the laravel 4 framework in french.

Published in: Technology
1 Comment
2 Likes
Statistics
Notes
No Downloads
Views
Total Views
1,326
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
62
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

Introduction à Laravel 4 @Dogstudio

  1. 1. Introduction à Laravel 4
  2. 2. Concepts de base • • • • PHP 5 >= 5.3.0 Composer RESTful Testable Introduction à Laravel 4
  3. 3. getcomposer.org Introduction à Laravel 4
  4. 4. Composer • • • • packagist.org Packages réutilisables Gérer facilement les dépendences des applications Très facile à utiliser Introduction à Laravel 4
  5. 5. Installation • • Composer Laravel phar Introduction à Laravel 4
  6. 6. Installation Composer Laravel Phar Introduction à Laravel 4
  7. 7. Introduction à Laravel 4
  8. 8. Le composer.json de Laravel Introduction à Laravel 4
  9. 9. • • • • • Quelques fonctionnalités de Laravel Routage facile d’utilisation Authentification ‘built-in’ Syntaxe de template Blade Migrations Eloquent ORM Introduction à Laravel 4
  10. 10. Routage / Routing • • • • Closures Actions de controlleur Controlleurs RESTful Controlleurs ressourceful Introduction à Laravel 4
  11. 11. Route avec closure Introduction à Laravel 4 https://gist.github.com/nWidart/6334183
  12. 12. Route vers action controlleur Introduction à Laravel 4 https://gist.github.com/nWidart/6334237
  13. 13. Route vers controlleur RESTful Introduction à Laravel 4 https://gist.github.com/nWidart/6335300
  14. 14. Route vers controlleur resource Introduction à Laravel 4 https://gist.github.com/nWidart/6335333
  15. 15. Route groups Introduction à Laravel 4
  16. 16. Route filters Introduction à Laravel 4
  17. 17. Route filters Introduction à Laravel 4
  18. 18. Route filters Introduction à Laravel 4
  19. 19. Sécuriser les routes Introduction à Laravel 4
  20. 20. Secure route groups Introduction à Laravel 4
  21. 21. Routes Fonctions “avancées”
  22. 22. Paramètres optionels Route::get('user/{name?}', function($name = 'Kai') { return $name; }); Introduction à Laravel 4
  23. 23. Contraintes regex Route::get('user/{name}', function($name) { // }) ->where('name', '[A-Za-z]+'); Introduction à Laravel 4
  24. 24. Contraintes regex Route::get('user/{name}', function($name) { // }) ->where('name', '[A-Za-z]+'); Route::get('user/{id}', function($id) { // }) ->where('id', '[0-9]+'); Introduction à Laravel 4
  25. 25. Contraintes regex Route::get('user/{id}/{name}', function($id, $name) { // }) ->where(array('id' => '[0-9]+', 'name' => '[a-z]+')) ! Introduction à Laravel 4
  26. 26. Authentification
  27. 27. Authentification Introduction à Laravel 4
  28. 28. Views
  29. 29. Views (blade) Introduction à Laravel 4
  30. 30. Définir des layouts blade Introduction à Laravel 4
  31. 31. Utiliser les blade layouts Introduction à Laravel 4
  32. 32. Environements
  33. 33. Environements Introduction à Laravel 4
  34. 34. Environements Introduction à Laravel 4
  35. 35. Artisan
  36. 36. Artisan • • • • • CLI pour laravel Basé sur le composant Symfony/Console Utilisé pour des tâches régulières comme les migrations Offre des helpers pour génération de code Sait être étendu Introduction à Laravel 4
  37. 37. Quelques commandes Artisan Introduction à Laravel 4
  38. 38. Mode de maintenance Introduction à Laravel 4
  39. 39. Migrations
  40. 40. Migrations • • • • Gestions de versions pour la DB Unique par timestamp Construction & édition du layout DB Révenir vers des structures ultérieures Introduction à Laravel 4
  41. 41. Migrations Introduction à Laravel 4
  42. 42. Schema builder Introduction à Laravel 4
  43. 43. Schema builder Introduction à Laravel 4
  44. 44. Exécuter les migrations Introduction à Laravel 4
  45. 45. Query builder
  46. 46. Query builder Introduction à Laravel 4
  47. 47. Query builder Introduction à Laravel 4
  48. 48. Eloquent ORM
  49. 49. Eloquent ORM • • • • • Basé sur ActiveRecord de Rails Query scoping Rends la définition de relations ultra facile Events de modèle Beaucoup plus... Introduction à Laravel 4
  50. 50. Basic Eloquent model Introduction à Laravel 4
  51. 51. CRUD avec Eloquent Introduction à Laravel 4
  52. 52. Query Builder vs Eloquent Introduction à Laravel 4
  53. 53. Query Scopes Introduction à Laravel 4
  54. 54. Relations dans Eloquent • • • • One to one One to many Many to many Polymorphic Introduction à Laravel 4
  55. 55. One to One Introduction à Laravel 4
  56. 56. One to One: inverse Introduction à Laravel 4
  57. 57. One to One: inverse Introduction à Laravel 4
  58. 58. One to Many class Post extends Eloquent { ! public function comments() { return $this->hasMany('Comment'); } ! } $comments = Post::find(1)->comments; Introduction à Laravel 4
  59. 59. One to Many: inverse class Comment extends Eloquent { ! public function post() { return $this->belongsTo('Post'); } ! } $post = Comment::find(1)->post; Introduction à Laravel 4
  60. 60. Many to Many class User extends Eloquent { ! public function roles() { return $this->belongsToMany('Role'); } ! } $roles = User::find(1)->roles; Introduction à Laravel 4
  61. 61. Polymorphic class Staff extends Eloquent { class Photo extends Eloquent { ! ! public function imageable() { return $this->morphTo(); } public function photos() { return $this->morphMany('Photo', 'imageable'); } ! ! } } class Order extends Eloquent { ! public function photos() { return $this->morphMany('Photo', 'imageable'); } ! } Introduction à Laravel 4
  62. 62. Polymorphic staff id - integer name - string ! orders id - integer price - integer ! photos id - integer path - string imageable_id - integer imageable_type - string Introduction à Laravel 4
  63. 63. Polymorphic: récupérer la relation $staff = Staff::find(1); ! foreach ($staff->photos as $photo) { // } Introduction à Laravel 4
  64. 64. Polymorphic: récupérer le owner $photo = Photo::find(1); ! $imageable = $photo->imageable; Introduction à Laravel 4
  65. 65. N+1 problem
  66. 66. N+1 Méthode traditionnelle Introduction à Laravel 4
  67. 67. N+1 Méthode traditionnelle 100 posts = 101 requêtes SQL SELECT * FROM “posts” foreach result { SELECT * FROM “users” WHERE “id” = 1 } Introduction à Laravel 4
  68. 68. Solution Eager Loading!
  69. 69. Solution Eager Loading Introduction à Laravel 4
  70. 70. Solution Eager Loading 100 posts = 2 requêtes SQL SELECT * FROM “posts” SELECT * FROM “users” WHERE “id” IN (1,2,3,4,…) Introduction à Laravel 4
  71. 71. JSON • Super facile de créer des APIs Introduction à Laravel 4
  72. 72. JSON Route::get('users', function() { return User::all(); }); Introduction à Laravel 4
  73. 73. JSON Route::get('users', function() { return User::all(); }); Introduction à Laravel 4
  74. 74. Validation
  75. 75. Validation $validator = Validator::make( array('name' => 'Nicolas'), array('name' => 'required|min:5') ); Introduction à Laravel 4
  76. 76. Validation $validator = Validator::make( array('name' => 'Nicolas'), array('name' => 'required|min:5') ); if ($validator->fails()) { // Validation pas passé } Introduction à Laravel 4
  77. 77. Validation // Récupérer les messages d’erreur ! $messages = $validator->messages(); Introduction à Laravel 4
  78. 78. Validation // Récupérer les messages d’erreur ! $messages = $validator->messages(); // Récupérer le premier message d’erreur d’un champ echo $messages->first('name'); Introduction à Laravel 4
  79. 79. Validation // Récupérer les messages d’erreur ! $messages = $validator->messages(); // Récupérer le premier message d’erreur d’un champ echo $messages->first('name'); Introduction à Laravel 4 // Toutes les erreurs foreach ($messages->all() as $message)
  80. 80. Validation // Récupérer les messages d’erreur ! // Toutes les erreurs foreach ($messages->all() as $message) $messages = $validator->messages(); // Toutes les erreurs d’un champ foreach ($messages->get('name') as $message) // Récupérer le premier message d’erreur d’un champ echo $messages->first('name'); Introduction à Laravel 4
  81. 81. Validation // Récupérer les messages d’erreur ! // Toutes les erreurs foreach ($messages->all() as $message) $messages = $validator->messages(); // Toutes les erreurs d’un champ foreach ($messages->get('name') as $message) // Récupérer le premier message d’erreur d’un champ echo $messages->first('name'); Introduction à Laravel 4 // Check si erreurs if ($messages->has('name'))
  82. 82. Validation: example Route::get('register', function() { return View::make('user.register'); }); ! Route::post('register', function() { $rules = array(...); ! $validator = Validator::make(Input::all(), $rules); ! if ($validator->fails()) { return Redirect::to('register')->withErrors($validator); } }); Introduction à Laravel 4
  83. 83. Ce n’est pas tout! • • • • • • Evènements Caching Queues Localisation Unit Tests Mailer Introduction à Laravel 4 • • • • • Pagination Formulaires & générateur HTML Gestion de sessions Logging Et des tonnes de choses en plus..
  84. 84. Symfony & Laravel • • • Symfony propose des composants stables et solides Release cycle prédéfini Couple parfait Introduction à Laravel 4
  85. 85. Symfony dans Laravel 3 • • symfony/console symfony/http-foundation Introduction à Laravel 4
  86. 86. Symfony dans Laravel 4 • • • • • • symfony/browser-kit symfony/console symfony/css-selector symfony/debug symfony/dom-crawler symfony/event-dispatcher Introduction à Laravel 4 • • • • • • symfony/finder symfony/http-foundation symfony/http-kernel symfony/process symfony/routing symfony/translation
  87. 87. Autres packages • • • • • classpreloader/classpreloader doctrine/dbal ircmaxell/password-compat filp/whoops monolog/monolog Introduction à Laravel 4 • • • • nesbot/carbon patchwork/utf8 predis/predis swiftmailer/swiftmailer
  88. 88. Composants Illuminate Auth, Cache, Config, Console, Container, Cookie, Database, Encryption, Events, Exception, Filesystem, Foundation, Hashing, HTML, Http, Log, Mail, Pagination, Queue, Redis, Routing, Session, Support, Translation, Validation,View, Workbench Introduction à Laravel 4
  89. 89. Laravel: planning Ressemble au planning de sortie de Symfony • 4.0 - Mai 2013 • 4.1 - Novembre 2013 • 4.2 - Mai 2014 • 4.3 - Novembre 2014 Introduction à Laravel 4
  90. 90. Mettre à jour Laravel • • Dans terminal: ‘composer update’ DONE Introduction à Laravel 4
  91. 91. Ressources • • • Docs: http://laravel.com/docs/ Laracasts: https://laracasts.com/ Forum: http://forums.laravel.io/ Introduction à Laravel 4
  92. 92. Ressources: eBooks • Code Bright : https://leanpub.com/codebright Introduction à Laravel 4
  93. 93. Ressources: eBooks • Laravel: From Apprentice To Artisan : https://leanpub.com/laravel Introduction à Laravel 4
  94. 94. Ressources: eBooks • Laravel Testing Decoded : https://leanpub.com/laravel-testing-decoded Introduction à Laravel 4
  95. 95. Merci. Introduction à Laravel 4

×