constantable/odm-document-maker
composer require vendor/package-name
php artisan vendor:publish --provider="Vendor\PackageName\PackageServiceProvider"
config/package-name.php file for basic configuration. Start with the simplest feature (e.g., a basic service or facade) to test functionality. Example:
use Vendor\PackageName\Facades\PackageFacade;
$result = PackageFacade::doSomething();
PackageFacade::method()). Avoid instantiating classes directly unless extending functionality.$this->app->bind('custom.package.service', function ($app) {
return new CustomService($app->make('package.service'));
});
Event::listen('package.event', function ($payload) {
// Handle payload
});
Kernel.php:
protected $middleware = [
\Vendor\PackageName\Http\Middleware\ExampleMiddleware::class,
];
PackageServiceProvider by binding your own provider after the original:
$this->app->register(\Vendor\PackageName\PackageServiceProvider::class);
$this->app->register(\App\Providers\CustomPackageProvider::class);
AppServiceProvider@boot():
Blade::directive('customPackage', function () {
return "<?php echo Vendor\PackageName\Blade::render(); ?>";
});
App\Services) don’t conflict with the package’s internal namespaces (e.g., Vendor\PackageName\Services).config/cached/ after publishing config files to avoid stale values:
php artisan config:clear
APP_DEBUG=true) and check storage/logs/laravel.log for package-specific errors.dd($this->app->make('package.service'));
php artisan tinker
>>> Event::listen('package.event', function ($payload) { dd($payload); });
class CustomServiceDecorator implements \Vendor\PackageName\Contracts\ServiceContract {
protected $service;
public function __construct(\Vendor\PackageName\Services\Service $service) {
$this->service = $service;
}
public function doSomething() {
// Extend or override logic
return $this->service->doSomething();
}
}
View::composer() in AppServiceProvider.Resource classes to customize responses:
class CustomPackageResource extends \Vendor\PackageName\Http\Resources\PackageResource {
public function toArray($request) {
return array_merge(parent::toArray($request), ['custom_field' => true]);
}
}
How can I help you explore Laravel packages today?