symfony/skeleton 和 symfony/website-skeleton

Posted

技术标签:

【中文标题】symfony/skeleton 和 symfony/website-skeleton【英文标题】:symfony/skeleton and 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 中生成的。 【参考方案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。

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

【讨论】:

以上是关于symfony/skeleton 和 symfony/website-skeleton的主要内容,如果未能解决你的问题,请参考以下文章

使用 Symfony 路由从 .htaccess 重写 URL

Symfony 2.3 Bad Credentials 自定义提供程序

Symfony 5:/lucky/number 应用程序的 404 页面

使用 localhost 从主机访问 Vagrant 机器上的 symfony Web 服务器

我的 composer.json 的一个存储库现在是空的或私有的 我仍然想使用这个 composer.json 我如何添加新的存储库

& 和 && 区别和联系,| 和 || 区别和联系