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

Pho Laravel Package

danielstjules/pho

Pho is a lightweight BDD test framework for PHP inspired by Jasmine. It offers describe/it syntax, expressive expectations, spies, and before/after hooks, making it easy to write readable, behavior-driven specs for PHP projects.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Test-strategy evaluation — BDD vs. xUnit style: Pho is a reference point when deciding whether a team should write specs in a describe/it style (behavior-first, human-readable) versus classic PHPUnit-style test classes. It informs the shape of the testing contract your team commits to, even if the tool itself is not the one you adopt.
  • Build vs. buy for internal tooling: If engineering is considering writing a lightweight internal test runner or DSL layer on top of PHPUnit, Pho is a compact reference implementation to study rather than a dependency to ship.
  • Roadmap signal, not a roadmap input: The 2017 last release and zero dependents are a clear "do not adopt" signal for any forward-looking plan. Treat this assessment as a rejection record that closes off a vendor/tool option and prevents re-litigation.
  • Use cases it nominally supports: readable acceptance specs for small libraries, teaching BDD concepts to junior engineers, and documenting intent in a spec file. None of these justify production adoption in 2024+ given the maintenance gap.

PM read: This is not a product decision enabler — it's a decision to avoid. The only defensible "supports" framing is as an evaluation artifact and an educational reference.

When to Consider This Package

Consider it only when:

  • You are studying how minimal BDD runners are structured (parser, runner, reporter) for an internal build.
  • You are maintaining a legacy codebase that already depends on Pho and need to reason about migration.
  • You need a deliberately tiny, PHP-only spec DSL for a throwaway prototype where you control the PHP version.

Look elsewhere when (i.e., essentially always for production):

  • Maintenance risk is unacceptable: last release April 2017 — roughly eight years without a commit. No PHP 8.x compatibility guarantee, no security patching, no issue triage.
  • Zero dependents means no ecosystem validation, no Stack Overflow corpus, and no one to ask when it breaks.
  • You want BDD in modern PHP: use Pest (actively maintained, describe/it style, PHPUnit-compatible runner) or Behat for true Gherkin-style stakeholder-facing BDD. For standard unit/integration testing, PHPUnit or Codeception are the safe defaults.
  • Hiring and onboarding matter: engineers already know PHPUnit/Pest; Pho is a training cost with no transferable payoff.
  • You need CI, coverage, IDE, or static-analysis integration: Pho's integration surface is frozen at 2017 tooling.

Adoption criteria that would change this verdict: a maintained fork with PHP 8+ support, active CI, and a real user base. Absent that, the criteria are not met.

How to Pitch It (Stakeholders)

To executives (one paragraph): We evaluated Pho, an open-source PHP behavior-driven testing framework, as a possible testing tool. It was last released in 2017 and has no downstream dependents — meaning no one in the ecosystem relies on it, and it receives no maintenance or security updates. Adopting it would introduce unpatched code into our build pipeline in exchange for no capability we can't get from actively maintained alternatives. Recommendation: do not adopt; standardize on Pest or PHPUnit. The only residual value is as an internal reference if we ever build lightweight test tooling — a low-probability, non-blocking scenario.

To engineering (short brief):

  • Pho offers a nice describe/it BDD syntax, but it's a 2017 snapshot with no PHP 8 verification and no community.
  • Use Pest if the team wants BDD-style specs with a maintained runner and PHPUnit interop; use Behat if non-engineers need to read/write Gherkin.
  • We're closing this out of the tooling evaluation. If anyone wants the syntax, Pest gives ~90% of the ergonomics with active maintenance.
  • Effort to revisit: near zero — the decision is "no" unless a maintained fork emerges with PHP 8+ support and real adoption.
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.
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
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