Structure 在编写自己的magento扩展名时,应将其他文件放在哪里?

Structure 在编写自己的magento扩展名时,应将其他文件放在哪里?,structure,recommendation-engine,magento,Structure,Recommendation Engine,Magento,我正在写我的magento扩展,并提出了一个问题。主扩展文件/目录结构非常清晰。我们有用于扩展配置文件、模型、助手、数据库资源、前端和后端脚本以及样式表等的目录 但是,如果我的扩展使用了一些不属于类或资源的文件来包含在前端或后端,该怎么办 例如:图像文件只会附加到电子邮件中,浏览器永远不会直接检索到这些文件 我是否应该/可以创建一个目录/app/code/community/MyNamespace/MyExtensionName/images? 相同的目录树可提高可读性: app cod

我正在写我的magento扩展,并提出了一个问题。主扩展文件/目录结构非常清晰。我们有用于扩展配置文件、模型、助手、数据库资源、前端和后端脚本以及样式表等的目录

但是,如果我的扩展使用了一些不属于类或资源的文件来包含在前端或后端,该怎么办

例如:图像文件只会附加到电子邮件中,浏览器永远不会直接检索到这些文件

我是否应该/可以创建一个目录/app/code/community/MyNamespace/MyExtensionName/images?

相同的目录树可提高可读性:

app
    code
        community
            MyNamespace
                MyExtensionName
                    images

或者是否有其他正确/推荐的方法来实现这一点?

Magento Inc.本身从未就如何实现这一点提供过明确的指导,Magento的模块结构也没有提供明确的指导。我一直采取的方法是

  • 假装我是Magento核心团队的成员

  • 假装我的团队成员是反社会者,他们不在乎我所做的任何事情是否会失败

  • 如果您要添加前端文件供公众使用(到
    js
    skin
    ),我总是创建一个小写版本的完整模块名文件夹,并将所有文件放在其中

    /js/namespace_modulename/file.js
    
    对于不公开提供的文件(即,您只需要通过PHP访问它们),在模块的根目录中创建一个文件夹(如上所述)是合适的。我建议做点类似的事情

    app
        code
            community
                MyNamespace
                    MyExtensionName
                        assets
                            images
    
    你永远不知道什么时候会有其他东西需要添加,把所有东西都放在一个文件夹下将有助于保持模块结构的整洁

    在Magento的核心代码中甚至有这样的先例。看一看

    app/code/core/Mage/Sales/doc
    

    文件夹

    在媒体目录中创建一个文件夹,并将文件/图像放入该文件夹中

    media
         MyExtensionName
                    images
    
    然后像这样访问它们

     echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).'/MyExtensionName/images/pic.jpg'; 
    

    问得好,MagGNetas…为什么要通过模块添加图像文件???。添加图像还有很多其他方法。不仅仅是图像。这是我的模块将要使用的资源,但不是用于显示。稍后将不会上载它们。只是一些资源会嵌入到模块中,以便我的模型和/或助手可以使用它们。是的,我注意到Sales/doc case在浏览了所有Mage模块后寻找答案:)当然,将我的伪资源合并到单个目录中是不言而喻的。我只举了一个例子作为参考。我相信这会起作用(事实上是这样)。我只是想知道这样做是否“正确”。目前仍坚持这种方法。谢谢你,艾伦。谢谢你的回答,艾哈迈德。我知道这是一种方法,但这真的是最佳实践/正确的方法吗?图像并不是我使用的唯一资源,我从来没有直接访问它们来显示。正确的方法?对最佳实践?正如Alan所说,“Magento从来没有明确的指导如何做到这一点”,感谢您的想法。到目前为止,除非有新的东西出现,否则我坚持原来的想法。当心