Hello Laravel Friends,
In this blog, I‘ll explain how to setup package development in Laravel.
Laravel Development Package lets developers craft highly reusable components, which can be easily integrated into a larger application based on the Laravel framework. Building utility libraries, integrating with third-party services, or extending core functionality within Laravel is easy using package development in Laravel.
In this tutorial, we’ll build a simple Laravel package step-by-step. This package will be a basic utility for generating random strings. Let us get started!
Steps to Create Laravel Package:
Step 1: Setting Up a New Package
First, let’s create a new Laravel package using the artisan command-line tool:
php artisan make:package Acme/RandomStringGenerator
This command will generate the necessary directory structure for our package under packages/Acme/RandomStringGenerator.
Step 2: Writing Package Code
Navigate to the packages/Acme/RandomStringGenerator directory and create a new class for our random string generator.
mkdir src touch src/RandomStringGenerator.php
Open RandomStringGenerator.php and add the following cod
<?php namespace Acme\RandomStringGenerator; class RandomStringGenerator { public static function generate($length = 10) { return substr(str_shuffle(str_repeat('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', $length)), 0, $length); } }
Step 3: Testing Your Package
Let’s write some tests to ensure our package works as expected. Create a new directory for tests and add a test file
mkdir tests touch tests/RandomStringGeneratorTest.php
Open RandomStringGeneratorTest.php and add the following code
<?php namespace Acme\RandomStringGenerator\Tests; use PHPUnit\Framework\TestCase; use Acme\RandomStringGenerator\RandomStringGenerator; class RandomStringGeneratorTest extends TestCase { public function testRandomStringGenerator() { $string = RandomStringGenerator::generate(8); $this->assertEquals(8, strlen($string)); } }
Run the tests using PHPUnit:
./vendor/bin/phpunit
Step 4: Documenting Your Package
Using Laravel Docs Generator, generate the API documentation for your package:
php artisan make:docs
This would generate API documentation from the PHPDoc comments in your code.
Step 5: Distributing Your Package
Publish your package to the default package repository for Composer, Packagist
Create a composer.json file in the root of your package directory
{ "name": "acme/random-string-generator", "description": "A simple utility for generating random strings.", "type": "library", "license": "MIT", "authors": [ { "name": "Your Name", "email": "your@email.com" } ], "autoload": { "psr-4": { "Acme\\RandomStringGenerator\\": "src/" } }, "require": {} }
- Commit your changes and push your package to a version control repository like GitHub.
- Register an account on Packagist (if you haven’t already) and submit your package’s GitHub repository URL.
- Once your package is published on Packagist, other developers can install it via Composer:
composer require acme/random-string-generator
Conclusion
Congratulations! You have now created and published a Laravel package. Package development in Laravel offers a powerful way to encapsulate and share reusable components with the community. Therefore, using Laravel conventions and tools while maintaining best practices can result in high-quality packages that greatly simplify most development tasks, thus improving the delivery times of the project.
Hire Laravel Developers for any customization requirement for your web application.
Happy Coding!