首页 > 解决方案 > 如何将 git 与 MVC 模式一起使用

问题描述

当我在 web 项目的文件结构中有大量文件夹树时,如何使用 git。我开发的模块在此文件结构中由不同的文件夹分隔。正如 MVC 模式所关注的那样。

在我的 web-project 的整体文件结构中,粗略地说:

我对此文件夹中的文件进行了更改,并且需要跟踪更改。这些文件夹没有组合在一个与我开发的模块相关联的文件夹中。这些文件夹分散在文件结构的不同部分。

我可以在文件结构的根目录创建 git 存储库,并.gitignore指定跟踪哪些文件夹。但是我开发了很多模块。而且我需要为它们提供单独的 git 存储库。

在哪里以及如何创建 git 存储库以开发大文件结构中的许多模块?

如果我在 web-project 的根目录初始化 git 存储库,是否可以在每个模块的文件结构的根目录创建许多存储库,并为每个存储库指定 git 应该跟踪的文件夹?

标签: phpgitmodel-view-controller

解决方案


我认为现在最简单的解决方案是将您的独立模块保存在单独的存储库中,然后使用composer请求它们。

我将向您展示它的一些理论示例。

我有项目,应该使用支付模块。支付模块是一个单独的存储库,composer.json文件在根目录中提供。

例如:

{
  "name": "company/payment-module",
  "description": "Module handling payments from our customers.",
  "autoload": {
    "psr-4": {
      "Company\\PaymentModule\\": "src/"
    }
  }
}

这使您可以使用在您将构建的任何应用程序/项目中创建的任何模块。因此,例如在您的项目中,您可以要求 Payment Module 作为依赖项。

{
  "name": "company/shop",
  "type": "project",
  "description": "The main repository of our shop.",
  "autoload": {
    "psr-4": {
      "": "src/"
    }
  },
  "repositories": [
    {
      "type": "git",
      "url": "https://github.com/company/payment-module"
    }
  ],
  "require": {
    "company/payment-module": "dev-master"
  }
}

当您在项目中定义所需的模块并使用 composer 安装它们时,它们将位于vendor/目录下,并将自动加载到您定义的命名空间中。


推荐阅读