creatydev/plans
Laravel package for creating and managing subscription plans, pricing tiers, and feature limits. Attach plans to Eloquent models, handle upgrades and downgrades, and gate features through a clean, flexible API built for simple integration into new or existing apps.
composer.json for compatible PHP and illuminate/* constraints before installing.composer require vendor/package
extra.laravel.providers. If the package does not, add its service provider manually in config/app.php.php artisan vendor:publish --provider="Vendor\Package\PackageServiceProvider"
# or, if the package defines tags:
php artisan vendor:publish --tag=package-config
php artisan migrate
README.md for the public API and required env/config valuesconfig/package.php after publishingFirst use case: resolve the package’s main contract from the container rather than reaching for globals:
use Vendor\Package\Contracts\PackageService;
public function __invoke(PackageService $service)
{
return $service->handle($request->validated());
}
If the package ships a facade, use it for quick calls in controllers or Blade, but prefer constructor injection in application services and jobs.
App\Services\PackageGateway keeps package-specific types out of controllers, jobs, and tests.config/package.php, and reference them with config('package.key') rather than calling env() at runtime.handle() instead of storing container-bound objects on the job.RefreshDatabase in tests and seed only what the package requires.$this->mock(PackageService::class, function ($mock) {
$mock->shouldReceive('handle')->once()->andReturn('ok');
});
illuminate/support constraints, and any transitive dependencies with:
composer why-not vendor/package
composer show vendor/package
php artisan package:discover
php artisan config:clear
php artisan cache:clear
In production, rebuild caches with php artisan config:cache and php artisan route:cache as appropriate.env() from package config at runtime. Laravel config caching will return null. Put env lookups in config/package.php only.--force intentionally. Prefer publishing only the tags you need.boot() phase.php artisan about for environment and cache statuscomposer show vendor/package for the installed versionregister() vs boot() timingHow can I help you explore Laravel packages today?