CakeFest 2013 keynote

7,475
-1

Published on

This keynote presented in CakeFest 2013 contains a small summary of the things we have been working on for CakePHP 3.0

Published in: Technology
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,475
On Slideshare
0
From Embeds
0
Number of Embeds
19
Actions
Shares
0
Downloads
14
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

CakeFest 2013 keynote

  1. WHAT KEPT US BUSY A QUICK SUMMARY OF A YEAR WORKING IN CAKEPHP CakeFest 2013 @jose_zap
  2. CAKEPHP IS COMMUNITY DRIVEN This is both good and bad. There is a slower pace in what we do, but the result is a consequence of what the community is actually asking for based of the collective input.
  3. WE GROW OLDER, BUT WISER In general, people working in any organization...
  4. JOIN
  5. GET PASSIONATE ABOUT IT
  6. GET EXPERIENCE
  7. GET BORED
  8. GET MARRIED, HAVE CHILDREN
  9. BECOME BUSIER
  10. AND SOME... LEAVE (sad panda face)
  11. THE CORE TEAM HAVE A CONSTANT DREAM AND A PASSION TO MAKE THINGS BETTER
  12. THIS IS A SUMMARY OF THE THINGS WE DREAMT ABOUT and made its way into the code
  13. HELLO PHP 5.4
  14. NAMESPACES We hate (wrong slash) but we finally converted the virtual packages into namespaces if (strpos($class, '') !== false) Yes, we'll keep using the plugin syntax and save from writing things like that
  15. NEW UNIFIED CONFIG Configuration is passed directly to the classes that are interested about them Bye, Bye DATABASE_CONFIG
  16. COMPOSER SUPPORT OUT OF THE BOX
  17. FASTER, BETTER ROUTER Reverse routing got extremely fast and now it is possible to have named routes!
  18. ROUTING PREFIXES USING NAMESPACES Instead of UsersController::admin_index() you will have a separate AdminUsersController::index()
  19. FASTER, CONSISTENT AND LEANER EVENT MANAGER
  20. FEATURE RICH HTTPSOCKET CLASS
  21. NEW QUERY BUILDER Create queries using a fluent interface with automatic type conversion $union = (new Query($connection)) ->select(['id', 'title']) ->from(['a' => 'articles']); $results = (new Query($connection)) ->select(['id', 'comment']) ->from(['c' => 'comments']) ->where(['created >=', new DateTime('1 day ago')]) ->union($union) ->execute();
  22. SMART SQL DIALECT TRANSLATION You can use this in both PostgreSQL and MySQL $query = (new Query($connection))->select(function($q) { return [ 'id', 'full_name' => $q->concat(['first_name', ' ', 'last_name']) ] });
  23. SMART ASSOCIATION EAGER LOADING This will use a single query $table = Table::build('author'); $table->hasMany('article', [ 'property' => 'articles', 'strategy' => 'subquery', 'sort' => ['article.id' => 'asc'] ]); $results = $table->find('all')->contain('article')->toArray();
  24. CHAINABLE CUSTOM FINDERS Woot!? $articles->latest()->popular()->list()->toArray();
  25. RESULT STREAMING
  26. STOPPABLE FINDS Before find callbacks can stop the query from being executed and return cached results
  27. MAP-REDUCE
  28. SCHEMA MIGRATIONS
  29. AND MUCH, MUCH MORE
  30. WELCOME TO CAKEFEST This is the right place to figure out where we are heading

×