Laravel: Packager
Assalamualaikum / Hi,
In this post, I will talk more about Laravel Package Generator, Packager.
And today, this morning, I just created Money Wrapper, a Money wrapper, and of course using Packager.
Before we go to the things inside Packager, here the package Money Wrapper provide:
- Provide a Money helper – money()
- Intended for Laravel Framework, but can be use outside from Laravel Framework as well.
- Provide common usage such as:
- For Human Readability – RM 1.00, RM 345.00
- For Common Display – 1.00, 345.00
- For Machine (intended format to store in Database – integer) – 100, 34500
- Fixed Exchange Rate Conversion – $ 1 > RM 3.87
So, that’s just briefly about the package, you may go ahead to Money Wrapper to start use it.
Package Skeleton
First thing first, I’ve already give a short update about Packager, a Laravel Package Generator – help to speed up setup Laravel package skeleton.
The command to create new package is simple:
$ packager skeleton "Cleanique Coders" "Demo Package"
Following are the sample package generated:

And other than generate the skeleton for you, it’s also install all the dependencies and initialise git! Fuh! Save lot time!!
The Skeleton Details
Files and Directories
As you can see, composer(including lock), LICENSE.txt
, phpunit.xml
, README.md
files included in the package.
Then the structure of having src
, tests
and vendor
already in place.
Source
Taking a bit deeper into src
directory, we have the Facade and Service Provider. This is by default generated by the package. Come along in the directory is Support
directory, which usually in the directory we have a helper file – which already auto loaded during package initialisation! Very helpful!
Test
Next, as for tests, the tests
directory already setup and have a default TestCase.php
, which our main file. This TestCase.php
, we should extend from it when creating new test(make sure to have the suffix Test.php
of the file name – you may change in phpunit.xml
if you wanted to). TestCase.php
also already load up your package service provider – so you don’t need to worry setting up migration. I would probably add some other setup like database settings to use SQLite in future.
I’ve also added Code Dungeon, PHPUnit Result Printer and Orchestra TestBench which both would be helpful in your test development for Laravel package.
Conclusion
As the conclusion, you might experienced (if you already have previously write packages), where you have missed out one or two things, or even, kinda difficult to setup one by one for your Laravel package – this is absolutely a solution for you!
For me, I’m bit lazy, and kinda irritate to keep on repeating setup the same thing, so I’ve decided to create the Packager!
And for me again, if i’m not satisfied with what’s exist, I’ll build it myself (of course with Allah’s will, insyaAllah).
When there’s a will and efforts, there’s always a result.
Hope this Packager, will help more people to learn not just about creating Laravel package, also, build a good structure and standard across Laravel packages. I did study how Laravel packages available setup, including those from Spatie, and many more. So this is the result.
Hint: Will add up for updates on Packager. Stay tuned!
Nice article and I think the package manager is an interesting addition. I will try it out. 🙂