BSEDeveloperv1
BSE Shop geliştirme platformu

Temayı, eklentiyi ve API istemcisini gerçek sözleşmeyle geliştirin.

Bu portal BSE Shop çekirdeğinin yayımlanmış v1 yüzeyini anlatır. Örnekler PHP 8.3, MariaDB 10.3, manifest v1 ve API v1 ile eşleşir.

Çekirdek0.1.x
PHP8.3
VeritabanıMariaDB 10.3+
Template contract1
01

Kurulum ve yükseltme

Kaynak kurulumu ile müşteri ortamı hazırlığını birbirinden ayırın.

Yerel kaynak kurulumu

  1. PHP 8.3, Composer 2 ve gerekli PHP eklentilerini hazırlayın.
  2. Bağımlılıkları kilit dosyasından kurun.
  3. Web kökü olarak yalnız public/ dizinini kullanın.
  4. Çalışma ayarını kaynak ve web kökü dışında, sahibi tarafından okunabilen bir dosyada tutun.
composer install
export BSE_CONFIG_FILE=/private/runtime.json
php bin/commerce config:check
php bin/commerce system:check
php bin/commerce migrate:status

İlk kurulum sırası

DB ve Redis hesabı altyapı katmanında önceden hazırlanır. Uygulama kullanıcı ya da servis hesabı oluşturmaz.

php bin/commerce system:check
php bin/commerce migrate:run
export BSE_ONBOARDING_INPUT_FILE=/private/admin.json
php bin/commerce admin:bootstrap
Yönetici girdisi tek kullanımlıdır. Parolayı komut satırına, kaynak koduna veya web köküne koymayın.

Güvenli yükseltme akışı

1 · İmzayı doğrula2 · Uyumluluğu denetle3 · Staging alanına aç4 · Migration planını kontrol et5 · Atomik etkinleştir

Paket ZIP'i 16 MiB, açılmış içerik 64 MiB ve 2.048 girdi sınırındadır. İmza, checksum, çekirdek/PHP/MariaDB uyumu geçmeden paket kodu çalıştırılmaz. Yönetim panelindeki paket ve güncelleme akışını kullanın; CLI yaşam döngüsü yalnız güvenilir worker/operasyon bağlamı içindir.

02

Tema SDK v1

Starter temadan ayrı bir paket üretin; çekirdeği değiştirmeyin.

Beş komutta çalışan tema

php bin/commerce theme:create acme-store
php bin/commerce theme:validate extensions/themes/acme-store
php bin/commerce theme:hooks --format=md
php bin/commerce theme:templates --format=md
php bin/commerce theme:test extensions/themes/acme-store

theme:create, starter paketini kopyalar; slug, ad ve text domain alanlarını günceller. Çekirdek dosyalarını değiştirmez.

Paketleme

export BSE_THEME_SIGNING_KEY_FILE=/private/theme-key.json
php bin/commerce theme:package extensions/themes/acme-store

Anahtar dosyası web kökü dışındadır ve yalnız sahibi okuyabilir. Paket checksums.json ile signature.ed25519 üretir; anahtar değeri çıktıya yazılmaz.

Manifesttheme.json, şema v1 ve template contract 1.
Sunum sınırıTema SQL, container, uzak istek veya ticaret hesabı çalıştırmaz.
HookYalnız yayımlanmış sunum hookları; fiyat, stok ve yetki sonucu değiştirilemez.
İzin verilen v1 hookları
HookTürSözleşmeHata politikası
storefront.body.classes.v1filterGüvenli CSS class listesifail open + güvenli kayıt
storefront.product.summary.after.v1actionProductSummaryAfterV1fail open + güvenli kayıt
03

Eklenti SDK v1

Manifestten yetkiye, admin katkısından zamanlanmış işe kadar gerçek örnek yapı.

Örnek paket düzeni

bse-example-tools/
├── plugin.json
├── composer.json
├── src/Plugin.php
├── src/ServiceProvider.php
├── src/Admin/
├── src/Jobs/
└── translations/

Kaynak örnek navigation, settings, widget, detail tab, list column, filter, bulk action, admin route, job ve schedule sözleşmelerini birlikte gösterir.

İsim ve yetki kuralları

  • Slug: küçük harf, sayı ve tek tireli bölümler.
  • Yetki: <slug>.<kaynak>.<eylem>.
  • Admin route: /admin/extensions/<slug>/....
  • API route: /api/v1/extensions/<slug>/....
  • Job, schedule, route ve contribution adları benzersiz olmalıdır.
Kaynak örnek doğrudan production paketi değildir. Yayın hattı checksum, Ed25519 imza ve dış metadata üretmeden kurulamaz.
04

REST API v1

OpenAPI 3.0.3 sözleşmesi, canonical string tutarlar ve typed problem yanıtları.

İlk istek

curl -sS https://dev.bseshop.com.tr/api/v1/bootstrap \
  -H 'Accept-Language: tr-TR' \
  -H 'X-Store-Currency: TRY'

Public ID değerleri ULID, para minor tutarları ve dört basamaklı miktarlar JSON string olarak taşınır. Para alanını float'a çevirmeyin.

05

Uyumluluk ve kullanımdan kaldırma

Sürüm aralıklarını paketin manifestinde açıkça tanımlayın.

YüzeyGüncel sözleşmeUyumluluk kuralı
Çekirdek0.1.xManifestte requires_core; örnekler >=0.1 <1.0.
PHP8.3Sunucu ve kalite kapısı yalnız PHP 8.3 ile doğrulanır.
MariaDB10.3.39+InnoDB ve strict session modu; global sunucu ayarı değiştirilmez.
REST APIv1 / 1.0.0Yayımlanmış operation ve alanlar v1 içinde sessizce kaldırılamaz veya daraltılamaz.
Manifestv1Bilinmeyen alanlar ve yanlış şema kimliği reddedilir.
Tema templatecontract 1Breaking override değişimi yeni contract sürümü ister.

Deprecation politikası

API öğesinde yalnız deprecated: true yeterli değildir. Aynı öğe x-bse-deprecated-since, x-bse-remove-in ve x-bse-replacement metadata alanlarını taşır. Kaldırma paralel major sözleşmeye bırakılır. Hook sözleşmesindeki kırıcı değişiklik yeni .vN adı alır.

06

Güvenlik sınırları

Geliştirme kolaylığı çalışma zamanı güven zincirini gevşetmez.

Özel anahtar yokİmzalama anahtarları mağaza sunucusuna, ZIP'e veya web köküne konmaz.
Runtime bağımsızUygulama şemaları yerel kaynaktan okur; bu doküman sitesi çalışma bağımlılığı değildir.
Fail closedŞema, imza, checksum veya uyumluluk hatasında paket kodu yüklenmez.
07

Makine tarafından okunan sözleşmeler

Bu dosyalar belgede anlatılan sürümlerle byte düzeyinde eşleştirilir.