Skip to content

0.6.1

Latest

Choose a tag to compare

@koriym koriym released this 15 Sep 20:16

Fixed

  • InjectableModule's directory scanner mis-parsed several valid use shapes and silently dropped the Injectable binding for the affected class: group-use imports (use A\{B, C}; lost the prefix on the second and later members), mixed function/class group-use (use A\{function f, B}; stopped at the function item), a use function/use const modifier not applying to every comma-separated item, and implements namespace\Marker (namespace-relative name resolution).
  • FileCache: switched the cache-file hash from crc32b (32-bit) to sha256 to avoid key collisions, and a corrupted/truncated cache file is now rebuilt instead of raising a fatal error.
  • GrapherCache: a corrupted or malformed cache payload (including one whose __wakeup() throws) no longer emits a warning or propagates the exception; it now falls back to rebuilding the object graph.
  • Dii::registerSilentAutoLoader() and SilentAutoload::autoload(): error_reporting() is now restored via finally, so a throwing autoloader no longer leaves warnings permanently suppressed process-wide.
  • Dii::createComponent(): a class that does not exist now throws a clear Koriym\Dii\Exception\Unloadable instead of an E_WARNING followed by a TypeError from in_array().