在添加自定义功能时,如何使用Magento?
从外界来看,框架看起来非常复杂,很难衡量什么是不可能的。你有什么经历?让它做你想做的事情是一个困难的框架吗?有没有在Magento中无法定制的东西?升级到最新版本等时管理自定义有多困难。
任何反馈/个人经历都会很棒。高度定制的Magento网站的例子也很棒。谢谢你的帮助。
答案 0 :(得分:1)
快速的答案取决于它。如果您想添加Magento所支持的功能,例如新的支付方式,则扩展Magento并不困难。 XML中指定了一些简单的钩子,可以让你操作这些东西。
在添加新功能时,它也可能很简单。一旦掌握了框架,创建一个新的控制器并显示为页面创建的模板并不会太困难。
但是,有两个地方,你可能会遇到Magento编程问题。第一种是当您尝试修改系统的核心行为时。例如,尝试在购物车中的项目上添加其他数据并不是一件简单的事情,也不是即时创建产品包。估计这些任务几乎是不可能的,因为框架中看似无关的部分只有在您将事情发生后才会发挥作用。
第二个地方是你必须修改Magento代码的核心部分(我保证这与上面的内容有所不同)。问题的关键在于,当您尝试修改Magento中非常基本的东西时,修改代码以满足您的需求的所有“干净”方法都会失败,并且肮脏的方式将导致巨大的麻烦(例如,您无法干净地升级你的网站。)
这是对情况的简化,但从我收集的内容来看,许多其他Magento程序员的意见也是如此。希望有所帮助!乔
答案 1 :(得分:1)
我在过去的两个月里一直在与Magento合作,我只能说系统是最先进的系统,一旦你完全掌握了系统,就可以根据需要扩展它。 当你想扩展Magento时,最好的办法是远离修改核心类,而只是尝试覆盖它们。例如,当您想要更改设计时,只需创建新主题或新包,并且只复制要更改的默认主题中的文件。如果您需要一些额外的功能,可以通过创建自己的模块来覆盖核心块的类或模型。 扩展Magento最强大的方法是Event Observer模式。 Magento会在保存数据库之前或保存之后触发许多事件,因此当您想要插入功能时,您可以选择适当的事件来监听并创建自己的Observer类来监听事件。 这里有一些有用的链接,可以帮助您了解观察者: http://inchoo.net/ecommerce/magento/extending-order-object-and-hooking-on-event-in-magento/ 从我的角度来看,我可以简单地说Magento是我见过的最先进,最专业的PHP应用程序。