← Alle berichten

A feature made safe by making it disappear

phlo_eval() evaluates a Phlo statement at runtime. Useful during development, and the interesting part is everything that was done to keep it out of production.

A guard inside the function would have been the easy answer, and it leaves the function present in a release, answering differently rather than not existing. Absence is the stronger guarantee, so phlo_eval() lives in the engine's build layer, which only loads when build: true. In a release it is not disabled, it is not there, and calling it is indistinguishable from a typo.

Reachability is the other half. A development machine is still a machine on a network, so the function also requires the request to be CLI, with an end-to-end test asserting that it declines over HTTP. Two independent conditions, each sufficient on its own.

What is left is exactly the tool you want at a terminal:

php www/app.php phlo_eval "user::recordCount()"

Four commits in one day, each closing one more way for it to end up somewhere it should not be. The feature is unchanged; only its reachability shrank.

Engine 1.0. See the Tooling chapter.

We gebruiken essentiële cookies om deze site te laten werken. Met uw toestemming gebruiken we ook analytics om de site te verbeteren.