我可以从另一个项目文件夹创建到本地扩展的符号链接吗?我有一个通用的本地服务器,我需要在所有本地项目安装上实现相同的扩展。我试图放置符号链接,但有时我没有得到预期的输出。我只有在清除该特定项目的缓存后才得到它。
5 回答
我猜你的情况很常见。但正如 Omar 所说,通过几个typo3 实例链接到扩展的相同代码库并不是一个好习惯。但是我们的结构和你的一样,我们通过SVN实现的。我们所有的项目都有一个 SVN 存储库,常见的扩展都有自己的存储库。通过 svn:externals 将扩展链接到具体项目中。这样做的好处是您可以更改具体项目中的扩展,并在提交所有其他项目(尽管必须从 svn 更新)之后从中做出贡献。我认为这也符合您的需求。
正如 Björn 提到的,我建议在全球范围内安装它们。请注意,更新源将需要相应地移动扩展..
如果我正确理解您的问题,您在同一台服务器上有多个 Typo3 站点,并希望使用符号链接在它们之间共享扩展。我不认为这是一个非常好的主意,因为许多扩展都使用表,并且每个站点通常都有自己的数据库,因此您必须进行大量修改才能使其正常工作。
相反,您可以对typo3conf/ext/extension_name 文件夹中的扩展文件进行所有修改,然后将扩展导出到一个t3x 文件(后端的Ext Manager)。此 t3x 文件可以作为扩展名(导入扩展名)安装在所有其他站点上。
如果您的扩展不使用数据库并且您计划进行频繁的更改,那么我想您应该能够完成这项工作(符号链接)。否则,我建议您使用我描述的第一种方法。
我还没有尝试过,但你应该可以在 Typo3 中全局安装扩展。这意味着给定的扩展被放置在 '(typo3_src/)typo3/ext/' 而不是 'typo3conf/ext/' 中,假设两个站点使用相同的 Typo3 核心/源(因此typo3_src 是指向该位置的符号链接的核心)。
您可以通过安装工具启用安装全局扩展。进入工具后,单击“所有配置”,然后搜索 allowGlobalInstall。或者将以下行放入您的 localconf.php:
$TYPO3_CONF_VARS['EXT']['allowGlobalInstall'] = '1';
最后,但同样重要的是,您需要确保 'typo3/ext/' 目录是可写的。
希望这会有所帮助。如果您还有其他问题,请告诉我:)
至于“预期输出”:请注意,这些文件夹中的代码以各种方式缓存(主要是页面内容和配置设置),因此并不总是运行。这就是从当前安装“外部”完成的更改可能不会在不清除这些缓存的情况下传播到您的输出的原因(正如您所观察到的)。
当您通过扩展管理器实际安装扩展时,缓存应该(如果配置正确)被清除(感兴趣的人可以在 class.em_index.php 中搜索 clearCacheOnLoad 以显示 clear_cacheCmd('all'))。在安装过程中有一个小复选框,通常会选中它来完成此操作。
因此,正如我所见,Omar 的第一种方法是获得“预期输出”的更简单方法,并且更少与全局扩展混在一起。