prolic/humus-mvc

HumusMvc 在 ZF1 应用程序中集成了 ZF2 的 ModuleManager 和 ServiceManager

1.2.0 2015-09-23 12:10 UTC

This package is auto-updated.

Last update: 2024-08-27 01:32:12 UTC


README

Dependency Status Total Downloads Latest Stable Version Latest Unstable Version

HumusMvc 在 ZF1 应用程序中集成了 Zend Framework 2 的 ModuleManager 和 ServiceManager。还有一个 HumusMvcSkeletonApplication。不再使用 Zend_Application。

依赖关系

安装

通常,您会在 HumusMvcSkeletonApplication 中安装 HumusMvc。如果您想遵循这些步骤,请查看 HumusMvcSkeletonApplication 的安装说明。

然而,您可以在自定义骨架应用程序中安装 HumusMvc

  1. "prolic/humus-mvc": "dev-master" 添加到您的 composer.json
  2. 运行 php composer.phar install

特性/目标

  • 添加使用服务定位器使用视图辅助程序的可能性 [已完成]
  • 添加使用服务定位器使用动作辅助程序的可能性 [已完成]
  • 添加使用服务定位器使用控制器插件的可能性 [已完成]
  • 使用服务定位器配置 Zend_Controller_Front [已完成]
  • 添加测试 [未完成]
  • 重构翻译服务 [已完成]
  • 创建 Zf1MvcListenerAggregate 并在此收集所有 MVC 资源 [未完成]
  • 在每次请求时创建和存储在注册表中的区域设置 (Zend_Locale) [已完成]
  • 使调度基于事件 [已完成]
  • 添加文档 [未完成]

视图辅助程序

  • 当在服务定位器中知道具有键 "Translator" 的 Zend_Translate 或 Zend_Translate_Adapter 对象时,Zend_View_Helper_Translate 将注入翻译器。不需要将 Zend_Translate 放入 Zend_Registry。
  • 当在服务定位器中知道具有键 "Navigation" 的 Zend_Navigation 或 Zend_Navigation_Container 对象时,将使用自定义的 HumusMvc\View\Helper\Navigation。这个特殊的视图辅助程序将检查服务定位器中的导航对象,如果还可用有键 "Acl" 的额外 Zend_Acl 和键 "AclRole" 的 Zend_Acl_Role_Interface,这两个也将注入到导航视图辅助程序中。对于键 "Translator" 下的翻译器也是如此。如果没有在服务定位器中知道任何内容,将使用默认的 Zend_View_Helper_Navigation。
  • 可以使用模块管理器进行配置:模块配置键 "view_helpers",模块类接口 "Zend\ModuleManager\Feature\ViewHelperProviderInterface" 和模块类中的方法 "getViewHelperConfig"

视图配置

在 module.config.php 中的示例视图配置

return array(
    'view' => array(
        'classname' => 'HumusMvc\View',
        'useViewRenderer' => true,
        'useStreamWrapper' => false,
        'doctype' => 'XHTML1'
    )
);

classname (可选):要使用的视图类。必须是 HumusMvc\View 的实例。useViewRenderer、doctype、contentType、assign 等是 Zend_View 的默认配置键

将注入一个特殊的插件加载器 (HumusMvc\View\HelperPluginManager) 到视图对象中。

前端控制器配置

在 module.config.php 中的示例前端控制器配置

return array(
    'front_controller' => array(
        'controller_directory' => array(
            'test' => __DIR__ . '/../src/test/controllers' // key = name of module, value = path to controllers in this module
        ),
        'module_controller_directory_name'=> 'controllers',
        'base_url' => '/',
        'params' => array(
            'displayExceptions' => false, // true for development
            'disableOutputBuffering' => true
        ),
        'plugins' => array(
            'actionStack' => 'Zend_Controller_Plugin_ActionStack',
            'putHandler' => array(
                'class' => 'Zend_Controller_Plugin_PutHandler',
                'stack_index' => 10
            ),
        ),
        'throw_exceptions' => false,
        'return_response' => false,
        'default_module' => 'default',
        'default_action' => 'index',
        'default_controller_name' => 'index',
    )
);

controller_directory:键 = "ModuleName",值 = "该模块中控制器路径" plugins:键 = "PluginName",值 = "PluginClass" 或数组 (类和 stack_index) - 如果插件已在服务定位器中注册,则将从服务定位器中加载插件,否则将简单地使用 "new" 实例化。base_url、params、module_controller_directory_name 等是前端控制器的默认配置键

将注入一个特殊的插件加载器 (HumusMvc\Controller\Action\HelperPluginManager) 到动作控制器对象中。

操作助手可以通过模块管理器进行配置:模块配置键 "action_helpers",模块类 "HumusMvc\ModuleManager\Feature\ActionHelperProviderInterface" 的接口,以及在模块类中的 "getActionHelperConfig" 方法。