Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

CakePHP - The Road Ahead

4,364 views

Published on

A talk given at Cakefest2017 on the future roadmap of CakePHP.

Published in: Software
  • Be the first to comment

CakePHP - The Road Ahead

  1. 1. The Road Ahead 3.4 and the path to 4.0
  2. 2. Present FuturePast
  3. 3. Past
  4. 4. Past 2.x - 3.0.0
  5. 5. Past Upgrading was hard
  6. 6. Past Upgrading was brutal
  7. 7. Past 2.x is still active
  8. 8. Past What did we learn?
  9. 9. Past Difficult upgrades Fragment the community
  10. 10. Past Stagnation Big releases take time
  11. 11. Past
  12. 12. PresentPast
  13. 13. Present 3.2.x - 3.4.x
  14. 14. Present Working towards stronger typing Splitting up modal methods
  15. 15. $email = new Email(); $email->to(‘mark@example.com') ->from(‘bots@example.com') ->template($template) ->helpers([‘Html’, ‘Emoji’]) ->send(); Combined Methods
  16. 16. $email = new Email(); $email->to(‘mark@example.com') ->setFrom(‘bots@example.com') ->setTemplate($template) ->setHelpers([‘Html’, ‘Emoji’]) ->send(); Combined Methods
  17. 17. Present PSR7 Adopting community standards
  18. 18. Present Immutability Request & Response
  19. 19. // $response is unchanged here. $response->withHeader(‘X-yes’, ‘yes’); // We need to overwrite $response $response = $response->withHeader(‘X-yes’, ‘yes’); Immutability
  20. 20. Present Middleware Your application as an onion
  21. 21. Present Layers of behavior Small, focused, and composable
  22. 22. App
  23. 23. Routes App
  24. 24. Assets Routes App
  25. 25. Exceptions Assets Routes App
  26. 26. CORS Exceptions Assets Routes App
  27. 27. CORS Exceptions Assets Routes App
  28. 28. CORS Exceptions Assets Routes App Request
  29. 29. CORS Exceptions Assets Routes App Request
  30. 30. CORS Exceptions Assets Routes App Request Response
  31. 31. CORS Exceptions Assets Routes App
  32. 32. CORS Exceptions Assets Routes App Request
  33. 33. CORS Exceptions Assets Routes App Request
  34. 34. CORS Exceptions Assets Routes App Request Response
  35. 35. PresentPast
  36. 36. Present FuturePast
  37. 37. Future 3.5
  38. 38. Future New Middleware CSRF, Cookies, Authentication
  39. 39. use CakeHttpMiddlewareEncryptedCookiesMiddleware; $middleware->add(new EncryptedCookiesMiddleware([ [‘remember_me’, ‘secrets’], Configure::read(‘Cookie.aesKey’) ])); Cookies
  40. 40. use CakeHttpMiddlewareCsrfProtectionMiddleware; $middleware->add(new CsrfProtectionMiddleware([ ‘expiry’ => 600, ‘httpOnly’ => true ])); CSRF
  41. 41. Future Routable Middleware
  42. 42. // Register middleware, for use in routing scopes $routes ->registerMiddleware(‘auth’, new AuthenticationMiddleware(..)) ->registerMiddleware(‘cookies’, new EncryptedCookieMiddleware(..)); // Create a routing scope (as you do today) $routes->scope('/api', function ($routes) { // Enable middleware $routes->middleware('csrf', 'cors', 'auth'); $routes->connect('/ping', [‘controller’ => ‘Pings’]); }); Routable Middleware
  43. 43. Future 3.6 & 4.0
  44. 44. Future 3.6 Backwards compatible
  45. 45. Future Deprecation warnings Runtime errors for deprecations
  46. 46. Future 4.0.0 Svelte CakePHP 3.x
  47. 47. Future PHP 7.1 No PHP5 support
  48. 48. Future Stricter Typing
  49. 49. Future Interface Updates
  50. 50. Future Deprecation Cleanup All currently deprecated methods will be removed.
  51. 51. Future Developer Happiness Better and earlier errors
  52. 52. Late 2017 | Early 2018
  53. 53. Future Long Term Support
  54. 54. Future 2.10 Long Term Support
  55. 55. Future 2.x bugfixes 1 year after 4.0.0
  56. 56. Future 2.x Security fixes 18 months after 4.0.0
  57. 57. Future 3.6 Long Term Support
  58. 58. Future 3.6 bugfixes 18 months after 4.0.0
  59. 59. Future 3.6 Security fixes 3 years after 4.0.0
  60. 60. Past
  61. 61. PresentPast
  62. 62. Present FuturePast
  63. 63. Thank You Github - markstory Twitter - mark_story https://joind.in/talk/b71f6

×