在大型项目中使用 zend 框架和 git

Posted

技术标签:

【中文标题】在大型项目中使用 zend 框架和 git【英文标题】:Working with zend framework and git in large projects 【发布时间】:2012-07-06 16:22:59 【问题描述】:

我在一个相当大的项目中使用 zf 和 git 时遇到了一些问题。 zf 应用程序有大约 20 个模块,目前所有内容都存储在一个 git 存储库中。因此,当您签出应用程序时,您会签出整套模块、css 表格、js 文件等。

我想做的,就像在 wordpress 或 drupal 中一样:你有你的核心应用程序,并且对于每个模块,你都有一个单独的 git 存储库,你可以在模块目录中签出。结帐后,您对其进行处理,然后提交。但是使用 zend 你不能这样做,因为媒体文件(css,js,图像)存储在 /public 中的不同目录中(每个模块可能有它自己的 css,js 文件在 /public/_MODULE_NAME_/css 例如)。我在 /application/modules/ 工作。

那么问题是如何使用 zend 框架模块化应用程序和 git?

【问题讨论】:

您总是可以将静态资源(CSS、JS 等)放在模块目录中,然后将它们作为构建任务复制到 public 或在 public 中创建符号链接 听起来像我曾经遇到过的类似问题:***.com/questions/6680768/… 在 ZF2 中,模块是完全独立的,它们可以作为子模块附加(完全独立的 repo),但在 ZF1 的给定结构中,这是不可能的。 我不了解 Zend 部分,但我认为 git 的子模块功能在这种情况下可能有用。 git-scm.com/book/en/Git-Tools-Submodules @AlexDicianu: 打开赏金希望解决你的问题也能解决我的问题... 【参考方案1】:

我通常会设法处理软链接设置,在 web 文件夹中有一个超级项目,并从以下不同文件夹中对模块进行符号链接:

* SuperProject/
  + application/
    + ModuleA --> ../../Modules/ModuleA/application
    + ModuleB --> ../../Modules/ModuleB/application
    + config/
    + views/
    + layouts/
  + public/
    + ModuleA --> ../../Modules/ModuleA/public
    + ModuleB --> ../../Modules/ModuleB/public
    + css/
    + js/
  + library/
+ Modules/
  * ModuleA/
    + application/
      + config/
      + views/
      + models/
    + public/
      + css/
      + js/
  * ModuleB/
    + application/
      + config/
      + views/
      + models/
    + public/
      + css/
      + js/

加星标的目录是存储库,SuperProject/public 是 http 服务器的入口点(当然启用了符号链接)。您显然没有在 SuperProject 存储库中添加任何模块文件,而只是在全局目录(例如 application/config/)中添加了更改 - 充其量,您通过 .git_ignore 文件忽略模块。由于此方法依赖于符号链接,因此它仅适用于 unixoid 系统。虽然不完美,但它是最省事的。

【讨论】:

关于符号链接:这可以在 Win32 上使用联结(technet.microsoft.com/en-us/sysinternals/bb896768.aspx,en.wikipedia.org/wiki/Symbolic_link#NTFS_Junction_points)吗? @eckes 这可能有效,但尚未尝试过。但从快速研究来看,它似乎实现了与 unixoid 符号链接相同的功能。你有 Windows 系统来测试它吗? 仅限 XP。真正有趣的事情(支持文件的 NTFS 符号链接,不仅是文件夹,en.wikipedia.org/wiki/NTFS_symbolic_link)在那里不起作用,但至少需要 Vista。

以上是关于在大型项目中使用 zend 框架和 git的主要内容,如果未能解决你的问题,请参考以下文章

如何在不安装 Zend 框架的情况下使用 Zend 库

使用角度为6的zend框架

Zend Studio中如何同步Git仓库内容

当 zf 使用 PHP7 创建项目 ZendApp 时,在 zend 框架 1 中找不到类 SimpleXMLIterator

Zend框架中的登录和注销问题

使用 wamp 服务器使用 zend 框架创建项目时的问题