eSoul docs Help

Psaní kódu

Níže jsou popsané všechny zásady a doporučení pro psaní kódu v našich projektech.

✅ Hlavní zásady

  • Kód a komentáře pišme v angličtině.

  • Snažíme se psát čistý, čitelný a udržovatelný kód.

  • Kód komentujte, ale zase není třeba komentovat úplně každý řádek.

  • Využíváme nástrojů pro statickou analýzu kódu (např. PHPStan, ESLint, atd.) a je nutné, aby kód těmto nástrojům vyhovoval.

🎨 Code style

Nemusíme být extrémně striktní s tím, jaký styl se na jakém projektu použíje, ale nutnost je nastavit nějaký a ten dodržovat v rámci celého projektu. Využíváme nástrojů pro automatické formátování kódu (např. PHP CS Fixer, Prettier, atd.), které zajistí, že kód bude vždy ve správném formátu.

Vhodné je mít nastavený pre-commit hook, který před commitem spustí formátování kódu.

Je možné do projektu přidat i .editorconfig soubor, který zajistí, že všichni vývojáři budou mít stejné nastavení editoru (odsazení, konce řádků, atd.).

PHP

  • Většinou využíváme PSR-12 code style.

  • Pro formátování kódu většinou využíváme PHP CodeSniffer

Příklad nastavení phpcs.xml:

<?xml version="1.0"?> <ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Project Coding Standard" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/PHPCSStandards/PHP_CodeSniffer/master/phpcs.xsd"> <description>eSoul coding standard.</description> <file>src</file> <file>tests</file> <rule ref="Generic.Functions.OpeningFunctionBraceKernighanRitchie" /> <rule ref="PSR12" /> <rule ref="Squiz.Functions.FunctionDeclarationArgumentSpacing.SpacingAfterHint"> <properties> <property name="type_hint_token" value="false"/> </properties> </rule> </ruleset>

Laravel

  • Laravel doporučuje Laravel Pint jako nástroj pro formátování kódu.

  • Přednastavený Laravel code style je založený na PSR-12, ale s několika úpravami.

Příklad nastavení pint.json:

{ "preset": "laravel", "rules": { "simplified_null_return": true, "align_multiline_comment": true, "array_indentation": true, "array_syntax": true, "combine_consecutive_issets": true, "combine_consecutive_unsets": true, "declare_strict_types": true, "declare_parentheses": true, "fully_qualified_strict_types": true, "global_namespace_import": true, "ordered_imports": true, "no_unused_imports": true } }

💄 JS/CSS

  • Využíváme nástrojů jako ESLint pro statickou analýzu kódu a Prettier pro formátování kódu.

CSS

  • Pro psaní CSS upřednostňujeme využití preprocesoru Sass (varianta SCSS).

JS

  • Spíše doporučujeme využívat TypeScript.

  • Pro psaní JavaScriptu využíváme moderní standardy (ES6+).

26 January 2026