# Check Code Style

> Analyzes PHP code for style issues. Checks PSR-12 compliance, formatting consistency, whitespace usage, line length.

- Skill: `tomevault-io/check-code-style` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/check-code-style`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/check-code-style/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/check-code-style

---


# Code Style Check

Analyze PHP code for style consistency and PSR-12 compliance.

## Detection Patterns

### 1. PSR-12 Violations

```php
// 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) {}
```

### 2. Line Length

```php
// 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
);
```

### 3. Indentation

```php
// 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;
}
```

### 4. Blank Lines

```php
// 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;
}
```

### 5. Trailing Whitespace

```php
// BAD: Trailing spaces at end of line
$name = 'John';
$age = 25;

// GOOD: No trailing whitespace
$name = 'John';
$age = 25;
```

### 6. Use Statement Ordering

```php
// 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;
```

### 7. Array Syntax

```php
// BAD: Long array syntax
$items = array(1, 2, 3);
$config = array(
    'key' => 'value',
);

// GOOD: Short array syntax
$items = [1, 2, 3];
$config = [
    'key' => 'value',
];
```

### 8. Operator Spacing

```php
// BAD: Inconsistent spacing
$sum=$a+$b;
$name = $first.$last;
$condition = $a>$b;

// GOOD: Consistent spacing
$sum = $a + $b;
$name = $first . $last;
$condition = $a > $b;
```

### 9. Comma Spacing

```php
// 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];
```

### 10. Return Type Declaration

```php
// 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 {}
```

## Grep Patterns

```bash
# 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"
```

## Severity Classification

| Pattern | Severity |
|---------|----------|
| Mixed tabs/spaces | 🟠 Major |
| PSR-12 brace placement | 🟡 Minor |
| Line length > 120 | 🟡 Minor |
| Operator spacing | 🟢 Suggestion |
| Use statement order | 🟢 Suggestion |

## Automated Fixing

Most style issues can be automatically fixed:

```bash
# PHP-CS-Fixer
php-cs-fixer fix --rules=@PSR12

# PHP_CodeSniffer
phpcbf --standard=PSR12 src/
```

## Output Format

```markdown
### Style Issue: [Description]

**Severity:** 🟠/🟡/🟢
**Location:** `file.php:line`
**Rule:** PSR-12 / Project Standard

**Issue:**
[Description of the style violation]

**Current:**
```php
if($condition){
```

**Suggested:**
```php
if ($condition) {
```

**Auto-fix:**
Run `php-cs-fixer fix --rules=@PSR12`
```

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/dykyi-roman) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-11 -->

