Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Pluginize ALL the things

Pluginize ALL the things

With the move to CakePHP 2.x, it has been a bit harder to find quality open source code that can be integrated with your application. If it is a generic feature, it is very likely that you are duplicating effort, or missing out on a feature because you didn't know quite how to implement it. In this talk we will go over where to locate, assess and embrace/extinguish open source CakePHP code. We will also be covering a few of the more useful and popular CakePHP plugins available.

From CakeFest 2013

35ce1084ddd81008486fcc31170bec96?s=128

Jose Diaz-Gonzalez

September 02, 2012
Tweet

Transcript

  1. Pluginize ALL the things Thursday, March 21, 13

  2. n Developer and Operations at seatgeek.com n Cake Core -

    Plugins Site and IRC Troll n Open Source Contributor (github.com/josegonzalez) about Thursday, March 21, 13
  3. Finding Code Thursday, March 21, 13

  4. popular sites n plugins.cakephp.org Thursday, March 21, 13

  5. popular sites n plugins.cakephp.org n github.com Thursday, March 21, 13

  6. alternative methods n google alerts Thursday, March 21, 13

  7. alternative methods n google alerts n twitter #cakephp Thursday, March

    21, 13
  8. alternative methods n google alerts n twitter #cakephp n IRC

    releases Thursday, March 21, 13
  9. alternative methods n google alerts n twitter #cakephp n IRC

    releases n online guides Thursday, March 21, 13
  10. Plugin Requirements Thursday, March 21, 13

  11. DOES IT WORK? Thursday, March 21, 13

  12. does it work? n Does it do what I need?

    Thursday, March 21, 13
  13. does it work? n Does it do what I need?

    n Does it break often? Thursday, March 21, 13
  14. does it work? n Does it do what I need?

    n Does it break often? n If it’s broken, don’t fix it Thursday, March 21, 13
  15. CODEBASE Thursday, March 21, 13

  16. codebase n Standard Syntax usage Thursday, March 21, 13

  17. codebase n Standard Syntax usage n Proper Implementation of something

    Thursday, March 21, 13
  18. codebase n Standard Syntax usage n Proper Implementation of something

    n Single install, few dependencies Thursday, March 21, 13
  19. USERBASE Thursday, March 21, 13

  20. userbase n Forks/Watches Thursday, March 21, 13

  21. userbase n Forks/Watches n Issues promptly responded to Thursday, March

    21, 13
  22. userbase n Forks/Watches n Issues promptly responded to n Positive

    feedback Thursday, March 21, 13
  23. DOCUMENTATION Thursday, March 21, 13

  24. documentation n Wikis make a poor readme Thursday, March 21,

    13
  25. n Wikis make a poor readme n Provides explicit usage

    docs documentation Thursday, March 21, 13
  26. n Wikis make a poor readme n Provides explicit usage

    docs n Well formatted, easy to read documentation Thursday, March 21, 13
  27. DEVELOPMENT Thursday, March 21, 13

  28. development n Few or decreasing issues Thursday, March 21, 13

  29. n Few or decreasing issues n Recent commits development Thursday,

    March 21, 13
  30. n Few or decreasing issues n Recent commits n Developer

    easy to reach development Thursday, March 21, 13
  31. Review Thursday, March 21, 13

  32. n Readme is weak, no wiki n Last commit was

    9 months ago n Codebase is largely spaghetti code n No downloadable release josegonzalez/git-php Thursday, March 21, 13
  33. n Readme is weak, no wiki n Last commit was

    9 months ago n Codebase is largely spaghetti code n No downloadable release josegonzalez/git-php FAIL Thursday, March 21, 13
  34. n Readme points to wiki n Actively updated n Strong

    developers, Core Contributors n Pulls and issues actively closed cakephp/debug_kit Thursday, March 21, 13
  35. n Readme points to wiki n Actively updated n Strong

    developers, Core Contributors n Pulls and issues actively closed cakephp/debug_kit wIN Thursday, March 21, 13
  36. Contributing Thursday, March 21, 13

  37. pull requests are IGNORED Thursday, March 21, 13

  38. we have dayjobs too! Thursday, March 21, 13

  39. test ALL the things Thursday, March 21, 13

  40. Don’t forget documentation Thursday, March 21, 13

  41. fire, but don’t FORGET Thursday, March 21, 13

  42. Releasing Thursday, March 21, 13

  43. USE GITHUB Thursday, March 21, 13

  44. include a README Thursday, March 21, 13

  45. have at least ONE test Thursday, March 21, 13

  46. use COMPOSER for releases Thursday, March 21, 13

  47. submit it to plugins.cakephp.org Thursday, March 21, 13

  48. Awesome Plugins Thursday, March 21, 13

  49. n OAuth in a few lines of code n Handles

    multiple providers using strategies n Lots of documentation online uzyn/cakephp-opauth Thursday, March 21, 13
  50. n public $actsAs = array(‘Upload’) n Large set of tests

    n Little or no automagic josegonzalez/upload Thursday, March 21, 13
  51. n Resque::enqueue('default', 'SomeJob', array('work', $id) n Redis-backed, easy setup n

    Jobs are just CakeShells kamisama/cake-resque Thursday, March 21, 13
  52. n $this->AssetCompress->script(‘bundle_name’) n Handles CSS and JS, pluggable backends n

    Possible to integrate with CDNs n Very extensible and Cake-Aware markstory/asset_compress Thursday, March 21, 13
  53. n Console/cake Migrations.migration run n Easy to add migration callbacks

    n Lots of easy to understand documentation n Recommended over SchemaShell cakedc/migrations Thursday, March 21, 13
  54. n Clean integration with ElasticSearch n Provides data migration into/out

    of ES n Supports most ES features; Conforms to CakePHP standards dkullman/elastic-search Thursday, March 21, 13
  55. n localhost/posts/view/1.pdf n PDF Generation in a pinch n Supports

    multiple backends ceeram/cakepdf Thursday, March 21, 13
  56. Questions? Thursday, March 21, 13