Skip to content

Pre-release 4.2.101 → 4.2.100 — task 4.3 view swap (illuminate/view:^13) - #72

Open
agissept wants to merge 8 commits into
masterfrom
pre-release/4.2.101
Open

agissept wants to merge 8 commits into
masterfrom
pre-release/4.2.101

Conversation

@agissept

Copy link
Copy Markdown
Member

Stacks on #70 (4.2.100). Swaps illuminate/view + illuminate/pagination to ^13 (task 4.3 view engine).

Changes

  • Remove illuminate/view from replace; require illuminate/view:^13 (pulls pagination v13.32.0). v13 view shadows the fork View tree via PSR-4 (tree left on disk → evaporates task 4.4).
  • Delete tests/View + tests/Pagination (vendored-component tests; same policy as tests/Container at 4.1). Fix SupportUtilTest paginator ctor to v13 (items, perPage) — Util is fork-only.
  • Foundation shims (all ponytail:, removed at task 4.5 foundation swap), needed by v13 view/component code paths:
    • Application::terminating() callback store+run in terminate() (v13 ServiceProviders register them; view flushes the Blade Component cache).
    • Application::getNamespace() → 'App\' (v13 ComponentTagCompiler calls it to locate class components; app uses only anonymous components).
    • static::setInstance($this) in registerBaseBindings — v13 code resolves the container statically via Container::getInstance() (e.g. BladeCompiler::anonymousComponentPath); the fork only bound $this under the class key → getInstance() returned a bare Container with no bindings/aliases.
    • Contract aliases: 'view'→Contracts\View\Factory, 'app'→Contracts\Foundation\Application + Contracts\Container\Container + Psr\Container\ContainerInterface (v13 component rendering autowires these).

Validation

Fork suite 602 green. App matched-pair (dicoding-dev/dicoding#5842-stack, branch feature/platform/framework-4.2.101-rc1): unit 8367 green, components render (slots/attrs/vite verified).

🤖 Generated with Claude Code

@agissept
agissept added this pull request to stack #71 September 22, 2026 07:55
Base automatically changed from pre-release/4.2.100 to master September 24, 2026 07:55
agissept and others added 7 commits September 24, 2026 14:59
…test mode

v13 Request::convertUploadedFiles() re-wraps each upload via
UploadedFile::createFromBase() with test=false, so files posted through the
BrowserKit test client fail isValid()/mimes validation. Return
Illuminate\Http\UploadedFile instances so createFromBase's instanceof check
preserves the test flag.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Remove illuminate/view from replace + require illuminate/view:^13 (pulls
pagination v13.32.0 too). v13 view shadows the fork View tree via PSR-4
(Illuminate\View\ > Illuminate\); tree left on disk (evaporates at 4.4).

Deleted tests/View + tests/Pagination (vendored-component tests, same policy as
tests/Container at 4.1). Fixed SupportUtilTest paginator ctor to v13 signature
(items,perPage) — Util is fork-only, test is legit. Suite 602 green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…iceProvider (task 4.3)

v13 ServiceProviders (view flushes Blade Component cache) register terminating
callbacks; fork Foundation predates the API. Store + run them in terminate().
ponytail shim, remove at task 4.5 foundation swap.
… 4.3)

v13 view internals (anonymous component rendering) resolve the Factory contract
from the container; alias it to the core 'view' binding like the other SCC-1
contract aliases.
…k 4.3)

v13 code resolves the container statically via Container::getInstance() (e.g.
BladeCompiler::anonymousComponentPath); the fork bound $this only under the
class key, never static setInstance(), so getInstance() returned a bare
Container with no bindings/aliases. Call static::setInstance($this) in
registerBaseBindings. Fork suite 602 green.
…13 (task 4.3)

v13 component rendering autowires Contracts\Foundation\Application and the
container contracts; mirror v13's 'app' alias cluster.
… (task 4.3)

v13 ComponentTagCompiler calls Application::getNamespace() to locate class
components; the app uses only anonymous components so return a benign 'App\'
default. ponytail shim, remove at task 4.5.
…(task 4.3)

allFiles() yields Symfony Finder SplFileInfo; v13 Factory::getEngineFromPath()
uses the arg as an array offset in isset() → fatal "Cannot access offset of
type SplFileInfo". Coerce to getRealPath() before resolve+compile (works on
L4.2 and v13).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@agissept agissept self-assigned this Sep 25, 2026
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