factory( function (): Stopwatch { return new Stopwatch( true ); } ); $pimple['collectors'] = function ( Plugin $laps ): array { return [ 'core' => new Core_Load_Collector(), 'hook' => new Hook_Collector( $laps['stopwatch'], $laps['hook.events'] ), 'http' => new Http_Collector( $laps['stopwatch'] ), 'sql' => new Sql_Collector(), ]; }; $pimple['records.lazy'] = function ( Plugin $laps ): Lazy_Proxy_Collector { return new Lazy_Proxy_Collector( $laps['collectors'] ); }; $pimple['records'] = function ( Plugin $laps ): array { return $laps['records.lazy']->get_records(); }; } /** * @param Plugin $laps Container instance. */ public function boot( Plugin $laps ): void { $laps['collectors']; } }