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 Myanmar Tools Laravel Package

pyaesoneaung/laravel-myanmar-tools

A Laravel package of Myanmar localization utilities, offering validation and helpers for NRC numbers, phone numbers, addresses, names, currency, and dates—helping apps handle Myanmar-specific data consistently.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Package profile (assumed, to verify). pyaesoneaung/laravel-myanmar-tools is a convenience layer that extends Laravel core primitives with Myanmar-specific behavior. Based on the description and typical packages in this space, expect a subset of: NRC (national registration card) format validation, Myanmar phone number validation/normalization (MPT, Telenor, Ooredoo, Mytel prefixes), Unicode ↔ Zawgyi transliteration, Myanmar calendar date helpers, and Myanmar numeral/currency formatting. Confirm the actual feature inventory before committing to a design that depends on any of it.

Architecture fit. The integration surface is shallow and idiomatic: a service provider, likely package:discover auto-registration, and extension of Validator, Str, Number, or Blade directives via macros. That means it fits Laravel cleanly and requires no infrastructure — no queue, no storage, no external calls. The architectural concern is that macro-based extension mutates global container state at boot. Two packages registering the same macro name (Str::toZawgyi, Validator::myanmarPhone) will collide, and the failure mode is a boot-time BadMethodCallException or, worse, silent override of another package's behavior. Treat macro namespace collisions as a real integration risk, not a theoretical one.

Integration feasibility. Low friction. composer require, optional vendor:publish for config and lang files, no credentials, no migrations. The binding constraints are the composer.json PHP and illuminate/* version ranges — verify against the target Laravel majors. Stars (29) and dependents (0) mean there is essentially no production evidence base, so feasibility must be established by our own test harness, not by ecosystem adoption.

Technical risk.

  • Bus factor 1. Single maintainer, no stated governance, no downstream dependents. Any defect is ours to fix.
  • Provenance anomaly. The listed last release date (2026-08-26) is future-dated relative to normal release cadence. Either a metadata/tagging artifact or a scheduled tag. Confirm the tag is signed/authored by the maintainer and that CI produced the artifact; an unexplained release date is a supply-chain question worth one email.
  • Correctness domain is hard. Zawgyi ↔ Unicode conversion is notoriously non-round-trippable; NRC formats vary by township and era; carrier prefix allocation in Myanmar has changed repeatedly. A 29-star package has not been adversarially tested against the long tail.
  • Data staleness. Any embedded region/township/carrier reference data is a liability we would own the moment we adopt.
  • PII handling. Validation failures on NRC fields risk logging raw national ID numbers into application logs.
  • License. MIT — no legal obstacle.

Key questions for the maintainer.

  1. Exact feature list and which are macro-based vs. class-based?
  2. composer.json constraints for PHP and Laravel majors; is Laravel 12 supported?
  3. Test coverage and whether the suite includes Zawgyi/Unicode round-trip fixtures and a corpus of real NRC/phone samples?
  4. Where does reference data live, and what is the update process when carrier or township data changes?
  5. Is the 2026-08-26 tag intentional? What produced it?
  6. Any roadmap, or is this feature-complete/archive-candidate?

Integration Approach

Stack fit. Use only in Laravel services that actually touch Myanmar user data — registration, KYC, notifications/SMS, address capture, and reporting. There is no reason to install it fleet-wide; a package that globally registers macros and lang files adds boot cost and collision surface to every app that loads it.

Migration approach.

  1. Isolate. Wrap every call behind an internal adapter (App\Support\Myanmar\Formatter, MyanmarValidator) so no domain code references package symbols directly. This is the single highest-value decision — it converts a bus-factor-1 dependency into a swappable implementation detail and lets us fork, patch, or reimplement without touching product code.
  2. Pin. Use an exact version constraint ("pyaesoneaung/laravel-myanmar-tools": "x.y.z") rather than a caret range, given zero downstream dependents and no evidence of semver discipline.
  3. Golden-file test suite. Build fixtures before integration: a corpus of valid/invalid NRCs by township code, phone numbers per carrier including edge cases (+95, leading zero, 09 prefix, whitespace/hyphen variants), and Unicode↔Zawgyi pairs asserted for round-trip and for idempotency. This suite is what makes the risk assessment empirical.
  4. Vendor fallback. Confirm we can fork under our org and require via VCS repository. Cheap insurance; do it in the spike, not after an incident.

Compatibility. Verify auto-discovery does not double-register if we also add the provider manually. Check that published lang/my_MM files merge cleanly with app-level translations and do not override existing keys. If the package defines global Blade directives or Str macros, grep existing packages for the same names.

Sequencing.

  • Week 1 — Spike + golden files. Install in a scratch service, enumerate the public API, write the fixture suite, measure conversion throughput on a 100k-row import. Deliverable: go/no-go with a defect list.
  • Week 2 — Adapter + pilot. Implement the internal adapter, wire into one bounded workflow (e.g., phone normalization on registration), behind a feature flag.
  • Week 3–4 — Evaluate + expand. Compare pilot error rates against baseline, then extend to NRC validation and display formatting. Keep the adapter boundary regardless of outcome.

Operational Impact

Maintenance. Budget roughly 0.05–0.1 FTE ongoing, rising to 0.25 FTE if we end up owning reference data (carrier prefixes, township codes) or forking. Dependabot will surface releases we must triage manually — small surface, but no upstream signal to lean on. Assume we are the de facto maintainer of last resort.

Support. No vendor, no SLA, no community forum. Internal Tier-1 support must own questions like "why was this NRC rejected." Publish an internal short doc with the adapter API and the validation rules, or the package's behavior becomes tribal knowledge. Add a runbook entry for "validation behavior changed after dependency bump."

Scaling. Pure PHP string/regex work; runtime cost is negligible per request. The one place to watch is bulk paths — transliteration and formatting applied per-row across large imports or report generation is linear and measurable. Benchmark the 100k-row case in the spike; if conversion is expensive, normalize once at ingestion rather than on every read, and store both the source and normalized forms.

Failure modes.

  • Silent acceptance of an invalid NRC or phone number due to an over-permissive regex — highest-severity, corrupts KYC data and is discovered downstream.
  • Silent rejection of legitimate input from a township/carrier the package's data does not cover — user-facing, generates support load.
  • Encoding corruption in Zawgyi↔Unicode conversion, especially around stacked consonants and medials; non-round-trippable output silently mangles stored names.
  • Macro collision at boot with another package — loud and fast if we are lucky, silent override if not.
  • Supply-chain: a compromised or abandoned upstream. Mitigated by exact pinning, composer.lock discipline, and the fork escape hatch.
  • PII leakage through validation-failure logging of raw NRC values.

Ramp-up. Low for engineers — a Laravel developer is productive in under a day, and the adapter boundary means only one or two people ever need to know the package internals. The real ramp-up cost is domain: whoever owns this needs to understand Myanmar encoding history and NRC/township structure, not just the API. That is a 2–3 day reading investment for the designated owner, and it is the prerequisite for judging whether the golden-file suite is actually adequate.

Recommendation. Adopt conditionally: isolate behind an adapter, pin exactly, prove correctness with our own fixtures in a one-week spike, and pilot in a single bounded workflow. Do not adopt fleet-wide, and do not adopt at all unless the spike confirms the fixture corpus passes and we have a fork path secured.

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.
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels
wazza/laravel-db-encryption
hokny/laravel-generator
vonsogt/backup
jengo/queues
jeremykenedy/laravel-observability
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums