Files
shopPRO/docs/CLASS_CATALOG.md
Jacek Pyziak de11afb003 ver. 0.294: Code review complete — 96/96 classes, 27 fixes across all layers
Full codebase review of autoload/ directory (96 classes, ~1144 methods).
Fixes: null safety (query/find guards), redundant DI bypass, undefined
variables, missing globals, and Imagick WebP mime type bug in Helpers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 15:26:07 +01:00

101 KiB
Raw Permalink Blame History

Katalog klas i metod — autoload/

Wygenerowano: 2026-02-18 Łącznie: 96 klas, ~530+ metod


Spis treści

  1. Domain/ — Warstwa domenowa (29 klas)
  2. admin/ — Warstwa administracyjna (39 klas)
  3. front/ — Warstwa frontendowa (21 klas)
  4. Shared/ — Klasy współdzielone (7 klas)

1. Domain/ — Warstwa domenowa

Domain\Article\ArticleRepository REVIEWED

File: autoload/Domain/Article/ArticleRepository.php Properties:

  • private $db
  • private const MAX_PER_PAGE = 100

Public Methods:

  • public function __construct($db)
  • public function find(int $articleId): ?array — try/catch na brak kolumny o (kompatybilność)
  • public function save(int $articleId, array $data, int $userId): int
  • public function archive(int $articleId): bool
  • public function restore(int $articleId): bool
  • public function deletePermanently(int $articleId): bool
  • public function listForAdmin(array $filters, string $sortColumn = 'date_add', string $sortDir = 'DESC', int $page = 1, int $perPage = 15): array
  • public function listArchivedForAdmin(array $filters, string $sortColumn = 'date_add', string $sortDir = 'DESC', int $page = 1, int $perPage = 15): array
  • public function saveGalleryOrder(int $articleId, string $order): bool
  • public function saveFilesOrder(int $articleId, string $order): bool
  • public function pagesSummaryForArticles(array $articleIds): array
  • public function updateImageAlt(int $imageId, string $imageAlt): bool
  • public function updateFileName(int $fileId, string $fileName): bool
  • public function markFileToDelete(int $fileId): bool
  • public function markImageToDelete(int $imageId): bool
  • public function deleteNonassignedFiles(): void
  • public function deleteNonassignedImages(): void
  • 🔧 public function articlesByDateAdd(string $dateStart, string $dateEnd, string $langId = 'pl'): array — naprawiono SQL injection (addslashes→parameterized), dodano parametr $langId
  • 🔧 public function articleDetailsFrontend(int $articleId, string $langId): ?array — select+foreach → get() (uproszczono)
  • 🔧 public function articlesIds(int $pageId, string $langId, int $limit, int $sortType, int $from): ?array — parametryzacja $langId
  • 🔧 public function pageArticlesCount(int $pageId, string $langId): int — parametryzacja $langId
  • public function pageArticles(array $page, string $langId, int $bs): array
  • public function news(int $pageId, int $limit, string $langId): ?array
  • public function articleNoindex(int $articleId, string $langId): bool
  • 🔧 public function topArticles(int $pageId, int $limit, string $langId): ?array — parametryzacja $langId + DRY via fetchArticlesByPage()
  • 🔧 public function newsListArticles(int $pageId, int $limit, string $langId): ?array — parametryzacja $langId + DRY via fetchArticlesByPage()

Private Methods:

  • private function createArticle(array $data, int $userId): int
  • private function updateArticle(int $articleId, array $data, int $userId): int
  • private function buildArticleRow(array $data, int $userId, bool $isNew): array
  • private function buildLangRow($langId, array $data): array
  • private function applyGalleryOrderIfProvided(int $articleId, array $data): void
  • private function applyFilesOrderIfProvided(int $articleId, array $data): void
  • private function saveTranslations(int $articleId, array $data, bool $isNew): void
  • private function savePages(int $articleId, $pages, bool $isNew): void
  • private function assignTempFiles(int $articleId): void
  • private function assignTempImages(int $articleId): void
  • private function deleteMarkedImages(int $articleId): void
  • private function deleteMarkedFiles(int $articleId): void
  • private function maxPageOrder(): int
  • private function isCheckedValue($value): bool
  • private function appendDateRangeFilter(array &$where, array &$params, string $column, string $fromKey, string $toKey, array $filters): void
  • 🔧 private function fetchArticlesByPage(string $cachePrefix, int $pageId, int $limit, string $langId, string $orderBy): ?array — NOWA, wspólna logika topArticles/newsListArticles

Domain\Attribute\AttributeRepository REVIEWED

File: autoload/Domain/Attribute/AttributeRepository.php Properties:

  • private $db
  • private ?string $defaultLangId = null
  • private const MAX_PER_PAGE = 100

Public Methods:

  • public function __construct($db)
  • public function listForAdmin(array $filters, string $sortColumn = 'o', string $sortDir = 'ASC', int $page = 1, int $perPage = 15): array
  • public function findAttribute(int $attributeId): array
  • public function saveAttribute(array $data): ?int
  • public function deleteAttribute(int $attributeId): bool
  • public function findValues(int $attributeId): array
  • public function saveValues(int $attributeId, array $payload): bool
  • public function saveLegacyValues(int $attributeId, array $names, array $values, array $ids, $defaultValue, array $impactOnThePrice): ?int
  • public function valueDetails(int $valueId): array
  • public function getAttributeNameById(int $attributeId, ?string $langId = null): string
  • public function getAttributeValueById(int $valueId, ?string $langId = null): string — z cache
  • public function getAttributesListForCombinations(): array
  • public function frontAttributeDetails(int $attributeId, string $langId): array — z cache
  • public function frontValueDetails(int $valueId, string $langId): array — z cache
  • public function isValueDefault(int $valueId)
  • public function getAttributeOrder(int $attributeId)
  • public function getAttributeNameByValue(int $valueId, string $langId) — parametryzowane query

Private Methods:

  • private function buildAdminWhere(array $filters): array
  • private function saveAttributeTranslations(int $attributeId, array $names): void
  • private function saveValueTranslations(int $valueId, array $translations): void
  • private function valueBelongsToAttribute(int $valueId, int $attributeId): bool
  • private function normalizeValueRows(array $rows): array
  • private function refreshCombinationPricesForValue(int $valueId, ?string $impactOnThePrice): void
  • private function toSwitchValue($value): int
  • private function toTypeValue($value): int
  • private function toNullableNumeric($value): ?string
  • private function defaultAttribute(): array
  • private function nextOrder(): int
  • private function defaultLanguageId(): string
  • private function clearFrontCache(int $id, string $type): void
  • 🔧 private function clearTempAndCache(): void — usunięto martwy check class_exists('\S')
  • private function normalizeDecimal(float $value, int $precision = 2): float

Domain\Banner\BannerRepository REVIEWED

File: autoload/Domain/Banner/BannerRepository.php Properties:

  • private $db
  • private const MAX_PER_PAGE = 100

Public Methods:

  • public function __construct($db)
  • public function find(int $bannerId): ?array — pobiera baner + tłumaczenia
  • public function delete(int $bannerId): bool
  • public function save(array $data) — insert/update, obsługuje nowy i legacy format
  • public function listForAdmin(array $filters, string $sortColumn = 'name', string $sortDir = 'ASC', int $page = 1, int $perPage = 15): array — z thumbnailami
  • 🔧 public function banners(string $langId): ?array — parametryzacja $today + null guard na query()
  • 🔧 public function mainBanner(string $langId): ?array — parametryzacja $today + null guard na query()

Private Methods:

  • private function fetchThumbnailsByBannerIds(array $bannerIds): array — parametryzowane IN
  • private function saveTranslations(int $bannerId, array $src, array $url, array $html, array $text): void — legacy format
  • private function saveTranslationsFromArray(int $bannerId, array $translations): void — nowy format
  • private function upsertTranslation(int $bannerId, $langId, array $fields): void — count+insert/update

Domain\Basket\BasketCalculator REVIEWED

File: autoload/Domain/Basket/BasketCalculator.php Properties: (brak — klasa statyczna)

Methods:

  • public static function summaryWp($basket) — suma wag, is_array guard
  • public static function countProductsText($count) — polska pluralizacja
  • 🔧 public static function summaryPrice($basket, $coupon = null, $langId = null, $productRepo = null) — dodano opcjonalne DI params z fallbackiem do globals
  • public static function countProducts($basket) — suma ilości, is_array guard
  • public static function validateBasket($basket) — null guard
  • 🔧 public static function checkProductQuantityInStock($basket, bool $message = false) — dodano is_array guard (bug: foreach na null)
  • 🔧 public static function calculateBasketProductPrice(float $price_brutto_promo, float $price_brutto, $coupon, $basket_position, $productRepo = null) — dodano opcjonalny $productRepo z fallbackiem do globals

Domain\Cache\CacheRepository REVIEWED

File: autoload/Domain/Cache/CacheRepository.php Properties:

  • private $redisConnection
  • private $basePath

Methods:

  • public function __construct(?\Shared\Cache\RedisConnection $redisConnection = null, string $basePath = '../')
  • public function clearCache(): array — czyści katalogi temp/thumbs + Redis flushAll, null guard na connection

Domain\Category\CategoryRepository REVIEWED

File: autoload/Domain/Category/CategoryRepository.php Properties:

  • private $db
  • private const SORT_TYPES, SORT_ORDER_SQL, PRODUCTS_PER_PAGE, LANGUAGE_FALLBACK_NAME_SQL

Public Methods:

  • public function __construct($db)
  • public function sortTypes(): array
  • public function subcategories($parentId = null): array
  • public function categoryDetails($categoryId = ''): array
  • public function categoryProducts(int $categoryId): array — parametryzowane query
  • public function categoryDelete($categoryId): bool — guard na podkategorie
  • public function saveCategoriesOrder($categories): bool
  • public function saveProductOrder($categoryId, $products): bool
  • public function save(array $data): ?int — upsert tłumaczeń
  • public function categoryTitle(int $categoryId): string
  • public function getCategorySort(int $categoryId): int — cache poprawny
  • public function categoryName(int $categoryId, string $langId): string — cache poprawny
  • public function categoryUrl(int $categoryId, string $langId): string
  • public function frontCategoryDetails(int $categoryId, string $langId): array — cache
  • public function categoriesTree(string $langId, ?int $parentId = null): array — rekurencyjne z cache
  • public function blogCategoryProducts(int $categoryId, string $langId, int $limit): array — parametryzowane query
  • public function categoryProductsCount(int $categoryId, string $langId): int — parametryzowane query
  • public function productsId(int $categoryId, int $sortType, string $langId, int $productsLimit, int $from): array — ORDER BY z whitelist
  • public function paginatedCategoryProducts(int $categoryId, int $sortType, string $langId, int $page): array
  • public function getCategoryProductIds(int $categoryId): array
  • 🔧 public function subcategoriesLangCached(int $categoryId): array — USUNIĘTA (martwy kod, myląca nazwa)

Private Methods:

  • private function maxOrder(): int
  • private function refreshCategoryArtifacts(): void
  • private function normalizeSeoLink($value): ?string
  • private function toNullableString($value): ?string
  • private function toSwitchValue($value): int
  • private function toNullableInt($value): ?int
  • private function defaultCategory(): array
  • private function productName(int $productId): string

Domain\Client\ClientRepository REVIEWED

File: autoload/Domain/Client/ClientRepository.php Properties:

  • private $db
  • private const MAX_PER_PAGE = 100

Public Methods:

  • public function __construct($db)
  • public function listForAdmin(array $filters, string $sortColumn = 'client_surname', string $sortDir = 'ASC', int $page = 1, int $perPage = 15): array — sort z whitelist, parametryzowane
  • public function ordersForClient(string $name, string $surname, string $email): array — parametryzowane
  • public function totalsForClient(string $name, string $surname, string $email): array — parametryzowane
  • public function clientDetails(int $clientId): ?array
  • public function clientEmail(int $clientId): ?string
  • public function clientAddresses(int $clientId): array
  • public function addressDetails(int $addressId): ?array
  • public function addressDelete(int $addressId): bool
  • public function addressSave(int $clientId, ?int $addressId, array $data): bool
  • public function markAddressAsCurrent(int $clientId, int $addressId): bool
  • 🔧 public function clientOrders(int $clientId): array — OrderRepository przeniesiony przed pętlę (performance)
  • public function authenticate(string $email, string $password): array — md5 hashing (legacy)
  • public function createClient(string $email, string $password, bool $agreementMarketing): ?array
  • public function confirmRegistration(string $hash): ?string
  • public function generateNewPassword(string $hash): ?array
  • public function initiatePasswordRecovery(string $email): ?string

Private Methods:

  • private function normalizeTextFilter($value): string

Domain\Coupon\CouponRepository REVIEWED

File: autoload/Domain/Coupon/CouponRepository.php Properties:

  • private $db
  • private ?string $defaultLangId = null
  • private const MAX_PER_PAGE = 100

Public Methods:

  • public function __construct($db)
  • public function listForAdmin(array $filters, string $sortColumn = 'name', string $sortDir = 'ASC', int $page = 1, int $perPage = 15): array — sort z whitelist, parametryzowane
  • public function find(int $couponId): array
  • public function save(array $data): ?int
  • public function delete(int $couponId): bool
  • public function findByName(string $name) — zwraca object
  • public function isAvailable($coupon) — obsługuje object i array
  • public function markAsUsed(int $couponId)
  • public function incrementUsedCount(int $couponId)
  • public function categoriesTree($parentId = null): array — rekurencyjne

Private Methods:

  • private function defaultCoupon(): array
  • private function toSwitchValue($value): int
  • private function toNullableNumeric($value): ?string
  • private function encodeIdList($values): ?string
  • private function decodeIdList($raw): array
  • private function normalizeIdList($values): array
  • private function categoryTitle(array $languages): string
  • private function defaultLanguageId(): string

Domain\Dashboard\DashboardRepository REVIEWED

File: autoload/Domain/Dashboard/DashboardRepository.php Properties:

  • private $db

Public Methods:

  • public function __construct($db)
  • public function summaryOrders(): int — Redis cache (300s TTL)
  • public function summarySales(): float — Redis cache (300s TTL)
  • public function salesGrid(): array — mapa dzień×godzina zamówień
  • public function mostViewedProducts(): array — top 10 po visits
  • public function bestSalesProducts(): array — top 10 po sprzedaży
  • public function last24MonthsSales(): array — sprzedaż per miesiąc
  • public function lastOrders(int $limit = 10): array

Private Methods:

  • private function calculateTotalSales(): float

Domain\Dictionaries\DictionariesRepository REVIEWED

File: autoload/Domain/Dictionaries/DictionariesRepository.php Properties:

  • private $db
  • private const MAX_PER_PAGE = 100
  • private const CACHE_TTL = 86400
  • private const CACHE_SUBDIR = 'dictionaries'

Public Methods:

  • public function __construct($db)
  • public function listForAdmin(array $filters, string $sortColumn = 'id', string $sortDir = 'ASC', int $page = 1, int $perPage = 15): array — sort z whitelist, parametryzowane
  • public function allUnits(): array
  • public function find(int $unitId): ?array — z tłumaczeniami
  • public function save(array $data) — insert + upsert tłumaczeń
  • public function delete(int $unitId): bool — kasuje też tłumaczenia
  • public function getUnitNameById(int $unitId, $langId): string — z cache

Private Methods:

  • private function normalizeTranslations(array $data): array
  • private function upsertTranslation(int $unitId, $langId, string $text): void
  • 🔧 private function clearCache(): void — usunięto martwy check class_exists('\S')
  • private function cacheFetch(string $key)
  • private function cacheStore(string $key, string $value): void

Domain\Integrations\IntegrationsRepository REVIEWED

File: autoload/Domain/Integrations/IntegrationsRepository.php Properties:

  • private $db
  • private const SETTINGS_TABLES, APILO_ENDPOINTS, APILO_SETTINGS_KEYS

Public Methods:

  • public function __construct($db)
  • 🔧 public function getSettings(string $provider): array — dodano null guard na query()
  • public function getSetting(string $provider, string $name): ?string
  • public function saveSetting(string $provider, string $name, $value): bool
  • public function linkProduct(int $productId, $externalId, $externalName): bool
  • public function unlinkProduct(int $productId): bool
  • public function apiloAuthorize(string $clientId, string $clientSecret, string $authCode): bool
  • public function apiloGetAccessToken(int $refreshLeadSeconds = 300): ?string
  • public function apiloKeepalive(int $refreshLeadSeconds = 300): array
  • public function apiloIntegrationStatus(): array
  • public function apiloFetchList(string $type): bool
  • public function apiloFetchListResult(string $type): array
  • public function getProductSku(int $productId): ?string
  • 🔧 public function apiloProductSearch(string $sku): array — naprawiono curl_error() po curl_close()
  • 🔧 public function apiloCreateProduct(int $productId): array — naprawiono mieszany array/object access ($product->field → $product['field'])
  • public function shopproImportProduct(int $productId): array

Private Methods:

  • private function settingsTable(string $provider): string — whitelist z const
  • private function refreshApiloAccessToken(array $settings): ?string
  • private function shouldRefreshAccessToken(string $expiresAtRaw, int $leadSeconds = 300): bool
  • private function isFutureDate(string $dateRaw): bool
  • private function normalizeApiloMapList(array $data): ?array
  • private function isMapListShape(array $list): bool
  • private function extractApiloErrorMessage(array $data): string

Domain\Languages\LanguagesRepository REVIEWED

File: autoload/Domain/Languages/LanguagesRepository.php Properties:

  • private $db
  • private const MAX_PER_PAGE = 100

Public Methods:

  • public function __construct($db)
  • public function listForAdmin(array $filters, string $sortColumn = 'o', string $sortDir = 'ASC', int $page = 1, int $perPage = 15): array — sort z whitelist
  • public function listTranslationsForAdmin(array $filters, string $sortColumn = 'text', string $sortDir = 'ASC', int $page = 1, int $perPage = 15): array
  • public function languageDetails(string $languageId): ?array
  • public function translationDetails(int $translationId): ?array
  • public function maxOrder(): int
  • public function languagesList(bool $onlyActive = false): array
  • public function defaultLanguageId(): string
  • public function deleteLanguage(string $languageId): bool — sanitizeLanguageId + ALTER TABLE
  • public function saveLanguage(string $languageId, string $name, $status, $start, int $order): ?string
  • public function deleteTranslation(int $translationId): bool
  • public function saveTranslation(int $translationId, string $text, array $translations): ?int
  • 🔧 public function defaultLanguage(): string — dodano null guard na query()
  • public function activeLanguages(): array — z cache
  • public function translations(string $language = 'pl'): array — z cache

Private Methods:

  • private function sanitizeLanguageId(string $languageId): ?string — regex /^[a-z]{2}$/
  • private function toSwitchValue($value): int

Domain\Layouts\LayoutsRepository REVIEWED

File: autoload/Domain/Layouts/LayoutsRepository.php Properties:

  • private $db
  • private const MAX_PER_PAGE = 100

Public Methods:

  • public function __construct($db)
  • public function delete(int $layoutId): bool — guard na count <= 1
  • public function find(int $layoutId): array — z pages/categories
  • public function save(array $data): ?int — insert/update + sync pages/categories
  • public function listAll(): array
  • public function menusWithPages(): array
  • public function categoriesTree($parentId = null): array — rekurencyjne
  • public function listForAdmin(array $filters, string $sortColumn = 'name', string $sortDir = 'ASC', int $page = 1, int $perPage = 15): array — sort z whitelist
  • public function categoryDefaultLayoutId()
  • public function getDefaultLayout(): ?array — z cache
  • 🔧 public function getProductLayout(int $productId): ?array — dodano 2× null guard na query()
  • public function getArticleLayout(int $articleId): ?array — z cache
  • 🔧 public function getCategoryLayout(int $categoryId): ?array — dodano null guard na query()
  • public function getActiveLayout(int $pageId): ?array — z cache

Private Methods:

  • private function syncPages(int $layoutId, $pages): void
  • private function syncCategories(int $layoutId, $categories): void
  • private function normalizeIds($values): array
  • private function toSwitchValue($value): int
  • private function defaultLayout(): array
  • private function clearFrontLayoutsCache(): void
  • private function menuPages(int $menuId, $parentId = null): array — rekurencyjne
  • private function pageTitle(int $pageId): string

Domain\Newsletter\NewsletterPreviewRenderer REVIEWED

File: autoload/Domain/Newsletter/NewsletterPreviewRenderer.php Properties: (brak)

Methods:

  • public function render(array $articles, array $settings, ?array $template, string $dates = ''): string — htmlspecialchars na danych user

Domain\Newsletter\NewsletterRepository REVIEWED

File: autoload/Domain/Newsletter/NewsletterRepository.php Properties:

  • private $db
  • private SettingsRepository $settingsRepository
  • private ?ArticleRepository $articleRepository
  • private ?NewsletterPreviewRenderer $previewRenderer
  • private const MAX_PER_PAGE = 100

Public Methods:

  • public function __construct($db, ?SettingsRepository, ?ArticleRepository, ?NewsletterPreviewRenderer)
  • public function getSettings(): array
  • public function saveSettings(array $values): bool
  • public function queueSend(string $dates = '', int $templateId = 0): bool
  • public function templateByName(string $templateName): string
  • public function templateDetails(int $templateId): ?array
  • public function isAdminTemplate(int $templateId): bool
  • public function deleteTemplate(int $templateId): bool — guard na admin templates
  • public function saveTemplate(int $templateId, string $name, string $text): ?int
  • public function listTemplatesSimple(bool $adminTemplates = false): array
  • public function deleteSubscriber(int $subscriberId): bool
  • public function listSubscribersForAdmin(array $filters, ...): array — sort z whitelist
  • public function listTemplatesForAdmin(bool $adminTemplates, array $filters, ...): array — sort z whitelist
  • public function unsubscribe(string $hash): bool
  • public function confirmSubscription(string $hash): bool
  • public function getHashByEmail(string $email): ?string
  • public function removeByEmail(string $email): bool
  • public function signup(string $email, string $serverName, bool $ssl, array $settings): bool — walidacja email
  • public function sendQueued(int $limit, string $serverName, bool $ssl, string $unsubscribeLabel): bool

Private Methods:

  • private function getArticleRepository(): ArticleRepository — lazy loading
  • private function getPreviewRenderer(): NewsletterPreviewRenderer — lazy loading

Domain\Order\OrderAdminService REVIEWED

File: autoload/Domain/Order/OrderAdminService.php Properties:

  • private OrderRepository $orders
  • private const APILO_SYNC_QUEUE_FILE

Public Methods:

  • public function __construct(OrderRepository $orders)
  • public function details(int $orderId): array
  • public function statuses(): array
  • public function listForAdmin(array $filters, ...): array
  • public function nextOrderId(int $orderId): ?int
  • public function prevOrderId(int $orderId): ?int
  • public function saveNotes(int $orderId, string $notes): bool
  • public function saveOrderByAdmin(array $input): bool
  • public function changeStatus(int $orderId, int $status, bool $sendEmail): array
  • public function resendConfirmationEmail(int $orderId): bool
  • public function setOrderAsUnpaid(int $orderId): bool
  • public function setOrderAsPaid(int $orderId, bool $sendMail): bool
  • 🔧 public function sendOrderToApilo(int $orderId): bool — dodano 3× null guard na query()
  • public function toggleTrustmateSend(int $orderId): array
  • public function deleteOrder(int $orderId): bool
  • public function processApiloSyncQueue(int $limit = 10): int

Private Methods:

  • private function sendStatusChangeEmail(array $order): bool
  • private function syncApiloPaymentIfNeeded(array $order): void
  • private function syncApiloStatusIfNeeded(array $order, int $status): void
  • private function syncApiloPayment(array $order): bool
  • private function syncApiloStatus(array $order, int $status): bool
  • private static function queueApiloSync(...): void
  • private static function apiloSyncQueuePath(): string
  • private static function loadApiloSyncQueue(): array
  • private static function saveApiloSyncQueue(array $queue): void
  • private static function appendApiloLog(string $message): void

Domain\Order\OrderRepository REVIEWED

File: autoload/Domain/Order/OrderRepository.php Properties:

  • private $db
  • private const MAX_PER_PAGE = 100

Public Methods:

  • public function __construct($db)
  • public function listForAdmin(array $filters, string $sortColumn = 'date_order', string $sortDir = 'DESC', int $page = 1, int $perPage = 15): array — sort z whitelist
  • public function findForAdmin(int $orderId): array
  • public function orderProducts(int $orderId): array
  • public function orderStatusHistory(int $orderId): array
  • public function orderStatuses(): array
  • public function nextOrderId(int $orderId): ?int
  • public function prevOrderId(int $orderId): ?int
  • public function saveNotes(int $orderId, string $notes): bool
  • public function saveOrderByAdmin(...): bool
  • public function calculateOrderSummaryByAdmin(int $orderId): float
  • public function toggleTrustmateSend(int $orderId): ?int
  • public function deleteOrder(int $orderId): bool
  • public function findIdByHash(string $hash)
  • public function findHashById(int $orderId)
  • public function orderDetailsFrontend($orderId = null, $hash = '', $przelewy24Hash = '')
  • 🔧 public function generateOrderNumber() — dodano null guard na query()
  • 🔧 public function createFromBasket(...) — AttributeRepository wyciągnięty przed pętlę, ProductRepository reuse zamiast new
  • public function getDb()
  • public function findRawById(int $orderId): ?array
  • public function findRawByHash(string $hash): ?array
  • public function findRawByPrzelewy24Hash(string $hash): ?array
  • public function setAsPaid(int $orderId): void
  • public function setAsUnpaid(int $orderId): void
  • public function updateOrderStatus(int $orderId, int $status): bool
  • public function insertStatusHistory(int $orderId, int $statusId, int $mail): void
  • public function updateApiloStatusDate(int $orderId, string $date): void

Private Methods:

  • private function nullableString(string $value): ?string
  • private function normalizeTextFilter($value): string
  • private function normalizeDateFilter($value): ?string

Domain\Pages\PagesRepository REVIEWED

File: autoload/Domain/Pages/PagesRepository.php Properties:

  • private $db
  • private const PAGE_TYPES, SORT_TYPES

Public Methods:

  • public function __construct($db)
  • public function pageTypes(): array
  • public function sortTypes(): array
  • public function menusList(): array
  • public function menusWithPages(): array
  • public function menuPages(int $menuId, ?int $parentId = null): array — rekurencyjne
  • public function menuDelete(int $menuId): bool — guard na pages
  • public function pageDelete(int $pageId): bool — guard na subpages
  • public function menuDetails(int $menuId): array
  • public function menuSave(int $menuId, string $name, $status): bool
  • public function pageDetails(int $pageId): array — z tłumaczeniami i layout
  • public function pageArticles(int $pageId): array — parametryzowane query
  • public function saveArticlesOrder(int $pageId, $articles): bool
  • public function savePagesOrder(int $menuId, $pages): bool
  • public function pageSave(array $data): ?int — insert/update + upsert tłumaczeń
  • public function generateSeoLink(string $title, int $pageId = 0, int $articleId = 0, int $categoryId = 0): string
  • public function pageUrlPreview(...): string
  • public function toggleCookieValue(string $cookieName, int $itemId): void
  • public function pageTitle(int $pageId): string
  • public function pageLanguages(int $pageId): array
  • public function frontPageDetails($id = '', $langId = ''): ?array — z cache
  • public function frontPageSort(int $pageId) — z cache
  • public function frontMainPageId() — z cache
  • public function frontLangUrl(int $pageId, string $langId): string
  • public function frontMenuDetails(int $menuId, string $langId): ?array — z cache
  • public function frontMenuPages(int $menuId, string $langId, $parentId = null): ?array — rekurencyjne z cache

Private Methods:

  • private function defaultPage(): array
  • private function saveTranslations(int $pageId, int $pageType, array $data): void
  • private function updateSubpagesMenuId(int $parentId, int $menuId): void — rekurencyjne
  • private function isSeoLinkUsed(string $table, string $idColumn, string $seoLink, int $exceptId): bool
  • private function maxPageOrder(): int
  • private function toSwitchValue($value): int
  • private function normalizeNullableInt($value): ?int
  • private function nullIfEmpty($value): ?string

Domain\PaymentMethod\PaymentMethodRepository REVIEWED

File: autoload/Domain/PaymentMethod/PaymentMethodRepository.php Properties:

  • private $db
  • private const MAX_PER_PAGE = 100

Public Methods:

  • public function __construct($db)
  • public function listForAdmin(array $filters, string $sortColumn = 'name', string $sortDir = 'ASC', int $page = 1, int $perPage = 15): array
  • public function find(int $paymentMethodId): ?array
  • public function save(int $paymentMethodId, array $data): ?int
  • public function allActive(): array
  • public function allForAdmin(): array
  • public function findActiveById(int $paymentMethodId): ?array
  • public function isActive(int $paymentMethodId): int
  • public function getApiloPaymentTypeId(int $paymentMethodId)
  • public function forTransport(int $transportMethodId): array
  • public function paymentMethodsByTransport(int $transportMethodId): array — cached (Redis)
  • public function paymentMethodCached(int $paymentMethodId): ?array — cached (Redis)
  • public function paymentMethodsCached(): array — cached (Redis)

Private Methods:

  • private function normalizePaymentMethod(array $row): array
  • private function normalizeApiloPaymentTypeId($value)
  • private function toSwitchValue($value): int

Domain\Producer\ProducerRepository REVIEWED

File: autoload/Domain/Producer/ProducerRepository.php Properties:

  • private $db
  • private const MAX_PER_PAGE = 100

Public Methods:

  • public function __construct($db)
  • public function listForAdmin(array $filters, string $sortColumn = 'name', string $sortDir = 'ASC', int $page = 1, int $perPage = 15): array
  • public function find(int $id): array
  • public function save(int $id, string $name, int $status, ?string $img, array $description, array $data, array $metaTitle, array $langs): ?int
  • public function delete(int $id): bool
  • public function allProducers(): array
  • public function findForFrontend(int $id, string $langId): ?array
  • public function producerProducts(int $producerId, int $perPage = 12, int $page = 1): array
  • public function allActiveIds(): array
  • public function allActiveProducers(): array

Private Methods:

  • private function defaultProducer(): array
  • private function toSwitchValue($value): int

Domain\Product\ProductRepository REVIEWED

File: autoload/Domain/Product/ProductRepository.php (2846 linii, największa klasa) Properties:

  • private $db
  • private const MAX_PER_PAGE = 100

Public Methods (CRUD admin):

  • public function __construct($db)
  • public function getQuantity(int $productId): ?int
  • public function find(int $productId): ?array
  • public function listArchivedForAdmin(array $filters, string $sortColumn, string $sortDir, int $page, int $perPage): array
  • public function getPrice(int $productId): ?float
  • public function getName(int $productId, string $langId): ?string
  • public function updateQuantity(int $productId, int $quantity): bool
  • public function unarchive(int $productId): bool
  • public function archive(int $productId): bool
  • public function allProductsForMassEdit(): array
  • public function getProductsByCategory(int $categoryId): array
  • public function applyDiscountPercent(int $productId, float $discountPercent): ?array
  • public function countProducts(?array $where = null): int
  • public function listForAdmin(array $filters, string $sortColumn, string $sortDir, int $page, int $perPage): array
  • public function findForAdmin(int $productId): ?array
  • public function allProductsList(): array
  • public function productCategoriesText(int $productId): string
  • public function getParentId(int $productId): ?int
  • public function productDefaultName(int $productId): ?string
  • public function saveProduct(array $d, ?int $userId = null): ?int
  • public function delete(int $productId): bool
  • public function duplicate(int $productId, bool $withCombinations = false): bool
  • public function toggleStatus(int $productId): bool
  • public function updatePriceBrutto(int $productId, $price): bool
  • public function updatePriceBruttoPromo(int $productId, $price): bool
  • 🔧 public function updateCustomLabel(int $productId, string $label, $value): bool — dodano whitelist walidację $label (SQL injection)

Public Methods (kombinacje):

  • public function getCombinationsForTable(int $productId): array
  • public function getPermutations(int $productId): array
  • public function generateCombinations(int $productId, array $attributes): bool
  • public function deleteCombination(int $combinationId): bool
  • public function countCombinations(int $productId): int
  • public function saveCombinationStock0Buy(int $productId, $value): bool
  • public function saveCombinationSku(int $productId, $sku): bool
  • public function saveCombinationQuantity(int $productId, $quantity): bool
  • public function saveCombinationPrice(int $productId, $priceNetto): bool

Public Methods (zdjęcia/pliki/XML):

  • public function deleteImage(int $imageId): bool
  • public function updateImageAlt(int $imageId, string $alt): bool
  • public function saveImagesOrder(int $productId, string $order): bool
  • public function deleteNonassignedImages(): void
  • public function deleteFile(int $fileId): bool
  • public function updateFileName(int $fileId, string $name): bool
  • public function deleteNonassignedFiles(): void
  • public function getProductImages(int $productId): array
  • public function saveXmlName(int $productId, string $xmlName, string $langId): bool
  • 🔧 public function customLabelSuggestions(string $customLabel, string $labelType): array — dodano whitelist walidację $labelType (SQL injection)
  • 🔧 public function saveCustomLabel(int $productId, string $customLabel, string $labelType): bool — dodano whitelist walidację $labelType (SQL injection)
  • public function generateEAN(string $number): string
  • 🔧 public function generateGoogleFeedXml(): void — TransportRepository przeniesiony przed pętlę (performance)
  • public function updateCombinationPricesFromBase(int $productId, $priceBrutto, $vat, $priceBruttoPromo): void

Public Methods (frontend/cached):

  • public function getSkuWithFallback(int $productId, bool $withParentFallback = false)
  • public function getEanWithFallback(int $productId, bool $withParentFallback = false)
  • public function isProductActiveCached(int $productId): int
  • public function getMinimalPriceCached(int $productId, $priceBruttoPromo = null)
  • public function productCategoriesFront(int $productId): array
  • public function getProductNameCached(int $productId, string $langId)
  • public function getFirstImageCached(int $productId)
  • public function getWeightCached(int $productId)
  • public function promotedProductIdsCached(int $limit = 6): array
  • public function topProductIds(int $limit = 6): array
  • public function newProductIds(int $limit = 10): array
  • 🔧 public function productDetailsFrontCached(int $productId, string $langId) — naprawiono select()→$product['set_id'] (bug logiczny)
  • public function getWarehouseMessageZero(int $productId, string $langId)
  • public function getWarehouseMessageNonzero(int $productId, string $langId)
  • public function findCustomFieldCached(int $customFieldId)
  • public function findCached(int $productId, string $langId = null, string $permutationHash = null)
  • public function isProductOnPromotion(int $productId): bool
  • public function productSetsWhenAddToBasket(int $productId): string
  • public function addVisit(int $productId): void
  • public function getProductImg(int $productId)
  • public function getProductUrl(int $productId): string
  • 🔧 public function searchProductsByNameCount(string $query, string $langId): int — dodano null guard na query()
  • 🔧 public function getProductsIdByName(string $query, string $langId, int $limit, int $from): array — dodano null guard na query()
  • public function searchProductsByName(string $query, string $langId, int $page = 0): array
  • 🔧 public function searchProductByNameAjax(string $query, string $langId): array — dodano null guard na query()
  • public function isStock0Buy(int $productId)
  • public function getProductPermutationQuantityOptions(int $productId, $permutation)
  • public function getProductIdByAttributes(int $parentId, array $attributes)
  • public function getProductPermutationHash(int $productId)
  • public function getProductAttributes($products)
  • public function generateSkuCode(): string
  • public function productMeta(int $productId): array
  • public function generateSubtitleFromAttributes(string $permutationHash, string $langId = null): string
  • public function getDefaultCombinationPrices(array $product): array
  • public function getProductDataBySelectedAttributes(array $product, string $selectedAttribute): array
  • public function productCategories(int $productId): array
  • public static function arrayCartesian(array $input): array

Private Methods:

  • private function defaultLangId(): string
  • private function saveLanguages(int $productId, array $d, bool $isNew): void
  • private function handleSeoRedirects(int $productId, string $langId, string $newSeoLink, string $currentSeoLink): void
  • private function saveCategories(int $productId, $categories): void
  • private function saveRelatedProducts(int $productId, $products): void
  • private function moveTemporaryFiles(int $productId): void
  • private function moveTemporaryImages(int $productId): void
  • private function saveCustomFields(int $productId, array $names, array $types, array $required): void
  • private function cleanupDeletedFiles(int $productId): void
  • private function cleanupDeletedImages(int $productId): void
  • private function nullIfEmpty($value)
  • private function updateCombinationPrices(int $productId, float $priceNetto, float $vat, ?float $priceNettoPromo): void
  • private function appendCombinationToXml(...): void
  • private function appendProductToXml(...): void
  • private function appendImagesToXml(...): void
  • private function appendShippingToXml(...): void

Domain\ProductSet\ProductSetRepository REVIEWED

File: autoload/Domain/ProductSet/ProductSetRepository.php Properties:

  • private $db
  • private const MAX_PER_PAGE = 100

Public Methods:

  • public function __construct($db)
  • public function listForAdmin(array $filters, string $sortColumn = 'name', string $sortDir = 'ASC', int $page = 1, int $perPage = 15): array
  • public function find(int $id): array
  • public function save(int $id, string $name, int $status, array $productIds): ?int
  • public function delete(int $id): bool
  • public function allSets(): array
  • public function allProductsMap(): array

Private Methods:

  • private function syncProducts(int $setId, array $productIds): void
  • private function defaultSet(): array
  • private function toSwitchValue($value): int
  • private function clearTempAndCache(): void

Domain\Promotion\PromotionRepository REVIEWED

File: autoload/Domain/Promotion/PromotionRepository.php Properties:

  • private $db
  • private ?string $defaultLangId = null
  • private const MAX_PER_PAGE = 100
  • public static $condition_type
  • public static $discount_type

Public Methods (admin):

  • public function __construct($db)
  • public function listForAdmin(array $filters, string $sortColumn = 'id', string $sortDir = 'DESC', int $page = 1, int $perPage = 15): array
  • public function find(int $promotionId): array
  • public function save(array $data): ?int
  • public function delete(int $promotionId): bool
  • public function categoriesTree($parentId = null): array
  • public function getActivePromotions()

Public Methods (frontend basket promotion):

  • public function findPromotion($basket)
  • 🔧 public function applyTypeWholeBasket(array $basket, $promotion): array — reuse $productRepo zamiast new w pętli
  • 🔧 public function applyTypeCheapestProduct(array $basket, $promotion): array — reuse $productRepo zamiast new w 2 pętlach
  • 🔧 public function applyTypeCategoriesOr(array $basket, $promotion): array — reuse $productRepo zamiast new w pętli
  • public function applyTypeCategoriesAnd(array $basket, $promotion): array
  • public function applyTypeCategoryCondition(array $basket, $promotion): array

Private Methods:

  • private function defaultPromotion(): array
  • private function toSwitchValue($value): int
  • private function toNullableInt($value): ?int
  • private function toNullableNumeric($value): ?string
  • private function toNullableDate($value): ?string
  • private function encodeIdList($values): ?string
  • private function decodeIdList($raw): array
  • private function normalizeIdList($values): array
  • private function categoryTitle(array $languages): string
  • private function defaultLanguageId(): string
  • private function invalidateActivePromotionsCache(): void

Domain\Scontainers\ScontainersRepository REVIEWED

File: autoload/Domain/Scontainers/ScontainersRepository.php Properties:

  • private $db
  • private const MAX_PER_PAGE = 100

Public Methods:

  • public function __construct($db)
  • public function listForAdmin(array $filters, string $sortColumn = 'id', string $sortDir = 'DESC', int $page = 1, int $perPage = 15): array
  • public function find(int $containerId): array
  • public function detailsForLanguage(int $containerId, string $langId): ?array
  • public function save(array $data): ?int
  • public function delete(int $containerId): bool
  • public function frontScontainerDetails(int $scontainerId, string $langId): array — cached (Redis)

Private Methods:

  • private function baseListSelect(): string
  • private function clearFrontCache(int $containerId): void
  • private function translationsMap(int $containerId): array
  • private function extractTranslations(array $data): array
  • private function toSwitchValue($value): int
  • private function defaultContainer(): array

Domain\Settings\SettingsRepository REVIEWED

File: autoload/Domain/Settings/SettingsRepository.php Properties:

  • private $db

Public Methods:

  • public function __construct($db = null)
  • public function saveSettings(array $values): array
  • public function updateSetting(string $param, $value): bool
  • public function updateSettings(array $settings): bool
  • public function getSettings(): array
  • public function allSettings(bool $skipCache = false): array — cached (Redis)
  • public function getSingleValue(string $param): string — cached (Redis)

Private Methods:

  • private function isEnabled($value): bool

Domain\ShopStatus\ShopStatusRepository REVIEWED

File: autoload/Domain/ShopStatus/ShopStatusRepository.php Properties:

  • private $db
  • private const MAX_PER_PAGE = 100

Public Methods:

  • public function __construct($db)
  • public function listForAdmin(array $filters, string $sortColumn = 'o', string $sortDir = 'ASC', int $page = 1, int $perPage = 15): array
  • public function find(int $statusId): ?array
  • public function save(int $statusId, array $data): int
  • public function getApiloStatusId(int $statusId): ?int
  • public function getByIntegrationStatusId(string $integration, int $integrationStatusId): ?int
  • public function allStatuses(): array

Domain\Transport\TransportRepository REVIEWED

File: autoload/Domain/Transport/TransportRepository.php Properties:

  • private $db
  • private const MAX_PER_PAGE = 100

Public Methods:

  • public function __construct($db)
  • public function listForAdmin(array $filters, string $sortColumn = 'name', string $sortDir = 'ASC', int $page = 1, int $perPage = 15): array
  • public function find(int $transportId): ?array
  • public function save(array $data): ?int
  • public function allActive(): array
  • public function findActiveById(int $transportId): ?array
  • public function getApiloCarrierAccountId(int $transportId): ?int
  • public function getTransportCost(int $transportId): ?float
  • public function lowestTransportPrice(int $wp): ?float
  • public function allForAdmin(): array
  • public function transportMethodsFront($basket, $coupon): array
  • public function transportCostCached($transportId) — cached (Redis)
  • public function findActiveByIdCached($transportId) — cached (Redis)
  • public function forPaymentMethod(int $paymentMethodId): array

Private Methods:

  • private function savePaymentMethodLinks(int $transportId, $paymentMethods): void
  • private function normalizeTransport(array $transport): array
  • private function toSwitchValue($value): int

Domain\Update\UpdateRepository REVIEWED

File: autoload/Domain/Update/UpdateRepository.php Properties:

  • private $db

Methods:

  • public function __construct($db)
  • public function update(): array
  • public function runPendingMigrations(): void
  • public function update0197(): void
  • private function downloadAndApply(string $ver, string $dir, array $log): array
  • private function executeSql(string $sqlUrl, array $log): array
  • private function deleteFiles(string $filesUrl, array $log): array
  • private function extractZip(string $fileName, array $log): array
  • private function saveLog(array $log): void

Domain\User\UserRepository REVIEWED

File: autoload/Domain/User/UserRepository.php Properties:

  • private $db
  • private const MAX_PER_PAGE = 100

Methods:

  • public function __construct($db)
  • public function getById(int $userId): ?array
  • public function updateById(int $userId, array $data): bool
  • public function verifyTwofaCode(int $userId, string $code): bool
  • public function sendTwofaCode(int $userId, bool $resend = false): bool
  • public function delete(int $userId): bool
  • public function find(int $userId): ?array
  • public function save(int $userId, string $login, $status, string $password, string $passwordRepeat, $admin, $twofaEnabled = 0, string $twofaEmail = ''): array
  • public function checkLogin(string $login, int $userId): array
  • public function logon(string $login, string $password): int
  • public function details(string $login): ?array
  • public function listForAdmin(array $filters, string $sortColumn = 'login', string $sortDir = 'ASC', int $page = 1, int $perPage = 15): array
  • private function toSwitchValue($value): int

2. admin/ — Warstwa administracyjna

admin\App REVIEWED

File: autoload/admin/App.php Properties:

  • private static array $newControllers

Constants:

  • const APP_SECRET_KEY = 'c3cb2537d25c0efc9e573d059d79c3b8'

Methods:

  • public static function finalize_admin_login(array $user, string $domain, string $cookie_name, bool $remember = false)
  • 🔧 public static function special_actions() — null guard po details() w logowaniu i 2FA
  • public static function render(): string
  • public static function route()
  • private static function createController(string $moduleName)
  • private static function getControllerFactories(): array
  • public static function update()

admin\Controllers\ArticlesArchiveController REVIEWED

File: autoload/admin/Controllers/ArticlesArchiveController.php Properties:

  • private ArticleRepository $repository

Methods:

  • public function __construct(ArticleRepository $repository)
  • public function list(): string
  • public function view_list(): string
  • public function restore(): void
  • public function article_restore(): void
  • public function delete(): void
  • public function article_delete(): void

admin\Controllers\ArticlesController REVIEWED

File: autoload/admin/Controllers/ArticlesController.php Properties:

  • private ArticleRepository $repository
  • private LanguagesRepository $languagesRepository
  • private LayoutsRepository $layoutsRepository
  • private PagesRepository $pagesRepository

Methods:

  • public function __construct(ArticleRepository $repository, LanguagesRepository $languagesRepository, LayoutsRepository $layoutsRepository, PagesRepository $pagesRepository)
  • public function list(): string
  • public function galleryOrderSave(): void
  • public function filesOrderSave(): void
  • public function save(): void
  • public function imageAltChange(): void
  • public function fileNameChange(): void
  • public function imageDelete(): void
  • public function fileDelete(): void
  • public function delete(): void
  • public function edit(): string
  • private function resolveSavePayload(): array
  • private function buildFormViewModel(array $article, array $languages, array $menus, array $layouts): FormEditViewModel
  • private function renderPagesTree(array $menus, array $article): string
  • private function renderImagesBox(array $article): string
  • private function renderFilesBox(array $article): string
  • private function escapeHtml(string $value): string

admin\Controllers\BannerController REVIEWED

File: autoload/admin/Controllers/BannerController.php Properties:

  • private BannerRepository $repository
  • private LanguagesRepository $languagesRepository
  • private FormRequestHandler $formHandler

Methods:

  • public function __construct(BannerRepository $repository, LanguagesRepository $languagesRepository)
  • public function list(): string
  • 🔧 public function edit(): string — null guard: find() ?: []
  • 🔧 public function save(): void — null guard: find() ?: []
  • public function delete(): void
  • private function buildFormViewModel(array $banner, array $languages, ?array $errors = null): FormEditViewModel
  • private function getFormId(): string

admin\Controllers\DashboardController REVIEWED

File: autoload/admin/Controllers/DashboardController.php Properties:

  • private DashboardRepository $repository
  • private ShopStatusRepository $statusesRepository

Methods:

  • public function __construct(DashboardRepository $repository, ShopStatusRepository $statusesRepository)
  • public function main_view(): string

admin\Controllers\DictionariesController REVIEWED

File: autoload/admin/Controllers/DictionariesController.php Properties:

  • private DictionariesRepository $repository
  • private LanguagesRepository $languagesRepository
  • private FormRequestHandler $formHandler

Methods:

  • public function __construct(DictionariesRepository $repository, LanguagesRepository $languagesRepository)
  • public function list(): string
  • public function edit(): string
  • public function save(): void
  • public function delete(): void
  • private function buildFormViewModel(array $unit, array $languages, ?array $errors = null): FormEditViewModel
  • private function getFormId(): string

admin\Controllers\FilemanagerController REVIEWED

File: autoload/admin/Controllers/FilemanagerController.php Properties: (brak)

Constants:

  • private const RFM_KEY_TTL = 1200
  • private const FILEMANAGER_DIALOG_PATH = '/libraries/filemanager-9.14.2/dialog.php'

Methods:

  • public function draw(): string
  • private function ensureFilemanagerAccessKey(): string
  • private function buildFilemanagerUrl(string $akey): string

admin\Controllers\IntegrationsController REVIEWED

File: autoload/admin/Controllers/IntegrationsController.php Properties:

  • private IntegrationsRepository $repository

Methods:

  • public function __construct(IntegrationsRepository $repository)
  • public function apilo_settings(): string
  • public function apilo_settings_save(): void
  • public function apilo_authorization(): void
  • public function get_platform_list(): void
  • public function get_status_types_list(): void
  • public function get_carrier_account_list(): void
  • public function get_payment_types_list(): void
  • public function apilo_create_product(): void
  • public function apilo_product_search(): void
  • public function apilo_product_select_save(): void
  • public function apilo_product_select_delete(): void
  • public function shoppro_settings(): string
  • public function shoppro_settings_save(): void
  • public function shoppro_product_import(): void
  • private function fetchApiloListWithFeedback(string $type, string $label): void

admin\Controllers\LanguagesController REVIEWED

File: autoload/admin/Controllers/LanguagesController.php Properties:

  • private LanguagesRepository $repository
  • private FormRequestHandler $formHandler

Methods:

  • public function __construct(LanguagesRepository $repository)
  • public function list(): string
  • public function view_list(): string
  • public function language_edit(): string
  • public function language_save(): void
  • public function language_delete(): void
  • public function translation_list(): string
  • public function translation_edit(): string
  • public function translation_save(): void
  • public function translation_delete(): void
  • private function buildLanguageFormViewModel(array $language, int $maxOrder, ?array $errors = null): FormEditViewModel
  • private function buildTranslationFormViewModel(array $translation, array $languages, ?array $errors = null): FormEditViewModel
  • private function extractLegacyTranslations(array $values, array $languages): array
  • private function clearLanguageSessions(array $languages): void
  • private function getLanguageFormId(): string
  • private function getTranslationFormId(): string

admin\Controllers\LayoutsController REVIEWED

File: autoload/admin/Controllers/LayoutsController.php Properties:

  • private LayoutsRepository $repository
  • private LanguagesRepository $languagesRepository

Methods:

  • public function __construct(LayoutsRepository $repository, LanguagesRepository $languagesRepository)
  • public function list(): string
  • public function edit(): string
  • public function save(): void
  • public function delete(): void

admin\Controllers\NewsletterController REVIEWED

File: autoload/admin/Controllers/NewsletterController.php Properties:

  • private NewsletterRepository $repository
  • private NewsletterPreviewRenderer $previewRenderer
  • private FormRequestHandler $formHandler

Methods:

  • public function __construct(NewsletterRepository $repository, NewsletterPreviewRenderer $previewRenderer)
  • public function list(): string
  • public function view_list(): string
  • public function emails_list(): string
  • public function email_delete(): void
  • public function delete(): void
  • public function prepare(): string
  • public function preview(): string
  • public function send(): void
  • public function settings(): string
  • public function settings_save(): void
  • public function email_templates_user(): string
  • public function email_templates_admin(): string
  • public function email_template_edit(): string
  • public function template_save(): void
  • public function email_template_delete(): void
  • private function buildSettingsFormViewModel(array $settings, ?array $errors = null): FormEditViewModel
  • private function buildTemplateFormViewModel(array $template, ?array $errors = null): FormEditViewModel
  • private function templatesListViewModel(): PaginatedTableViewModel
  • private function settingsFormId(): string
  • private function templateFormId(int $templateId): string

admin\Controllers\PagesController REVIEWED

File: autoload/admin/Controllers/PagesController.php Properties:

  • private PagesRepository $repository
  • private LanguagesRepository $languagesRepository
  • private LayoutsRepository $layoutsRepository

Methods:

  • public function __construct(PagesRepository $repository, LanguagesRepository $languagesRepository, LayoutsRepository $layoutsRepository)
  • public function list(): string
  • public function browseList(): string
  • public function pagesUrlBrowser(): string
  • 🔧 public function menuEdit(): string — null guard: menuDetails() ?: []
  • public function menuSave(): void
  • private function buildMenuFormViewModel(array $menu): FormEditViewModel
  • public function menuDelete(): void
  • 🔧 public function edit(): string — null guard: pageDetails() ?: []
  • public function save(): void
  • private function buildPageFormViewModel(array $page, int $parentId, int $menuId, array $menus, array $layouts, array $languages): FormEditViewModel
  • public function delete(): void
  • public function pageArticles(): string
  • public function savePagesOrder(): void
  • public function saveArticlesOrder(): void
  • public function generateSeoLink(): void
  • public function cookieMenus(): void
  • public function cookiePages(): void
  • private function withPreviewUrls(array $pages, string $defaultLanguage): array
  • private function cookieState(string $cookieName): array

admin\Controllers\ProductArchiveController REVIEWED

File: autoload/admin/Controllers/ProductArchiveController.php Properties:

  • private ProductRepository $productRepository

Methods:

  • public function __construct(ProductRepository $productRepository)
  • 🔧 public function list(): string — fix: $this->repository → $this->productRepository
  • public function unarchive(): void

admin\Controllers\ScontainersController REVIEWED

File: autoload/admin/Controllers/ScontainersController.php Properties:

  • private ScontainersRepository $repository
  • private LanguagesRepository $languagesRepository
  • private FormRequestHandler $formHandler

Methods:

  • public function __construct(ScontainersRepository $repository, LanguagesRepository $languagesRepository)
  • public function list(): string
  • public function view_list(): string
  • 🔧 public function edit(): string — null guard: find() ?: []
  • public function container_edit(): string
  • 🔧 public function save(): void — null guard: find() ?: []
  • public function container_save(): void
  • public function delete(): void
  • public function container_delete(): void
  • private function buildFormViewModel(array $container, array $languages, ?array $errors = null): FormEditViewModel
  • private function formId(): string

admin\Controllers\SettingsController REVIEWED

File: autoload/admin/Controllers/SettingsController.php Properties:

  • private SettingsRepository $settingsRepository
  • private LanguagesRepository $languagesRepository
  • private FormRequestHandler $formHandler

Methods:

  • public function __construct(SettingsRepository $settingsRepository, LanguagesRepository $languagesRepository)
  • public function clearCache(): void
  • public function clearCacheAjax(): void
  • public function globalSearchAjax(): void
  • public function save(): void
  • public function view(): string
  • private function buildFormViewModel(array $settings, array $languages, ?array $errors = null): FormEditViewModel
  • private function getFormId(): string
  • private function transformSettingsToFormData(array $settings, array $languages): array
  • private function transformFormDataToSettings(array $data): array

admin\Controllers\ShopAttributeController REVIEWED

File: autoload/admin/Controllers/ShopAttributeController.php Properties:

  • private AttributeRepository $repository
  • private LanguagesRepository $languagesRepository

Methods:

  • public function __construct(AttributeRepository $repository, LanguagesRepository $languagesRepository)
  • public function list(): string
  • 🔧 public function edit(): string — null guard: findAttribute() ?: []
  • public function save(): void
  • public function delete(): void
  • public function values(): string
  • public function values_save(): void
  • public function value_row_tpl(): void
  • private function validateValuesRows(array $rows, string $defaultLanguageId): array
  • private function buildFormViewModel(array $attribute, array $languages): FormEditViewModel

admin\Controllers\ShopCategoryController REVIEWED

File: autoload/admin/Controllers/ShopCategoryController.php Properties:

  • private CategoryRepository $repository
  • private LanguagesRepository $languagesRepository

Methods:

  • public function __construct(CategoryRepository $repository, LanguagesRepository $languagesRepository)
  • public function view_list(): string
  • public function list(): string
  • public function category_edit(): string
  • public function edit(): string
  • public function save(): void
  • public function category_delete(): void
  • public function delete(): void
  • public function category_products(): string
  • public function products(): string
  • public function category_url_browser(): void
  • public function save_categories_order(): void
  • public function save_products_order(): void
  • public function cookie_categories(): void

admin\Controllers\ShopClientsController REVIEWED

File: autoload/admin/Controllers/ShopClientsController.php Properties:

  • private ClientRepository $repository

Methods:

  • public function __construct(ClientRepository $repository)
  • public function list(): string
  • public function view_list(): string
  • public function details(): string
  • public function clients_details(): string

admin\Controllers\ShopCouponController REVIEWED

File: autoload/admin/Controllers/ShopCouponController.php Properties:

  • private CouponRepository $repository

Methods:

  • public function __construct(CouponRepository $repository)
  • public function list(): string
  • public function view_list(): string
  • 🔧 public function edit(): string — null guard: find() ?: []
  • public function coupon_edit(): string
  • public function save(): void
  • public function coupon_save(): void
  • public function delete(): void
  • public function coupon_delete(): void
  • private function buildFormViewModel(array $coupon, array $categories): FormEditViewModel

admin\Controllers\ShopOrderController REVIEWED

File: autoload/admin/Controllers/ShopOrderController.php Properties:

  • private OrderAdminService $service

Methods:

  • public function __construct(OrderAdminService $service)
  • public function list(): string
  • public function view_list(): string
  • public function details(): string
  • public function order_details(): string
  • public function edit(): string
  • public function order_edit(): string
  • public function save(): void
  • public function order_save(): void
  • public function notes_save(): void
  • public function order_status_change(): void
  • public function order_resend_confirmation_email(): void
  • public function set_order_as_unpaid(): void
  • public function set_order_as_paid(): void
  • public function send_order_to_apilo(): void
  • public function toggle_trustmate_send(): void
  • public function delete(): void
  • public function order_delete(): void
  • private function formatDateTime(string $value): string

admin\Controllers\ShopPaymentMethodController REVIEWED

File: autoload/admin/Controllers/ShopPaymentMethodController.php Properties:

  • private PaymentMethodRepository $repository

Methods:

  • public function __construct(PaymentMethodRepository $repository)
  • public function list(): string
  • public function edit(): string
  • public function save(): void
  • private function buildFormViewModel(array $paymentMethod, array $apiloPaymentTypes): FormEditViewModel
  • private function getApiloPaymentTypes(): array

admin\Controllers\ShopProducerController REVIEWED

File: autoload/admin/Controllers/ShopProducerController.php Properties:

  • private ProducerRepository $repository
  • private LanguagesRepository $languagesRepository
  • private FormRequestHandler $formHandler

Methods:

  • public function __construct(ProducerRepository $repository, LanguagesRepository $languagesRepository)
  • public function list(): string
  • public function view_list(): string
  • 🔧 public function edit(): string — null guard: find() ?: []
  • public function producer_edit(): string
  • 🔧 public function save(): void — null guard: find() ?: []
  • public function producer_save(): void
  • public function delete(): void
  • public function producer_delete(): void
  • private function buildFormViewModel(array $producer, array $languages, ?array $errors = null): FormEditViewModel
  • private function formId(): string
  • private function toSwitchValue($value): int

admin\Controllers\ShopProductController REVIEWED

File: autoload/admin/Controllers/ShopProductController.php Properties:

  • private ProductRepository $repository
  • private IntegrationsRepository $integrationsRepository
  • private LanguagesRepository $languagesRepository

Methods:

  • public function __construct(ProductRepository $repository, IntegrationsRepository $integrationsRepository, LanguagesRepository $languagesRepository)
  • public function view_list(): string
  • 🔧 public function product_edit(): string — null safety: findForAdmin() ?: []; redundancja: użyto $this->languagesRepository zamiast new LanguagesRepository
  • private function layoutsForProductEdit($db): array
  • private function buildProductFormViewModel(array $product, array $languages, array $categories, array $layouts, array $products, array $sets, array $producers, array $units, $dlang): FormEditViewModel
  • private function renderSkuField(array $product): string
  • private function renderCategoriesTree(array $categories, array $product, $dlang): string
  • private function renderGalleryBox(array $product): string
  • private function renderFilesBox(array $product): string
  • private function renderRelatedProducts(array $product, array $products, array $sets): string
  • private function renderCustomFieldsBox(array $product): string
  • private function escapeHtml(string $value): string
  • private function resolveSavePayload(): array
  • public function save(): void
  • public function duplicate_product(): void
  • public function product_archive(): void
  • public function product_unarchive(): void
  • public function product_delete(): void
  • public function change_product_status(): void
  • public function product_change_price_brutto(): void
  • public function product_change_price_brutto_promo(): void
  • public function product_change_custom_label(): void
  • public function product_custom_label_suggestions(): void
  • public function product_custom_label_save(): void
  • 🔧 public function ajax_product_url(): void — redundancja: użyto $this->repository zamiast new ProductRepository
  • 🔧 public function generate_sku_code(): void — redundancja: użyto $this->repository zamiast new ProductRepository
  • public function product_combination(): string
  • public function generate_combination(): void
  • public function delete_combination(): void
  • public function product_combination_stock_0_buy_save(): void
  • public function product_combination_sku_save(): void
  • public function product_combination_quantity_save(): void
  • public function product_combination_price_save(): void
  • public function delete_combination_ajax(): void
  • public function image_delete(): void
  • public function images_order_save(): void
  • public function image_alt_change(): void
  • public function product_file_delete(): void
  • public function product_file_name_change(): void
  • public function product_image_delete(): void
  • public function mass_edit(): string
  • public function mass_edit_save(): void
  • public function get_products_by_category(): void

admin\Controllers\ShopProductSetsController REVIEWED

File: autoload/admin/Controllers/ShopProductSetsController.php Properties:

  • private ProductSetRepository $repository

Methods:

  • public function __construct(ProductSetRepository $repository)
  • public function list(): string
  • public function view_list(): string
  • 🔧 public function edit(): string — null safety: find() ?: []
  • public function set_edit(): string
  • public function save(): void
  • public function delete(): void
  • public function set_delete(): void
  • private function buildFormViewModel(array $set, array $products = []): FormEditViewModel
  • private function toSwitchValue($value): int
  • private function renderProductsSelect(array $products, array $selectedProducts): string

admin\Controllers\ShopPromotionController REVIEWED

File: autoload/admin/Controllers/ShopPromotionController.php Properties:

  • private PromotionRepository $repository

Methods:

  • public function __construct(PromotionRepository $repository)
  • public function list(): string
  • 🔧 public function edit(): string — null safety: find() ?: []
  • public function save(): void
  • public function delete(): void
  • private function buildFormViewModel(array $promotion, array $categories): FormEditViewModel

admin\Controllers\ShopStatusesController REVIEWED

File: autoload/admin/Controllers/ShopStatusesController.php Properties:

  • private ShopStatusRepository $repository

Methods:

  • public function __construct(ShopStatusRepository $repository)
  • public function list(): string
  • public function edit(): string
  • public function save(): void
  • private function buildFormViewModel(array $status, array $apiloStatusList): FormEditViewModel
  • private function getApiloStatusList(): array

admin\Controllers\ShopTransportController REVIEWED

File: autoload/admin/Controllers/ShopTransportController.php Properties:

  • private TransportRepository $transportRepository
  • private PaymentMethodRepository $paymentMethodRepository

Methods:

  • public function __construct(TransportRepository $transportRepository, PaymentMethodRepository $paymentMethodRepository)
  • public function list(): string
  • public function edit(): string
  • public function save(): void
  • private function buildFormViewModel(array $transport, array $paymentMethods, array $apiloCarrierAccounts): FormEditViewModel
  • private function getApiloCarrierAccounts(): array

admin\Controllers\UpdateController REVIEWED

File: autoload/admin/Controllers/UpdateController.php Properties:

  • private UpdateRepository $repository

Methods:

  • public function __construct(UpdateRepository $repository)
  • public function main_view(): string
  • public function update(): void
  • public function updateAll(): void

admin\Controllers\UsersController REVIEWED

File: autoload/admin/Controllers/UsersController.php Properties:

  • private UserRepository $repository
  • private FormRequestHandler $formHandler

Methods:

  • public function __construct(UserRepository $repository)
  • public function user_delete(): void
  • public function user_save(): void
  • public function user_edit(): string
  • public function view_list(): string
  • public function list(): string
  • public function login_form(): string
  • public function twofa(): string
  • private function normalizeUser(?array $user): array
  • private function buildFormViewModel(array $user, ?array $errors = null): FormEditViewModel
  • private function getFormId(): string
  • private function isTwofaEmailValidForEnabled($twofaEnabled, string $twofaEmail): bool

admin\Support\TableListRequestFactory REVIEWED

File: autoload/admin/Support/class.TableListRequestFactory.php Properties: (brak)

Constants:

  • public const DEFAULT_PER_PAGE_OPTIONS = [5, 10, 15, 25, 50, 100]
  • public const DEFAULT_PER_PAGE = 15

Methods:

  • public static function fromRequest(array $filterDefinitions, array $sortableColumns, string $defaultSortColumn = 'date_add', ?array $perPageOptions = null, ?int $defaultPerPage = null): array

admin\Support\Forms\FormFieldRenderer REVIEWED

File: autoload/admin/Support/Forms/FormFieldRenderer.php Properties:

  • private FormEditViewModel $form

Methods:

  • public function __construct(FormEditViewModel $form)
  • public function renderField(FormField $field): string
  • public function renderText(FormField $field): string
  • public function renderNumber(FormField $field): string
  • public function renderEmail(FormField $field): string
  • public function renderPassword(FormField $field): string
  • public function renderDate(FormField $field): string
  • public function renderDatetime(FormField $field): string
  • public function renderSwitch(FormField $field): string
  • public function renderSelect(FormField $field): string
  • public function renderTextarea(FormField $field): string
  • public function renderEditor(FormField $field): string
  • public function renderImage(FormField $field): string
  • public function renderFile(FormField $field): string
  • public function renderHidden(FormField $field): string
  • public function renderColor(FormField $field): string
  • public function renderCustom(FormField $field): string
  • public function renderLangSection(FormField $section): string
  • private function renderLangField(FormField $field, $languageId, string $sectionName): string
  • private function generateFilemanagerUrl(string $fieldId): string
  • private function wrapWithError(string $html, ?string $error): string

admin\Support\Forms\FormRequestHandler REVIEWED

File: autoload/admin/Support/Forms/FormRequestHandler.php Properties:

  • private FormValidator $validator

Methods:

  • public function __construct()
  • public function handleSubmit(FormEditViewModel $formViewModel, array $postData): array
  • private function processData(array $postData, array $fields): array
  • private function processLangSection(array $postData, $section): array
  • public function restoreFromPersist(FormEditViewModel $formViewModel): ?array
  • public function isFormSubmit(string $formId): bool

admin\Validation\FormValidator REVIEWED

File: autoload/admin/Validation/FormValidator.php Properties:

  • private array $errors

Methods:

  • public function validate(array $data, array $fields, ?array $languages = null): array
  • private function validateField(array $data, FormField $field): void
  • private function validateLangSection(array $data, FormField $section, array $languages): void
  • private function isEmpty($value): bool
  • private function isValidDate(string $date): bool
  • private function isValidDateTime(string $datetime): bool
  • public function isValid(): bool
  • public function getErrors(): array
  • public function getFirstError(): ?string

admin\ViewModels\Common\PaginatedTableViewModel REVIEWED

File: autoload/admin/ViewModels/Common/class.PaginatedTableViewModel.php Properties:

  • public array $columns
  • public array $rows
  • public array $filters
  • public array $sort
  • public array $pagination
  • public array $query
  • public array $perPageOptions
  • public array $sortableColumns
  • public string $basePath
  • public string $emptyMessage
  • public ?string $createUrl
  • public ?string $createLabel
  • public ?string $customScriptView

Methods:

  • public function __construct(array $columns = [], array $rows = [], array $filters = [], array $sort = [], array $pagination = [], array $query = [], array $perPageOptions = [5, 10, 15, 25, 50, 100], array $sortableColumns = [], string $basePath = '', string $emptyMessage = 'Brak danych.', ?string $createUrl = null, ?string $createLabel = null, ?string $customScriptView = null)

admin\ViewModels\Forms\FormAction REVIEWED

File: autoload/admin/ViewModels/Forms/FormAction.php Properties:

  • public string $name
  • public string $label
  • public string $type
  • public string $url
  • public ?string $backUrl
  • public string $cssClass
  • public array $attributes

Methods:

  • public function __construct(string $name, string $label, string $url = '', ?string $backUrl = null, string $cssClass = 'btn btn-primary', string $type = 'submit', array $attributes = [])
  • public static function save(string $url, string $backUrl = '', string $label = 'Zapisz'): self
  • public static function cancel(string $backUrl, string $label = 'Anuluj'): self

admin\ViewModels\Forms\FormEditViewModel REVIEWED

File: autoload/admin/ViewModels/Forms/FormEditViewModel.php Properties:

  • public string $formId
  • public string $title
  • public string $method
  • public string $action
  • public ?string $backUrl
  • public array $tabs
  • public array $fields
  • public array $hiddenFields
  • public array $actions
  • public bool $persist
  • public array $data
  • public ?array $validationErrors
  • public ?array $languages

Methods:

  • public function __construct(string $formId, string $title, array $data = [], array $fields = [], array $tabs = [], array $actions = [], string $method = 'POST', string $action = '', ?string $backUrl = null, bool $persist = true, array $hiddenFields = [], ?array $languages = null, ?array $validationErrors = null)
  • public function hasTabs(): bool
  • public function hasLangSections(): bool
  • public function getFieldsForTab(string $tabId): array
  • public function getLangSectionsForTab(string $tabId): array
  • public function getFieldValue(FormField $field, $languageId = null, ?string $langFieldName = null)
  • public function hasError(string $fieldName, $languageId = null): bool
  • public function getError(string $fieldName, $languageId = null): ?string
  • public function clearPersist(): void
  • public function saveToPersist(array $data): void

admin\ViewModels\Forms\FormField REVIEWED

File: autoload/admin/ViewModels/Forms/FormField.php Properties:

  • public string $name
  • public string $type
  • public string $label
  • public $value
  • public string $tabId
  • public bool $required
  • public array $attributes
  • public array $options
  • public ?string $helpText
  • public ?string $placeholder
  • public ?string $id
  • public bool $useFilemanager
  • public ?string $filemanagerUrl
  • public string $editorToolbar
  • public int $editorHeight
  • public ?array $langFields
  • public ?string $langSectionParentTab
  • public ?string $customHtml

Methods:

  • public function __construct(string $name, string $type = FormFieldType::TEXT, string $label = '', $value = null, string $tabId = 'default', bool $required = false, array $attributes = [], array $options = [], ?string $helpText = null, ?string $placeholder = null, bool $useFilemanager = false, ?string $filemanagerUrl = null, string $editorToolbar = 'MyTool', int $editorHeight = 300, ?array $langFields = null, ?string $langSectionParentTab = null, ?string $customHtml = null)
  • public static function text(string $name, array $config = []): self
  • public static function number(string $name, array $config = []): self
  • public static function email(string $name, array $config = []): self
  • public static function password(string $name, array $config = []): self
  • public static function date(string $name, array $config = []): self
  • public static function datetime(string $name, array $config = []): self
  • public static function switch(string $name, array $config = []): self
  • public static function select(string $name, array $config = []): self
  • public static function textarea(string $name, array $config = []): self
  • public static function editor(string $name, array $config = []): self
  • public static function image(string $name, array $config = []): self
  • public static function file(string $name, array $config = []): self
  • public static function color(string $name, array $config = []): self
  • public static function hidden(string $name, $value = null): self
  • public static function custom(string $name, string $html, array $config = []): self
  • public static function langSection(string $name, string $parentTab, array $fields): self
  • public function getLocalizedName($languageId): string
  • public function getLocalizedId($languageId): string

admin\ViewModels\Forms\FormFieldType REVIEWED

File: autoload/admin/ViewModels/Forms/FormFieldType.php Properties: (brak)

Constants:

  • public const TEXT = 'text'
  • public const NUMBER = 'number'
  • public const EMAIL = 'email'
  • public const PASSWORD = 'password'
  • public const DATE = 'date'
  • public const DATETIME = 'datetime'
  • public const SWITCH = 'switch'
  • public const SELECT = 'select'
  • public const TEXTAREA = 'textarea'
  • public const EDITOR = 'editor'
  • public const IMAGE = 'image'
  • public const FILE = 'file'
  • public const HIDDEN = 'hidden'
  • public const LANG_SECTION = 'lang_section'
  • public const CUSTOM = 'custom'
  • public const COLOR = 'color'

Methods: (brak — klasa ze stałymi)


admin\ViewModels\Forms\FormTab REVIEWED

File: autoload/admin/ViewModels/Forms/FormTab.php Properties:

  • public string $id
  • public string $label
  • public string $icon
  • public ?string $parentTabId

Methods:

  • public function __construct(string $id, string $label, string $icon = '', ?string $parentTabId = null)

3. front/ — Warstwa frontendowa

front\App REVIEWED

File: autoload/front/App.php Properties: (brak)

Methods:

  • static public function pageTitle()
  • static public function title()
  • public static function route($product = '', $category = '')
  • public static function checkUrlParams()
  • public static function getControllerFactories()

front\LayoutEngine REVIEWED

File: autoload/front/LayoutEngine.php Properties (regex constants):

  • const menu_pattern = '/MENU:[0-9]*/'
  • const menu_main_pattern = '/MENU_GLOWNE:[0-9]*/'
  • const container_pattern = '/KONTENER:[0-9]*/'
  • const language_pattern = '/LANG:[a-zA-Z0-9_-]*/'
  • const products_promoted = '/PROMOWANE_PRODUKTY((:([0-9]*))?)/
  • const news_pattern = '/AKTUALNOSCI:([0-9]*)((:([0-9]*))?)/
  • const article_products_category_pattern = '/PRODUKTY_KATEGORIA:([0-9]*)((:([0-9]*))?)/
  • const news_list_pattern = '/AKTUALNOSCI_LISTA:([0-9]*)((:([0-9]*))?)/
  • const top_news_pattern = '/NAJPOULARNIEJSZE_ARTYKULY:([0-9]*)((:([0-9]*))?)/
  • const single_product_pattern = '/PRODUKT:[0-9]*/'
  • const products_box = '/PRODUKTY_BOX:[0-9,]*/'
  • const produkty_top = '/PRODUKTY_TOP((:([0-9]*))?)/
  • const produkty_new = '/PRODUKTY_NEW((:([0-9]*))?)/

Methods:

  • 🔧 public static function show() — fix: $levelnull (l.68, undefined variable); $_GET['permutation_hash']?? null (l.196)
  • public static function facebook($facebook_link)
  • static public function title($title, $show_title, $page_title)
  • public static function alert()
  • public static function copyright()
  • public static function contact()
  • public static function cookieInformation()

front\Controllers\NewsletterController REVIEWED

File: autoload/front/Controllers/NewsletterController.php Properties:

  • private NewsletterRepository $repository

Methods:

  • public function __construct(NewsletterRepository $repository)
  • public function signin()
  • public function confirm()
  • public function unsubscribe()

front\Controllers\SearchController REVIEWED

File: autoload/front/Controllers/SearchController.php Properties: (brak)

Methods:

  • public function searchResults()
  • public function searchProducts()

front\Controllers\ShopBasketController REVIEWED

File: autoload/front/Controllers/ShopBasketController.php Properties:

  • public static $title = ['mainView' => 'Koszyk']
  • private $orderRepository
  • private $paymentMethodRepository

Methods:

  • public function __construct(\Domain\Order\OrderRepository $orderRepository, \Domain\PaymentMethod\PaymentMethodRepository $paymentMethodRepository)
  • public function basketMessageSave()
  • public function basketRemoveProduct()
  • public function basketIncreaseQuantityProduct()
  • public function basketDecreaseQuantityProduct()
  • public function basketChangeQuantityProduct()
  • public function productMessageChange()
  • 🔧 public function basketAddProduct() — fix: dodano brakujące global $lang_id (l.119)
  • public function transportMethodInpostCheck()
  • public function inpostCheck()
  • public function orlenSave()
  • public function inpostSave()
  • public function basketPaymentMethodSet()
  • public function basketTransportMethodSet()
  • public function basketPaymentsMethods()
  • public function summaryView()
  • public function basketSave()
  • public function mainView()
  • private function jsonBasketResponse($basket, $coupon, $lang_id, $basket_transport_method_id)

front\Controllers\ShopClientController REVIEWED

File: autoload/front/Controllers/ShopClientController.php Properties:

  • private $clientRepo

Methods:

  • public function __construct(ClientRepository $clientRepo)
  • public function markAddressAsCurrent()
  • public function addressDelete()
  • public function addressEdit()
  • public function addressSave()
  • public function clientAddresses()
  • public function clientOrders()
  • public function newPassword()
  • public function sendEmailPasswordRecovery()
  • public function recoverPassword()
  • public function logout()
  • public function login()
  • public function confirm()
  • public function signup()
  • public function loginForm()
  • public function registerForm()
  • private function buildEmailBody(string $templateName, array $replacements = []): string

front\Controllers\ShopCouponController REVIEWED

File: autoload/front/Controllers/ShopCouponController.php Properties:

  • private CouponRepository $repository

Methods:

  • public function __construct(CouponRepository $repository)
  • public function useCoupon()
  • public function deleteCoupon()

front\Controllers\ShopOrderController REVIEWED

File: autoload/front/Controllers/ShopOrderController.php Properties:

  • private $repository
  • private $adminService

Methods:

  • public function __construct(OrderRepository $repository, OrderAdminService $adminService)
  • public function paymentConfirmation()
  • public function paymentStatusTpay()
  • public function paymentStatusPrzelewy24pl()
  • public function paymentStatusHotpay()
  • public function orderDetails()

front\Controllers\ShopProducerController REVIEWED

File: autoload/front/Controllers/ShopProducerController.php Properties:

  • private ProducerRepository $repository

Methods:

  • public function __construct(ProducerRepository $repository)
  • public function products()
  • public function list()

front\Controllers\ShopProductController REVIEWED

File: autoload/front/Controllers/ShopProductController.php Properties:

  • private $categoryRepository

Methods:

  • public function __construct(\Domain\Category\CategoryRepository $categoryRepository)
  • public function lazyLoadingProducts()
  • public function warehouseMessage()
  • public function drawProductAttributes()
  • private static function getPermutation($attributes)
  • private static function getPermutationQuantity($productId, $permutation)

front\Views\Articles REVIEWED

File: autoload/front/Views/Articles.php Properties: (brak)

Methods:

  • public static function fullArticle($article)
  • public static function miniatureArticlesList($articles, $ls, $bs, $page)
  • public static function entryArticlesList($articles, $ls, $bs, $page)
  • public static function fullArticlesList($articles, $ls, $bs, $page)
  • public static function news($page_id, $articles)
  • public static function newsList($articles)
  • public static function generateTableOfContents($content)
  • public static function processHeaders($matches)
  • public static function generateHeadersIds($text)
  • public static function getImage($article)

front\Views\Banners REVIEWED

File: autoload/front/Views/Banners.php Properties: (brak)

Methods:

  • public static function banners($banners)
  • public static function mainBanner($banner)

front\Views\Languages REVIEWED

File: autoload/front/Views/Languages.php Properties: (brak)

Methods:

  • public static function render($languages)

front\Views\Menu REVIEWED

File: autoload/front/Views/Menu.php Properties: (brak)

Methods:

  • public static function pages($pages, $level = 0, $current_page = 0)
  • public static function menu($menu, $current_page)

front\Views\Newsletter REVIEWED

File: autoload/front/Views/Newsletter.php Properties: (brak)

Methods:

  • public static function render()

front\Views\Scontainers REVIEWED

File: autoload/front/Views/Scontainers.php Properties: (brak)

Methods:

  • public static function scontainer($scontainer)

front\Views\ShopCategory REVIEWED

File: autoload/front/Views/ShopCategory.php Properties: (brak)

Methods:

  • public static function categoryDescription($category): string
  • public static function categoryView($category, string $langId, int $currentPage = 1): string
  • public static function categories($categories, $currentCategory = 0, $level = 0): string

front\Views\ShopClient REVIEWED

File: autoload/front/Views/ShopClient.php Properties: (brak)

Methods:

  • public static function addressEdit($values): string
  • public static function clientAddresses($values): string
  • public static function clientMenu($values): string
  • public static function clientOrders($values): string
  • public static function recoverPassword(): string
  • public static function miniLogin(): string
  • public static function loginForm($values = ''): string
  • public static function registerForm(): string

front\Views\ShopPaymentMethod REVIEWED

File: autoload/front/Views/ShopPaymentMethod.php Properties: (brak)

Methods:

  • public static function basketPaymentMethods($payment_methods, $payment_id)

front\Views\ShopProduct REVIEWED

File: autoload/front/Views/ShopProduct.php Properties: (brak)

Methods:

  • public static function productUrl($product)

front\Views\ShopSearch REVIEWED

File: autoload/front/Views/ShopSearch.php Properties: (brak)

Methods:

  • public static function simpleForm()

4. Shared/ — Klasy współdzielone

Shared\Cache\CacheHandler REVIEWED

File: autoload/Shared/Cache/CacheHandler.php Properties:

  • protected $redis

Methods:

  • public function __construct()
  • public function get($key)
  • public function set($key, $value, $ttl = 86400)
  • public function exists($key)
  • public function delete($key)
  • public function deletePattern($pattern)

Shared\Cache\RedisConnection REVIEWED

File: autoload/Shared/Cache/RedisConnection.php Properties:

  • private static $instance = null
  • private $redis

Methods:

  • private function __construct()
  • public static function getInstance()
  • public function getConnection()

Shared\Email\Email REVIEWED

File: autoload/Shared/Email/Email.php Properties:

  • public $table = 'pp_newsletter_templates'

Methods:

  • public function load_by_name(string $name)
  • public function email_check($email)
  • public function send(string $email, string $subject, bool $newsletter_headers = false, string $file = null)

Shared\Helpers\Helpers REVIEWED

File: autoload/Shared/Helpers/Helpers.php Properties: (brak — wszystkie metody statyczne)

Methods:

  • static function canAddRedirect($from, $to, $lang_id = null)
  • static public function clear_product_cache(int $product_id)
  • static public function remove_special_chars($string)
  • static public function removeDuplicates($array, $param)
  • 🔧 static public function generate_webp_image($file, $compression_quality = 85) — fix: $_GET['c_w']/$_GET['c_h']?? null (l.117-118); 'png''image/png' (l.177, bug: warunek nigdy nie był spełniony)
  • public static function is_array_fix($value)
  • public static function delete_cache()
  • public static function pretty_date($format, $timestamp = null)
  • public static function lang($text)
  • public static function array_cartesian_product($input)
  • static public function normalize_decimal($val, int $precision = 2)
  • public static function decimal($val, $precision = 2, $dec_point = ',', $thousands_sep = ' ')
  • public static function get_new_version()
  • public static function get_version()
  • public static function set_session($var, $val)
  • public static function get_session($var)
  • public static function delete_session($var)
  • public static function get($var, $clear = false)
  • public static function set_message($text)
  • public static function alert($text)
  • public static function error($text)
  • public static function htacces($dir = '../')
  • public static function seo($val, $delete_rhombs = false)
  • public static function noPL($string)
  • public static function delete_dir($dir)
  • public static function email_check($email)
  • public static function send_email($email, $subject, $text, $replay = '', $file = '')
  • public static function shortPrice($price)
  • public static function isWholeNumber($value)

Shared\Html\Html REVIEWED

File: autoload/Shared/Html/Html.php Properties: (brak — wszystkie metody statyczne)

Methods:

  • public static function form_text(array $params = array())
  • public static function input_switch(array $params = array())
  • public static function select(array $params = array())
  • public static function textarea(array $params = array())
  • public static function input_icon(array $params = array())
  • public static function input(array $params = array())
  • public static function button(array $params = array())
  • public static function panel(array $params = array())

Shared\Image\ImageManipulator REVIEWED

File: autoload/Shared/Image/ImageManipulator.php Properties:

  • protected int $width
  • protected int $height
  • protected $image
  • protected ?string $file = null

Methods:

  • public function __construct(?string $file = null)
  • public function setImageFile(string $file): self
  • public function setImageString(string $data): self
  • public function resample(int $width, int $height, bool $constrainProportions = true): self
  • public function enlargeCanvas(int $width, int $height, array $rgb = [], ?int $xpos = null, ?int $ypos = null): self
  • public function crop($x1, int $y1 = 0, int $x2 = 0, int $y2 = 0): self
  • protected function _replace($res): self
  • public function save(string $fileName, ?int $type = null): void
  • public function getResource()
  • public function getWidth(): int
  • public function getHeight(): int
  • public function __destruct()
  • private function isValidImageResource($image): bool

Shared\Tpl\Tpl REVIEWED

File: autoload/Shared/Tpl/Tpl.php Properties:

  • protected $vars = array()

Methods:

  • public static function view($file, $values = '')
  • public function secureHTML($val)
  • public function render($file)
  • private function renderFile($path)
  • public function __set($name, $value)
  • public function __get($name)

Podsumowanie

Warstwa Pliki Klasy Metody (przybliżone)
Domain/ 29 29 ~435
admin/ 39 39 ~340
front/ 21 21 ~85
Shared/ 7 7 ~63
Razem 96 96 ~923

Największe klasy (wg liczby metod)

  1. Domain\Product\ProductRepository — ~88 metod
  2. admin\Controllers\ShopProductController — ~42 metody
  3. Shared\Helpers\Helpers — 29 metod
  4. Domain\Attribute\AttributeRepository — 28 metod
  5. Domain\Category\CategoryRepository — 21 metod
  6. admin\Support\Forms\FormFieldRenderer — 21 metod
  7. admin\Controllers\NewsletterController — 21 metod
  8. Domain\Order\OrderRepository — 20 metod
  9. admin\Controllers\PagesController — 20 metod
  10. admin\ViewModels\Forms\FormField — 19 metod