Skip to content

Handle missing compiled Blaze views#179

Merged
ganyicz merged 4 commits intomainfrom
filip/handle-missing-compiled-blaze-views
Apr 29, 2026
Merged

Handle missing compiled Blaze views#179
ganyicz merged 4 commits intomainfrom
filip/handle-missing-compiled-blaze-views

Conversation

@ganyicz
Copy link
Copy Markdown
Collaborator

@ganyicz ganyicz commented Apr 29, 2026

Handles potential race condition where compiled view file gets deleted between checking it via $view->getExpired() and file_get_contents() while checking its frontmatter.

+Refactor
+Tests for viewContainsExpiredFrontMatter

Fixes #175

@ganyicz ganyicz force-pushed the filip/handle-missing-compiled-blaze-views branch from 07fbce0 to edf60c5 Compare April 29, 2026 19:25
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 29, 2026

Benchmark Result: Default

Attempt Blade Blaze Improvement
#1 244.91ms 13.87ms 94.3%
#2 248.08ms 13.97ms 94.4%
#3 246.69ms 14.04ms 94.3%
#4 246.44ms 14.04ms 94.3%
#5 246.12ms 14.09ms 94.3%
#6 246.59ms 14.08ms 94.3%
#7 247.36ms 14.07ms 94.3%
#8 246.64ms 14.06ms 94.3%
#9 245.41ms 13.88ms 94.3%
#10 245.45ms 13.97ms 94.3%
Snapshot 246.90ms 14.01ms 94.3%
Result 246.52ms (~) 14.04ms (~) 94.3% (~)

Median of 10 attempts, 5000 iterations x 10 rounds, 33.18s total

To run a specific benchmark, comment /benchmark <name> where name is one of: attributes, aware, class, default, forwarding, merge, named-slots, no-attributes, slot

@ganyicz ganyicz marked this pull request as ready for review April 29, 2026 20:59
@ganyicz ganyicz merged commit 82361e3 into main Apr 29, 2026
8 checks passed
@ganyicz ganyicz deleted the filip/handle-missing-compiled-blaze-views branch April 29, 2026 21:09
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.

TOCTOU race in BlazeManager::isFoldedExpired() → ErrorException when compiled view is removed between isExpired() and file_get_contents()

1 participant