Перейти до змісту
EN — Switch to English Спробувати безкоштовно

← До огляду для розробників

Пакет розширення

Структура каталогу, маніфест, переклади й збирання ZIP скриптом package_artifact.py.

Розширення — це PHP-пакет із маніфестом. Приклади офіційних розширень (Checkbox, Нова Пошта, Stripe) лежать у репозиторії laracart-extensions/official.

my-extension/
  manifest.json        # маніфест (див. «Поля маніфесту»)
  composer.json        # PSR-4, напр. "Acme\\Delivery\\": "src/"
  src/                 # PHP-класи, зокрема точки входу з entrypoints
  translations.json    # який каталог перекладу для якої мови
  lang/uk.json
  lang/en.json
  assets/              # за потреби
  • translations.json: {"manifest_contract_version": 1, "namespace": "extension.<код>", "catalogs": {"uk": "lang/uk.json", "en": "lang/en.json"}} — від 1 до 50 мов, лише дані, без коду.
  • Ключі перекладів мають вигляд extension.<код>.name, extension.<код>.settings.api_key тощо.
  • Таблиці розширення описуються файлами *.migration.json (create_table, add_columns, add_indexes); SQL і PHP-міграції не приймаються — платформа виконує їх сама у власному просторі імен розширення.
  • Файл extension.json у вихідному каталозі створювати не треба: його генерує пакувальник.

Збирання й перевірка архіву:

python scripts/package_artifact.py build ./my-extension dist ./private-key.pem my-key-id
python scripts/package_artifact.py verify dist/<code>-<version>.zip dist/<code>-<version>.manifest.json dist/<code>-<version>.checksum ./public-key.pem
  • Пакувальник збирає детермінований ZIP і кладе в нього extension.json — канонічний маніфест.
  • В архів не потрапляють manifest.json, .git, vendor, node_modules, dist, __pycache__, .DS_Store і символьні посилання.
  • Результат: <code>-<version>.zip, .checksum (SHA-256), .manifest.json — це і є JSON публікації, який ви додаєте в поданні.
  • Потрібен OpenSSL 3.x (змінна LARACART_OPENSSL_BIN, якщо він не в PATH).

Документація розробника