private function setup()
    {
        if ($this->started) {
            return;
        }

        if ($this->app['extend.writeable']) {
            // Do required JSON update/set up
            try {
                $this->updateJson();
            } catch (ParseException $e) {
                $this->app['logger.flash']->danger(Trans::__('Error reading extensions/composer.json file: %ERROR%', ['%ERROR%' => $e->getMessage()]));
                $this->started = false;

                return;
            }
        }

        $this->started = true;
    }
private function setup()
    {
        if ($this->started) {
            return;
        }

        if ($this->app['extend.writeable']) {
            // Do required JSON update/set up
            try {
                $this->updateJson();
            } catch (ParseException $e) {
                $this->app['logger.flash']->danger(Trans::__('Error reading extensions/composer.json file: %ERROR%', ['%ERROR%' => $e->getMessage()]));
                $this->started = false;

                return;
            }
        }

        $this->started = true;
    }
private function setup ( ) { if ( $ this -> started ) { return ; } if ( $ this -> app [ 'extend.writeable' ] ) { // Do required JSON update/set up try { $ this -> updateJson ( ) ; } catch ( ParseException $ e ) { $ this -> app [ 'logger.flash' ] -> danger ( Trans :: __ ( 'Error reading extensions/composer.json file: %ERROR%' , [ '%ERROR%' => $ e -> getMessage ( ) ] ) ) ; $ this -> started = false ; return ; } } $ this -> started = true ; }
Set up function.

- Copy/update the installer event class
- Update the composer.json
- Test connection to the server
Set up function .