191 || ! preg_match( '/^[a-z0-9._-]+$/i', $slug ) ) { throw new \InvalidArgumentException( 'invalid_param:slug' ); } return array( 'slug' => $slug, 'include_facts' => ! array_key_exists( 'include_facts', $params ) || (bool) $params['include_facts'] ); } public function execute( array $params, float $deadline ): array { foreach ( ( new Discoverer( $this->settings ) )->plugins() as $p ) { if ( $p['slug'] !== $params['slug'] ) { continue; } $facts = null; $dir = PluginFiles::directory( (string) $p['file'] ); if ( $params['include_facts'] && $this->settings->code_analysis_mode() === 'structural' && $dir !== null ) { $facts = ( new StructuralAnalyzer() )->analyse( $dir ); } return array( 'plugin' => $p, 'facts' => $facts ); } return array( 'plugin' => null, 'facts' => null, 'error' => 'plugin_not_found' ); } }