- What is upmind/provision-provider-base used for?
- It provides base interfaces, abstract classes, and shared logic for building Upmind provisioning provider and provision category classes in a Laravel application. It standardizes how integrations create, manage, suspend, and cancel customer services across hosting, domain, and SaaS products. Use it when you are building a provider module rather than calling a vendor API directly.
- How do I install upmind/provision-provider-base?
- Install it with Composer as a dependency in your Laravel project. The package is intended to be pulled in by provisioning provider packages or application code that needs the shared base classes. After installation, follow the package's registration conventions for binding your provider classes into the Laravel application.
- Which Laravel versions does this package support?
- The package is built for Laravel applications, but the exact supported Laravel and PHP versions are defined by its Composer constraints. Check the package's composer.json or Packagist metadata before installing or upgrading. If you maintain a custom provider, test against your target Laravel version.
- What is the difference between a provision category and a provider class?
- A provision category groups a type of provisioning capability, while a provider class implements the actual integration behavior for that category. The base package supplies shared contracts and abstract classes so categories and providers follow consistent structure. Your integration typically defines concrete providers and registers them for Laravel to resolve.
- How do I register a provisioning provider in Laravel?
- Registration is handled through the package's Laravel integration and your application's service provider or configuration, depending on how the provider package exposes it. The base package exists so provider classes can be registered and resolved consistently. Follow the concrete provider package's README for the exact registration hook.
- Can I use upmind/provision-provider-base outside Laravel?
- It is designed around registration and use in a Laravel application, so the intended workflow assumes Laravel's service container and package conventions. Some base interfaces may be plain PHP, but the package is not positioned as framework-agnostic. For non-Laravel projects, evaluate the coupling before adopting it.
- What methods must a custom provider implement for create, suspend, and cancel?
- The exact method signatures come from the interfaces and abstract classes in this base package, so implement the contracts your provider extends or implements. The package's purpose is to standardize those lifecycle operations across create, manage, suspend, and cancel flows. Do not guess signatures; inspect the installed interfaces and follow the concrete provider package examples.
- How should I test a custom provisioning provider?
- Write unit tests against the provider's public contract and mock external APIs so create, suspend, cancel, and management paths are deterministic. If the package provides abstract classes, test your concrete implementation rather than the base logic. Add at least one Laravel integration test to confirm your provider is registered and resolvable from the container.
- Is upmind/provision-provider-base production-ready?
- It is a base library intended to be used by provisioning provider implementations, so production readiness depends on the concrete provider and your integration. Review the package's release history, Composer constraints, and maintainer activity before relying on it. Test lifecycle operations and error handling in staging before production use.
- Do I need this package if I only integrate one hosting or domain service?
- You may not need the abstraction if you only have one simple integration and do not need shared provider contracts. It is most useful when multiple provisioning categories or providers must follow the same create, suspend, and cancel conventions in Laravel. If you expect more integrations, the base package can reduce duplication.