magento是php吗,Magento

一个典型的Magento 模块应该有如下的目录结构层次, 同时, 它还应符合MVC架构标准:

app/code/local/Alanstormdotcom/Configviewer/Block

app/code/local/Alanstormdotcom/Configviewer/controllers

app/code/local/Alanstormdotcom/Configviewer/etc

app/code/local/Alanstormdotcom/Configviewer/Helper

app/code/local/Alanstormdotcom/Configviewer/Model

app/code/local/Alanstormdotcom/Configviewer/sql

让我们一起对每个目录进行一一介绍吧!

Block

这个目录的责任就是为了显示页面, 如果我们用经典的MVC架构来看的话, Block起到了联合model 和template文件的作用, 它能从数据库里面取出数据并把它传递到Theme里面的模板文件.其实, Block是介于controller 和view之间的附加的一个层

Controllers

Controllers包含了所有的业务逻辑的actions, 它为Magento的分发请求(dispatch(), preDispatch(), postDispatch())提供了对应的相应, 同时它还为系统的其他部分提供了其相关的指令.

etc

它包含了模块所有的xml配置文件, 一个模块可能包含多个xml配置文件, 但必须至少含有一个config.xml文件, 这个文件用来配置模块的所有models, routers, blocks, helpers等相关的信息.

下面是一个最简单的config.xml

0.1.0

通常情况下, 这个文件夹下还包含了一个adminhtml.xml 和system.xml文件, adminhtml.xml主要是用来配置模块在后台的菜单的访问权限, 如果模块需要在magento后台的system->Configuration里面设置相应的配置选项的话, 那么我们就需要在system.xml里面做相关的设置了.

如果你想了解更多的信息, 你可以访问这里.

Helper

在Helpers里面,我们可以根据不同的需要来定义一些常用的方法, 通常情况下, 这些helper类中定义的方法可以在template模板文件,Block,Model,Controller等整个系统中使用, 调用的方式通常如下:

Mage::helper('modulename/helpername')->methodName();

每一个模块都应该有一个默认的helper类Modulename/Helper/Data.php, 当然, 我们可以通过如下的方式调用它:

Mage::helper('modulename')->methodName();

Model

在经典的MVC架构里, Models是用来连接数据库和存取数据操作的. 但Magento 有不同的解释, 如果你是第一次接触, 可能感觉理解起来有点困难:

“几乎所有的Magento的Models都可以归于两种类型, 一种是基本的ActiveRecord类型(一张表对应一个对象), 另外一种是Entity Attribute Value模式, 也就是我们通常说的EAV模式, 同时, 每个Model还有一个Model collection, 它主要是用来存放一些私有的Magento model的实例. 同时,Magento团队已经实现了PHP Standard Library里面的IteratorAggregate and Countable的接口, 这样就允许每个Model类型有它自己的collection类型, 如果你不熟悉PHP Standard Library, 那你也可以把Model Collection当成附带有方法的数组.

Magento的model里面没有直接包括任何连接数据库的代码, 但是, 每个模块分别使用两个modelResource 类来和数据库打交道, 其中一个是用来读操作, 另一个是写操作,”

更多详情,请参考这里

sql

这个文件夹里面的文件主要是负责处理用于模块里面需要用到的自定义数据库表, 以及该模块相关的升级.

etc/modules/Namespace_Modulename.xml

每一个模块都包含了一个总的配置文件, 这个文件放在etc/modules/目录下, Magento运行时将加载该目录下所有的配置文件, 同时, magento将根据这些文件来判断那些模块是开启的,它们被放置在哪儿.

下面是其一个典型的配置实例

true

local

同时,你也可以定义其他的附加参数, 例如depends, version和platform, 当然这些参数也可以在模块的config.xml里面定义.

Depends

Version

0.1.0

Platform

сe

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值