ronanchilvers / silex-spot2-provider
此包已被废弃,不再维护。未建议替代包。
Spot2 orm (vlucas/spot2) 提供者
1.0
2016-01-12 21:24 UTC
Requires
- silex/silex: ^1.3
- vlucas/spot2: ^2.1
Requires (Dev)
- phpunit/phpunit: ^4.8
README
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 定位对象