Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Allinkl Bundle Laravel Package

nucleos/allinkl-bundle

Symfony bundle that integrates the All-Inkl KAS API into your application, providing configuration and service wiring to manage hosting resources such as domains, mail accounts, and account settings directly from PHP.

View on GitHub
Deep Wiki
Context7

Getting Started

  1. Install: composer require nucleos/all-inkl-bundle. As of 1.8.0 (PR #474) the package requires PHP 8.3+ — PHP 8.2 support was dropped. Check your composer.json platform.php and CI matrix before upgrading.
  2. Mental model: This is a Symfony bundle, not a native Laravel package. There is no AllInklServiceProvider or facade out of the box. In a Laravel app you either:
    • Use it inside a small dedicated Symfony/console tool that shells out to your Laravel app, or
    • Bridge it into Laravel with a thin service provider that wires the bundle's client service from your Laravel config.
  3. Where to look first: the bundle's DependencyInjection/ config and the injected API client service — that's the single entry point for All-Inkl KAS calls (DNS, mail, subdomains, databases). Configure KAS credentials (login/password) via env vars, mirroring the services.yaml parameters the bundle expects.
  4. First use case: automate DNS record management — creating A/CNAME/TXT records for dynamic subdomains. This is the highest-leverage feature for Laravel apps deployed on All-Inkl shared hosting where the control panel is the only alternative.

Implementation Patterns

  • Service provider bridge: Register the bundle's client as a singleton in AppServiceProvider ($this->app->singleton('allinkl', fn () => new ...)), reading credentials from config('services.allinkl.*'). Expose a Facade for ergonomic calls (AllInkl::dns()->create(...)).
  • DNS-as-code in deploy scripts: Call the client from a scheduled command or deploy hook to upsert records (idempotent create-or-update) after each environment spin-up.
  • Mailbox provisioning: For multi-tenant SaaS hosted on All-Inkl, hook into Laravel's Registered event → create mailbox + forwarder.
  • Subdomain automation: Create tenant.acme.com A records from a TenantObserver when a new tenant is created; delete on TenantDeleted.
  • Reconciliation job: php artisan all-inhl:sync on a schedule — compare local dns_records table to remote state and repair drift.
  • Testing: The bundle leans on Symfony's HttpClient; mock it in tests (or in Laravel, wrap the client in an interface you can fake) so unit tests never hit KAS.

Gotchas and Tips

  • PHP 8.2 dropped in 1.8.0 — this is effectively a BC break published under a minor version. Pinned Laravel apps still on 8.2 will fail install; bump the runtime first.
  • Not Laravel-native: expect Symfony DI (Configuration, Extension), attribute-based autowiring, and services.yaml parameters. Forcing it into Laravel's container is possible but brittle — a standalone Symfony console tool is often cleaner.
  • CI/tooling churn in 1.8.0 (Psalm → PHPStan v2, Infection removed, CI overrides deleted) has zero runtime impact — but if you maintain a fork or extended config, port your static-analysis rules to PHPStan v2.
  • KAS rate limits: All-Inkl's API is rate-limited and can return soft errors in a 200 body. Always inspect the response payload, not just the HTTP status; wrap bulk operations in retry/backoff.
  • Credential handling: KAS uses separate credentials from your panel login. Store them in Laravel's encrypted config or a secrets manager — never in .env committed to VCS.
  • Destructive operations: DNS/mailbox deletes are immediate and unversioned. Gate them behind an explicit --force flag or a dry-run mode in your own wrapper.
  • Extension points: Inject a custom HTTP client (proxy, logging) via the bundle's service config; decorate the client service to add tracing or audit logging of every KAS mutation.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource
noith/settings