A feature made safe by making it disappear
2026年6月22日
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.