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

Tinker Laravel Package

vluzrmos/tinker

Tinker brings an interactive PHP REPL to Laravel via PsySH, adding the artisan tinker command so you can experiment with your app's code, test Eloquent queries, and inspect objects from the terminal without writing throwaway routes or scripts.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

What it is: A Lumen service provider plus tinker Artisan command that wires PsySH into a Lumen application. 109 stars, single maintainer, last release 2018-06-27, zero dependents in the dataset.

Architecture fit: Lumen deliberately omits Tinker because it strips the fuller Artisan/console stack. This package re-adds it by registering a command and bootstrapping the container into PsySH. The integration surface is shallow — command registration and container access, nothing contractual — which means it is harmless when it works and opaque when it doesn't. It is a developer-ergonomics tool, not a runtime component; it should never appear in a production dependency graph.

Integration feasibility: Mechanically simple: composer require --dev vluzrmos/tinker and register the provider in bootstrap/app.php. The blocker is the version matrix. The package's illuminate/*, symfony/console, and psy/psysh constraints are frozen circa Laravel 5.x, so it will almost certainly conflict with Lumen 8/9/10 on Symfony 5/6 and PHP 8.x. Feasibility is therefore a function of how far behind the target service is.

Technical risk:

  • Abandonment means no security patching and no PHP 8 compatibility guarantee; transitive risk flows through psy/psysh and symfony/var-dumper.
  • A REPL is an arbitrary-code-execution surface. Low severity when gated to local/dev, high severity if a misconfigured APP_ENV loads it anywhere reachable.
  • Dependency rot creates recurring composer update friction that will be attributed to "the tinker package" long after everyone forgets why it was added.

Key questions:

  1. Which Lumen and PHP versions are actually in the fleet today, and is Lumen still the strategic stack?
  2. Is an interactive shell a must-have developer workflow or a convenience with a php -r / REPL-script fallback?
  3. Does any compliance or supply-chain policy block abandoned packages even in require-dev?
  4. Would the team rather own ~30 lines of PsySH bootstrap than depend on an unmaintained middleman?

Integration Approach

Stack fit: Only fits Lumen ≤ 5.8 on PHP 7.x. On anything newer, treat it as non-viable rather than "probably fine."

Recommended migration path: Do not adopt. Replace with an owned, first-party-equivalent setup:

  • Option A (preferred): composer require --dev psy/psysh plus a small bin/tinker script that boots the Lumen app, hands the container to PsySH, and exits. Roughly 30 lines, fully owned, no abandoned dependency in the chain.
  • Option B: Backport laravel/tinker's command class into app/Console/Commands and register it manually. Still pulls PsySH, but under a maintained upstream package.

Compatibility: Before any spike, run composer why-not vluzrmos/tinker <target-version> and capture the conflict output. Expect symfony/console and psy/psysh to be the failure points; that output is the evidence that closes the debate either way.

Sequencing:

  1. Inventory Lumen/PHP versions across services; flag anything already on PHP 8.
  2. Timebox a one-day spike in a branch with --dev to record real resolver behavior — do not estimate from the README.
  3. If conflicts appear (likely), implement the standalone PsySH bootstrap instead.
  4. Remove the provider registration from bootstrap/app.php and add a comment explaining why it must not return.
  5. Update README/onboarding docs so new hires aren't pointed at the abandoned package.
  6. Add a CI step that resolves require-dev on both the lowest and highest supported PHP versions to catch regressions early.

Operational Impact

Maintenance: Effectively zero upstream. Any bug is a fork, and forking a ~30-line command plus provider is more honest than depending on it. Budget an explicit owner if the package stays.

Support: No issue triage since 2018; answers will come from stale Stack Overflow threads. Onboarding must be self-served through internal docs.

Scaling: Irrelevant as a dev-only tool, but it scales poorly across a fleet in the sense of per-machine PHP and Composer divergence. Containerized dev environments neutralize this.

Failure modes:

  • composer update breaks resolution — most frequent, low severity, high toil.
  • PsySH major bump breaks the command — moderate, requires code change.
  • Boot-time fatal if the provider is registered in an environment without dev dependencies — moderate, blocks local start.
  • Accidental production exposure of a REPL — low probability, highest severity; enforce with an env guard and a CI check that require-dev is not installed in production builds.

Ramp-up: Half a day for any Laravel developer; the REPL interface is familiar. The real cost is dependency archaeology, not learning the tool. Net TPM position: low value, moderate-to-high supply-chain risk, low replacement cost — recommend deprecating it in favor of an owned PsySH bootstrap before it becomes an incident.

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.
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core