rayiumir/vordia
Vordia is a Laravel package that helps you build admin panels and CRUD interfaces quickly, with a clean, customizable UI and ready-made tools for managing application resources so you can ship back-office features with less boilerplate.
This release is additive — v1.7.0 adds a Melipayamak driver to the existing driver set. There are no breaking changes, so upgrades from v1.6.x should be a straight composer update.
composer require the package (or bump the constraint to ^1.7), then publish the config: php artisan vendor:publish --tag=... (check the package's service provider for the actual tag).config/sms.php first — that is where the default driver, per-driver credential blocks, and any from/sender defaults live. This one file tells you most of what the package does..env alongside the existing drivers, keeping the naming convention already used for the other gateways (typically SMS_MELIPAYAMAK_USERNAME, SMS_MELIPAYAMAK_PASSWORD, SMS_MELIPAYAMAK_FROM — verify against the driver's constructor).melipayamak in a local or staging environment and send a single OTP to your own number before wiring it into any notification. This validates credentials, sender number, and phone-number formatting in one shot.If you have never used the package, the fastest orientation is: read the config file, then the driver interface, then one existing driver implementation. Melipayamak will be structurally identical to the others, so comparing the two side by side is the cheapest way to learn the contract.
Global default with per-send override. Keep a sane default in config/sms.php (SMS_DRIVER env) and override per call site only where a gateway genuinely differs by route or cost. Most teams end up with one provider per environment rather than mixing at runtime.
Notification channel integration. The idiomatic Laravel usage is a notification class implementing toSms() (or the package's equivalent) plus via(). This keeps SMS alongside mail and database channels and gets queueing, retries, and ShouldQueue for free. Prefer this over calling the facade directly from controllers.
Driver selection by config, not by if. Since the package is driver-based, the correct way to swap Melipayamak in or out is an env/config change. Hard-coding a driver name in application code defeats the abstraction and makes staging/production divergence painful.
Queue the send. SMS is a network call to a third party. Implement ShouldQueue on the notification, or wrap the facade call in a job, and add tries/backoff appropriate to the provider's tolerance for retries.
Testing seam. In php artisan test / CI, set the driver to the package's array/log driver (if one ships) or bind a fake into the container so no HTTP leaves the process. Combined with Notification::fake(), you can assert the notification was routed to SMS without touching Melipayamak.
Fallback chaining. If the package supports driver fallback, register Melipayamak as primary for Iranian numbers and a second gateway as backup. If it does not, implement fallback in a thin application-level service rather than forking the driver.
98xxxxxxxxxx without a leading + or 0). Normalise numbers at the boundary — a small cast or value object — before they reach the driver. Do not rely on the driver to be lenient.SMS_USERNAME/SMS_PASSWORD are reused — a wrong key often manifests as a generic "authentication failed" from the provider rather than a Laravel error.php artisan config:clear in local and ensure your deploy pipeline caches config after env is in place. Stale cached config is the most common cause of "the driver change didn't take effect."^1.7 and read release notes on each minor bump; additive driver releases are usually safe, but drivers occasionally ship with changed default timeouts or retry behaviour.How can I help you explore Laravel packages today?