ajaykumaraipl/package
Laravel/PHP package by ajaykumaraipl. Provides reusable components/helpers intended to simplify common application tasks and speed up development. Install via Composer and integrate into your Laravel project as needed.
Installation
composer require ajaykumaraipl/package
Publish the package config (if available):
php artisan vendor:publish --provider="AjayKumaraipl\Package\PackageServiceProvider"
First Use Case
Package:: or \AjayKumaraipl\Package\Facades\Package).use AjayKumaraipl\Package\Facades\Package;
$response = Package::success(['message' => 'Hello World']);
return $response;
Configuration
config/package.php (if published) for default settings.API Response Handling
Package::success(), Package::error()) to standardize API responses.return Package::success($data, 200, 'Resource fetched');
return Package::error('Unauthorized', 401);
Middleware Integration
app/Http/Kernel.php:
protected $middleware = [
\AjayKumaraipl\Package\Http\Middleware\LogRequest::class,
];
Service Layer Abstraction
PackageService) to abstract logic:
$service = app(\AjayKumaraipl\Package\Services\PackageService::class);
$result = $service->process($request);
Event Listeners
EventServiceProvider:
protected $listen = [
\AjayKumaraipl\Package\Events\PackageEvent::class => [
\App\Listeners\HandlePackageEvent::class,
],
];
Blade Directives
@packageDirective('key', 'value')
public function __construct(private PackageService $packageService) {}
$this->mock(\AjayKumaraipl\Package\Facades\Package::class);
extends PackageService).Facade vs. Service Confusion
Package::method() over new PackageService() unless extending.Configuration Overrides
config/package.php:
'queue_driver' => env('QUEUE_CONNECTION', 'sync'),
Middleware Order
Kernel.php:
// Wrong: May block requests prematurely
$middlewareGroups['web'] = [
\AjayKumaraipl\Package\Http\Middleware\Auth::class, // Too early
];
Deprecated Methods
CHANGELOG.md or upgrading.md for breaking changes in newer versions.Event Priorities
Event::listen(
\AjayKumaraipl\Package\Events\PackageEvent::class,
\App\Listeners\HandlePackageEvent::class,
-100 // High priority
);
tail -f storage/logs/laravel.log | grep -i "ajaykumaraipl"
dd(app()->has(\AjayKumaraipl\Package\PackageService::class));
dd(config('package'));
Custom Responses
use AjayKumaraipl\Package\Facades\Package as BasePackage;
class Package extends BasePackage {
public static function customResponse($data) {
return response()->json(['custom' => $data]);
}
}
config/app.php:
'aliases' => [
'Package' => \App\Facades\Package::class,
],
New Middleware
use AjayKumaraipl\Package\Http\Middleware\BaseMiddleware;
class CustomMiddleware extends BaseMiddleware {
public function handle($request, Closure $next) {
// Logic
return $next($request);
}
}
Event Extensions
php artisan vendor:publish --tag=package-events
app/Providers/EventServiceProvider.php to add listeners.Blade Helpers
AppServiceProvider:
Blade::directive('packageCustom', function ($expression) {
return "<?php echo customPackageLogic($expression); ?>";
});
How can I help you explore Laravel packages today?