sebastian/peek-and-poke
sebastian/peek-and-poke is a small PHP utility that uses reflection to peek at and poke into objects. It lets you read and write private and protected properties, making it handy for tests that need to inspect or set up object state without changing production code.
Architecture fit
Closure::bind). It has no service provider, config, facade, container binding, or runtime surface, so "fit" is limited to one place in a Laravel codebase: require-dev.Closure::call, and bound closures cover the same ground in a handful of lines, and Pest/PHPUnit already offer first-class affordances for most of what teams historically used this package for.Integration feasibility
composer require --dev sebastian/peek-and-poke, no publish step, no bootstrapping. There is no meaningful integration checklist beyond a Composer constraint review.composer.json; verify the PHP upper bound and any implicit coupling to legacy PHPUnit versions before assuming Laravel 11/12 + PHP 8.3/8.4 works.Technical risk
require-dev, but "contained" still means a red build on upgrade day with no upstream to fix it.Key questions
Stack fit
require-dev tier of a Laravel 10/11/12 project running Pest or PHPUnit. No interaction with Eloquent, the container, queues, or HTTP layers.Tests\Support\InteractsWithNonPublicMembers) wrapping Closure::bind. It occupies the same slot with none of the supply-chain, licensing, or maintenance exposure.Migration path
composer remove --dev. Expect a mechanical, low-risk change confined to test files.Compatibility
Sequencing
Maintenance
Support
Scaling
Failure modes
Ramp-up
Verdict for planning purposes: treat this as a build-versus-buy where the build is twenty lines and the buy is an archived, license-ambiguous, zero-dependent package. Decline adoption; if it is already in the tree, schedule removal as low-priority cleanup with no dependency on other work.
How can I help you explore Laravel packages today?