【问题标题】:Can Symfony Bundle be used in non-Symfony project (f.e. Zend)?Symfony Bundle 可以用于非 Symfony 项目(例如 Zend)吗?
【发布时间】:2017-03-28 11:50:21
【问题描述】:

我可以在非 Symfony 项目中重用我在 Symfony 中创建的 Bundle,例如曾? (或者我只能复用组件?)

那个 Bundle 中的服务呢?

【问题讨论】:

  • Bundle(通常情况下)类似于 symfony “应用程序”。通常你不能在 zend 上运行没有 symfony 的 symfony 应用程序,这不太合乎逻辑.. 来自另一端的组件是独立的 symfony “库”,因此它们可以在任何地方使用..
  • 好的,谢谢。额外的问题:它是否常见/从具有简单功能(带有一些服务)的简单 Bundle 创建组件以在另一个非 Symfony 项目中重用是否有意义?
  • 如果您需要在 Symfony 和非 symfony 项目中重用某些服务,您可以制作某种单独的库,并在您的所有项目 symfony 和非 symfony 项目中包含和扩展它。 Composer 允许您直接包含 git 项目,因此您只需在使用此库的所有项目上配置它。

标签: symfony


【解决方案1】:

Symfony 包当然可以通过composer.jsoncomposer.lock 文件包含在其他项目中——但这并不意味着在该包中可以运行任何有用的代码。

如果捆绑包中有有用的代码,那么您可以直接使用它,但 Symfony 捆绑包只是一个库,通常包含一些 Symfony 特定的配置。

捆绑包的最佳实践是将任何有用的通用代码放入单独的库中(可以独立使用 - 例如 Symfony 所谓的“组件”),然后启用该代码(例如创建 Symfony 服务,或配置)与捆绑配置。

有一些项目是 Symfony 捆绑包,也有其他框架的配置,例如 Silex,以及同一代码库中的适当 Laravel 配置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-30
    • 2011-06-30
    • 2023-01-16
    • 2011-04-14
    • 2019-05-23
    • 1970-01-01
    • 2010-12-14
    相关资源
    最近更新 更多