将现有应用程序升级到Symfony Flex欧宝娱乐app下载地址

将现有应用程序升级到Symfony Flex欧宝娱乐app下载地址

使用Symf欧宝娱乐app下载地址ony Flex是可选的,即使在Symfony 4中,默认情况下使用Flex。但是,Flex非常方便并提高了您的生产力,因此强烈建议将现有应用程序升级到它。

欧宝娱乐app下载地址Symfony Flex建议应用程序使用以下目录结构,该结构与Symfony 4中的默认值相同,但您可以自定义一些目录

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 17 18 19
您的项目/├──资产/├──控制台├───────────────────────────────────────────────────────────────────────────yaml├──公共/│└──index.php├──src /│├──...│── -  kernel.php├──模板/├──测试/├──翻译/├───var /└──供应商/

这意味着安装欧宝娱乐app下载地址Symfony / Flex.依赖于您的应用程序是不够的。您还必须将目录结构升级到上面显示的目录结构。没有自动工具来进行此升级,因此您必须遵循这些手动步骤:

  1. 将Flex作为项目的依赖项安装:

    1
    $作曲家需要Symfony / Fl欧宝娱乐app下载地址ex
  2. 如果项目的composer.json.文件包含欧宝娱乐app下载地址symfony / symfony.依赖项,它仍然取决于symfony标准版,它不再在symfony 4中提欧宝娱乐app下载地址供4.首先,删除此依赖项:

    1
    $作曲家删除symfony / s欧宝娱乐app下载地址ymfony

    现在添加欧宝娱乐app下载地址symfony / symfony.包裹到冲突项目的一部分composer.json.文件as.在骨架项目的这个例子中显示这样它就不会再安装:

    1 2 3 4 5 6 7 8
    {“要求”:{“symfony 欧宝娱乐app下载地址/ flex”:“^ 1.0”,+},+“冲突”:{+“s欧宝娱乐app下载地址ymfony / symfony”:“*”}}

    现在你必须加入composer.json.项目所需的所有S欧宝娱乐app下载地址ymfony依赖项。快速做到这一点是添加上一个包含的所有组件欧宝娱乐app下载地址symfony / symfony.依赖关系,稍后您可以删除任何您真正需要的东西:

    1 2 3.
    $Composer要求注释资产orm-pack枝条\记录员邮件表单安全转换验证器$Composer Require --dev dotenv maker-bundle orm-fixtures profiler
  3. 如果项目的composer.json.文件不包含欧宝娱乐app下载地址symfony / symfony.依赖性,它已经根据Flex的要求明确定义其依赖项。重新安装所有依赖项以强制Flex以生成配置文件配置/,这是升级过程中最繁琐的部分:

    1 2
    $RM -RF供应商/ *$Composer安装
  4. 无论您跟随哪些先前的步骤。此时,您将有很多新配置文件配置/。它们包含Symfony定义的默认配置,因此您必须检查您的原始文件欧宝娱乐app下载地址app / config /并在新文件中进行所需的更改。Flex Config不使用配置文件中的后缀,所以旧的app / config / config_dev.yml配置/包/ dev / *。yaml, 等等。

  5. 最重要的配置文件是app / config / services.yml,现在位于配置/服务.YAML.。复制内容默认服务.YAML文件然后添加自己的服务配置。稍后您可以重新审视此文件,因为归功于Symfony欧宝娱乐app下载地址自动定义功能您可以删除大部分服务配置。

    笔记

    确保您以前的配置文件没有进口指向已加载的资源的声明kernel :: configurecontainer()或者内核:: configureroutes()方法。

  6. 移动其余部分应用程序/内容如下(之后,删除应用程序/目录):

    • 应用/资源/意见/- >模板/
    • 应用程序/资源/翻译/- >翻译/
    • App / Resources / /视图/- >模板/捆绑/ /
    • 余下的应用程序/资源/文件 - >SRC /资源/
  7. 移动原始PHP源代码文件src / appbundle / *,除非捆绑特定文件(如appbundle.php.依赖性倾注/), 至SRC /并更新每个移动文件的命名空间应用程序\...(高级IDE可以自动执行此操作)。

    除了移动文件外,更新自动加载自动加载开发价值的价值composer.json.文件as.在此示例中显示使用应用程序\app \ tests \作为应用程序名称空间。

    如果您使用多个捆绑包来组织代码,则必须重新组织您的代码SRC /。例如,如果你有src / userbundle / controller / defaultcontroller.phpSRC / ProductBundle / Controller / DefaultController.php,你可以将它们移动到src / controller / usercontroller.phpsrc / controller / productController.php

  8. 移动公共资产,如图像或编译的CSS / JS文件,SRC / appBundle /资源/公共/上市/(例如。公共/图像/)。

  9. 去掉src / appbundle /

  10. 移动资产的来源(例如SCSS文件)资产/和使用网袋Encore.管理和编译它们。

  11. 欧宝娱乐app下载地址symfony_debug.欧宝娱乐app下载地址symfony_env.环境变量被取代app_debug.app_env.。将它们的值复制到新vars,然后删除前者。

  12. 创造新的公共/ index.php.前控制器复制symfon欧宝娱乐app下载地址y的index.php源并且,如果您在您的任何定制中进行了定制Web / app.php.Web / app_dev.php.文件,将这些更改复制到新文件中。你现在可以删除旧的网/DIR。

  13. 更新垃圾箱/控制台脚本复制symfon欧宝娱乐app下载地址y的垃圾箱源根据您的原始控制台脚本更改任何内容。

  14. 去除那个bin 欧宝娱乐app下载地址/ symfony_requirements.脚本,如果您需要替换它,请使用新的欧宝娱乐app下载地址Symfony要求检查员

  15. 更新.gitignore.替换现有的文件var / logs /进入var / log /,这是日志目录的新名称。

自定义Flex路径

Flex Recipes对项目的目录结构进行了一些假设。这些假设中的一些可以通过添加密钥来定制额外的部分部分composer.json.文件。例如,告诉Flex将任何PHP类复制到src / app.代替SRC.

1 2 3 4 5 6 7
{“......”“......”“额外的”{“src-dir”“src / app”}}

可配置路径是:

  • bin-dir.:默认为垃圾箱/
  • config-dir.:默认为配置/
  • src-dir.默认为SRC /
  • var-dir.默认为var /
  • 公众默认为上市/

如果自定义这些路径,则从配方复制的某些文件仍可能包含对原始路径的引用。换句话说:在安装配方后,您可能需要手动更新一些东西。

这项工作包括代码样本,是在a下获得的许可Creative Commons by-SA 3.0执照。