【问题标题】:symfony/skeleton and symfony/website-skeletonsymfony/skeleton 和 symfony/website-skeleton
【发布时间】:2018-07-08 10:10:00
【问题描述】:

https://symfony.com/doc/current/setup.html 指示您运行:

composer create-project symfony/website-skeleton my-project

而在http://symfony.com/doc/current/quick_tour/the_big_picture.html 你被指示运行:

composer create-project symfony/skeleton quick_tour

我都做了。使用 symfony/website-skeleton 我在浏览器中收到一条错误消息:No route found for "GET /"

使用 symfony/skeleton 我确实得到了一个Welcome to Symfony 4.0.4 页面。

两者之间有什么区别,为什么要使用其中一个而不是另一个?

【问题讨论】:

  • 实际上,昨天我也发生了同样的事情。我认为他们的文档需要更新。
  • 它们都没有定义默认的 GET / 路由。如果您一直向下查看 HTTPKernel 类,您会看到如果路由系统本身没有初始化,则会生成一个默认的欢迎页面。因此,一个干净的骨架安装为您提供了一个默认页面。但是,一旦您安装了几乎任何其他捆绑软件,就会出现找不到路由的错误。只是那些恼人的怪癖之一。
  • 严格来说,欢迎信息是在 matchRequest 抛出 NoConfiguration 异常时在 http-kernel RouterListener 中生成的。

标签: php symfony symfony4


【解决方案1】:

新的 symfony 版本(Symfony 4)是“bundleless”。 Symfony 核心团队决定不为 Symfony 4.0 提供 Symfony 标准版,这意味着当您运行 composer create-project symfony/skeleton 时,您下载了启动应用程序所需的最小包,并且您必须下载所需的过度包,并且您需要显式添加所有依赖项想要依赖 (twig, routing...) look here for other package 。 但是对于新来的人来说可能很难,Symfony 核心团队致力于提供一个具有最少常见 Symfony 功能的版本。 你可以通过composer create-project symfony/website-skeleton 得到它。 你有更多解释here

【讨论】:

    【解决方案2】:

    由于类似的搜索而来到这里,但对引擎盖下的内容更感兴趣。

    不要放弃已接受的答案,但对于那些像我一样追求更详细信息的人,您可以查看 packagegist 中的包详细信息并查看 requires 和 requires dev 子部分中提到的依赖项:

    https://packagist.org/packages/symfony/website-skeleton

    包括:框架、额外框架、控制台、资产、安全、验证器树枝、学说、http 客户端、序列化器、yaml、dotenv、flex、表单和验证器包等。

    https://packagist.org/packages/symfony/skeleton

    包括:仅限控制台、dotenv、flex、平台和 yaml。

    看起来很简单,但如果你来这里寻找它,它就在那里。

    【讨论】:

      猜你喜欢
      • 2019-01-27
      • 1970-01-01
      • 2019-01-16
      • 2017-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-02
      • 1970-01-01
      相关资源
      最近更新 更多