Class yii\base\Module有2个属性: id 和 uniqueId 。前者“在具有相同父级的其他模块中唯一标识此模块”,而后者 - 只是唯一ID。但我仍然不明白差异。为什么需要我们 id 来识别模块,特别是来自具有相同父模块的模块(如果有 uniqueId ),它也标识模块?很高兴向我展示一些例子,它揭示了这两种特性的必要性。
答案 0 :(得分:1)
模块id
是模块的相对ID,当父母不存在时
模块id
与uniqueId
重合。但是如果你在其他模块中使用嵌套模块(一个或多个),则需要能够仍然分配模块的标识符(他的名字)。此名称使用Id分配,该ID对应于config/main.php
中的条目。作为框架的一部分,需要管理这些嵌套模块中的每一个的绝对标识,而是由UniqueId
执行。 UniqueId
是只读的,因为他的正确结构由框架管理