Skip to content

Latest commit

 

History

762 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BeMart

BeMart — EC-CUBE 4.3 Application Overhaul

EC-CUBE 4.3 を Be Framework + BEAR.Sunday へ移植したデモプロジェクトです。 Entity・Controller・Twig に散らばっていた業務ルールを ALPS プロファイル(SSOT)に集約し、 そこからドメイン・リソース・SQL・HTML・テストを生成しています。外から見える振る舞いは EC-CUBE 互換。 Be ドメイン層(be/src/)は契約からの独立実装、HTML テンプレートと DB スキーマは EC-CUBE からの移植です。

EC-CUBE source → ALPS contract → Be / Resource / SQL / HTML / Test

ライブデモ

https://131.186.41.241.sslip.io/ — Oracle Cloud Always Free 上で常時稼働中です。

ストアフロントは https://131.186.41.241.sslip.io/、管理画面は https://131.186.41.241.sslip.io/admin/login。 デモ用のログイン資格情報は公開していません。ログインを伴う動作確認は下の Docker 手順でローカルに立ち上げてください。 誰でも書き込めるデモなので、定期的に seed 状態へリセットしています。 運用手順は docs/demo-operation.md。

起動(Docker)

docker compose up --build      # 初回はビルド + シード。完了後 http://localhost:8080

MySQL 8.0 とアプリが立ち上がり、約 3,000 商品のカタログとデモ会員・管理者が自動投入されます。 Docker 以外に必要なものはありません。停止は docker compose down(データ保持)/ down -v(初期化)。

会員は login-test@example.com、パスワードは BEMART_DEMO_MEMBER_PASSWORD(未設定ならローカル開発用の既定値)。 管理者は test-admin で、BEMART_DEMO_ADMIN_PASSWORD 未設定ならシードのたびにランダム生成され docker compose logs app に 1 度だけ表示されます。管理画面は 2 要素認証必須で、初回ログイン後の 設定画面に表示される鍵を認証アプリに登録してください(固定コードはありません)。

デモ専用構成です(DB はパスワードなし root、アプリは php -S)。本番では使わないでください。

ホストで直接動かす手順(malt / DATABASE_URL / composer serve など)は docs/ と sql/README.md を参照してください。 コードを更新したら composer clean で DI キャッシュを消してから起動してください。

検証

vendor/bin/phpunit   # テスト(非 SQL スイートは DB 不要)
vendor/bin/psalm     # 静的解析 + taint tracking
composer fake -- get '/products'   # DB 不要の Fake context で動作確認

ALPS の検証と再生成:

asd --validate alps.json
asd -f html -o alps.json.html alps.json

Evidence Snapshot

最新の規模はリポジトリから自動算出(composer stats)。すべては 1 つの ALPS 契約 に集約され、そこから各層へ展開される。

レイヤー 数 役割
契約 — ALPS profile 1 全実装の基準となる唯一の契約(536 descriptor・208 transition)
ドメイン入力 — Be Input 154 操作の起点(doXxx の意図)
ドメイン出力 — Be Final 155 確定状態(=完了の証明)
意味語彙 — Be Semantic 163 制約付き値オブジェクト
ドメイン作用 — Be Reason 179 注入される問い合わせ/コマンド
中間状態 — Be Being 14 becoming の途中相
HTTP リソース — BEAR 149 page:// / app:// の JSON 表現
永続化 — SQL 161 .sql ファイル(166 #[DbQuery])
入出力契約 — JSON Schema 236 request / response 検証
HTML — Twig 143 テンプレート
検証 — PHPUnit 2516 test methods(全スイート緑)
結合試験 — EC-CUBE 248 17 領域 → implementation-status

ドキュメント

ディレクトリ

alps.json        # SSOT: ALPS profile
be/src/          # Be Framework domain
src/Resource/    # BEAR.Sunday Resource
var/sql/         # Ray.MediaQuery SQL files
sql/             # EC-CUBE schema / seed
var/templates/   # Twig HTML ports
public/          # HTTP entrypoints
tests/           # Resource / SQL / HTML / HTTP / workflow tests
docs/            # ドキュメント

生成物(alps.json.html、openapi.yaml など)は手で編集しません。

ライセンス

リポジトリは GPL-2.0-only。EC-CUBE 4.3 と同じ条項です。 ただし Be ドメイン層 be/(パッケージ my-vendor/be-mart-be)だけは MIT です。

場所 由来 条項
be/ ALPS 契約からの独立実装。EC-CUBE 由来の表現を含まない MIT
src/Resource/ src/Module/ src/Form/ 契約を移植済み HTML に束ねる BEAR レイヤー。EC-CUBE の文言に接する GPL-2.0-only
var/templates/ EC-CUBE のマークアップを逐語移植した Twig(移植手順) GPL-2.0-only
sql/ EC-CUBE のスキーマと初期データ GPL-2.0-only
public/template/admin/assets/ EC-CUBE 管理テーマのアセット。28 ファイル中 14 は上流とバイト一致 GPL-2.0-only
docs/eccube-spec-coverage/ EC-CUBE 画面のキャプチャ(同梱の CSS/JS を含む) GPL-2.0-only

be/ の MIT は測定に基づく主張です。EC-CUBE の messages.ja.yaml から逐語コピーした文言は tests/Resource/Admin/*JaMessages.php に集約されており、be/ の日本語リテラルとの一致は 短い語彙だけで、文はひとつもありません。この境界は tests/License/BeLicenseBoundaryTest.php が検査します。 MIT のコードを GPL の作品から利用するのは互換(インバウンド)で、be/ は単体で取り出せます。

公式 EC-CUBE ロゴは含みません。public/template/admin/assets/img/logo{,2,@2x}.png と pdf/logo.png は上流とバイト・寸法とも異なる差し替えで、本プロジェクトの IDEA STORE ブランド(public/assets/idea-store/logo/)に置き換えてあります。EC-CUBE の公式ブランドアセットは GPL とは別に CC BY-NC-ND 2.1 JP で提供されますが、 同梱していないためその条件は適用されません。

About

A semantic migration project

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages