pomm / pomm-service-provider
Silex µ框架的Pomm服务提供者。
1.2.0
2014-04-02 10:21 UTC
Requires
- pomm/pomm: 1.2.*
- silex/silex: ~1.0
Replaces
- ghub/pomm-service-provider: *
README
安装
安装 PommServiceProvider 有多种方式。最简单的一种是使用以下脚本 此脚本。它将创建目录树结构和你的 composer.json
文件(见下文Composer部分)。
Composer
Composer 是安装和运行服务提供者的最简单方式。只需在 composer.json
中添加以下内容
"pomm/pomm-service-provider": "dev-master"
到 require
部分。调用「 composer.phar install
」 应该会与 Pomm
库一起安装。
Git子模块
如果你使用git,请使用子模块
$ mkdir vendor $ git submodule add git://github.com/chanmix51/PommServiceProvider.git vendor/ghub/PommServiceProvider $ git submodule add git://github.com/chanmix51/Pomm.git vendor/pomm
否则,你只需下载存档,将其展开在子目录中,并告诉自动加载器 GHub\Silex\Pomm
命名空间位于 src
项目子目录下。
使用Pomm服务
建议将你的应用程序分成3个文件
- bootstrap.php
- 在此文件中加载和配置扩展
- application.php
- 在此文件中定义你的控制器。
- generate_model.php
- 这是用于扫描postgresql的架构并生成模型文件的CLI工具。
这样,index.php 文件将简化到最简单的表达式
<?php #index.php require(__DIR__.'/../application.php'); $app->run();
application.php 本身仅由你的控制器组成。它通过包含 bootstrap.php
文件来包含配置
<?php #bootstrap.php require_once __DIR__.'/vendor/autoload.php'; $app = new Silex\Application(); // EXTENSIONS ... # pomm $app->register( new Pomm\Silex\PommServiceProvider(), array( 'pomm.class_path' => __DIR__.'/vendor/pomm', 'pomm.databases' => array( 'default' => array( 'dsn' => 'pgsql://user:pass@host:port/dbname', ))) );
PommServiceProvider 类接受以下参数
- pomm.class_name:这是要使用的服务类(可选)默认为
Pomm\Service
。给定的服务类必须扩展Pomm\Service
。- pomm.databases:一个格式为
'name' => array('dsn' => $dsn, 'class' => 'My\\Database\\Class')
的数据库数组。
扩展将为每个连接实例化数据库类,这意味着它不会打开连接。如果在连接中执行语句,则会打开连接。如果你想使用自己的数据库类,请提供其在 class
参数中的完整路径。默认情况下,此参数设置为 Pomm\Connection\Database
。
在上面的例子中,我们向自动加载器注册了一个 Model
命名空间,因此生成的文件将放置在 Model\DbName\SchemaName
命名空间中。
生成映射文件
创建以下脚本
<?php #generate_model.php require __DIR__.'/bootstrap.php'; $scan = new Pomm\Tools\ScanSchemaTool(array( 'schema' => 'YOUR SCHEMA', 'database' => $app['pomm']->getDatabase(), 'prefix_dir' => __DIR__.'/Model', )); $scan->execute();