DEV Community

CodeWithCaen
CodeWithCaen

Posted on

1 1

What I learned from developing my first Laravel Package.

This post was originally written 01 Mar 2022

After about a week of development, today I published my first Laravel Package, Laradocgen. It's a simple package that turns Markdown files into a static HTML website to display documentation for Laravel apps. Here is what I learned.

Firstly, some context as to why I created the package.
If you are reading this on my blog, you probably already know that I created it as part of my Laravel Blog Starter Kit which I also made to practice Laravel. I wanted to make some documentation for the kit and started looking into templates so I could just focus on the content. While doing this I realized something.

I had already created a Markdown file-parser for the blog which reads .md files in a directory and injects them as models into an Eloquent collection, so why not build on that?

I knew that while I did not need to make it into a package, I have never created a package before and I thought it would be a good experience to have.

Often programming boils down to identifying and solving a problem. The problem I was facing was not how to create a documentation site, or to create the first static site builder. I know there are countless of those already. And I know I could have just done this with plain PHP without Laravel. The problem I had was that I did not know how to create a package for Laravel and I wanted to learn.

I used Beyond Code's service Laravel Package Boilerplate to get started. I just had to fill in some details and then I could download a ZIP file of my package.
Screenshot of the website

In short:

  • I learned how to create a composer package (obviosly)
  • I learned how to build a service-provider and bind a singleton and how to use facades
  • I learned how to use PHPDocumentor and how to properly use PHPDoc tags
  • I learned (the basics) of PHPStorm
  • I learned how to create comments in Markdown
  • I learned how to use PHP to create, modify and read files.
  • I learned (with the risk of duning-krugering myself: an intermediate level of) bash scripting for the build/test script. As well as *nix commands like sed to modify files with the power of Linux.
  • I learned how to use a local repository in composer
  • I got to practise writing tests, refactor code, document everything.
  • I also learned the value of micro-commits in Git, and also how and when it makes sense to merge commits before pushing to remote.
  • I learned how to use and extend the Leauge/CommonMark package and to dynamically add extensions
  • I learned how to use CodeSniffer to validate and fix my code, and to ensure I follow the Laravel coding standards (PSR-2) which I also got to learn more about.

Check out Laradocgen on GitHub: https://github.com/caendesilva/laradocgen

May update: A lot has happened since I created Laradocgen and I have learned even more. I'm currently working on HydePHP which includes a documentation site builder that I think is way better. I am also working on V2 of Laradocgen which I'm calling Lagrafo.

You can find HydePHP at https://hydephp.github.io/!

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay