Assalamualaikum / Hi,
In this post, I will talk more about Laravel Package Generator, 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.
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),
README.md files included in the package.
Then the structure of having
vendor already in place.
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!
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.
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!