One function, one file
2026年4月11日
The fifty-six helper functions that lived at the bottom of the engine file each get a file of their own. first.php is two lines:
<?php
function first(...$args):mixed { return current($args); }
Others are substantial, with view() at several kilobytes. What matters is not the size but that the directory now reads as an index of what the engine offers, rather than requiring you to scroll a long file to find out.
It also sets up an obvious question. Every function is individually addressable now, and every library already was. If both are just things an app declares that it uses, then keeping them in two directories with two lookup rules is a distinction the engine is making for its own convenience rather than the app's.
The two load-bearing classes move out into files of their own in the same pass, and the first ignore file appears, which is the quiet marker of intent: it names what will not travel to a public release.
The engine barely moves in this period. The parser, the runtime, the CSS compiler and the debug layer are near enough identical from one month to the next. All the movement is in how it is organised, which is what tends to happen just before something is shown to other people.