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

Behat Panther Extension Laravel Package

robertfausk/behat-panther-extension

Behat Panther Extension integrates Symfony Panther with Behat, enabling real-browser acceptance tests in Chrome or Firefox. Configure Panther sessions to run JavaScript-heavy scenarios and get reliable end-to-end coverage for PHP applications.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Test infrastructure modernization: Decides whether to replace a Selenium/WebDriver Grid with Symfony Panther's direct browser control for Behat suites — a CI cost, flakiness, and maintenance decision. v2.0.0 confirms the extension is tracking current Symfony (8.x) and PHP (8.5) releases, so it remains a viable target for a modernization pilot rather than a dead end.
  • Build vs. buy vs. adopt: Weighs adopting this thin extension against writing custom Behat context hooks around Panther, or against migrating the whole suite to Laravel Dusk, Pest browser testing, or Playwright/Cypress. The v2 release adds Behat 4.x support via PHP config files, which broadens the "adopt" path to teams on the newer Behat line — previously a hard blocker for anyone who had already upgraded Behat.
  • BDD investment strategy: Informs whether Behat remains our acceptance-test layer or whether we consolidate on PHPUnit/Pest-style tests. This package only pays off if Behat is staying — but v2.0.0 materially extends the supported lifespan of that bet by pairing with Behat 4.x, Symfony 8, and PHP 8.5.
  • Roadmap input on release confidence: Supports decisions about gating deploys on real-browser acceptance tests (JS-rendered flows, checkout, auth) versus unit/integration-only gates. Because breaking changes in v2 drop PHP ≤8.1 and Symfony 3/4, the gate only applies to services already on modern runtimes — a useful forcing function to inventory which services qualify.
  • Vendor and dependency risk posture: The NOASSERTION license remains unresolved and adoption is still small, so an explicit call is still required before putting this in a commercial test pipeline. Mitigating signal: v2.0.0 is a coordinated release with multiple external contributors (Symfony 8 support, Behat 4.x support, PHP 8.5 CI, Docker fix), suggesting the project is not abandoned — but contributor count is not the same as maintainer depth or legal clarity.
  • Platform upgrade sequencing: The breaking changes give a concrete compatibility matrix (PHP 8.2+ required, Symfony 5+ required, Behat 4.x now supported). That informs whether a service's runtime upgrade must land before or after the acceptance-test migration.
  • Use cases it unlocks: JS-dependent acceptance criteria, screenshot-on-failure debugging for stakeholder demos, running the same Behat suite locally and in CI without a browser-grid service, and — new in v2 — Behat 4.x suites configured via PHP rather than YAML.

When to Consider This Package

Consider it when:

  • You already have a Behat suite and want real-browser execution without standing up Selenium/Grid infrastructure.
  • You are on Behat 4.x — v2.0.0 adds support for Behat 4.x with a PHP config file, so the previous "YAML/Behat 3 only" constraint no longer applies.
  • Your application is Symfony- or Laravel-based and Symfony Panther is already acceptable in the stack (Panther is Symfony-maintained; this is just the Behat glue). Symfony 8 is now explicitly supported.
  • Your acceptance criteria genuinely require JavaScript execution — SPAs, AJAX-heavy flows, client-side validation.
  • Your runtime is PHP 8.2 or newer and Symfony 5 or newer. v2.0.0 dropped PHP 7.2–8.1 and Symfony 3/4; if you are pinned below these, you must stay on the 1.x line and accept that you are off the maintained path.
  • Your team is comfortable owning a small, low-adoption dependency (still ~34 stars, small maintainer base) and can pin versions and fork if needed.
  • CI cost/latency from browser-grid containers is a real pain you want to remove.

Look elsewhere when:

  • You are not using Behat — use Laravel Dusk or Pest's browser plugin instead; adopting Behat just to use this extension is backwards.
  • License clarity is a hard gate. NOASSERTION means legal review is mandatory before shipping it into a commercial pipeline; v2.0.0 does not change this. If legal stalls, stop here.
  • You are stuck on PHP ≤8.1 or Symfony 3/4 — v2 is not installable, and staying on 1.x means no Symfony 8 or Behat 4.x path forward.
  • You need vendor support, SLAs, or a large contributor base — this is a hobby-to-small-team-scale project; a busier release does not make it enterprise-supported.
  • You need cross-language or best-in-class browser tooling (trace viewers, parallelism, network mocking) — Playwright/Cypress are materially stronger and better staffed.
  • Your suite is large and parallel-heavy; validate Panther's concurrency story before committing.

How to Pitch It (Stakeholders)

To executives: This is a small, free open-source adapter that lets our existing behavior-driven test suite drive real headless Chrome/Firefox directly — no Selenium grid to host, patch, or pay for. The new v2.0.0 release is a positive maintenance signal: it adds support for Symfony 8, Behat 4.x, and PHP 8.5, and was delivered with several outside contributors, so the project is keeping pace with the platforms we are standardizing on. Expected upside is unchanged — lower CI infrastructure spend and faster, less flaky release gates. The trade-offs are also unchanged: it remains a low-adoption project with an unclear (NOASSERTION) license, and v2 requires PHP 8.2+/Symfony 5+, so only our already-modernized services are eligible. Recommendation: time-boxed pilot on one modernized service, with legal sign-off on licensing, before org-wide rollout. No licensing cost; the investment is a few engineering days of pilot work plus a compatibility inventory of which services meet the v2 runtime floor.

To engineering: v2.0.0 is a maintenance-and-compatibility release, not a feature release. Concretely: Symfony 8 support, Behat 4.x support via PHP config file, PHP 8.5 in CI, a Docker legacy key/value warning fix, and some internal simplification. The breaking changes are the headline — PHP 7.2 through 8.1 and Symfony 3/4 are dropped, so this is a major-version bump you cannot take casually on older services. Upgrade path: confirm PHP ≥8.2 and Symfony ≥5, confirm your Behat major (3.x YAML vs 4.x PHP config), bump the constraint, and re-run the suite in CI before merging. Note that the Behat 4.x support landed via an unmerged PR (per the release notes) — treat that path as less battle-tested and validate it explicitly in your pilot. Pin the version, keep a fork path open, and clear the license with legal first. If you're on Pest/PHPUnit rather than Behat, skip this and use Dusk or Pest's browser plugin — the value here is entirely in not rewriting an existing Behat suite.

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.
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
kda/filament-dynamic-navigation
bypersoft/signbox