Szenario:我有两个扩展,它们用一些特定字段扩展了ext:news
。在TYPO3 9之前,我必须使用以下打字脚本配置对新闻扩展的依赖关系进行配置:
config.tx_extbase {
persistence {
classes {
GeorgRinger\News\Domain\Model\News {
subclasses {
GeorgRinger\News\Domain\Model\News = Vendor\Extension\Domain\Model\News
}
}
Vendor\Extension\Domain\Model\News {
mapping {
tableName = tx_news_domain_model_news
}
}
}
}
}
模型供应商\扩展\域\模型\新闻
扩展了基本扩展的模型:
class News extends \GeorgRinger\News\Domain\Model\News
在TYPO3 10中,在configuration/Extbase/Persistence/Classes中,将打字脚本配置替换为以下配置。php
(中断:#87623):
\Vendor\Extension\Domain\Model\News::class => [
'tableName' => 'tx_news_domain_model_news',
'recordType' => 0,
],
只要您只有一个扩展新闻扩展名的扩展名,它就可以工作多久。如果您有第二个扩展并启用TYPO3缓存,您将得到一个错误,即在第一个扩展中添加的字段在新闻扩展的模板中不可用。奇怪的是,这个问题只有在启用缓存时才会发生!
所以我的问题是:在TYPO3 10中向现有扩展添加一些字段的正确方法是什么?
正如变更日志所说,在10以下的TYPO3版本中,您的覆盖配置位于typoscript中。由于有10个LTS,它位于一个PHP类中。因此,控制加载顺序的机制不再是打字脚本的机制,而是PHP的机制。
PHP加载顺序的权威是ext\u emconf中的
扩展名的文件。它们在第一次运行时被解析,然后被缓存。constraints
部分。php作曲家。json
文件不控制加载顺序-目前它们仅用于解析composer本身的依赖项。
与composer相反。json
,ext\u emconf。php
允许您不仅指定硬依赖项,还可以指定“软”依赖项,您可以使用关键字设置这些依赖项。通过这种方式,您可以指定扩展之间的加载顺序,而无需在任何情况下安装它们。这允许您独立于其他扩展安装每个扩展,同时,如果两个扩展都已安装,您仍然可以指定正确的加载顺序。
所以,在你的情况下,第二个扩展需要有一个软的“建议”依赖于第一个:
constraints' => [
'depends' => [
],
'conflicts' => [
],
'suggests' => [
'news' => ''
'first_news_extension' => ''
],
]
请参见此处ext_emconf中约束的完整解释。
1. 一个扩展的基本结构 2. 编译我们的扩展 3. 静态编译 4. 编写函数 5. 小结 每一个PHP扩展都至少需要两个文件:一个配置文件和一个源文件。配置文件用来告诉编译器应该编译哪几个文件,以及编译本扩展是否需要的其它lib。
我已经安装了家园,我试图在Laravel项目版本4.2上工作,但是我一直收到以下错误: 需要PHP扩展。 我已经在服务器上安装了Mcypt,并在PHP7INI文件中启用了它。由于某种原因,这个问题不想消失。 有什么建议,我可以做什么,以启用我的虚拟框的密码?
你好,有人知道如何发现扩展< code>ArrayBlockingQueue的类吗?例如,我想监视下面的< code>MyBufferQueue类 在属于java库的< code>ArrayBlockingQueue类中,有这样一个方法: 我遇到的问题是,当我监视类< code>MyBufferQueue时,以及在测试期间访问方法< code > ArrayBlockingQueue . put(
我们将通过本文,学会创建一个 Creator3D 扩展,并通过扩展执行一段自定义脚本。 创建并安装扩展 找到 ~/.CocosEditor3D/packages Windows 用户为 C:\Users${你的用户名}.CocosEditor3D\packages),或者 ${你的项目路径}/packages 文件夹,如果文件夹不存在,则新建这个文件夹。 在这个文件夹里新创建一个空的文件夹,并命名
问题内容: 我知道一个类可以实现多个接口,但是可以扩展多个类吗?例如,我希望我的班级同时扩展我创建的类。这在Java中可行吗?这两个语句并收到一个错误。如果不可能,为什么呢?扩展,但我猜它也扩展了,因为它继承了字段,并且可以在需要对象的地方传递。同样,像Java中的所有类一样,它们扩展了类。那么为什么不能扩展一个以上的类呢? TransformGroup继承 那么,如果可能的话,正确的方法是什么?
扩展是专门设计的在 Yii 应用中随时可拿来使用的, 并可重发布的软件包。例如, yiisoft/yii2-debug 扩展在你的应用的每个页面底部添加一个方便用于调试的工具栏, 帮助你简单地抓取页面生成的情况。 你可以使用扩展来加速你的开发过程。 信息: 本文中我们使用的术语 "扩展" 特指 Yii 软件包。而用术语 "软件包" 和 "库" 指代非 Yii 专用的通常意义上的软件包。 使用扩展