Install via Composer:
composer require vendor/package-name
Ensure your project uses Laravel 11 (this package now requires it). Register the package service provider in config/app.php under providers:
Vendor\PackageName\PackageServiceProvider::class,
Publish the config file (if applicable) with:
php artisan vendor:publish --provider="Vendor\PackageName\PackageServiceProvider"
Verify compatibility by checking composer.json for Laravel 11 constraints.
First use case: Use the package’s core functionality (e.g., PackageName::feature()) in a controller or command:
use Vendor\PackageName\Facades\PackageName;
public function example()
{
return PackageName::feature('input');
}
AppServiceProvider:
public function register()
{
$this->app->bind('custom.service', function () {
return new Vendor\PackageName\Services\CustomService();
});
}
Vendor\PackageName\Events\FeatureTriggered) in EventServiceProvider:
protected $listen = [
'Vendor\PackageName\Events\FeatureTriggered' => [
'App\Listeners\HandleFeatureTrigger',
],
];
php artisan package:generate):
php artisan make:command CustomPackageCommand --package="vendor/package-name"
Override defaults in config/package-name.php (published via vendor:publish):
'feature' => [
'timeout' => 30, // Customize as needed
],
config/app.php auto-discovery: Explicitly add the service provider (Laravel 11 removed auto-loading for some packages).composer.json reflects Laravel 11’s PHP 8.2+ requirements.
"require": {
"php": "^8.2",
"laravel/framework": "^11.0"
}
Facade\Ignition may affect error handling).composer why-not vendor/package-name to diagnose version mismatches.config/package-name.php:
'debug' => env('APP_DEBUG', false),
Fresh tests to isolate package behavior:
public function test_package_feature()
{
$response = $this->actingAs(User::factory()->create())
->post('/endpoint', ['data' => 'test']);
$response->assertStatus(200);
}
class CustomPackageProvider extends ServiceProvider
{
public function register()
{
$this->app->extend('package.feature', function ($service) {
return new CustomFeature($service);
});
}
}
AppServiceProvider:
Blade::directive('packageFeature', function ($expression) {
return "<?php echo Vendor\PackageName\Facades\PackageName::feature($expression); ?>";
});
namespace App\Http\Resources;
use Vendor\PackageName\Models\FeatureModel;
class FeatureResource extends JsonResource
{
public function toArray($request)
{
return [
'id' => $this->id,
'custom_field' => $this->customField(),
];
}
}
Cache::remember):
$data = Cache::remember('package.key', 60, function () {
return PackageName::expensiveFeature();
});
dispatch(new Vendor\PackageName\Jobs\ProcessFeature($data));
How can I help you explore Laravel packages today?