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 我如何添加新的存储库