在Windows上安装Sylius – symfony3

当我超越这个命令

php bin/console sylius:install 

我有这个

  C:\wamp\www\p>php bin/console sylius:install Installing Sylius... , ,;:, `;;;.:` `::;` :` :::` ` .'++: ''. '. `::: :+',;+' :+; `+. :::: +' :' `+; `:::, '+` ++ :+.`+; `++. ;+' '' ,++++. ,:::` `++'. .+: `+' `+; .+, ;+ +' +; '' ::::` ,+++. '+` :+. `+; `+, ;+ +' '+. ,. .:::: .++` `+: +' `+; `+, ;+ +' `;++; `;;.:::` ::::: :+. '+,+. `+; `+, ;+ `+' .++ .;;;;;;::`.::::, +'` `++ `++' `+; `+: :+. `++' '. ;+ ,;;;;;;;;;::::: .+++++` ;+, ++; ++, `'+++,'+' :++++, ,;;;;;;;;;:::` ;' :;;;;;;;;;:, :.:+, ;;;;;;;;;: ;++ Step 1 of 4. Checking system requirements. ------------------------------------------ +----------------------------+-------------------------------------------------+ | Issue | Recommendation | +----------------------------+-------------------------------------------------+ | Version de PHP recommandée | | | Accélérateur | Activez le OpCache Zend (fortement recommandé). | +----------------------------+-------------------------------------------------+ Success! Your system can run Sylius properly. Step 2 of 4. Setting up the database. ------------------------------------- Creating Sylius database for environment dev. It appears that your database already exists. Warning! This action will erase your database. Would you like to reset it? (y/N) y 0/5 [░ ] 0% 1/5 [░░░░░░ ] 20% 2/5 [░░░░░░░░░░░░ ] 40% 3/5 [░░░░░░░░░░░░░░░░░ ] 60% [Symfony\Component\Config\Exception\FileLoaderLoadException] Warning: glob(): Pattern exceeds the maximum allowed length of 260 characte rs in C:\wamp\www\p\src\Sylius\Bundle\AdminBundle/Resources/config/routing/ admin_user.yml (which is being imported from "C:\wamp\www\p\src\Sylius\Bund le\AdminBundle/Resources/config/routing.yml"). [Symfony\Component\Debug\Exception\ContextErrorException] Warning: glob(): Pattern exceeds the maximum allowed length of 260 characte rs cache:clear [--no-warmup] [--no-optional-warmers] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command> 

请帮帮我 !!!!

Solutions Collecting From Web of "在Windows上安装Sylius – symfony3"

Sylius使用内联yaml资源格式(你可以通过搜索resource: |来找到它resource: | ),它被Symfony 3.3路由错误地识别为glob模式。 这对Unix系统来说是没有问题的,它们在glob模式上没有长度限制,但是在Windows上(因为它有时超过260个字符)会中断。


根问题在https://github.com/symfony/symfony/issues/22938中有更多的背景描述,并且可以通过&#x5728;\Symfony\Component\Config\Loader\FileLoader::import()的glob模式识别中添加对新行的检查来防止\Symfony\Component\Config\Loader\FileLoader::import()像这样:

 84: public function import($resource, $type = null, $ignoreErrors = false, $sourceResource = null) 85: { 86: - if (is_string($resource) && strlen($resource) !== $i = strcspn($resource, '*?{[')) { 86: + if (is_string($resource) && false === strpos($resource, "\n") && strlen($resource) !== $i = strcspn($resource, '*?{[')) { 87: $ret = array(); 88: $isSubpath = 0 !== $i && false !== strpos(substr($resource, 0, $i), '/'); 

也可以在Sylius中通过重写所有内联yaml路由配置来避免字符* ,? , {[ 。 我发现只有像这样的数组:

 except: ['show'] 

可以改写为:

 except: - 'show' 

从而避免触发glob模式识别。


我还没有找到任何其他的解决方法。

在Windows中通过注册表编辑删除260个字符的路径限制不起作用在所有。 glob模式的260限制可能在PHP本身中检查。