{"id":15480062,"url":"https://github.com/tyler36/ddev-tinker","last_synced_at":"2026-05-09T00:37:11.615Z","repository":{"id":175798045,"uuid":"627772582","full_name":"tyler36/ddev-tinker","owner":"tyler36","description":"An addon for DDEV that providers a single command to access a runtime developer console.","archived":false,"fork":false,"pushed_at":"2025-06-09T01:38:35.000Z","size":57,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-09T02:33:48.653Z","etag":null,"topics":["ddev-get","drupal","hacktoberfest","laravel"],"latest_commit_sha":null,"homepage":"https://github.com/tyler36/ddev-tinker","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tyler36.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-14T07:04:19.000Z","updated_at":"2025-06-09T01:38:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"d6db88de-4801-4116-b9dd-cb2d1284f520","html_url":"https://github.com/tyler36/ddev-tinker","commit_stats":null,"previous_names":["tyler36/ddev-tinker"],"tags_count":4,"template":false,"template_full_name":"ddev/ddev-addon-template","purl":"pkg:github/tyler36/ddev-tinker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyler36%2Fddev-tinker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyler36%2Fddev-tinker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyler36%2Fddev-tinker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyler36%2Fddev-tinker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tyler36","download_url":"https://codeload.github.com/tyler36/ddev-tinker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyler36%2Fddev-tinker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32803620,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"ssl_error","status_checked_at":"2026-05-08T08:22:45.650Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ddev-get","drupal","hacktoberfest","laravel"],"created_at":"2024-10-02T04:40:26.925Z","updated_at":"2026-05-09T00:37:11.609Z","avatar_url":"https://github.com/tyler36.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![add-on registry](https://img.shields.io/badge/DDEV-Add--on_Registry-blue)](https://addons.ddev.com)\n[![tests](https://github.com/tyler36/ddev-tinker/actions/workflows/tests.yml/badge.svg)](https://github.com/tyler36/ddev-tinker/actions/workflows/tests.yml)\n[![last commit](https://img.shields.io/github/last-commit/tyler36/ddev-tinker)](https://github.com/tyler36/ddev-tinker/commits)\n[![release](https://img.shields.io/github/v/release/tyler36/ddev-tinker)](https://github.com/tyler36/ddev-tinker/releases/latest)\n\n# ddev-tinker \u003c!-- omit in toc --\u003e\n\n- [What is ddev-tinker?](#what-is-ddev-tinker)\n- [What is this developer console?](#what-is-this-developer-console)\n- [Supported frameworks](#supported-frameworks)\n- [Getting started](#getting-started)\n- [Usage](#usage)\n  - [Arguments](#arguments)\n  - [Doc command](#doc-command)\n\n## What is ddev-tinker?\n\n`ddev-tinker` is an addon for DDEV that providers a single command to access a runtime developer console.\n\nThis addon enables a new command, `ddev tinker`, that checks which project you are currently in, and runs the correct REPL command for the project.\n\nIf you bounce between projects types, this command is really useful.\n\n## What is this developer console?\n\nBoth Laravel and Drupal have an interactive debugger \u0026 REPL environment for tinkering in PHP. You can test various php statements, resolve services or even query the database!\n\nBoth environment's are customized versions of the excellent [PsySh](https://psysh.org/).\n\nTypically, this console is accessed via:\n\n- Laravel: `php artisan tinker`\n- Drupal via a Drush: `drush php`\n\n*[REPL]: Read-Evaluation-Print-Loop\n\n## Supported frameworks\n\nThis addon current supports the following frameworks:\n\n- [Laravel](https://laravel.com/)\n- [Drupal](https://www.drupal.org/) (via [Drush](https://www.drush.org/))\n- [CakePHP](https://cakephp.org/) (via [REPL](https://github.com/cakephp/repl))\n\nPRs are welcome to add more frameworks.\n\n## Getting started\n\n1. Install the addon\n\n   ```shell\n   ddev add-on get tyler36/ddev-tinker\n   ```\n\nThe addon installs globally and will be available to supported framework after running `ddev start`.\n\n## Usage\n\nTo start your framework's REPL environment, simply type the follow:\n\n   ```shell\n   ddev tinker\n   ```\n\n### Arguments\n\n- `ddev tinker` can accept simple arguments.\n\n   ```shell\n   $ ddev tinker 6+8\n   14\n   ```\n\n- More complex arguments should be wrapped with \u003ckbd\u003e'\u003c/kbd\u003e.\n\n  ```php\n   $ ddev tinker 'User::first()'\n   [!] Aliasing 'User' to 'App\\Models\\User' for this Tinker session.\n   App\\Models\\User^ {#4400\n   ...\n\n   $ ddev tinker 'node_access_rebuild()'\n   [notice] Message: Content permissions have been rebuilt.\n\n   $ ddev tinker '$node = \\Drupal\\node\\Entity\\Node::load(1); print $node-\u003egetTitle();'\n   Who Doesn’t Like a Good Waterfall?\n  ```\n\nWhile this might be helpful for a quick one-off command, it's recommend to run `ddev tinker` for tinkering to avoid any Docker connection delays between multiple commands.\n\nWrapping may also work with \u003ckbd\u003e\"\u003c/kbd\u003e, depending on the command used. For more consistent results between frameworks and host OS, it is recommended to use \u003ckbd\u003e'\u003c/kbd\u003e. See [ddev/ddev#2547](https://github.com/ddev/ddev/issues/2547)\n\n### Doc command\n\nOut of the box, Psysh contains a `doc` command that reads \"... the documentation for an object, class, constant, method or property\".\n\nThis add-on downloads the Psysh PHP **_English_** manual to the required location for Psysh to find it in the container.\nFor other languages, manually download the file from [here](https://github.com/bobthecow/psysh/wiki/PHP-manual), and place it in your project's `.ddev/homeadditions/.local/share/psysh` folder.\n\nTo use the manual, start a session and type `doc [FUNCTION_NAME]`:\n\n```shell\n$ ddev tinker\nPsy Shell v0.11.13 (PHP 8.1.21 — cli) by Justin Hileman\n\u003e doc array_unique\nfunction array_unique(array $array, int $flags = 2): array\n\nDescription:\n  Removes duplicate values from an array\n...\n```\n\n**Contributed and maintained by [@tyler36](https://github.com/tyler36) based on the original [ddev-contrib recipe](https://github.com/ddev/ddev-contrib/tree/master/docker-compose-services/RECIPE) by [@tyler36](https://github.com/tyler36)**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftyler36%2Fddev-tinker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftyler36%2Fddev-tinker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftyler36%2Fddev-tinker/lists"}