protected function composerFrameworkInstall ($package) {
		$extra = $package->getExtra();

		// recursively copy the contents of the install directory, providing each file is not there.
		$strInstallDir = self::NormalizeNonPosixPath($this->getPackageBasePath($package)) . '/install/project';
		$strDestDir = ($this->vendorDir ? $this->vendorDir . '/' : '') . '../project'; // try to find the default project location
		$strDestDir = self::NormalizeNonPosixPath($strDestDir);

		$this->io->write('Copying files from ' . $strInstallDir . ' to ' . $strDestDir);
		self::copy_dir($strInstallDir, $strDestDir);

		// Make sure particular directories are writable by the web server. These are listed in the extra section of the composer.json file.
		// We are assuming that the first time installation is installed in a subdirectory of docroot.
		$strInstallDir = self::NormalizeNonPosixPath(realpath(dirname($strDestDir)));
		$strSubDirectory = '/' . basename($strInstallDir);
		$strDocRoot = self::NormalizeNonPosixPath(realpath($strInstallDir . '/../'));
		$strConfigDirectory = $strDestDir . '/includes/configuration';

		$this->io->write('Updating permissions');
		foreach ($extra['writePermission'] as $strDir) {
			$strTargetDir = $strInstallDir . '/' . $strDir;
			if(!file_exists($strTargetDir)){
				mkdir($strTargetDir, 0777, true);
			}
			chmod ($strTargetDir, 0777);
		}

		// write configuration.inc.php only if it does not exists
		if (!file_exists($strConfigDirectory . '/configuration.inc.php')) {
			// fix up the configuration file
			$strFile = file_get_contents($strConfigDirectory . '/configuration.inc.sample.php');
			if ($strFile) {
				$strFile = str_replace (['{docroot}', '{vd}', '{subdir}'], [$strDocRoot, '', $strSubDirectory], $strFile);
				file_put_contents($strConfigDirectory . '/configuration.inc.php', $strFile);
			}
		}
	}
protected function composerFrameworkInstall ($package) {
		$extra = $package->getExtra();

		// recursively copy the contents of the install directory, providing each file is not there.
		$strInstallDir = self::NormalizeNonPosixPath($this->getPackageBasePath($package)) . '/install/project';
		$strDestDir = ($this->vendorDir ? $this->vendorDir . '/' : '') . '../project'; // try to find the default project location
		$strDestDir = self::NormalizeNonPosixPath($strDestDir);

		$this->io->write('Copying files from ' . $strInstallDir . ' to ' . $strDestDir);
		self::copy_dir($strInstallDir, $strDestDir);

		// Make sure particular directories are writable by the web server. These are listed in the extra section of the composer.json file.
		// We are assuming that the first time installation is installed in a subdirectory of docroot.
		$strInstallDir = self::NormalizeNonPosixPath(realpath(dirname($strDestDir)));
		$strSubDirectory = '/' . basename($strInstallDir);
		$strDocRoot = self::NormalizeNonPosixPath(realpath($strInstallDir . '/../'));
		$strConfigDirectory = $strDestDir . '/includes/configuration';

		$this->io->write('Updating permissions');
		foreach ($extra['writePermission'] as $strDir) {
			$strTargetDir = $strInstallDir . '/' . $strDir;
			if(!file_exists($strTargetDir)){
				mkdir($strTargetDir, 0777, true);
			}
			chmod ($strTargetDir, 0777);
		}

		// write configuration.inc.php only if it does not exists
		if (!file_exists($strConfigDirectory . '/configuration.inc.php')) {
			// fix up the configuration file
			$strFile = file_get_contents($strConfigDirectory . '/configuration.inc.sample.php');
			if ($strFile) {
				$strFile = str_replace (['{docroot}', '{vd}', '{subdir}'], [$strDocRoot, '', $strSubDirectory], $strFile);
				file_put_contents($strConfigDirectory . '/configuration.inc.php', $strFile);
			}
		}
	}
protected function composerFrameworkInstall ( $ package ) { $ extra = $ package -> getExtra ( ) ; // recursively copy the contents of the install directory, providing each file is not there. $ strInstallDir = self :: NormalizeNonPosixPath ( $ this -> getPackageBasePath ( $ package ) ) . '/install/project' ; $ strDestDir = ( $ this -> vendorDir ? $ this -> vendorDir . '/' : '' ) . '../project' ; // try to find the default project location $ strDestDir = self :: NormalizeNonPosixPath ( $ strDestDir ) ; $ this -> io -> write ( 'Copying files from ' . $ strInstallDir . ' to ' . $ strDestDir ) ; self :: copy_dir ( $ strInstallDir , $ strDestDir ) ; // Make sure particular directories are writable by the web server. These are listed in the extra section of the composer.json file. // We are assuming that the first time installation is installed in a subdirectory of docroot. $ strInstallDir = self :: NormalizeNonPosixPath ( realpath ( dirname ( $ strDestDir ) ) ) ; $ strSubDirectory = '/' . basename ( $ strInstallDir ) ; $ strDocRoot = self :: NormalizeNonPosixPath ( realpath ( $ strInstallDir . '/../' ) ) ; $ strConfigDirectory = $ strDestDir . '/includes/configuration' ; $ this -> io -> write ( 'Updating permissions' ) ; foreach ( $ extra [ 'writePermission' ] as $ strDir ) { $ strTargetDir = $ strInstallDir . '/' . $ strDir ; if ( ! file_exists ( $ strTargetDir ) ) { mkdir ( $ strTargetDir , 0777 , true ) ; } chmod ( $ strTargetDir , 0777 ) ; } // write configuration.inc.php only if it does not exists if ( ! file_exists ( $ strConfigDirectory . '/configuration.inc.php' ) ) { // fix up the configuration file $ strFile = file_get_contents ( $ strConfigDirectory . '/configuration.inc.sample.php' ) ; if ( $ strFile ) { $ strFile = str_replace ( [ '{docroot}' , '{vd}' , '{subdir}' ] , [ $ strDocRoot , '' , $ strSubDirectory ] , $ strFile ) ; file_put_contents ( $ strConfigDirectory . '/configuration.inc.php' , $ strFile ) ; } } }
First time installation of framework. For first-time installation, we create the project directory and modify
the configuration file.

@param $strPackageName
First time installation of framework . For first - time installation we create the project directory and modify the configuration file .