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.
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/!
Top comments (0)