Help us improve
Share bugs, ideas, or general feedback.
From acc
Analyzes PHP code for PSR-12 compliance and style issues including brace placement, line length, indentation, blank lines, trailing whitespace, use statements, array syntax, and operator spacing.
npx claudepluginhub dykyi-roman/awesome-claude-code --plugin accHow this skill is triggered — by the user, by Claude, or both
Slash command
/acc:check-code-styleThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Analyze PHP code for style consistency and PSR-12 compliance.
Provides PSR-1 and PSR-12 coding standards reference for PHP 8.4 projects with rules, examples, antipatterns, and detection patterns for code style audits and compliance reviews.
Review PHP code using PhpStorm inspections. Use when editing PHP files, reviewing code quality, fixing PHP issues, or when asked about PHP best practices.
Provides Nette-specific PHP coding standards including TAB indentation, single quotes, strict_types=1, PSR-12 modifications, and use statement ordering. Invoke before writing, modifying, or refactoring any PHP code.
Share bugs, ideas, or general feedback.
Analyze PHP code for style consistency and PSR-12 compliance.
// BAD: Opening brace on same line for class
class User {
}
// GOOD: Opening brace on new line
class User
{
}
// BAD: Opening brace on new line for methods
public function getName()
{
}
// GOOD: Opening brace on same line for control structures
if ($condition) {
}
// BAD: No space after keywords
if($condition) {}
foreach($items as $item) {}
// GOOD: Space after keywords
if ($condition) {}
foreach ($items as $item) {}
// BAD: Exceeds 120 characters
$result = $this->veryLongServiceName->processWithManyParameters($parameter1, $parameter2, $parameter3, $parameter4, $parameter5);
// GOOD: Broken into multiple lines
$result = $this->veryLongServiceName->processWithManyParameters(
$parameter1,
$parameter2,
$parameter3,
$parameter4,
$parameter5
);
// BAD: Mixed tabs and spaces
class User
{
private string $name; // Tab
private int $age; // Spaces
}
// GOOD: Consistent 4 spaces
class User
{
private string $name;
private int $age;
}
// BAD: No blank line after namespace
namespace App\Service;
use App\Repository;
// GOOD: Blank line after namespace
namespace App\Service;
use App\Repository;
// BAD: No blank line between methods
public function getName(): string
{
return $this->name;
}
public function setName(string $name): void
{
$this->name = $name;
}
// GOOD: Blank line between methods
public function getName(): string
{
return $this->name;
}
public function setName(string $name): void
{
$this->name = $name;
}
// BAD: Trailing spaces at end of line
$name = 'John';
$age = 25;
// GOOD: No trailing whitespace
$name = 'John';
$age = 25;
// BAD: Unordered use statements
use App\Service\OrderService;
use App\Entity\User;
use Symfony\Component\HttpFoundation\Request;
use App\Repository\UserRepository;
// GOOD: Grouped and alphabetized
use App\Entity\User;
use App\Repository\UserRepository;
use App\Service\OrderService;
use Symfony\Component\HttpFoundation\Request;
// BAD: Long array syntax
$items = array(1, 2, 3);
$config = array(
'key' => 'value',
);
// GOOD: Short array syntax
$items = [1, 2, 3];
$config = [
'key' => 'value',
];
// BAD: Inconsistent spacing
$sum=$a+$b;
$name = $first.$last;
$condition = $a>$b;
// GOOD: Consistent spacing
$sum = $a + $b;
$name = $first . $last;
$condition = $a > $b;
// BAD: No space after comma
$result = calculate($a,$b,$c);
$array = [1,2,3];
// GOOD: Space after comma
$result = calculate($a, $b, $c);
$array = [1, 2, 3];
// BAD: Space before colon
public function getName() : string {}
// GOOD: No space before colon
public function getName(): string {}
// BAD: No space after colon
public function getName():string {}
// GOOD: Space after colon
public function getName(): string {}
# Opening brace on same line for class
Grep: "class\s+\w+\s*\{" --glob "**/*.php"
# No space after if/foreach/while
Grep: "(if|foreach|while|for|switch)\(" --glob "**/*.php"
# Lines over 120 chars (needs manual check)
Grep: "^.{121,}$" --glob "**/*.php"
# array() instead of []
Grep: "array\s*\(" --glob "**/*.php"
# Missing space around operators
Grep: "[^ ]==[^ ]|[^ ]!=[^ ]" --glob "**/*.php"
| Pattern | Severity |
|---|---|
| Mixed tabs/spaces | 🟠 Major |
| PSR-12 brace placement | 🟡 Minor |
| Line length > 120 | 🟡 Minor |
| Operator spacing | 🟢 Suggestion |
| Use statement order | 🟢 Suggestion |
Most style issues can be automatically fixed:
# PHP-CS-Fixer
php-cs-fixer fix --rules=@PSR12
# PHP_CodeSniffer
phpcbf --standard=PSR12 src/
### Style Issue: [Description]
**Severity:** 🟠/🟡/🟢
**Location:** `file.php:line`
**Rule:** PSR-12 / Project Standard
**Issue:**
[Description of the style violation]
**Current:**
```php
if($condition){
Suggested:
if ($condition) {
Auto-fix:
Run php-cs-fixer fix --rules=@PSR12