将现有应用程序升级到Symfony Flexob娱乐下载
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 5.2,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
将现有应用程序升级到Symfony Flexob娱乐下载
使用Symfob娱乐下载ony Flex是可选的,即使在默认使用Flex的Symfony 4中也是如此。然而,Flex非常方便,并且极大地提高了您的工作效率,因此强烈建议您将现有的应用程序升级到Flex。
ob娱乐下载Symfony Flex建议应用程序使用以下目录结构,这与Symfony 4中默认使用的目录结构相同,但您可以这样做自定义一些目录:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
你的项目/├──资产/├──bin /│└──控制台├──配置/│├──bundles.php│├──包/│├──路线。│├──服务。yaml├──公共/│└──index . php├──src /│├──……│└──Kernel.php├──模板/├──测试/├──翻译/├──var /└──供应商/
这意味着安装ob娱乐下载symfony / flex
应用程序中的依赖关系还不够。还必须将目录结构升级为上面所示的结构。没有自动工具来进行此升级,因此您必须遵循以下手动步骤:
将Flex作为项目的依赖项安装:
1
$作曲家需要symfony/flexob娱乐下载
如果项目是
composer.json
文件包含ob娱乐下载symfony / symfony
依赖,它仍然依赖于Symfony标准版,在Symfony 4中不再可用。ob娱乐下载首先,移除这个依赖:1
$作曲家remove symfonob娱乐下载y/交响乐
现在添加
ob娱乐下载symfony / symfony
打包到冲突
项目的部分composer.json
文件在这个骨骼项目的例子中显示这样就不会再次安装:1 2 3 4 5 6 7 8
{"require": {"syob娱乐下载mfony/flex": "^1.0",+},+“冲突”:{+ "ob娱乐下载symfony/symfony": "*"}}
现在你必须加进去
composer.json
项目所需的所有Sob娱乐下载ymfony依赖项。一种快速的方法是添加之前包含的所有组件ob娱乐下载symfony / symfony
依赖,之后你可以删除任何你不需要的东西:1 2 3
$作曲需要注解资产orm-pack树枝\ logger邮件表单安全翻译验证器$Composer require——dev dotenv maker-bundle或-fixture分析器
如果项目是
composer.json
文件不包含ob娱乐下载symfony / symfony
依赖关系,它已经明确定义了它的依赖关系,正如Flex所要求的那样。重新安装所有依赖项以强制Flex在中生成配置文件配置/
,这是升级过程中最繁琐的部分:1 2
$Rm -rf vendor/*$作曲家安装
- 无论您执行了前面的哪一个步骤。此时,您将有许多新的配置文件
配置/
.它们包含Symfony定义的默认配置,因此必须将原始文件签入ob娱乐下载应用程序/配置/
并在新文件中进行所需的更改。Flex配置在配置文件中不使用后缀,所以旧的应用程序/配置/ config_dev.yml
去配置/包/ dev / * .yaml
等。 最重要的配置文件是
应用程序/配置/ services.yml
,现位于配置/ services.yaml
.的内容默认的服务。yaml文件然后添加您自己的服务配置。稍后您可以重新查看此文件,因为多亏了Symfony的ob娱乐下载自动装配功能您可以删除大部分服务配置。请注意
确保您以前的配置文件没有
进口
声明,指向已加载的资源内核:configureContainer ()
或内核:configureRoutes ()
方法。移动剩下的
app /
内容如下(在此之后,删除app /
目录):应用程序/资源/视图/
->模板/
应用程序/资源/翻译/
->翻译/
应用程序/资源/ < BundleName > /视图/
->模板/包/ < BundleName > /
- 剩下的
应用程序/资源/
文件- >src /资源/
将原始PHP源代码文件从
src / AppBundle / *
,除非bundle特定的文件(比如AppBundle.php
而且DependencyInjection /
),src /
并将每个移动文件的命名空间更新为App \…
(高级ide可以自动执行此操作)。除了移动文件外,还要更新
自动装载
而且autoload-dev
的值composer.json
文件如本例所示使用App \
而且应用程序测试\ \
作为应用程序名称空间。如果您使用多个包来组织代码,则必须将代码重新组织为
src /
.例如,如果你有src / UserBundle /控制器/ DefaultController.php
而且src / ProductBundle /控制器/ DefaultController.php
,你可以把它们移到src /控制器/ UserController.php
而且src /控制器/ ProductController.php
.- 移动公共资产,如图像或编译的CSS/JS文件,从
公共/ src / AppBundle /资源/
来公共/
(如。公共/图像/
). - 删除
src / AppBundle /
. - 将资产的源(例如SCSS文件)移动到
资产/
和使用Webpack安可管理和编译。 ob娱乐下载SYMFONY_DEBUG
而且ob娱乐下载SYMFONY_ENV
环境变量替换为APP_DEBUG
而且APP_ENV
.将它们的值复制到新的变量中,然后删除以前的变量。- 创建新的
公共/ index . php
前端控制器复制Symfonob娱乐下载y的index.php源代码如果你在你的web / app.php
而且web / app_dev.php
文件,将这些更改复制到新文件中。现在可以删除旧的web /
dir。 - 更新
bin /控制台
脚本复制Symfonob娱乐下载y的bin/控制台源代码并根据您原来的控制台脚本更改任何内容。 - 删除
bin ob娱乐下载/ symfony_requirements
脚本,如果您需要替换它,请使用新的ob娱乐下载Symfony需求检查器. - 更新
.gitignore
文件替换现有文件var /日志/
条目的var / log /
,这是日志目录的新名称。
自定义Flex路径
Flex食谱对项目的目录结构做了一些假设。属性下添加一个键,可以自定义其中一些假设额外的
部分composer.json
文件。例如,告诉Flex将任何PHP类复制到src /应用程序
而不是src
:
1 2 3 4 5 6 7
{“…”:“…”,“额外的”:{“src-dir”:“src /应用程序”}}
可配置路径为:
bin-dir
:默认为bin /
config-dir
:默认为配置/
src-dir
默认为src /
var-dir
默认为var /
public-dir
默认为公共/
如果自定义这些路径,则从配方复制的某些文件仍然可能包含对原始路径的引用。换句话说:您可能需要在安装配方后手动更新一些内容。