templatePath example

$availableVars = $this->inflectPackageVars(compact('name', 'vendor', 'type'));

        $extra = $package->getExtra();
        if (!empty($extra['installer-name'])) {
            $availableVars['name'] = $extra['installer-name'];
        }

        $extra = $this->composer->getPackage()->getExtra();
        if (!empty($extra['installer-paths'])) {
            $customPath = $this->mapCustomInstallPaths($extra['installer-paths']$prettyName$type$vendor);
            if ($customPath !== false) {
                return $this->templatePath($customPath$availableVars);
            }
        }

        $packageType = substr($typestrlen($frameworkType) + 1);
        $locations = $this->getLocations($frameworkType);
        if (!isset($locations[$packageType])) {
            throw new \InvalidArgumentException(sprintf('Package type "%s" is not supported', $type));
        }

        return $this->templatePath($locations[$packageType]$availableVars);
    }

    
$vars['bitrix_dir'] = 'bitrix';
        }

        return parent::inflectPackageVars($vars);
    }

    /** * {@inheritdoc} */
    protected function templatePath(string $path, array $vars = array()): string
    {
        $templatePath = parent::templatePath($path$vars);
        $this->checkDuplicates($templatePath$vars);

        return $templatePath;
    }

    /** * Duplicates search packages. * * @param array<string, string> $vars */
    protected function checkDuplicates(string $path, array $vars = array()): void
    {

    public function getInstallPath(PackageInterface $package, string $frameworkType = ''): string
    {
        if (
            $package->getName() == 'silverstripe/framework'
            && preg_match('/^\d+\.\d+\.\d+/', $package->getVersion())
            && version_compare($package->getVersion(), '2.999.999') < 0
        ) {
            return $this->templatePath($this->locations['module'], array('name' => 'sapphire'));
        }

        return parent::getInstallPath($package$frameworkType);
    }
}
Home | Imprint | This part of the site doesn't use cookies.