Files
shopPRO/docs/UPDATE_INSTRUCTIONS.md
Jacek Pyziak 437d4c78dc ver. 0.288: BasketCalculator + ShopBasketController migration, cms\Layout removal
- Migrate front\factory\ShopBasket → Domain\Basket\BasketCalculator (4 static methods, 18 callers updated)
- Migrate front\controls\ShopBasket → front\Controllers\ShopBasketController (camelCase, instance methods)
- Add snake_case→camelCase action dispatch for new controllers in Site::route()
- Update title()/page_title() to check front\Controllers\ before fallback
- Remove cms\Layout class (replaced by $layoutsRepo->find())
- Add 8 tests for BasketCalculator (484 tests, 1528 assertions)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 09:38:45 +01:00

4.4 KiB

Instrukcja tworzenia aktualizacji shopPRO

Struktura aktualizacji

Aktualizacje znajdują się w folderze updates/0.XX/ gdzie XX oznacza dziesiątki wersji.

Pliki aktualizacji:

  • ver_X.XXX.zip - paczka ZIP ze zmienionymi plikami (BEZ folderu wersji, bezpośrednio struktura katalogów)
  • ver_X.XXX_sql.txt - opcjonalny plik z zapytaniami SQL (jeśli wymagane zmiany w bazie)
  • ver_X.XXX_files.txt - opcjonalny plik z listą plików do USUNIĘCIA przy aktualizacji (format: F: ../sciezka/do/pliku.php)
  • changelog.php - historia zmian
  • versions.php - konfiguracja wersji (zmienna $current_ver)

Zasada pakowania plików

  • Do paczek aktualizacji nie dodajemy plików *.md (dokumentacja jest tylko wewnętrzna/deweloperska).
  • Do paczek aktualizacji nie dodajemy updates/changelog.php (to plik serwisowy po stronie repozytorium aktualizacji, nie runtime klienta).
  • Do paczek aktualizacji nie dodajemy głównego .htaccess z katalogu projektu (ten plik wdrażamy osobno, poza ZIP aktualizacji).

Procedura tworzenia nowej aktualizacji

Status biezacej aktualizacji (ver. 0.288)

  • Wersja udostepniona: 0.288 (data: 2026-02-17).
  • Pliki publikacyjne:
    • updates/0.20/ver_0.288.zip, ver_0.288_files.txt
  • Pliki metadanych aktualizacji:
    • updates/changelog.php (dodany wpis ver. 0.288)
    • updates/versions.php ($current_ver = 288)
  • Weryfikacja testow przed publikacja:
    • OK (484 tests, 1528 assertions)

1. Określ numer wersji

Sprawdź ostatnią wersję w updates/ i zwiększ o 1.

2. Utwórz folder tymczasowy ze strukturą w katalogu temp

mkdir -p temp/temp_XXX/sciezka/do/pliku

WAŻNE: W archiwum ZIP NIE powinno być folderu z nazwą wersji (np. ver_0.234/). Struktura ZIP powinna zaczynać się bezpośrednio od katalogów projektu (admin/, autoload/, itp.).

3. Skopiuj zmienione pliki do folderu tymczasowego

cp sciezka/do/pliku.php temp/temp_XXX/sciezka/do/pliku.php

4. Utwórz plik ZIP z zawartości folderu (nie z samego folderu!)

cd temp/temp_XXX
powershell -Command "Compress-Archive -Path '*' -DestinationPath '../ver_X.XXX.zip' -Force"

5. Usuń folder tymczasowy

rm -rf temp/temp_XXX

6. Zaktualizuj changelog.php

Dodaj wpis na początku pliku:

<b>ver. X.XXX - DD.MM.YYYY</b><br />
- NEW/FIX/UPDATE - opis zmiany
<hr>

Prefiksy:

  • NEW - nowa funkcjonalność
  • FIX - naprawa błędu
  • UPDATE - aktualizacja istniejącej funkcjonalności

7. Zaktualizuj versions.php

Zmień wartość $current_ver na nowy numer wersji (bez przedrostka 0.):

$current_ver = 234; // dla wersji 0.234

8. (Opcjonalnie) Utwórz plik SQL

Jeśli aktualizacja wymaga zmian w bazie danych, utwórz plik ver_X.XXX_sql.txt z zapytaniami SQL.

9. (Opcjonalnie) Utwórz plik z listą plików do usunięcia

Jeśli aktualizacja wymaga usunięcia przestarzałych plików, utwórz plik ver_X.XXX_files.txt:

F: ../sciezka/do/pliku1.php
F: ../sciezka/do/pliku2.php

UWAGA: Pliki wymienione w tym pliku zostaną USUNIĘTE z systemu podczas aktualizacji.

Przykład - aktualizacja 0.234

Zmienione pliki:

  • autoload/admin/controls/class.ShopOrder.php
  • admin/templates/shop-order/order-details.php

Opis: Dodanie przycisku do zaznaczania zamówienia jako wysłane do trustmate.io

Komendy:

# Utwórz strukturę w folderze tymczasowym
mkdir -p temp/temp_234/autoload/admin/controls
mkdir -p temp/temp_234/admin/templates/shop-order

# Skopiuj pliki
cp autoload/admin/controls/class.ShopOrder.php temp/temp_234/autoload/admin/controls/
cp admin/templates/shop-order/order-details.php temp/temp_234/admin/templates/shop-order/

# Utwórz ZIP z ZAWARTOŚCI folderu (ważne: wejdź do folderu i spakuj '*')
cd temp/temp_234
powershell -Command "Compress-Archive -Path '*' -DestinationPath '../ver_0.234.zip' -Force"

# Wróć i usuń folder tymczasowy
cd ..
rm -rf temp_234

Poprawna struktura ZIP:

ver_0.234.zip
├── admin/
│   └── templates/
│       └── shop-order/
│           └── order-details.php
└── autoload/
    └── admin/
        └── controls/
            └── class.ShopOrder.php

NIEPOPRAWNA struktura (do uniknięcia):

ver_0.234.zip
└── ver_0.234/          <-- tego folderu NIE powinno być!
    ├── admin/
    └── autoload/