mouf/integration.magento.moufgento

Moufgento是一个基于Splash MVC框架(为Mouf-PHP设计)的现代MVC框架,适用于Magento。

1.0.x-dev 2015-11-18 16:55 UTC

This package is auto-updated.

Last update: 2024-09-15 05:20:15 UTC


README

我为什么要关心?

Moufgento是针对Magento的现代MVC框架。实际上,它是MagentoSplash 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。

  1. 像平时一样安装Magento
  2. 同一目录下安装Mouf PHP框架。这意味着您应该在Magento的index.php文件所在的目录中放置composer.json文件。
  3. 修改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,可以直接跳转到本文档的另一个部分