/** * @param string $name application name * @param string $version application version * @SuppressWarnings(PHPMD.ExitExpression) */ public function __construct($name = 'UNKNOWN', $version = 'UNKNOWN') { $this->serviceManager = \Zend\Mvc\Application::init(require BP . '/setup/config/application.config.php')->getServiceManager(); $generationDirectoryAccess = new GenerationDirectoryAccess($this->serviceManager); if (!$generationDirectoryAccess->check()) { $output = new ConsoleOutput(); $output->writeln('<error>Command line user does not have read and write permissions on var/generation directory. Please' . ' address this issue before using Magento command line.</error>'); exit(0); } /** * Temporary workaround until the compiler is able to clear the generation directory * @todo remove after MAGETWO-44493 resolved */ if (class_exists(CompilerPreparation::class)) { $compilerPreparation = new CompilerPreparation($this->serviceManager, new ArgvInput(), new File()); $compilerPreparation->handleCompilerEnvironment(); } if ($version == 'UNKNOWN') { $directoryList = new DirectoryList(BP); $composerJsonFinder = new ComposerJsonFinder($directoryList); $productMetadata = new ProductMetadata($composerJsonFinder); $version = $productMetadata->getVersion(); } parent::__construct($name, $version); }
public function testGenerationDirectoryFromCliOption() { $customGenerationDirectory = '/custom/generated/code/directory'; $customDiDirectory = '/custom/di/directory'; $this->inputMock->expects($this->once())->method('getFirstArgument')->willReturn(DiCompileCommand::NAME); $dirResultMap = [[$this->logicalNot($this->equalTo($customGenerationDirectory)), $this->logicalNot($this->equalTo($customDiDirectory))], [true, true]]; $this->filesystemDriverMock->expects($this->exactly(2))->method('isExists')->willReturn(true); $this->filesystemDriverMock->expects($this->exactly(2))->method('deleteDirectory')->will($this->returnValueMap($dirResultMap)); $this->model->handleCompilerEnvironment(); }
/** * @dataProvider compilerCommandDataProvider */ public function testGenerationDirectoryFromCliOption($commandName) { $customGenerationDirectory = '/custom/generated/code/directory'; $useCliOption = $commandName === DiCompileMultiTenantCommand::NAME; $this->inputMock->expects($this->once())->method('getFirstArgument')->willReturn($commandName); $this->inputMock->expects($this->exactly((int) $useCliOption))->method('getParameterOption')->with(DiCompileMultiTenantCommand::INPUT_KEY_GENERATION)->willReturn($customGenerationDirectory); // Filesystem mock $directoryArgConstraint = $useCliOption ? $this->equalTo($customGenerationDirectory) : $this->logicalNot($this->equalTo($customGenerationDirectory)); $this->filesystemDriverMock->expects($this->once())->method('isExists')->willReturn(true); $this->filesystemDriverMock->expects($this->once())->method('deleteDirectory')->with($directoryArgConstraint); $this->model->handleCompilerEnvironment(); }