使用deps管理第三方资源是Symfony 2中的一个好习惯吗?

时间:2012-07-09 23:44:31

标签: symfony

对于我的项目,我正在使用Highcharts图表库和markItUp jQuery编辑器。我想以最小的努力让它们保持最新状态。我把它放在我的deps文件中:

[Highcharts]
    git=https://github.com/highslide-software/highcharts.com.git
    target=highcharts

[markItUp]
    git=https://github.com/markitup/1.x.git
    target=markItUp

然后使用资产进行导入:

{% javascripts filter='?yui_js' output='js/application.js'
    '../app/Resources/public/js/jquery-*.js'
    '../vendor/highcharts/js/highcharts.src.js'
    '../vendor/markItUp/markitup/js/jquery.markitup.src.js' %}
    <script src="{{ asset_url }}" ></script>
{% endjavascripts %}

一切正常如预期。这是一个好习惯吗?以这种方式管理JavaScript库有什么缺点吗?

2 个答案:

答案 0 :(得分:2)

是的,使用deps添加库是最佳做法。但是,你应该做两件事:

  1. 如果您有源代码管理(git,svn),请确保它忽略库文件夹。最佳做法是不在源代码管理中包含外部库,而是运行供应商:部署时加载库以加载库。
  2. 在许多情况下,您应该添加哈希或版本号以将库锁定到特定版本。这可能不适用于您的情况(因为您说您希望始终使用最新版本),但对Symfony捆绑包等内容至关重要。否则,当您运行供应商:install时,您可能会将所有内容更新为不受支持的版本(例如,在您的on 2.0时将捆绑包更新为SF2.1的版本)。

答案 1 :(得分:0)

一旦你的供应商不打破某些东西,它就会很好。 因此,如果您需要安全,最好将供应商锁定到特定的哈希值(在deps.lock中)。或者,您可以在deps文件中指定版本,但仅当git存储库具有分支/标记时。 有关示例,请参阅Standard Edition deps文件。