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
laravel-sms-gateway-kavenegar-development
laravel-sms-gateway-kavenegar-development
misaf/laravel-sms-gateway-kavenegar
claude-code
sms
laravel
sms-gateway
kavenegar
laravel-package
sms-api
sms-provider
sms-driver
kavenegar-sms

Guidance for developing the misaf/laravel-sms-gateway-kavenegar package, the Kavenegar driver for Laravel SMS Gateway.

Install
php artisan boost:add-skill misaf/laravel-sms-gateway-kavenegar

Save this content to: .claude/skills/laravel-sms-gateway-kavenegar-development/SKILL.md

# laravel-sms-gateway-kavenegar development

This package is developed inside the `misaf/laravel-sms-gateway` monorepo at
`Drivers/laravel-sms-gateway-kavenegar` and split out to its own read-only repository on release.

## Layout

- `src/KavenegarDriver.php` — a `final` driver implementing `Misaf\LaravelSmsGateway\Contracts\SmsGateway`.
- `src/Providers/KavenegarServiceProvider.php` — registers the `kavenegar` driver on the manager.
- `config/sms-gateway-kavenegar.php` — provider credentials.
- `tests/Feature/KavenegarDriverTest.php` — run from the monorepo root with `composer test`.

## Rules

- Never edit files here in the split repository; change them in the monorepo.
- The driver takes its credentials and timeouts as constructor arguments; the
  service provider reads them all from `sms-gateway-kavenegar.*`, timeouts and retry included.
- The driver extends `Misaf\LaravelSmsGateway\Drivers\SmsGatewayDriver`, which
  owns the timeouts, the retry policy and the `SmsSending`/`SmsSent`/
  `SmsSendFailed`/`SmsSendUnreachable` events. Implement `driverName()`, `sendRequest()`
  and, for credentials, `configure()`. The base URL comes from the config file,
  which is the only place it is defined.
- Guard the base URL and each credential with `self::requireConfigured()` in the
  constructor: a config key that is present but empty passes `Config::string()`,
  so it is rejected at driver resolution and covered by a test.
- Retry only connection failures and gateway 5xx responses; a rejected
  credential or a malformed payload must fail on the first attempt.
- Keep the driver free of any dependency on sibling driver packages.

laravel-sms-gateway-kavenegar development

This package is developed inside the misaf/laravel-sms-gateway monorepo at Drivers/laravel-sms-gateway-kavenegar and split out to its own read-only repository on release.

Layout

  • src/KavenegarDriver.php — a final driver implementing Misaf\LaravelSmsGateway\Contracts\SmsGateway.
  • src/Providers/KavenegarServiceProvider.php — registers the kavenegar driver on the manager.
  • config/sms-gateway-kavenegar.php — provider credentials.
  • tests/Feature/KavenegarDriverTest.php — run from the monorepo root with composer test.

Rules

  • Never edit files here in the split repository; change them in the monorepo.
  • The driver takes its credentials and timeouts as constructor arguments; the service provider reads them all from sms-gateway-kavenegar.*, timeouts and retry included.
  • The driver extends Misaf\LaravelSmsGateway\Drivers\SmsGatewayDriver, which owns the timeouts, the retry policy and the SmsSending/SmsSent/ SmsSendFailed/SmsSendUnreachable events. Implement driverName(), sendRequest() and, for credentials, configure(). The base URL comes from the config file, which is the only place it is defined.
  • Guard the base URL and each credential with self::requireConfigured() in the constructor: a config key that is present but empty passes Config::string(), so it is rejected at driver resolution and covered by a test.
  • Retry only connection failures and gateway 5xx responses; a rejected credential or a malformed payload must fail on the first attempt.
  • Keep the driver free of any dependency on sibling driver packages.
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.
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table
siberfx/flysystem-wasabi
hollyit/token-replace
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel