我在Win7 xampp安装上试用Symfony2并且遇到了generate:bundle的问题。
php app/console generate:bundle --namespace=amd/HelloBundle --format=yml
如果我在问题中选择“是”(默认为“否”):
是否要生成整个目录结构
我收到以下消息:
[Symfony\Component\Filesystem\Exception\IOException]
Failed to touch H:/<pathToSymfony2Installation>/src//amd/HelloBundle/Resources/doc/index.rst
......当然其余的步骤都不遵循。创建了正确的命名空间和包目录,但是永远不会达到诸如自动'路由设置之类的东西。
选择放置源的目录时,我选择默认值:
Target directory [H:/<pathToSymfony2Installation>/src]:
(注意:没有斜杠)
我注意到在IO异常消息中有一个额外的斜杠(在'src'之后),无论我做什么,这是否会导致IO错误?
如果我输入一个尾部斜杠,则会添加另一个(正如您所料),如果我输入与默认值相同的 - 特别是省略一个斜杠,我仍然会在'src'后面和我之前得到两个斜杠命名空间和包名称。
答案 0 :(得分:1)
我遇到了和你一样的问题。我终于找到了原因:FAT32
当我将XAMPP放在NTFS格式的驱动器上时,我没有遇到任何问题。 (驱动器C甚至任何便携式驱动器)但是,当我将XAMPP放在FAT32格式的驱动器上时出现错误。 (嗯......我猜一些PHP函数,比如touch(),在FAT32系统上无法正常工作)
此外,运行此命令时,我还在FAT32驱动器上遇到其他问题(实体未找到):
的Symfony&GT; php app / console doctrine:generate:entities xxxxxx
(注意:如果我禁用auto_mapping并在config.yml中明确设置“entity_managers:”,则可以修复) 但是,一旦我将XAMPP放回NTFS驱动器,auto_mapping就能正常工作。
因此,您可以检查您的文件系统。如果您的XAMPP放在FAT32驱动器上,请将其移至NTFS驱动器并再试一次。
祝你好运。