50 lines
2.3 KiB
Markdown
50 lines
2.3 KiB
Markdown
# 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.*
|