php-project-guide

Foundational knowledge for working effectively on any PHP project in PhpStorm. Provides project detection, coding standards, testing patterns, framework guidance, and MCP tool usage.

jetbrains/phpstorm-claude-marketplace2 installsMITSynced Aug 26

Works with

Claude CodeCursorCodex CLIGitHub CopilotGemini CLI

Agent Skills format with YAML frontmatter. Claude Code reads it as-is.

---
name: "php-project-guide"
description: "Foundational knowledge for working effectively on any PHP project in PhpStorm. Provides project detection, coding standards, testing patterns, framework guidance, and MCP tool usage."
license: "MIT"
---

# PHP Project Guide

Foundational knowledge for working effectively on any PHP project in PhpStorm. Provides project detection, coding standards, testing patterns, framework guidance, and MCP tool usage.

## Quick Start: First Interaction with a PHP Project

Run these steps when encountering a new PHP project for the first time.

### 1. Detect PHP environment

```
get_php_project_config()
```

Returns the configured PHP language level, interpreter details (name, path, local/remote), and runtime information (exact PHP version, loaded extensions, php.ini path, debuggers). Use this to understand the PHP environment before generating code.

### 2. Identify dependencies and framework

```
get_composer_dependencies()
```

This returns all installed packages with exact versions from `composer.lock`. Use it to determine:
- **Framework**: `laravel/framework`, `symfony/framework-bundle`, or neither
- **Test framework**: `phpunit/phpunit`, `pestphp/pest`, `codeception/codeception`
- **Static analysis**: `phpstan/phpstan`, `vimeo/psalm`
- **Code style**: `friendsofphp/php-cs-fixer`, `squizlabs/php_codesniffer`

Use the optional `nameFilter` glob parameter to search for specific packages (e.g., `nameFilter: "laravel/*"`).

### 3. Route to framework-specific guidance

| Dependency | Project Type | Reference |
|------------|-------------|-----------|
| `laravel/framework` | Laravel | See `references/framework-laravel.md` |
| `symfony/framework-bundle` | Symfony | See `references/framework-symfony.md` |
| Neither | Generic PHP | See `references/php-standards.md` |

## PhpStorm MCP Tools Quick Reference

### Code Analysis

| Tool | When to Use |
|------|-------------|
| `get_inspections` | After edits, for code review, to find problems with available quick fixes |
| `apply_quick_fix` | To resolve inspection problems automatically |
| `get_file_problems` | Quick error/warning check on any file type (no quick fixes returned) |
| `build_project` | Trigger project build and get compilation errors |

### Code Search

| Tool | When to Use |
|------|-------------|
| `search_structural` | To find code patterns semantically using SSR (requires `fileType: "PHP"`) |
| `get_structural_patterns` | To discover predefined PHP search patterns by category |
| `search_text` | Fast text substring search across project files |
| `search_regex` | Regex search across project files with match coordinates |
| `search_symbol` | Semantic symbol lookup (classes, methods, fields) |
| `search_file` | Find files by glob pattern |
| `find_files_by_name_keyword` | Fast file search by name substring (uses indexes) |
| `find_files_by_glob` | Find files matching glob pattern recursively |

### Code Intelligence

| Tool | When to Use |
|------|-------------|
| `get_symbol_info` | Get Quick Documentation for a symbol at a specific position |
| `rename_refactoring` | Safely rename a symbol across the entire project |
| `get_php_project_config` | Get PHP language level, interpreter, extensions, runtime info |
| `get_composer_dependencies` | Understand project dependencies, framework, and versions |

### File Operations

| Tool | When to Use |
|------|-------------|
| `read_file` | Read file with advanced modes (slice, lines, offsets, indentation) |
| `get_file_text_by_path` | Read full file text by project-relative path |
| `replace_text_in_file` | Targeted find-and-replace in files |
| `create_new_file` | Create new files with content |
| `reformat_file` | Apply IDE code formatting rules |

### Execution

| Tool | When to Use |
|------|-------------|
| `get_run_configurations` | List available run/test configurations |
| `execute_run_configuration` | Run a specific configuration and get results |
| `execute_terminal_command` | Run shell commands in IDE terminal |

See `references/mcp-tools-reference.md` for detailed parameters and usage patterns.

## Documentation Lookup

When you need documentation beyond what these references provide:

- **Context7 MCP**: Use `resolve-library-id` then `query-docs` for any PHP framework or library — returns up-to-date docs and code examples
- **PHP official docs**: https://www.php.net/manual
- **PhpStorm help**: https://www.jetbrains.com/help/phpstorm/
- **phpstorm-stubs**: https://github.com/JetBrains/phpstorm-stubs — PHP built-in function signatures and type info

## Reference Documents

| Reference | Content |
|-----------|---------|
| `references/project-detection.md` | composer.json anatomy, PSR-4 autoloading, directory layouts |
| `references/php-standards.md` | PER/PSR coding standards, PHP version features, anti-patterns |
| `references/testing-guide.md` | PHPUnit, Pest, running tests, common mistakes |
| `references/framework-laravel.md` | Laravel directory structure, Eloquent, artisan, routes |
| `references/framework-symfony.md` | Symfony directory structure, Doctrine, console, services |
| `references/static-analysis.md` | PHPStan, Psalm, PHP CS Fixer, PHP CodeSniffer |
| `references/composer-guide.md` | Composer commands, version constraints, autoloading |
| `references/mcp-tools-reference.md` | Detailed PhpStorm MCP tool parameters and workflows |

More General & Other skills

← All General & Other skills

Check your AI visibility

One URL in, a 0–100 score and the exact fixes out.

RUN THE CHECK

Browse all the tools

15 tools across six categories
13 of them never send your data anywhere

Free · No signup · No trial clock

SEE THE DIRECTORY