【问题标题】:Where should additional files be put when writing my own magento extension?编写我自己的 magento 扩展时,应将其他文件放在哪里?
【发布时间】:2014-04-11 04:17:55
【问题描述】:

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

但是如果我的扩展使用了一些不是类或资源的文件被包含到前端或后端呢?

例如:仅附加到电子邮件中的图像文件,永远不会被浏览器直接检索。

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

相同的目录树以获得更好的可读性:

app
    code
        community
            MyNamespace
                MyExtensionName
                    images

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

【问题讨论】:

  • 好问题 MagGNetas...
  • 为什么要通过模块添加图片文件??..还有很多其他的添加图片的方法..
  • 不仅仅是图片。这是我的模块要使用的资源,但不是用于显示的。稍后将不会上传它们。这只是一些嵌入到模块中的资源,以便我的模型和/或助手可以使用它们。

标签: structure recommendation-engine magento


【解决方案1】:

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

  1. 假装我是 Magento 核心团队的一员

  2. 假装我的团队成员是反社会者,他们不在乎我所做的任何事情是否会破坏

如果你添加前端文件供公众使用(到jsskinetc),我总是创建一个文件夹,它是我的完整模块名称的小写版本,并将所有文件放在那里

/js/namespace_modulename/file.js

对于不会公开提供的文件(即您只需要通过 PHP 访问它们),在模块的根目录中创建一个文件夹(如您在上面所做的)是合适的。我建议像

app
    code
        community
            MyNamespace
                MyExtensionName
                    assets
                        images

您永远不知道什么时候会添加其他内容,将所有内容放在一个文件夹下有助于保持模块结构的整洁。

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

app/code/core/Mage/Sales/doc

文件夹。

【讨论】:

  • 是的,我注意到销售/文档案例在浏览所有 Mage 模块以寻找答案之后:) 当然,将我的伪资源组合到单个目录中是不言而喻的。我只给出了图像示例作为参考。我相信这会奏效(事实上它确实如此)。我只是想知道这是否是这样做的“正确”方式。暂时坚持这个方法。谢谢你,艾伦。
【解决方案2】:

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

media
     MyExtensionName
                images

并像访问它们一样

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

【讨论】:

  • 感谢您的回答,艾哈迈德。我知道这是一种方法,但这实际上是最佳实践/正确方法吗?图片不是我使用的唯一资源,而且我从不直接访问它们进行显示。
  • 正确方法?是的。最佳实践 ?正如 Alan 所说,“Magento 从来没有关于如何做到这一点的明确指导”
  • 感谢您的意见。到目前为止,我坚持原来的想法,除非有新的东西出现。保重
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-25
  • 1970-01-01
  • 1970-01-01
  • 2011-03-22
  • 1970-01-01
  • 2013-05-04
  • 1970-01-01
相关资源
最近更新 更多