radnan/rdn-factory

Zend Framework 2 模块,用于帮助创建工厂类

v1.0.2 2014-11-14 06:07 UTC

This package is not auto-updated.

Last update: 2024-09-24 01:47:40 UTC


README

RdnFactory ZF2 模块使得创建工厂类变得非常容易。

如何安装

  1. 使用 composer 依赖 radnan/rdn-factory

    $ composer require radnan/rdn-factory:1.*
  2. 通过在 application.config.php 文件中包含它来激活模块

    <?php
    
    return array(
        'modules' => array(
            'RdnFactory',
            // ...
        ),
    );

如何使用

该模块提供了一个 RdnFactory\AbstractFactory 类,您在创建工厂类时应扩展此类。实现受保护的 create() 方法来创建您的服务。

namespace FooModule\Factory\Controller;

use FooModule\Controller;
use RdnFactory\AbstractFactory;

class Bar extends AbstractFactory
{
	protected function create()
	{
		// Create and return your service
		return new Controller\Bar;
	}
}

这个抽象工厂可以访问一个类似控制器的插件仓库。只需像调用方法一样调用插件即可

namespace FooModule\Factory\Controller;

use FooModule\Controller;
use RdnFactory\AbstractFactory;

class Bar extends AbstractFactory
{
	protected function create()
	{
		$config = $this->config('foo', 'bar');
		$modules = $this->service('ModuleManager');

		return new Controller\Bar($config, $modules);
	}
}

config(...$key)

通过键获取配置。您可以传递多个键以遍历嵌套配置项。

// grab the 'display_exceptions' item inside the 'view_manager' array
$config = $this->config('view_manager', 'display_exceptions');

controller($name)

获取指定名称的控制台。

$controller = $this->controller('FooModule:BarController');

form($name)

获取指定名称的表单/fieldset/元素。

$collection = $this->form('Collection');

$form = $this->form('FooModule:BarForm');

params($name)

获取路由参数值。

$id = $this->params('bar-id');

service($name)

从顶级服务定位器(服务管理器)获取服务。

$app = $this->service('Application');

$view = $this->service('ViewRenderer');

$uploads = $this->service('RdnUpload\Container');

url($route = null, $params = array(), $options = array(), $reuseMatchedParams = false)

这只是 url()->fromRoute() 控制器插件的代理。在工厂内部生成 URL 时很有用。

$apiUrl = $this->url('foo/api/search/user');