phine/locator

此软件包已被废弃,不再维护。未建议替代软件包。

服务定位器设计模式的实现。

1.1.0 2013-09-18 18:53 UTC

This package is not auto-updated.

Last update: 2021-12-07 01:41:36 UTC


README

Build Status Coverage Status Latest Stable Version Total Downloads

服务定位器设计模式的实现。

用法

use Phine\Locator\Locator;
use Phine\Locator\Service\AbstractService;
use Phine\Locator\Service\ResolvableInterface;

/**
 * A service that simply gets returned.
 */
class SimpleService extends AbstractService
{
}

/**
 * A service that causes the locator to return something else.
 */
class ResolvedService extends AbstractService implements ResolvableInterface
{
    /**
     * {@inheritDoc}
     */
    public function getResolvedValue()
    {
        return 'Something else.';
    }
}

// create my locator
$locator = new Locator();

// register my services
$locator->registerService('simple', new SimpleService());
$locator->registerService('resolved', new ResolvedService());

// access my services
echo get_class($locator->getService('simple')); // "SimpleService"
echo $locator->resolveService('resolved'); // "Something else."

上文的数组可访问版本

use Phine\Locator\ArrayLocator;

// create my locator
$locator = new ArrayLocator();

// register my services
$locator['simple'] = new SimpleService();
$locator['resolved'] = new ResolvedService();

// access my services
echo get_class($locator['simple']); // "SimpleService"
echo $locator['resolved']; // "Something else."

示例

请参阅 wiki 中的示例。

需求

安装

通过 Composer

$ composer require "phine/locator=~1.0"

文档

您可以在 docs/ 目录中找到文档。

许可

此库可在 MIT 许可 下使用。