public function activate(Composer $composer, IOInterface $io) { $this->io = $io; $this->composer = $composer; $this->filesystem = new Filesystem(); $this->config = new ProjectConfig($composer->getPackage()->getExtra()); $installer = new Installer($io, $composer); $this->initDeployManager($composer, $io); $installer->setDeployManager($this->deployManager); $installer->setConfig($this->config); if ($this->io->isDebug()) { $this->io->write('activate magento plugin'); } $composer->getInstallationManager()->addInstaller($installer); }
/** * Force regeneration of var/di, var/cache, var/generation on next object manager invocation * * @return void */ private function requestRegeneration() { if (is_writable($this->installer->getTargetDir() . $this->varFolder)) { $filename = $this->installer->getTargetDir() . $this->varFolder . $this->regenerate; touch($filename); } }
/** * Generate file with path to Composer 'vendor' dir to be used by the application * * @param \Composer\Composer $composer * @throws \UnexpectedValueException */ private function saveVendorDirPath(Composer $composer) { $magentoDir = $this->installer->getTargetDir(); $vendorDirPath = $this->filesystem->findShortestPath($magentoDir, realpath($composer->getConfig()->get('vendor-dir')), true); $vendorPathFile = $magentoDir . '/app/etc/vendor_path.php'; $content = <<<AUTOLOAD <?php /** * Path to Composer vendor directory */ return '{$vendorDirPath}'; AUTOLOAD; file_put_contents($vendorPathFile, $content); }
/** * Update Magento core * * @param InstalledRepositoryInterface $repo repository in which to check * @param PackageInterface $initial already installed package version * @param PackageInterface $package package instance */ public function update(InstalledRepositoryInterface $repo, PackageInterface $initial, PackageInterface $package) { parent::update($repo, $initial, $package); $this->prepareMagento($package); }