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

Phiremock Codeception Module Laravel Package

mcustiel/phiremock-codeception-module

A Codeception module that connects your tests to a Phiremock server, letting you create, load, and reset HTTP expectations semantically through the Codeception actor. Supports configurable host, port, secure connections, and per-test reset.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Test strategy: service virtualization vs. hitting real third-party sandboxes. Stubbing remote HTTP services replaces live sandbox calls in CI with deterministic fixtures — this directly reduces flaky builds, removes test-time dependency on vendor uptime/rate limits, and eliminates credential sprawl in CI secrets.
  • Build vs. buy for the stubbing harness. The team is choosing between (a) hand-rolled Guzzle handlers/mocks per test, (b) a framework-native fake, or (c) a shared mock server. This package is the thin "buy" option — it only pays off if you standardize on both Codeception and the PhireMock server, so it's really a decision about whether a shared, cross-language mock server is worth operating.
  • Failure-path coverage on the roadmap. A mock server lets you script 500s, malformed payloads, timeouts, and slow responses against code paths (retries, circuit breakers, fallbacks) that are impractical to exercise against a real vendor API. This is often the highest-value justification — you can't ask a vendor's sandbox to time out on demand.
  • Third-party dependency risk register. Every stubbed integration is a vendor your product silently relies on. Cataloguing what gets stubbed surfaces the integration surface as an owned risk item rather than incidental test scaffolding.
  • Test stack direction. Adopting a Codeception-specific module is a soft commitment to Codeception. If the roadmap points toward PHPUnit/Pest or a Laravel-first test suite, this dependency is a migration cost to be weighed now, not later.
  • Scope decisions on end-to-end vs. integration tests. Network-level stubbing lets you keep the real HTTP client, serializers, and middleware in the path — so you can decide to not build a parallel suite of handler-level unit tests for integrations.

When to Consider This Package

Adopt when all of the following hold:

  • The application or its test suite is already on Codeception — the module is a Codeception extension with no value outside it.
  • You can run the PhireMock server in the test environment (local, Docker Compose, or CI sidecar) and are willing to own that operational bit.
  • You need real HTTP-layer stubbing, not just client faking — e.g., the code under test shells out to curl, spawns a subprocess, runs in a queue worker, or spans a process boundary where in-process mocks can't reach.
  • You want stateful, resettable stub setups per test (reset_before_each_test) shared across suites rather than boilerplate per test.

Look elsewhere when any of these are true:

  • You're on Laravel and the calls go through the HTTP client. Http::fake() covers the majority of this use case in-process with zero infrastructure. Same for Symfony's MockHttpClient and Pest/PHPUnit equivalents. Strongly prefer these unless you specifically need network-level interception.
  • Composer resolution is a blocker. The module pins guzzlehttp/guzzle to ^6.0; Guzzle 6 is end-of-life and most modern Laravel/PHP stacks sit on Guzzle 7. Even as a require-dev this can force a conflicting dependency resolution — verify this before committing.
  • You need record/replay of real traffic — that's a VCR-style tool (e.g., php-vcr), not a stub server.
  • You need contract testing across producer/consumer teams — that's Pact, a different problem.
  • Multi-language or multi-framework engineering org. A language-agnostic standalone (WireMock, MockServer) or a hosted service-virtualization platform avoids a PHP-only harness that only half the org can use.
  • Your procurement/legal function has a blanket copyleft policy. The license is GPL-3.0. Dev-only, non-distributed use is generally fine, but this needs a legal sign-off rather than a PM assumption — get it in writing before it lands in the repo.
  • Adoption risk tolerance is low. 8 stars, 0 dependents, effectively a single-maintainer package. Don't put it on a critical path without a fallback plan.

How to Pitch It (Stakeholders)

To executives: This is a small, cheap dev-only tool that makes our integration tests stop depending on other companies' servers. It removes a class of flaky-build and CI-cost problems, and — more importantly — it's the only practical way to test how our product behaves when a partner's API fails, times out, or returns garbage. That's a resilience capability we currently can't test at all. Cost is near zero; the two things worth a decision are the copyleft license (needs legal's sign-off) and the fact that it's a low-adoption, single-maintainer package, so we should treat it as an internal convenience, not infrastructure.

To engineering: It's a Codeception module that wraps the PhireMock server, letting you declare stubs in suite config and reset them per test. Use it only if we're already running a PhireMock instance — otherwise Laravel's Http::fake() gives us most of this in-process for free. The concrete blocker to check first is the Guzzle ^6.0 constraint against our Guzzle 7 stack: if Composer won't resolve, the conversation ends there and we go with Http::fake() or a standalone WireMock. If it does resolve, it's a one-line module enablement in the suite YAML and a Docker sidecar in CI — low effort, easy to rip out.

Recommendation for the pitch: position it as evaluate-and-contain, not standardize. Pilot it in one Codeception suite, confirm the Guzzle constraint and the legal position, and keep the stub definitions in a format that ports to Http::fake() or WireMock so the exit cost stays near zero.

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.
htinlynn/genius-helper
maco-studios/hephaestus
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