【发布时间】:2015-04-07 12:02:03
【问题描述】:
我想为同一个 PHP 组件创建一个精简版和完整版。当然,我希望它们共享一个共同的代码库——所以如果我发现了一个错误,或者添加了一个特性,我只需要在一个地方更新它。
在编译语言中,更好的方法是只有一个项目,有多个目标——每个版本一个。在这种情况下,我会使用预处理器宏来识别代码中的产品版本,从而根据版本启用逻辑决策。
使用 PHP 解决这个问题的最佳方法是什么?当然,完整版的具体代码不要出现在精简版的PHP文件中,否则精明的开发者可能会轻松解锁功能。
【问题讨论】:
-
你需要有一个用于 lite 组件的公共代码库吗?
-
如果您可以将您的功能清晰地分离到不同的文件中,例如通过插件系统或类继承,您可以使用任何您想要生成最终“二进制”的构建系统,其中包含所有文件或仅包含文件的子集。
-
您所需要的只是一种自动方法,可以从您描述的完整源中创建两个“目标”。我的建议是使用 [Grunt][1]。 PHP 有很多包,我相信你可以使用它们构建你想要的东西。例如: - PHP CodeSniffer (npmjs.org/package/grunt-phpcs) - PHP linting (npmjs.org/package/grunt-phplint) - PHPUnit (npmjs.org/package/grunt-phpunit) - PHP Analyzer (npmjs.org/package/grunt-php-analyzer) - PHP 的内置网络服务器 (npmjs.org/package/grunt-php) [1]: @ 987654326@
-
@ÁlvaroG.Vicario:不,代码托管在我的私人修订控制服务器上
-
@deceze:对于这种情况,您建议使用哪种构建系统?
标签: php preprocessor