如何覆盖Symfony的默认目录欧宝娱乐app下载地址结构

编辑该页面

警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 3.1,不再维护。

这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。

如何覆盖Symfony的默认目录欧宝娱乐app下载地址结构

欧宝娱乐app下载地址Symfony自动附带一个默认的目录结构。你可以很容易地覆盖这个目录结构创建你自己的。默认的目录结构是:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
你的项目/├─app /│├─配置/│└─……├─bin /│└─……├─src /│└─……├─测试/│└─……├─var /│├─缓存/│├─日志/│└─……├─供应商/│└─……└─web /├─app.php└─……

覆盖缓存目录

您可以更改默认的缓存目录通过重写getCacheDir ()方法AppKernel您的应用程序的类:

1 2 3 4 5 6 7 8 9 10 11 12
/ / app / AppKernel.php/ /……AppKernel扩展内核{/ /……公共函数getCacheDir(){返回目录名(__DIR__)。“/ var /”美元- >环境。/缓存的;}}

在这段代码中,$ this - >环境(即是当前环境。dev)。在这种情况下,你已经改变了缓存目录的位置var /{环境}/缓存

谨慎

你应该保持缓存目录不同环境,否则可能会发生一些意想不到的行为。每个环境生成自己的缓存配置文件,所以每个需要它自己的目录来存储这些缓存文件。

覆盖日志目录

压倒一切的日志目录是一样的覆盖缓存目录中。唯一的区别是,你需要覆盖getLogDir ()方法:

1 2 3 4 5 6 7 8 9 10 11 12
/ / app / AppKernel.php/ /……AppKernel扩展内核{/ /……公共函数getLogDir(){返回目录名(__DIR__)。“/ var /”美元- >环境。“/日志”;}}

你改变了目录的位置var /{环境}/日志

覆盖网络目录

如果你需要重命名或移动你的网络目录,你唯一需要保证的路径var仍然是正确的在你的目录app.phpapp_dev.php前端控制器。如果你简单地重命名目录,你很好。但如果你移动它在某种程度上,你可能需要修改这些路径在这些文件:

1
require_once__DIR__“/ . . /道路/ / app / autoload.php ';

你也需要改变extra.欧宝娱乐app下载地址symfony-web-dir选项composer.json文件:

1 2 3 4 5 6 7
{“…”:“…”,“额外的”:{“…”:“…”,“欧宝娱乐app下载地址symfony-web-dir”:“my_new_web_dir”}}

提示

一些共享主机有一个public_htmlweb根目录。重命名您的web目录网络public_html是一种让你的Symfony项目工作在你的共享主机欧宝娱乐app下载地址。另一种方法是将应用程序部署到web根目录之外的,删除你public_html目录,然后把它换成一个符号链接网络在您的项目。

请注意

如果你使用AsseticBundle,你需要配置read_from指向正确的选项网络目录:

  • YAML
  • XML
  • PHP
1 2 3 4 5 6
# app / config / config.yml#……assetic:#……read_from:' % kernel.root_dir % / . . / . . / public_html”

现在你只需要清除缓存和抛售资产再次和您的应用程序应该工作:

1 2
美元php bin /控制台缓存:明确——env =刺激美元php bin /控制台assetic:转储——env =刺激——没有调试

覆盖供应商目录

覆盖的供应商目录,你需要介绍的变化app / autoload.phpcomposer.json文件。

的变化composer.json是这样的:

1 2 3 4 5 6
{“配置”:{“bin-dir”:“本”,“vendor-dir”:“/一些/ dir /供应商”}},

然后,更新的路径autoload.php文件中app / autoload.php:

1 2 3 4
/ / app / autoload.php/ /……美元加载程序=需要' /一些/ dir /供应商/ autoload.php ';

提示

这个修改可以感兴趣的如果你工作在一个虚拟环境,不能使用NFS——例如,如果您正在运行一个Symfony应用程序使用的流浪汉/ VirtualBox来宾操作系统。欧宝娱乐app下载地址

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。