public function install($class)
    {
        if (!in_array(ToolDefinition::class, class_implements($class), true)) {
            throw new \InvalidArgumentException;
        }
        
        $this->runComposer(call_user_func([$class, 'getComposer']));
        $this->updatePhpQaConfig(
            call_user_func([$class, 'getCliName']),
            $class,
            call_user_func([$class, 'getReportName'])
        );
    }