在扩展密钥中使用 "user_" 前缀有好处吗?
Is there a benefit of using the "user_" prefix in Extension Keys?
我从不同的开发者那里看到了很多 "project specific extensions" 但从未见过 "user_" 前缀,尽管
documenatation 指示使用它:
Project specific extensions (not generally usable or shareable):
Select any name you like and prepend it “user_” (which is the only
allowed use of a key starting with “u”). This prefix denotes that this
extension is a local one which does not come from the central TYPO3
Extension Repository or is ever intended to be shared. Probably this
is an “adhoc” extension you have made for some special occasion.
但开发人员倾向于使用 "client_usecase" 或只是 "usecase",如果我的看法具有代表性的话。有人告诉我 "user_" 不必要地放大了一些东西,比如数据库-table-名称,扩展的命名空间 (vendor-name/extension-name) 比扩展键更重要,文档的这一部分可能更多或更少成为过去的残余。
我担心的是,这样的扩展键可能会与其他扩展冲突,f。 e. Extension Manager 可能会尝试下载翻译并建议下载更新,可能会出现依赖性问题,或者 TYPO3 Hosters 可能会安装安全补丁等。我个人在我的 user_site 扩展中使用这个前缀(项目特定的 TS 和模板)用于几个项目,并期待核心中的一些条件,f。 e.扩展管理器跳过此扩展的任何翻译更新,但我找不到任何东西。也许我应该建议(伪造)排除版本和翻译更新的此类扩展,并在扩展管理器列表中将其突出显示为 "project specific"。
我认为只有两种选择:注册扩展密钥或使用 "user_"-前缀,但这似乎已过时,或者至少通常被忽略。
使用这样的前缀是否仍然有好处,这是要走的路吗,或者扩展密钥注册将来可能会被供应商名称 TER 注册之类的东西所取代?
文档始终是一种推荐 - 并且(几乎?)没有人使用以 user_
开头的密钥的扩展。
这是避免您描述的冲突的建议。但是使用程序员、公司或客户的前缀(就像供应商名称)避免了冲突。
在过去,不仅表格以扩展键为前缀,而且其他表格的附加字段也是如此。特别是如果您使用 kickstarter
/extensionbuilder
。
今天我们使用命名空间来避免与 class 名称发生冲突,但仍然会与扩展密钥发生冲突,因为如果扩展安装超过 typo3conf/ext/
.[=38,则任何供应商名称都不算数=]
该文件夹可能可以重命名,但在具有相同名称的表中具有相同类型的记录(具有不同的字段)可能会破坏系统。
示例:不要尝试为名为 news
的新闻引入自己的扩展;-)
另一方面,您可能会得到信息相同但名称不同的字段:
latitude/longitude
, lat/long
, lat/lon
.
从使用不同数据表示的不同扩展中命名相同的字段又如何呢? time
作为 string
、unixtimestamp
、time
、...
结论:您无法避免所有冲突,意识到可能出现的问题可能有助于通过一些明智的假设来避免冲突。
扩展的 auto-update 只能与 composer-install 一起出现,但供应商名称很重要。
在没有作曲家的安装中,您可能会从 TER 获得扩展,其中扩展密钥与自己的扩展相同,但应该知道自己的(本地)扩展是否在 TER 中有更新的版本。特别是如果扩展名有来自作者、公司或客户的前缀。
请注意,扩展不仅在 TER 中可用。使用 composer 和 packagist 扩展可以存储在任何地方。
我从不同的开发者那里看到了很多 "project specific extensions" 但从未见过 "user_" 前缀,尽管 documenatation 指示使用它:
Project specific extensions (not generally usable or shareable): Select any name you like and prepend it “user_” (which is the only allowed use of a key starting with “u”). This prefix denotes that this extension is a local one which does not come from the central TYPO3 Extension Repository or is ever intended to be shared. Probably this is an “adhoc” extension you have made for some special occasion.
但开发人员倾向于使用 "client_usecase" 或只是 "usecase",如果我的看法具有代表性的话。有人告诉我 "user_" 不必要地放大了一些东西,比如数据库-table-名称,扩展的命名空间 (vendor-name/extension-name) 比扩展键更重要,文档的这一部分可能更多或更少成为过去的残余。
我担心的是,这样的扩展键可能会与其他扩展冲突,f。 e. Extension Manager 可能会尝试下载翻译并建议下载更新,可能会出现依赖性问题,或者 TYPO3 Hosters 可能会安装安全补丁等。我个人在我的 user_site 扩展中使用这个前缀(项目特定的 TS 和模板)用于几个项目,并期待核心中的一些条件,f。 e.扩展管理器跳过此扩展的任何翻译更新,但我找不到任何东西。也许我应该建议(伪造)排除版本和翻译更新的此类扩展,并在扩展管理器列表中将其突出显示为 "project specific"。
我认为只有两种选择:注册扩展密钥或使用 "user_"-前缀,但这似乎已过时,或者至少通常被忽略。
使用这样的前缀是否仍然有好处,这是要走的路吗,或者扩展密钥注册将来可能会被供应商名称 TER 注册之类的东西所取代?
文档始终是一种推荐 - 并且(几乎?)没有人使用以 user_
开头的密钥的扩展。
这是避免您描述的冲突的建议。但是使用程序员、公司或客户的前缀(就像供应商名称)避免了冲突。
在过去,不仅表格以扩展键为前缀,而且其他表格的附加字段也是如此。特别是如果您使用 kickstarter
/extensionbuilder
。
今天我们使用命名空间来避免与 class 名称发生冲突,但仍然会与扩展密钥发生冲突,因为如果扩展安装超过 typo3conf/ext/
.[=38,则任何供应商名称都不算数=]
该文件夹可能可以重命名,但在具有相同名称的表中具有相同类型的记录(具有不同的字段)可能会破坏系统。
示例:不要尝试为名为 news
的新闻引入自己的扩展;-)
另一方面,您可能会得到信息相同但名称不同的字段:
latitude/longitude
, lat/long
, lat/lon
.
从使用不同数据表示的不同扩展中命名相同的字段又如何呢? time
作为 string
、unixtimestamp
、time
、...
结论:您无法避免所有冲突,意识到可能出现的问题可能有助于通过一些明智的假设来避免冲突。
扩展的 auto-update 只能与 composer-install 一起出现,但供应商名称很重要。 在没有作曲家的安装中,您可能会从 TER 获得扩展,其中扩展密钥与自己的扩展相同,但应该知道自己的(本地)扩展是否在 TER 中有更新的版本。特别是如果扩展名有来自作者、公司或客户的前缀。
请注意,扩展不仅在 TER 中可用。使用 composer 和 packagist 扩展可以存储在任何地方。