Вход Регистрация
Файл: vendor/composer/installers/src/Composer/Installers/OxidInstaller.php
Строк: 55
<?php
namespace ComposerInstallers;

use 
ComposerPackagePackageInterface;

class 
OxidInstaller extends BaseInstaller
{
    const 
VENDOR_PATTERN '/^modules/(?P<vendor>.+)/.+/';

    protected 
$locations = array(
        
'module'    => 'modules/{$name}/',
        
'theme'  => 'application/views/{$name}/',
        
'out'    => 'out/{$name}/',
    );

    
/**
     * getInstallPath
     *
     * @param PackageInterface $package
     * @param string $frameworkType
     * @return void
     */
    
public function getInstallPath(PackageInterface $package$frameworkType '')
    {
        
$installPath parent::getInstallPath($package$frameworkType);
        
$type $this->package->getType();
        if (
$type === 'oxid-module') {
            
$this->prepareVendorDirectory($installPath);
        }
        return 
$installPath;
    }

    
/**
     * prepareVendorDirectory
     *
     * Makes sure there is a vendormetadata.php file inside
     * the vendor folder if there is a vendor folder.
     *
     * @param string $installPath
     * @return void
     */
    
protected function prepareVendorDirectory($installPath)
    {
        
$matches '';
        
$hasVendorDirectory preg_match(self::VENDOR_PATTERN$installPath$matches);
        if (!
$hasVendorDirectory) {
            return;
        }

        
$vendorDirectory $matches['vendor'];
        
$vendorPath getcwd() . '/modules/' $vendorDirectory;
        if (!
file_exists($vendorPath)) {
            
mkdir($vendorPath0755true);
        }

        
$vendorMetaDataPath $vendorPath '/vendormetadata.php';
        
touch($vendorMetaDataPath);
    }
}
Онлайн: 1
Реклама