gpt4 book ai didi

magento - Magento 类(class)的长度有限制吗?

转载 作者:行者123 更新时间:2023-12-04 05:37:58 24 4
gpt4 key购买 nike

尝试在 magento 模块中加载 block 时发现了一个意外问题。 block 名称是 *Mycompany_CustomerModule_Block_CustomerModuleDashboardDataBlock*(是的,名称很长,但我添加了与模块相关的所有 block 的模块名称,以避免将 dashboard.html 与 Magento Core 使用的混淆)。
问题是,如果我尝试使用以下命令加载这样的 block :

$this->getLayout()->createBlock('customermodule/customermoduledashboarddatablock')

Magento 引发异常“无效的 block 类型”。我不知道出了什么问题,因为我从一个完美运行的 block 中复制了整个文件,然后我尝试将该 block 重命名为更短的名称,例如简单的 DashboardDataBlock。使用较短的名称, block 被正确加载。

因此,我的问题是,类名称的长度是否有任何限制?我总是可以缩短类名,但我想知道是否有限制,这样我就可以避免将来遇到类似的问题。谢谢。

最佳答案

问题是,不管文件系统是否区分大小写,Magento 类名的最后一部分 不得驼峰式。

  • MyNamespace_MyModule_MyClassName
  • MyNamespace_MyModule_myclassname
  • MyNamespace_MyModule_myclassName
  • MyNamespace_MyModule_Myclassname
  • MyNamespace_MyModule_My_Class_Name

  • 您也会在核心模块中注意到这种模式。命名空间和模块的类前缀是从配置文件中读取的,可以包含任意大写字母。但是实际的类名是以不允许大写字母的方式从类别名派生的(如果你想知道为什么,请查看 Mage_Core_Model_Config::getGroupedClassname() 中的代码。提示:它使用 uc_words )

    关于magento - Magento 类(class)的长度有限制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11680404/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com