Skip to content

feat(support): promote Macroable + add Conditionable & Pipeline (task 3.2) - #36

Merged
agissept merged 1 commit into
dev-13from
migration/3.2-macroable-conditionable-pipeline
Sep 14, 2026
Merged

agissept merged 1 commit into
dev-13from
migration/3.2-macroable-conditionable-pipeline

Conversation

@agissept

Copy link
Copy Markdown
Member

Wave 3.2 roadmap framework-first (blocked-by: 3.1 Contracts, PR #35base PR ini di-stack di atas #35, retarget ke master setelah #35 merge).

Tujuan: sediakan idiom fondasi L13 yang dibutuhkan wave berikutnya. Drop-in verbatim dari referensi Laravel 13 (v13.30.1) — nol logika baru buatan sendiri.

Isi

  • Macroable (Support\Traits\Macroable) — signature L13: mixin(), flushMacros(), Closure di-bind ke instance/kelas di __call/__callStatic. MacroableTrait jadi alias backward-compatible (use Macroable) → 8 konsumen fork (Str, Arr, Cache\Repository, HtmlBuilder, FormBuilder, facade Response, …) tak putus.
  • Conditionable (when/unless) + HigherOrderWhenProxy — trait fondasi baru, tak ada di 4.2.
  • Pipeline (send/through/via/then/thenReturn/pipe/finally/withinTransaction/setContainer) + Hub + PipelineServiceProvider + Contracts\Pipeline\{Pipeline,Hub}.
  • Contracts\Support\DeferrableProvider (marker) — dibutuhkan provider.

Catatan

  • Pipeline inert sampai konsumen (Router/HTTP Kernel/Bus/Queue) direshape lepas dari model filter 4.2 — sesuai sekuens roadmap; sengaja dilanda lebih awal sebagai engine bersama. PipelineServiceProvider belum diregister di mana pun (tak ada perubahan perilaku runtime).
  • Konsumen internal tetap di MacroableTrait (alias), bukan dimigrasi ke Macroable. Itu memang fungsi shim: migrasi callsite bertahap; ratchet macroable_trait mencegah pemakaian baru.
  • Nol dependency baru — semua di dalam pohon Illuminate\*, autoload PSR-4 sudah cover.

Verifikasi

  • Test baru: tests/Support/SupportMacroableConditionablePipelineTest.php (5 test — Macroable + alias, when/unless, Pipeline + contract).
  • Full suite hijau (1640 test); convergence-ratchet lolos.

🤖 Generated with Claude Code

… 3.2)

Wave 3.2 dari roadmap framework-first (blocked-by 3.1 Contracts).
Drop-in verbatim dari referensi Laravel 13 (v13.30.1) — memutus
langkah berikutnya yang butuh idiom `->when()` / `::macro()` L13.

- Macroable (Support\Traits\Macroable): signature L13 (mixin/flushMacros,
  Closure bind ke instance/kelas). `MacroableTrait` jadi alias
  backward-compatible (`use Macroable`) → 8 konsumen fork tak putus.
- Conditionable (when/unless) + HigherOrderWhenProxy — trait fondasi baru,
  tak ada di 4.2.
- Pipeline (send/through/via/then/thenReturn/...) + Hub +
  PipelineServiceProvider + Contracts\Pipeline\{Pipeline,Hub}. Inert sampai
  konsumen (Router/Kernel/Bus/Queue) direshape di wave berikutnya.
- Contracts\Support\DeferrableProvider (marker) — dibutuhkan provider.

Test: tests/Support/SupportMacroableConditionablePipelineTest.php (5).
Full suite hijau; convergence-ratchet lolos.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@agissept
agissept force-pushed the migration/3.1-contracts branch from a95b048 to 2fceccb Compare September 11, 2026 08:46
@agissept
agissept force-pushed the migration/3.2-macroable-conditionable-pipeline branch from 34b4ec2 to 428cba6 Compare September 11, 2026 08:46
@agissept
agissept deleted the branch dev-13 September 14, 2026 07:19
@agissept agissept closed this Sep 14, 2026
@agissept agissept reopened this Sep 14, 2026
@agissept
agissept changed the base branch from migration/3.1-contracts to dev-13 September 14, 2026 07:27
@agissept
agissept merged commit 5276acb into dev-13 Sep 14, 2026
4 checks passed
@agissept
agissept deleted the migration/3.2-macroable-conditionable-pipeline branch September 14, 2026 10:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant