Files
krolewskie-miody.pl/.paul/codebase/conventions.md
2026-05-19 20:05:59 +02:00

2.3 KiB

Konwencje Kodu

Data analizy: 2026-05-19

Reguły Projektowe

Źródło: CLAUDE.md.

  • PHP powinien stosować PSR-12.
  • Klasy: PascalCase.
  • Metody: camelCase.
  • Zmienne DB: snake_case.
  • Unikać zagnieżdżeń powyżej 3 poziomów.
  • Komentarze mają wyjaśniać "dlaczego", nie "co".
  • Customizacje tylko w child theme albo dedykowanym pluginie, nigdy w core WordPress.

Aktualne Wzorce W Kodzie

WordPress/WooCommerce:

  • Integracja przez add_action, add_filter, register_activation_hook, register_deactivation_hook.
  • Escaping i sanitizacja przez funkcje WordPress: esc_html, esc_attr, sanitize_text_field, wp_verify_nonce.
  • Ustawienia przez WordPress Settings API w wp-content/plugins/ws-inpost-map/App/WSInpostSettings.php.

Custom plugin ws-inpost-map:

  • Namespace: WsInpostMapOnCheckout\App.
  • Autoloading PSR-4 w wp-content/plugins/ws-inpost-map/composer.json.
  • Stałe pluginu: WSIM_INPOST_MAP_PLUGIN_DIR_PATH, WSIM_INPOST_MAP_PLUGIN_DIR_URL.
  • Klasa shipping method WSIM_InpostShippingMethod nie jest namespacowana, bo WooCommerce ładuje ją jako nazwę klasy metody wysyłki.

Odchylenia I Miejsca Do Uważania

  • wp-content/plugins/ws-inpost-map/App/WsInpostActions.php używa mieszanki wcięć 2 spacje i stylu odbiegającego od PSR-12.
  • wp-content/plugins/ws-inpost-map/App/WSInpostSettings.php jest duży względem reszty custom pluginu i łączy definicje pól, rendering admina, ustawienia oraz style dynamiczne.
  • Brak widocznego child theme w wp-content/themes/; nie należy modyfikować wp-content/themes/betheme/ bez wyraźnego powodu i planu aktualizacji.
  • Kod vendorowy w wp-content/plugins/ ma własne standardy; nie traktować go jako stylu dla nowych customizacji.

Zalecany Kierunek Dla Nowych Zmian

  • Nowe customizacje sklepu dodawać w dedykowanym pluginie albo child theme.
  • Dla zmian checkoutu najpierw sprawdzić kolizje z pluginami:
    • wp-content/plugins/flexible-checkout-fields/
    • wp-content/plugins/woo-checkout-field-editor-pro/
    • wp-content/plugins/woocommerce-checkout-manager/
    • wp-content/plugins/ws-inpost-map/
  • Sanitizować dane wejściowe na granicy requestu i escape'ować przy renderowaniu HTML.
  • Nie zapisywać sekretów w dokumentacji PAUL.

Aktualizuj po ustaleniu automatycznego formatowania albo po wydzieleniu child theme/custom pluginu.