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.
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:
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.extra.laravel.providers), any published config (config/your-package.php), facade, and contract/interface. That interface is your real integration seam.composer test / vendor/bin/phpunit) against PHP 8.1. That is the cheapest way to confirm the release note is truthful.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.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.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.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.composer.json and the CHANGELOG before assuming this is a safe patch upgrade — semver on a 1.0.x line is aspirational, not enforced.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.php artisan config:clear (and optimize:clear). A stale cached config referencing a removed/renamed key produces confusing "works locally, fails in CI" behavior.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.vendor/."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.How can I help you explore Laravel packages today?