mouf / integration.magento.moufgento
Moufgento是一个基于Splash MVC框架(为Mouf-PHP设计)的现代MVC框架,适用于Magento。
Requires
- php: >=5.3.0
- mouf/html.template.templateinterface: ~2.0
- mouf/integration.magento.moufgento-magentomodule: ~1.0
- mouf/mvc.splash-common: ~7.0
- mouf/security.userservice-splash: ~4.0
Provides
This package is auto-updated.
Last update: 2024-09-15 05:20:15 UTC
README
我为什么要关心?
Moufgento是针对Magento的现代MVC框架。实际上,它是Magento和Splash MVC框架(一个基于依赖注入的框架)之间的桥梁。
Magento自带一个非常重的框架,基于Zend Framework 1。它确实非常强大,几乎可以覆盖应用程序的任何部分。然而,它有些过时,缺乏当前MVC框架中我们喜欢的一些现代功能,如依赖注入、注解支持、少量或没有XML配置文件等。因此,如果您需要在Magento内进行大量自定义应用程序开发,您可能需要使用比Magento默认框架更好的其他解决方案。
Moufgento同时是一个为Magento添加PSR-7兼容中间件支持的模块,以及Splash的集成,这是Mouf提供的默认MVC框架,作为一个中间件。
Moufgento提供以下功能
- 在Magento中插入任何zend/stratigility中间件(即PSR-7中间件)的能力
- 默认路由器(Splash)
- 控制器,通过一个漂亮的图形DI容器声明
- 在您的控制器中使用注解(例如:使用
@URL
声明新的路由,使用@Logged
限制对登录用户的访问等...) - 支持在Splash MVC中支持的任何类型的视图(这包括普通的PHP文件、Twig模板等...)
- 一个漂亮的基于Web的用户界面,用于构建控制器和视图
- 将视图集成到Magento主题中
- (非常)简单的Ajax支持
- 将Mouf的认证系统集成到Magento中
- 将Mouf的Web库(JS/CSS)系统集成到Magento中
Moufgento已经与Magento CE 1.9进行了测试。
另一个有趣的特性是,您的代码与Splash MVC的100%兼容。这意味着您可以在Splash MVC中编写一个控制器,稍后将其部署到Magento(或相反),或者任何其他可以插入Splash的第三方系统(例如Drupal、WordPress、Joomla...)。
安装
首先,您需要在同一侧安装Magento和Mouf。
- 像平时一样安装Magento。
- 在同一目录下安装Mouf PHP框架。这意味着您应该在Magento的index.php文件所在的目录中放置composer.json文件。
- 修改composer.json并添加moufgento模块。您的composer.json文件至少应包含以下行
{ "repositories": [ { "type": "composer", "url": "http://packages.firegento.com" }, { "type": "vcs", "url": "https://github.com/magento-hackathon/magento-composer-installer" } ], "autoload" : { "psr-0" : { "MyApp" : "src/" } }, "require" : { "magento-hackathon/magento-composer-installer": "*", "mouf/mouf" : "~2.0", "mouf/integration.magento.moufgento" : "~1.0", }, "minimum-stability" : "dev", "prefer-stable": true }
请勿忘记自定义供应商名称(自动加载部分中的MyApp
部分)。4. 在项目的根目录下创建空的src/
目录。5. 在Mouf中运行安装过程:连接到Mouf UI并运行所有包的安装过程(包括当然的Moufgento安装过程)。6. 现在您需要修补Magento自动加载,因为存在一些关于class_exists
函数的奇怪问题
。首先,将app/code/core/Varien/Autoload.php
复制到app/code/local/Varien/Autoload.php
。然后,在autoload
方法中,将
return include $classFile;
替换为
return @include $classFile;
入门
或者如果您已经熟悉Splash,可以直接跳转到本文档的另一个部分