- How do I install and configure ardakilic/mutlucell in a Laravel app?
- Install it with Composer, then publish the package config file and add your Mutlucell credentials (username, password, and approved sender ID) to your .env file. The package follows standard Laravel conventions, so it registers a service provider and exposes a facade you can call or inject. You will also need an active Mutlucell account with credits and a provisioned sender ID before any message can be delivered.
- Which Laravel and PHP versions does this Mutlucell package support?
- The package targets Laravel applications, but its Composer constraints should be checked against your target Laravel and PHP versions before adoption. Open the composer.json in the repository and compare it with your project requirements, then pin a compatible version. If you are on a newer Laravel release, run the install in a staging branch first to confirm the service provider and facade still resolve correctly.
- Does the package integrate with Laravel notifications?
- It is a thin wrapper around the Mutlucell HTTP API rather than a full notification channel, so it typically exposes a direct client or facade call. To use it with Laravel notifications, add a custom notification channel class that delegates to this adapter. That keeps your notification classes provider-agnostic and makes it easier to swap or add a fallback provider later.
- Are queueing, retries, and idempotency supported out of the box?
- Not reliably; the package is a small adapter, so queueing, retry policies, and idempotency keys are your responsibility. Wrap send calls in queued jobs, add exponential backoff for timeouts and rate-limit responses, and store an idempotency reference per message to avoid duplicate sends. Also plan dead-letter handling so failed SMS jobs are visible rather than silently dropped.
- How are Turkish characters and multi-segment SMS handled?
- Turkish characters such as ğ, ş, ı, and ç can force GSM-7 to UCS-2 encoding, which cuts the usable characters per segment roughly in half. The package does not abstract this away, so validate your templates, measure segment counts, and normalize text where your business rules allow. Track segments per message because costs scale with each segment, not each send.
- Is there a sandbox or test mode for development?
- Mutlucell does not provide a documented sandbox in the package, so testing usually relies on your provider account's capabilities or a fake HTTP client. In your test suite, swap the underlying HTTP client for a mock and assert the request payload, sender ID, and credentials handling. Keep a small allowlist of internal numbers for staging so you never send test traffic to real customers.
- How should I test SMS sending without hitting the real API?
- Bind a fake implementation of your SMS interface, or mock the HTTP client the package uses, so tests never reach Mutlucell. Write contract tests for success responses, authentication failures, rate limits, timeouts, and encoding edge cases, then assert your adapter maps each case to a predictable domain result. This also protects you when the vendor changes its response format.
- Are my Mutlucell credentials kept secure by this package?
- Credentials are read from the published config and environment variables, which is standard Laravel practice, but you must confirm the package never logs request payloads containing them. Keep the config out of version control, restrict log channels in production, and rotate credentials if any debug logging is enabled. Also audit your own exception handlers so failed HTTP requests do not dump secrets into error trackers.
- Is this package production-ready and actively maintained?
- It is a low-footprint package with a single maintainer and low ecosystem validation, so treat it as a dependency you own rather than a supported product. Pin the version, monitor releases, and build integration tests around Mutlucell's current API behavior. For critical notification flows, keep a fallback provider or manual process until delivery metrics prove reliable.
- What are the alternatives if I need multi-provider SMS support?
- If you need failover or provider-agnostic delivery, wrap this package behind your own SmsSender interface and add other adapters (for example Netgsm, İletimerkezi, or Twilio) alongside it. Laravel's notification system combined with a custom channel makes swapping providers much easier. This package is a Mutlucell-specific adapter, so it will not give you cross-provider routing on its own.