ronanchilvers/silex-spot2-provider

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

Spot2 orm (vlucas/spot2) 提供者

1.0 2016-01-12 21:24 UTC

This package is auto-updated.

Last update: 2023-09-08 13:28:44 UTC


README

SensioLabsInsight

Spot2 是一个基于数据映射模式的简单 ORM,用于基于 Silex 的项目。您可以在 GitHub 页面或文档网站上了解更多信息。

本项目包括将 Spot2 连接到您的 Silex 应用程序的服务提供者和实用工具。

安装

最简单的方式是通过 composer。

composer require ronanchilvers/silex-spot2-provider ^1.0

Silex2 支持在 master 分支上,尽管目前还没有发布。如果您想使用 Silex2 版本,可以这样做

composer require ronanchilvers/silex-spot2-provider dev-master

使用

要注册服务提供者,您可以这样做

$app->register(new \Ronanchilvers\Silex\Provider\Spot2ServiceProvider(), [
    'spot2.connections' => [
        'default' => 'sqlite://path/to/my_database.sqlite'
    ]
]);

$app->get('/things', function() use ($app) {
    $mapper = $app['spot2.locator']->mapper('Entity\Thing');

    $this->render('things.twig', [
        'things' => $mapper->all()
    ]);
});

实用特性

如果您想使用实用特性,只需将其包含在您的子类应用中。

class Application extends Silex\Application
{
    use \Ronanchilvers\Silex\Application\Spot2Trait;
}

然后您将获得以下方便的方法。

mapper()

此方法是一个获取特定实体映射器的快捷方式。

$app->get('/things', function() use ($app) {
    $mapper = $this->mapper('Entity\Thing');

    return $this->render('things.twig', [
        'things' => $mapper->all()
    ]);
});

spot2()

此方法是一个获取 spot2 定位对象快捷方式。大多数时候您不会使用此方法(您可能更倾向于使用 mapper())。它存在只是为了允许在需要时轻松访问定位器。

$app->get('/things', function() use ($app) {
    $mapper = $this->spot2()->mapper('Entity\Thing');

    return $this->render('things.twig', [
        'things' => $mapper->all()
    ]);
});

公开服务

Spot2ServiceProvider 公开了以下服务。

  • spot2.connections - 连接 DSN 的数组或 DBAL 样式的配置数组
  • spot2.connections.default - 要使用的默认连接名称。如果您没有明确设置,Spot2 将使用第一个定义的作为默认。
  • spot2.config - Spot2 配置对象
  • spot2.locator - Spot2 定位对象