EditorConfig for PHP Projects
Also Known As
.editorconfig
EditorConfig file
editor settings file
TL;DR
A .editorconfig file enforces consistent indentation, line endings, and charset across all editors without relying on individual developer setup.
Explanation
EditorConfig defines per-file-type settings (indent_style, indent_size, end_of_line, charset, trim_trailing_whitespace, insert_final_newline) in a .editorconfig at the project root. Most editors support it natively (PhpStorm, VS Code) or via plugin. For PHP projects: indent_style = space, indent_size = 4 (PSR-12), end_of_line = lf, charset = utf-8. EditorConfig catches whitespace inconsistencies before they reach the linter — a developer on Windows won't accidentally commit CRLF line endings. Pair with .gitattributes text=auto for consistent line endings in the repository itself regardless of developer OS.
Common Misconception
✗ EditorConfig is redundant if the team uses the same IDE. EditorConfig enforces consistent indentation, line endings, and charset across all editors and IDEs — without it, mixed tabs/spaces and Windows CRLF line endings silently corrupt diffs when team members use different tools.
Why It Matters
EditorConfig defines consistent indentation, line endings, and encoding across editors and operating systems — preventing whitespace-only diffs that obscure real changes in code review.
Common Mistakes
- Not committing .editorconfig — only the developer who created it benefits.
- Not installing the EditorConfig plugin for editors that require it (VS Code, Vim, Emacs).
- Mixing tabs and spaces in a project without .editorconfig enforcing one style.
- Windows CRLF line endings in a Unix project causing spurious diffs — .editorconfig enforces LF.
Code Examples
✗ Vulnerable
# No .editorconfig — every developer uses different settings:
# Dev A: 4-space indent, LF
# Dev B: 2-space indent, CRLF
# Dev C: tabs, LF
# git diff shows whitespace changes mixed with real changes in every PR
# .editorconfig:
root = true
[*.php]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
✓ Fixed
# .editorconfig — consistent editor settings across all contributors
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
[*.php]
indent_style = space
indent_size = 4
[*.{yml,yaml}]
indent_style = space
indent_size = 2
[*.json]
indent_style = space
indent_size = 2
[Makefile]
indent_style = tab
[*.md]
trim_trailing_whitespace = false # markdown uses trailing spaces for line breaks
# Supported by: VS Code (EditorConfig extension), PhpStorm (built-in), Vim, Emacs, Sublime
References
Tags
🤝 Adopt this term
£79/year · your link shown here
Added
15 Mar 2026
Edited
22 Mar 2026
Views
31
🤖 AI Guestbook educational data only
|
|
Last 30 days
Agents 0
No pings yet today
Perplexity 9
Amazonbot 8
Ahrefs 4
Unknown AI 3
SEMrush 2
Majestic 1
Also referenced
How they use it
crawler 26
pre-tracking 1
Related categories
⚡
DEV INTEL
Tools & Severity
🟢 Low
⚙ Fix effort: Low
⚡ Quick Fix
Add a .editorconfig file to your repository root — it enforces consistent indentation, line endings, and charset across all editors without requiring per-developer IDE setup
📦 Applies To
any
web
cli
🔍 Detection Hints
Mixed tabs and spaces in PHP files; inconsistent line endings CRLF LF mixed; files without final newline; no .editorconfig in project root
Auto-detectable:
✓ Yes
editorconfig
phpcs
php-cs-fixer
⚠ Related Problems
🤖 AI Agent
Confidence: Medium
False Positives: Low
✓ Auto-fixable
Fix: Low
Context: File