All Adapters
An adapter wires phpClaw into one framework or CMS: its database for memory, its permission system for tool access, its CLI, and tools for that platform. Each adapter page covers one in full.
At a glance
Section titled “At a glance”| Adapter | Install | Platform | PHP |
|---|---|---|---|
| Laravel | composer require phpclaw/phpclaw-laravel | 10, 11, 12, 13 | 8.1+ |
| Symfony | composer require phpclaw/phpclaw-symfony | 6.4, 7, 8 | 8.1+ |
| Drupal | composer require phpclaw/phpclaw-drupal | 10, 11 | 8.1+ |
| Magento | composer require phpclaw/phpclaw-magento | 2.4 | 8.1+ |
| WordPress | plugin ZIP, uploaded in the admin | 6.2 or later | 8.1+ |
| Joomla | package ZIP, uploaded in the admin | 4, 5, 6 | 8.1+ |
| PrestaShop | module ZIP, uploaded in the back office | 8.0 or later | 8.1+ |
| OpenCart | extension ZIP, uploaded in the admin; one ZIP for OpenCart 3, another for 4 | 3, 4 | 8.1+ |
Magento’s 2.4 is the version the adapter targets; its composer.json does not constrain the Magento
version. After installing or updating the Magento module, run bin/magento setup:di:compile.
| Adapter | Tools registered | Also |
|---|---|---|
| Laravel | core’s 3, plus up to 7 Laravel tools and core’s 4 opt-in tools you list in config | PhpClaw facade |
| Symfony | core’s 3, plus up to 3 Symfony tools and core’s 4 opt-in tools you list in config | autowired ClawInterface service |
| Drupal | up to 15 Drupal tools; 5 core tools are added only for Drush, the agent service and the MCP server | Drupal service tags for extensions |
| Magento | 10 Magento tools and 5 core tools | observer events for extensions |
| WordPress | 16, and 10 more WooCommerce tools when WooCommerce is active | two REST routes |
| Joomla | 10 | Web Services API routes |
| PrestaShop | 14 PrestaShop tools and core’s 3 | per-employee API tokens |
| OpenCart | 10 OpenCart tools and core’s 3 | separate ZIPs for 3 and 4 |
Core’s 3 are code_search, file_read and project_info. Core’s 4 opt-in tools, shell_exec,
http_request, file_write and file_edit, are registered only when you add them, with one
exception: Magento, and Drupal’s Drush, agent service and MCP server, always register shell_exec
and http_request, which with core’s 3 make their 5 core tools.
Command line
Section titled “Command line”| Adapter | Send a message | Interactive chat | MCP server |
|---|---|---|---|
| Laravel | php artisan phpclaw "..." | php artisan phpclaw:chat | php artisan phpclaw:mcp-server |
| Symfony | bin/console phpclaw "..." | bin/console phpclaw:chat | bin/console phpclaw:mcp-server |
| Drupal | drush phpclaw:run "..." | drush phpclaw:chat | drush phpclaw:mcp-server |
| Magento | bin/magento phpclaw:run "..." | bin/magento phpclaw:chat | bin/magento phpclaw:mcp-server |
| WordPress | wp phpclaw send "..." | wp phpclaw chat | wp phpclaw mcp-server |
| Joomla | php cli/joomla.php phpclaw "..." | php cli/joomla.php phpclaw:chat | php cli/joomla.php phpclaw:mcp-server |
| PrestaShop | php modules/phpclaw/cli/phpclaw.php send "..." | the same script with chat | php modules/phpclaw/cli/phpclaw.php mcp-server |
| OpenCart | php system/library/phpclaw/cli/phpclaw.php send "..." (OpenCart 3), php extension/phpclaw/cli/phpclaw.php send "..." (OpenCart 4) | the same script with chat | the same script with mcp-server |
Laravel and Symfony also provide phpclaw:about, phpclaw:guide, phpclaw:stats,
phpclaw:jobs:list and phpclaw:jobs:status, and their MCP command accepts --transport=http. See
MCP.
Memory
Section titled “Memory”Every adapter stores conversations and key-value data in its own database, in the tables
phpclaw_conversations, phpclaw_messages and phpclaw_memory.
| Adapter | Driver used | Can you choose another? |
|---|---|---|
| Laravel | database | yes, PHPCLAW_MEMORY_DRIVER |
| Symfony | doctrine | yes, memory_driver |
| Drupal | database | no |
| Magento | router memory, injected directly | no |
| WordPress | wpdb_router | no |
| Joomla | joomladb | no |
| PrestaShop | ps_router | no |
| OpenCart | oc_router | no |
The full list of drivers each adapter registers is on the Memory page.
What every adapter does
Section titled “What every adapter does”These are shared across all eight, each covered in detail on the linked page:
- Message storage setting. Turning it off stops conversation content being stored and stops cloud forwarding. See Memory: privacy and Cloud.
- Approval gate.
CliApprovalGateis installed, so mutating tools are refused in web requests. Laravel and Symfony withdurable_runson pause them for a later decision instead. See Security: approval. - The eight default guards are registered at boot. See Guards.
- All 54 lifecycle events are forwarded into the platform’s own event system, except on Joomla, where none currently arrive. See Hooks: forwarding.
- Read-only database access through
SqlReadOnlyGuard, with a credential-column list tailored to the platform. See Security: database.
Building your own
Section titled “Building your own”See Building an Adapter.