A Laravel package for a consistent workflow
Pankaj Agarwal
July 26, 2018

ColoredCow has been working on Laravel for the past 3 years. In this time period, we have learned a great deal about coding from the way the framework is architected. We have also vastly grown in terms of processes around development following some of the practices that are built into the Laravel ecosystem.

We particularly enjoy how Laravel utilizes features of different packages to add more functionality and extend its core. The number of packages that Laravel offer in its initial core is great and very mindfully setup keeping in mind the needs of a generic user.

Although Laravel does an excellent job of offering many useful packages as part of core setup, we felt the need to add some of our own across all our packages.

Why we needed the core package-

  • Being in the services business, we often come across projects that require quick prototyping.
  • We often need for us to work on different projects and having consistency is important.
  • During our many years of working with Laravel, we came across great packages that became the building blocks of almost all our projects.
  • Along the way, we created some of our own packages which we used abundantly across many of our projects.

All, this pushed us to build a common boilerplate that would enable us to quickly get started on a project.

We were already using one for all of our WordPress projects. There we maintain our own custom copy of WordPress, that we use to jump-start our projects.

 

For Laravel, we are going with the approach of creating a base ‘core’ package. All the packages that we currently use to set up our projects will be configured using this packages.

 

This approach offered some advantages-

  • Installing one package will install and configure multiple packages at once.
  • All projects that we set up will have consistency in their structure/scaffolding
  • The default layout and pre-configured bunch of packages will help us to quickly prototype a project. This will help us to transfer the benefits to our clients.

 

To be continued…