我正在编写我的magento扩展程序并想出了一个问题。主扩展文件/目录结构非常清楚。我们有扩展配置文件,模型,帮助程序,数据库资源,前端和后端脚本和样式表等的dirs。
但是,如果我的扩展程序使用了一些不属于类或资源的文件来包含在前端或后端,该怎么办?
例如:图像文件只会附加到电子邮件中,并且永远不会被浏览器直接检索。
应该/我可以创建目录/ app / code / community / MyNamespace / MyExtensionName / images吗?
相同的目录树,以提高可读性:
app
code
community
MyNamespace
MyExtensionName
images
或者还有其他正确/推荐的方式来实现这一目标吗?
答案 0 :(得分:8)
Magento公司本身从未明确指导如何做到这一点,Magento的模块结构并未提供明确的指导。我一直采取的方法是
假装我在Magento核心团队工作
假装我的团队成员是反社会人士,如果我做了什么事情,他就不在乎
如果您要添加前端文件供公众使用(到js
,skin
,etc
),我总是会创建一个小写版本的文件夹完整的模块名称,并删除其中的所有文件
/js/namespace_modulename/file.js
如果文件没有公开发布(即您只需要通过PHP访问它们),请在模块的根目录中创建一个文件夹(正如您上面所做的那样)是合适的。我建议像
这样的东西app
code
community
MyNamespace
MyExtensionName
assets
images
你永远不知道什么时候会有你想要添加的东西,并且将所有东西放在一个文件夹下将有助于保持模块结构的清洁。
在Magento的核心代码中甚至还有一个先例。
看看app/code/core/Mage/Sales/doc
文件夹。
答案 1 :(得分:1)
在媒体目录中创建一个文件夹,并将文件/图像放入该文件夹
media
MyExtensionName
images
并像
一样访问它们 echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).'/MyExtensionName/images/pic.jpg';