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

Bkash Laravel Package

shipu/bkash

shipu/bkash is a Laravel package for integrating bKash, Bangladesh's popular mobile financial service, into PHP applications. It streamlines tokenized checkout, payment creation and execution, status queries, and refunds through a clean, configurable API.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit The package operates as a standard Laravel integration layer — service provider, facade, publishable config — wrapping the upstream Apiz API tooling. v2.0.0 realigns it to two moving targets at once: a Laravel framework floor of 8.0+ and Apiz v4. Architecturally that is a good fit for a modernized estate already on Laravel 8+, Composer 2, and package auto-discovery. It is an explicit non-fit for applications still on Laravel 6/7 (both EOL), which are now pushed onto a frozen v1.x line. Net: fit is good, but the package's supported envelope has narrowed on the bottom end without any stated ceiling — it is unclear whether Laravel 9/10/11 are validated or merely "not excluded."

Integration feasibility Moderate, and the effort is asymmetric. The Laravel 8.0+ bump is typically low-effort if the app is already on 8+ — mostly a Composer constraint change. The Apiz v3 → v4 upgrade is the real work and is where the release note tells us nothing. Expect at minimum: namespace/class renames, config key changes, altered method signatures, possible HTTP client (Guzzle) major change, and possibly changed response/exception contracts. Feasible, but currently unscoped — we would be discovering the blast radius through test failures rather than a migration guide.

Technical risk High for a major-version release carrying a one-line changelog. Primary risks:

  • Undocumented breaking change surface — semver major implies breakage; the notes don't enumerate it.
  • Transitive dependency conflict — if any other installed package pins Apiz ^3, this is a hard Composer blocker.
  • EOL floor ambiguity — "8.0+" may mean "8 only, untested above," which risks install conflicts and deprecation noise on PHP 8.1/8.2 runtimes.
  • PHP floor drift — Apiz v4 may impose a PHP minimum above the app's runtime.
  • Silent config drift — republishing config after a major bump can leave stale keys that are ignored without error, falling back to defaults.

Key questions (to resolve before approval)

  1. Which versions are actually in the CI matrix — Laravel 8 only, or 8–11? Which PHP versions?
  2. Is Apiz pinned exactly (4.x) or ranged (^4.0)? Does the package tolerate Apiz v3 at all?
  3. What changed in the public API: config keys, container bindings, facades, events, exception classes?
  4. Is there an upgrade guide or codemod, and does v1.x still receive security fixes?
  5. What are Apiz v4's own breaking changes, and are its release notes adequate?
  6. Maintainer count, release cadence, security policy, issue-tracker responsiveness.

Integration Approach

Stack fit Drop-in via Composer for Laravel 8+. Standard provider/facade/config-publish shape means no bespoke wiring. Fits cleanly provided the application does not already depend on Apiz through a second package. If Apiz is consumed directly elsewhere in the codebase, treat the two upgrades as one coordinated change.

Migration path Pin-and-park, then stage:

  1. Inventory — composer why apiz/*, composer outdated, identify direct and transitive Apiz dependents; snapshot the current lockfile and tag a known-good build.
  2. Isolate — on a branch, bump this package to ^2.0 and Apiz to ^4.0, run composer update --with-dependencies in isolation to surface resolution conflicts before any code changes.
  3. Reconcile config — republish and diff rather than overwrite; map removed/renamed keys manually.
  4. Verify — run the full suite plus contract tests against a real Apiz v4 endpoint in staging.
  5. Fallback — remaining on v1.x is a legitimate outcome if Apiz v4 adoption isn't scheduled; treat that as a dated decision, not a permanent state.

Compatibility Validate three axes together — PHP version, Laravel version, Apiz version. Inferring support from "8.0+" is not acceptable for a major bump; get the matrix confirmed in writing. Check that no other dependency forces a split between Apiz ^3 and ^4.

Sequencing (1) obtain matrix + upgrade guide from maintainer → (2) bring application to Laravel 8+ and target PHP → (3) upgrade Apiz to v4 at the application layer if used directly → (4) bump this package → (5) regression and contract testing → (6) canary/feature-flagged rollout → (7) retire v1.x pins. Steps 2 and 3 must land before 4; attempting them together makes failures unattributable.

Operational Impact

Maintenance Two supported lines now exist. If v1.x stops receiving fixes, any application pinned there is on an unsupported path and needs a dated exit plan. The thin changelog raises ongoing cost: every future upgrade requires source-diffing. Watch whether 2.0.x patch releases follow promptly — that is the real signal of maintainer health.

Support Support for this package is partly support for Apiz v4, since it is now a hard dependency. Verify advisory process and maintainer responsiveness. Internally, assign a single owner for the Apiz integration surface; split ownership across teams is the usual cause of version-skew incidents.

Scaling Package overhead is negligible. Scaling concerns shift to Apiz v4 itself: rate limits, timeouts, retry/backoff policy, HTTP connection reuse, and whether calls are synchronous in request paths or offloaded to queues. Confirm timeout and retry settings are configurable and sane before high-volume traffic.

Failure modes

  • Composer resolution failure — loud and safe, caught pre-merge.
  • Silent config drift after republish — defaults applied without error; dangerous in production.
  • Changed exception classes breaking existing catch blocks.
  • Changed Apiz v4 response shape breaking parsing without a type error.
  • Deprecation warnings surfacing on newer PHP runtimes.
  • Mixed v1/v2 across a monorepo causing inconsistent API behavior.
  • Laravel 8 EOL: no upstream security patches beneath this package.

Ramp-up Low for engineers familiar with Laravel packages: roughly half a day to a day for the constraint bump and config reconciliation. Budget one to two sprints for a clean Apiz v3→v4 migration including regression coverage, scaling with how much of the Apiz surface is actually consumed. Add contingency where test coverage is thin, since the undocumented breaking changes will be found at runtime otherwise.

Recommendation: Approve for applications already on Laravel 8+ and Apiz v4; block for Laravel 6/7 estates pending a dated migration plan. Gate the upgrade on delivery of the version matrix and an upgrade guide — the release note as published is insufficient to schedule work against.

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.
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package