Magento 中文开发手册开篇解析.doc
文本预览下载声明
Magento(麦进斗)是这个星球上最强大的购物车网店平台。当然,你应该已经对此毫无疑问了。不过,你可能还不知道,Magento(麦进斗)同样是一个面向对象的PHP框架。你可以配合Magento(麦进斗)购物车程序强大的功能,开发动态WEB应用程序。
采用高端Magento(麦进斗)电子商务系统可订制对接企业ERP、CRM如:SAP NAV Salesforce Odoo 用友 金蝶 等,Magento(麦进斗)可对接淘宝、京东、Amazon、eBay、Wish、速卖通等电子商务销售平台,Magento(麦进斗)还可订制对接开发微信商城、移动电商APP。
相较于老的ecshop构架,Magento(麦进斗)作为全球第一电商平台可提供完整核心源代码的电商解决方案,适合品牌企业、跨国企业、跨境电商企业。麦进斗科技提供上诉完整电商解决方案,欢迎咨询联系 麦进斗
这是Magento中文开发手册的开篇,我们会在整个手册中介绍绝大部分Magento的开发框架特性。不要想在这片文章中立刻掌握所有的特性。这仅仅是个开始,但是足够让你在同行中鹤立鸡群了。
在这片文章中,你将了解到:
Magento模块(Magento Modules)代码组织形式
配置型MVC架构
Magento控制器(Magento Controllers)
基于URI的模型实例化(Context-based URI Model Loading)
Magento模型(Magento Models)
Magento助手(Magento Helpers)
Magento布局(Magento Layouts)
事件监听(Observers)
Magento类重写(Class Overrides)
总结
开始之前,你可以试着看下Magento MVC模式的一个图形化直观体现。Magento_MVC.pdf
Magento模块中的代码组织形式
Magento通过将代码放入独立的模块进行组织。在一个典型的PHP MVC应用中,所有的控制器会被放在一个文件夹中,所有的模型会被放在另外一个文件夹里,等等。而在Magento中,文件是基于功能进行分组的,这种分组后的代码块叫做模块。
Magento的代码:
举例来说,如果你想寻找Magento中关于付款的功能,你仅仅需要找到下面代码中的文件夹,就能获取所有的控制器,模型,助手,Blocks等。
app/code/core/Mage/Checkout
如果你想寻找Magento中关于Google Checkout的功能,也仅仅需要找到如下文件夹,即可获取所有你想要的信息。
app/code/core/Mage/GoogleCheckout
你的代码:
如果你想扩展Magento,千万不要想当然的去修改core文件夹中的文件,也不要将你自己的控制器,模型,助手或者Blocks放在Core文件夹中。所有对于Magento的扩展,都将在local文件夹中进行。
app/code/local/Package/Modulename
Package(也可称为命名空间,当然这不是PHP手册中提到的命名空间)是唯一的命名,通过Package来标识你的公司,组织或个人。通过Package,世界范围内的Magento社区在创建模块扩展时,能够使用他们自己的Package名称,以避免与其他开发者有命名冲突。
创建一个新的模块时,你需要告诉Magento新模块的相关信息。可以通过添加一个XML文件在下面的目录中。
app/etc/modules
在这个目录中有两类xml文件,第一种用来开启独立的模块,以下列方式命名:
Packagename_Modulename.xml
第二种文件用来从一个Package中开启多个模块,以下列方式命名:
Packagename_All.xml
配置型MVC系统
Magento是一个配置型MVC(Configuration-based MVC)系统。另外一种MVC系统则是大部分PHP框架使用的,约定性MVC(convertion-based MVC)。
在约定型MVC系统中,如果你添加一个控制器,或者一个模型,只需要根据约定的内容,创建这个文件以及类即可,系统会自动识别它。
而在配置型MVC系统中,比如Magento,除了需要添加相应的文件及类之外,还需要明确的告诉系统该类的存在。在Magento中,每个模块都有一个config.xml文件。这个文件中包含了一个模块相关的配置信息。在运行时,所有模块的配置文件,都会被加载到一个巨大的配置文件树中(后面的文章会介绍如何查看这个配置树)。
比如,想在模块中使用模型。你需要
显示全部