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

Mitake Laravel Package

taiwan-sms/mitake

Laravel package for sending SMS through Taiwan's Mitake (三竹) SMS gateway. Provides simple configuration, a ready-to-use client, and Laravel notification integration so you can deliver transactional or OTP messages to Taiwanese mobile numbers with minimal setup.

View on GitHub
Deep Wiki
Context7

Getting Started

Evidence caveat: this assessment is based on the only published signal for v1.0.3 — a single line reading "Laravel 9." There is no README, changelog body, package name, or repo data available. Treat everything below as a verification checklist rather than a description of confirmed behavior, and re-read the package's composer.json and CHANGELOG.md before committing to it.

Minimal steps:

  1. Read composer.json constraints first, not the release note. The require block is the source of truth for what "Laravel 9" means here:
    • illuminate/support / illuminate/* at ^9.0 — did v1.0.3 add ^9.0 alongside ^8.0, or replace it? The difference decides whether this is a non-breaking minor or a de-facto major for your app.
    • php at ^8.0 — Laravel 9 requires PHP 8.0+, Symfony 6, so this should have moved. If it still says ^7.4, the Laravel 9 claim is untested and you should pin and probe.
  2. Diff 1.0.0 → 1.0.3. Three patch releases landing a framework-version bump is unusual; check whether the constraint change came with typed-signature fixes, dropped deprecated API usage, or nothing at all.
  3. Find the entry point. Locate the service provider (extra.laravel.providers), any published config (config/your-package.php), facade, and contract/interface. That interface is your real integration seam.
  4. First use case: install into a throwaway Laravel 9 app, publish config, exercise the primary documented call once, then run the package's own test suite (composer test / vendor/bin/phpunit) against PHP 8.1. That is the cheapest way to confirm the release note is truthful.

Implementation Patterns

  • Resolve from the container, never new. Bind once and inject the package's contract (or facade) into your own service class. This keeps the package swappable and makes it fakeable in tests.
  • Adapter wrapper. Put a thin first-party interface in front of the package's API. When the next framework bump lands, you change one class instead of grepping your codebase. Worth it on day one for anything beyond a trivial helper.
  • Config per environment. Publish the config file and drive it from env() in your app's own config, not by editing vendor/. Keep the published file in VCS and review its diff on every package upgrade — patch releases can add keys.
  • Testing. Prefer the package's own fakes/assert* helpers if provided; otherwise $this->swap(Contract::class, $fake) or $this->instance(...). If it makes HTTP calls, Http::fake() at the boundary rather than mocking the package.
  • CI matrix. Run your app's suite against Laravel 9 on PHP 8.0/8.1 and, if the constraint still allows 8.x, keep a Laravel 8 lane until you consciously drop it. A one-line "Laravel 9" note is not a compatibility guarantee for your usage.
  • Upgrade ordering. Bump the package and the laravel/framework constraint in the same commit, so a bisect points at the right culprit. Commit composer.lock so the resolved illuminate/* versions are reproducible.

Gotchas and Tips

  • The release note is under-specified. "Laravel 9" tells you the constraint moved; it does not tell you whether Laravel 8 support was dropped. Check composer.json and the CHANGELOG before assuming this is a safe patch upgrade — semver on a 1.0.x line is aspirational, not enforced.
  • Laravel 9 ecosystem shifts that commonly break packages. If the package touches any of these, test them explicitly:
    • PHP 8 minimum — Symfony 6's typed signatures cause fatal errors in packages that override framework methods with untyped or narrowed signatures.
    • Swift Mailer removed / Symfony Mailer default — anything sending mail or asserting on mail transport needs re-verification.
    • Flysystem 3 — Storage:: behavior changed around putFile, deleteDirectory return values, and visibility handling.
    • assertDeleted → assertModelMissing — package test helpers or your own assertions may be calling removed APIs.
  • Config cache bites. After upgrading, run php artisan config:clear (and optimize:clear). A stale cached config referencing a removed/renamed key produces confusing "works locally, fails in CI" behavior.
  • Debugging the binding. php artisan about for the environment, then app(Contract::class)::class inside tinker to confirm you're getting the package's implementation and not a stale singleton from a previous provider registration.
  • Extension points, in order of preference: (1) container binding of the contract to your own implementation, (2) published config, (3) published views/translations, (4) events the package dispatches, (5) last resort — a composer patch. Avoid editing vendor/.
  • Pin exact if the version line looks unstable. "vendor/package": "1.0.3" rather than ^1.0 until you've seen at least one clean upgrade on this line. A framework-bump arriving in a patch release is a mild smell.
  • If the package has no tests or CI visible for Laravel 9, treat it as unverified and write your own smoke test around the one call you depend on. That test is the actual compatibility evidence.
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.
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
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core