Magento自定义模块(它们是什么以及谁可以编写它们)

时间:2010-06-19 16:42:54

标签: zend-framework magento

所以每个人和他们的妹妹现在都是“Magneto Expert”大声笑......

似乎很多有这种说法的人都(已经)学会了如何破解和修改主题 - 并在管理中打开和关闭功能 - 但实际上并不具备编写Magento自定义模块的技能。

  1. 那么Magento Custom Modules(物理意义上的)是什么?如果他们被写成具有最高标准的最严格的专业性,这是否意味着他们是有效的“自包含”脚本,可以放置在任何Magento商店和任何其他商店(Drupal,Joomla,自定义php)?

  2. 如果我正在招聘/寻找一位优秀的Magento开发人员,我怎么知道他们是否真的知道如何编写Magento Custom Modules?

2 个答案:

答案 0 :(得分:3)

1 - Magento模块是一组文件,可以干净地放入(并从中移除)Magento以添加或更改功能。由于需要进行更多根本性的更改,因此将这些文件隔离开来更加困难,但通常可以完成。 Magento模块不能在不同的购物车中重复使用,因为Magento的框架与任何其他购物车不同。

2 - 获取代码示例并让中立人员审核该代码。让他们解释在Magento发展的陷阱。要求他们在开发模块时必须做出一些权衡。询问他们开发的困难模块。

这不是一份详尽的清单,但你明白了这一点。

答案 1 :(得分:1)

您可以向开发人员询问一些简单的问题,即您正在考虑为您开发一些自定义模块。

Q1:自定义模块的代码在结构中的位置在哪里?

A1:有几个地方可以并且将会驻留,你想让它完全独立于magento核心。对于应该驻留在app / code / local或app / code / community中的代码,模板/视图代码应该位于app / design / frontend / default / yourcustomnamespace / modulename或app / design / frontend / custominterfacename / yourcustomnamespace / modulename中(这是任何扩展了magento的人都应该知道的事情)

Q2:你可以向他们询问观察者及其与magento和目的的关系

A2:任何具有扩展magento功能的人都应该具有观察者的经验,并且知道他们是模型的一部分并且应该驻留在模型目录中,并且能够为您提供一些如何观察的示例一个事件。还需要在模块XML中定义它们,即:

    <events>
        <checkout_type_onepage_save_order_after>
            <observers>
                <SomeNameSpace_Observer_increment>
                    <type>singleton</type>
                    <class>Namespace_Module_Model_Observer</class>
                    <method>increment</method>
        </SomeNameSpace_Observer_increment>
    </events>

和模型方法接受一个事件参数。 即:

public function doSomeStuff (Varien_Event_Observer $observer) {
    execute some stuff in here
}

我认为如果有人可以向您解释这些类型的事情,那么您可以假设他们知道magento并且可以为您创建自定义模块。

当然,我在这里的回答有点令人费解和罗嗦,但我认为你明白了。