如何覆盖Symfony的默认目录ob娱乐下载结构
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 2.8,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
如何覆盖Symfony的默认目录ob娱乐下载结构
ob娱乐下载Symfony自动附带一个默认目录结构。您可以轻松地覆盖这个目录结构来创建自己的目录结构。默认的目录结构是:
12 3 4 5 6 7 8 9 10 11 12 13 14 15
你的项目/├─app /│├─缓存/│├─配置/│├─日志/│├─资源/││└─视图/│└─……├─src/│├─…├─│├─……├─web/├─app.php├─…
覆盖缓存
目录
属性可以更改默认缓存目录getCacheDir ()
方法中的AppKernel
申请类别:
12 3 4 5 6 7 8 9 10 11 12
/ / app / AppKernel.php/ /……类AppKernel扩展内核{/ /……公共函数getCacheDir(){返回$这->rootDir。'/'.$这->环境。/缓存的;}}
$ this - > rootDir
是绝对路径吗应用程序
目录和$ this - >环境
是当前环境(即。dev
).在本例中,您已经将缓存目录的位置更改为应用程序/{环境}/缓存
.
谨慎
你应该保留缓存
目录对于每个环境都不相同,否则可能发生一些意想不到的行为。每个环境都会生成自己的缓存配置文件,因此每个环境都需要自己的目录来存储这些缓存文件。
覆盖日志
目录
压倒一切的日志
目录与重写缓存
目录中。惟一的区别是您需要重写getLogDir ()
方法:
12 3 4 5 6 7 8 9 10 11 12
/ / app / AppKernel.php/ /……类AppKernel扩展内核{/ /……公共函数getLogDir(){返回$这->rootDir。'/'.$这->环境。“/日志”;}}
在这里,您已经将目录的位置更改为应用程序/{环境}/日志
.
覆盖模板目录
如果您的模板没有存储在默认应用程序/资源/视图/
目录,使用twig.paths配置选项定义自己的模板目录(或目录):
- YAML
- XML
- PHP
1 2 3 4
# app / config / config.yml枝:#……道路:[" % kernel.root_dir % / . . /模板”)
覆盖网络
目录
如果需要重命名或移动您的网络
目录,你唯一需要保证的是路径应用程序
目录仍然正确app.php
而且app_dev.php
前端控制器。如果您只是重命名了目录,那么就没有问题。但是如果你以某种方式移动它,你可能需要修改这些文件中的这些路径:
1 2
require_once__DIR__.“/ . ob娱乐下载. / Symfony / app / bootstrap.php.cache”;require_once__DIR__.“/ . ob娱乐下载. / Symfony / app / AppKernel.php”;
您还需要更改extra.ob娱乐下载symfony-web-dir
选项中的composer.json
文件:
1 2 3 4 5 6 7
{…“额外的”{…“ob娱乐下载symfony-web-dir”:“my_new_web_dir”}}
提示
一些共享主机有一个public_html
Web目录根目录。重命名您的web目录网络
来public_html
是使您的Symfony项目在共享主机上工作的一种ob娱乐下载方法。另一种方法是将你的应用程序部署到你的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应用程序/控制台缓存:清除——env=prod$PHP应用/控制台assetic:dump——env=prod——no-debug
覆盖供应商
目录
要覆盖供应商
目录中,需要引入更改app / autoload.php
而且composer.json
文件。
的变化composer.json
会是这样的:
1 2 3 4 5 6
{“配置”: {“bin-dir”:“本”,“vendor-dir”:“/一些/ dir /供应商”}},
然后,将路径更新到autoload.php
文件中app / autoload.php
:
1 2 3
/ / app / autoload.php/ /……$加载程序=需要' /一些/ dir /供应商/ autoload.php ';
提示
如果您在虚拟环境中工作并且不能使用NFS—例如,如果您在客户操作系统中使用Vagrant/VirtualBox运行Symfony应用程序,则可以对此修改感兴趣。ob娱乐下载