从实际项目中保存库的最佳实践是什么?

时间:2011-12-21 16:45:08

标签: svn directory-structure php

出于某些教育原因,我刚刚开始建立自己的图书馆。它起初是一个带有一些可用类的简单库,但由于它每天都在增长,而且我已经在一些项目中使用它,因此我开始无法跟踪变化,因为我没有使用它SVN。

现在我开始使用SVN我想将库以及项目添加到不同的SVN存储库。每个项目一个(因为图书馆也是一个项目)。

将我的图书馆与项目区分开来的最佳做法是什么?每个项目都有一个 / library / 目录,其中包含所有类型的库。 那么我的最佳做法是遵循:

  • 我可以添加 / library / framework / 目录并在项目SVN中将其设置为ignore,然后检查该目录中的库(这是否可能?)
    • Pro :每个项目都有自己的框架,如果框架可能会更改,它不会破坏项目中的任何代码。
    • Con :如果我有100个项目并且他们都需要基本更新(安全方面),我必须手动更新所有项目。
  • 我也可以在服务器上的某处检查库,并在项目svn中忽略它之后对 / library / framework / 目录进行符号链接。
    • 专业:一次更新将修复所有项目,以防重要更新。
    • Con :如上所述:一次更新将修复/更改所有项目......
    • Con :如果项目需要设置到另一台服务器(不是我的......)怎么办?

有任何想法吗?

2 个答案:

答案 0 :(得分:3)

我通常会使用svn externals。所以我将在项目中创建库目录,然后为单独的库和组件添加外部定义。

这并不一定能解决您更新多个项目的问题,但IMO是一个可以通过自动化处理的单独问题,在我们讨论组织/版本控制/开发时并没有发挥作用。

答案 1 :(得分:1)

实际上我前段时间处于相同的状况。

我是通过.htaccess文件解决的(我使用apache-2作为webserver [1]),你可以 指定类似

的内容
php_value include_path /absolute/path/to/libraries:/absolute/path/to/my/project:/lib/3rd_party

依此类推,这对于让您的图书馆使用不同的git / svn签出来说非常棒。

[1] http://httpd.apache.org/docs/2.0/howto/htaccess.html