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

How To Roll Your Own - PHP Antwerp meetup

How To Roll Your Own - PHP Antwerp meetup

As we mature as software developers, it becomes more and more important to increase the speed with which we are able to develop or applications. This can be done in a number of different ways, e.g. use a new IDE, use a new framework, pull in a specific package via composer, … .

In the last couple of years however, I have felt the need to take this concept one step further by creating a set of custom PHP packages that are perfectly in line with my own preferences and work flow. These packages have allowed me to significantly speed up the development of my projects by reducing the amount of repetitive actions and boiler plate code.

In this talk, I would like to give you a brief demonstration of the tools and techniques I have used to accomplish this and show you can do the same for your projects, be it Laravel, Symfony, Drupal or Wordpress. Additionally, I will highlight some of the lessons I learned over the last couple of years while taking this approach.

This slide deck is an updated version of my initial slides after some feedback from the community. It was used specifically for the PHP Antwerp meetup on 2016-07-27

Ixudra

July 27, 2016
Tweet

More Decks by Ixudra

Other Decks in Programming

Transcript

  1. How To Roll Your Own
    Building your own development tools

    View Slide

  2. www.ixudra.be - @ixudra

    View Slide

  3. First website

    View Slide

  4. Latest work

    View Slide

  5. Lots of progress

    View Slide

  6. View Slide

  7. Disclaimer

    View Slide

  8. View Slide

  9. ixudra/curl

    View Slide

  10. Why reinvent the wheel?

    View Slide

  11. Why reinvent the wheel?

    View Slide

  12. php-mod/curl

    View Slide

  13. shuber/curl

    View Slide

  14. ixudra/curl

    View Slide

  15. ixudra/curl

    View Slide

  16. ixudra/curl

    View Slide

  17. * Data: 2016-07-27
    Current stats*

    View Slide

  18. ixudra.be/blog
    For further reading

    View Slide

  19. In total

    View Slide

  20. /ixudra/ixd-template
    • Custom project template
    • Preferred file and directory structure
    • Project config
    • Commonly used composer packages

    View Slide

  21. View Slide

  22. Custom Laravel packages
    /ixudra/generators

    View Slide

  23. Custom Laravel packages

    View Slide

  24. /ixudra/portfolio

    View Slide

  25. View Slide

  26. /ixudra/csi

    View Slide

  27. In retrospect
    • Very time intensive but very much worth it.
    • Primarily for my personal work flow
    • Focus is on reusability

    View Slide

  28. Other examples

    View Slide

  29. Other examples

    View Slide

  30. Other examples

    View Slide

  31. Benefits
    • Huge gains in development speed
    • Increased consistency in all of my projects
    • New skills and and techniques can easily be
    transferred to other projects
    • Learned lots of new things in doing so

    View Slide

  32. Benefits
    • Huge gains in development speed
    • Increased consistency in all of my projects
    • New skills and and techniques can easily be
    transferred to other projects
    • Learned lots of new things in doing so

    View Slide

  33. Benefits
    • Huge gains in development speed
    • Increased consistency in all of my projects
    • New skills and and techniques can easily be
    transferred to other projects
    • Learned lots of new things in doing so

    View Slide

  34. Benefits
    • Huge gains in development speed
    • Increased consistency in all of my projects
    • New skills and and techniques can easily be
    transferred to other projects
    • Learned lots of new things in doing so

    View Slide

  35. Disadvantages
    • Being stuck in the same routines makes it more
    difficult to learn new things
    • More difficult to jump into a new project that
    doesn’t follow your workflow
    • Developing packages is hard
    • Very easily for packages to become obsolete

    View Slide

  36. Disadvantages
    • Being stuck in the same routines makes it more
    difficult to learn new things
    • More difficult to jump into a new project that
    doesn’t follow your workflow
    • Developing packages is hard
    • Very easily for packages to become obsolete

    View Slide

  37. Disadvantages
    • Being stuck in the same routines makes it more
    difficult to learn new things
    • More difficult to jump into a new project that
    doesn’t follow your workflow
    • Developing packages is hard
    • Very easily for packages to become obsolete

    View Slide

  38. Disadvantages
    • Being stuck in the same routines makes it more
    difficult to learn new things
    • More difficult to jump into a new project that
    doesn’t follow your workflow
    • Developing packages is hard
    • Very easily for packages to become obsolete

    View Slide

  39. How to start your own?

    View Slide

  40. Time vs effort

    View Slide

  41. Step one: check the competition

    View Slide

  42. Step one: check the competition

    View Slide

  43. Step one: check the competition

    View Slide

  44. View Slide

  45. Step two: environment setup

    View Slide

  46. Step three: research best
    practices

    View Slide

  47. Step three: research best
    practices
    http://phppackagechecklist.com

    View Slide

  48. Step four: implementation

    View Slide

  49. Step five: documentation

    View Slide

  50. Step six: set up reminders

    View Slide

  51. Closing remarks
    • Call for action
    • Create one or more of your own packages and
    let me know how it all worked out
    • Take a look at my packages and tell me what
    you think
    • Rate this talk to help me improve my speaking
    abilities

    View Slide

  52. Closing remarks
    • Call for action
    • Create one or more of your own packages and
    let me know how it all worked out
    • Take a look at my packages and tell me what
    you think (http://github.com/ixudra)
    • Rate this talk to help me improve my speaking
    abilities

    View Slide

  53. Online course
    ixudra.teachable.com

    View Slide

  54. www.ixudra.be - @ixudra
    Thank you all for listening
    http://github.com/ixudra

    View Slide