0

我正在考虑什么是组织和复制某些资源的最佳方式,我正在寻找一些关于什么是最佳方式的建议。

我正在开发一个 PHP 应用程序,我正在使用 maven 来管理项目(测试、依赖项、打包等)我正在使用一个外部库(代码点火器,一个 PHP MVC 框架),它通过提供最新的稳定版本github。(在这种情况下,我对 github 版本感兴趣,因为它包含一些尚未发布的修复程序,可供从网站下载。)

每次我编译/打包应用程序时,我想从 github 检索一个副本(或使用本地缓存的版本)。我对此进行了一些谷歌搜索,它似乎并不那么简单。我正在考虑在我的个人 Maven 存储库中为代码点火器创建一个 Maven 工件并将其添加为依赖项。虽然这是我开始怀疑这是否是最好的方法。

有关该项目的更多信息:

  • webroot 位于 src/main/webapp/
  • 对于不使用 Maven 的开发人员,我可能决定将 webroot 的位置更改为更简单的位置,但是向开发人员了解 Maven 目录结构是可以接受的。
  • 我想将自定义开发的 PHP 文件与 Code Igniter 文件分开(并在运行测试之前覆盖它们)。

在这种情况下,什么是好的 Maven 解决方案?

4

1 回答 1

0

首先,您应该问自己主要目标是什么。PHP 本身对战争文件一无所知,(正式使用的)apache httpd 也不了解它。PHP 更喜欢 PHAR 文件。您是使用 php-maven 还是尝试以自己的方式解决它?也许你应该在 php-maven 分享你的工作。请参阅https://groups.google.com/forum/?fromgroups#!forum/maven-for-php上的 google 组

您不应该尝试与 Maven 约定作斗争。所以实际上这是一个 maven 项目,源代码应该放在 src/main/webapp 或 src/main/php 或 src/main/resources (你可能知道)。引导 php 开发人员进入通用的 maven 文件结构并不难。由于 PHP 项目不是很直观(大多数框架都有自己的打包和文件布局),PHP 开发人员应该很好地学习“所有源代码都转到 src/main/php”。

所以要问你的问题:

1)您对代码点火器的描述实际上是在描述快照。Maven 很好地处理快照。所以剩下的唯一问题是:如何让它们自动导入。PHP-Maven alrweady 有一个 pear 项目的导入器、几个 web 下载,甚至 github 下载。我认为这个导入器可以很容易地从 github 下载快照构建。这只是如何通知更新版本(或查找它们的时间间隔)的问题。

2) 依赖管理在 PHP-Maven 中通过添加对 php 包含路径的依赖或将其提取到特定文件夹(或用户定义文件夹)来解决。应该足够灵活。

3)我不知道代码点火器本身。您正在寻找的解决方案取决于 code igniter 的行为是否类似于 zend 框架(一个可以轻松了解常见目录结构的简单库),还是它的行为类似于 flow3(仅适用于其自己的自定义目录结构)。因此,如果代码点火器位于一个非常不同的文件夹中(php-maven 中的 target/php-deps 或类似的文件夹)并且您的点火器 webapp 位于目标/类中是可以接受的,那么您应该始终从代码点火器文件中定义您的自定义文件。

于 2012-08-08T10:24:27.770 回答