符号链接供应商包上的映射异常

Mapping Exception on symlinked vendor package

我得到了 symfony3 应用程序,它使用了我想在 运行 上修改的其他 2 个 symfony 包,而无需一遍又一遍地提交、推送和更新作曲家。

我已经通过 composer install 下载了它们,所以结构看起来像

app/vendor/
|
+--company/
   |
   +--bundle1
   |
   +--bundle2

一切都很完美。

然后我下载了存储库并将其放在与我的主要项目相同的级别,所以我有:

projects/
|
+---app/
|
+---bundle1/
|
+---bundle2/

当我尝试将其符号链接到供应商文件夹时

cd project/app/vendor/company
rm -rf bundle1
ln -s project/bundle1 bundle1

Symfony 给了我以下 error:

MappingException in MappingException.php line 96:
Class 'Company\Bundle1\Entity\User' does not exist

问题是由于 FOSUserBundle 配置引起的

fos_user:
    db_driver:              orm # Required
    firewall_name:          main # Required
    user_class:             Company\Bundle1\Entity\User # Required

使用 Symfony3 我尝试执行 composer dump-autoload 但没有成功 - 同样的错误。

查看了这些主题(以及堆栈中的更多主题):

http://www.askjong.com/howto/use-local-repository-with-composer https://github.com/composer/composer/issues/1299

我的 Apache2.4 服务器配置添加了 "FollowSymLinks" 选项。 命名空间没问题 - 它在正常安装时工作。

感谢您的帮助:)

好的,要记住一件事 - 如果你有这样奇怪的问题 - 它必须做一些事情:

  1. 缓存
  2. 配置
  3. 文件权限

在我的例子中是权限——我链接的 bundle1 Entity 目录没有执行权。

chmod +x -R ./Entity

解决了问题, 傻我