← All messages

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 use essential cookies to make this site work. With your permission we also use analytics to improve the site.