设置创建属性
在项目目录(projects/infor96/)下创建文件 build.properties,最为简单的内容是:
# 项目名
propel.project = infor96
# 数据库类型
propel.database = mysql
设置运行时属性
在项目目录下创建 runtime-conf.xml 文件,内容为:
<?xml version="1.0" encoding="ISO-8859-1"?>
<config>
<log>
<ident>propel-infor96</ident>
<level>7</level>
</log>
<propel>
<datasources default="infor96">
<datasource id="infor96">
<adapter>mysql</adapter>
<connection>
<phptype>mysql</phptype>
<hostspec>localhost</hostspec>
<database>infor96</database>
<username>infor96</username>
<password>infor96</password>
</connection>
</datasource>
</datasources>
</propel>
</config>
可以看出,这个文件其实就是设置运行的时候需要用到的连接数据库参数,数据库名、用户、密码等。当生成 PHP 类文件时,这个文件会被自动转换成 projects/infor96/build/conf/runtime-conf.php,此文件路径在 Propel 初始化方法 Propel :: init() 中当参数传递。
生成 PHP 类文件
一切准备就绪,开始生成 PHP 类文件的工作了:
$ cd /usr/local/propel-generator
$ cp build.properties-sample build.properties
$ phing -Dproject=infor96
自动生成工作由 phing 来完成,如果没有安装 phing 的话,可以通过运行下边命令来安装:
pear install http://phing.info/pear/phing-current.tgz
在 phing 生成 PHP 类文件的过程中,可以看到很多输出:
Buildfile: /usr/local/propel-generator/build.xml
propel-project-builder > projectcheck:
propel-project-builder > configure:
[echo] Loading project-specific props from ./projects/infor96/build.properties
propel-project-builder > main:
[phing] Calling Buildfile '/usr/local/propel-generator/build-propel.xml' with target 'main'
propel > main:
[phingcall] Calling Buildfile '/usr/local/propel-generator/build-propel.xml' with target 'sql'
propel > check-run-only-on-schema-change:
propel > sql-check:
propel > sql:
[echo] +————————————————————————+
[echo] | |
[echo] | Generating SQL for YOUR Propel project! |
[echo] | |
[echo] +————————————————————————+
[phingcall] Calling Buildfile '/usr/local/propel-generator/build-propel.xml' with target 'sql-template'
propel > sql-template:
[propel-sql] Processing: schema.xml
[propel-sql] Target database type: mysql
[propel-sql] Target package:
[propel-sql] Using template path: /usr/local/propel-generator/templates
[propel-sql] Output directory: /usr/local/propel-generator/projects/infor96/build/sql
[propel-sql] Generating SQL tables for database: infor96
[propel-sql] Writing to SQL file: /usr/local/propel-generator/projects/infor96/build/sql/schema.sql
[propel-sql] + user
[phingcall] Calling Buildfile '/usr/local/propel-generator/build-propel.xml' with target 'om'
propel > check-run-only-on-schema-change:
propel > om-check:
propel > om:
[echo] +————————————————————————+
[echo] | |
[echo] | Generating Peer-based Object Model for |
[echo] | YOUR Propel project! |
[echo] | |
[echo] +————————————————————————+
[phingcall] Calling Buildfile '/usr/local/propel-generator/build-propel.xml' with target 'om-template'
propel > om-template:
[propel-om] Target database type: mysql
[propel-om] Target package: infor96
[propel-om] Using template path: /usr/local/propel-generator/templates
[propel-om] Output directory: /usr/local/propel-generator/projects/infor96/build/classes
[propel-om] Processing: schema.xml
[propel-om] Processing Datamodel : schema.xml
[propel-om] - processing database : infor96
[propel-om] + user
[propel-om] -> BaseUserPeer
[propel-om] -> BaseUser
[propel-om] -> UserMapBuilder
[phingcall] Calling Buildfile '/usr/local/propel-generator/build-propel.xml' with target 'convert-props'
propel > convert-props:
[echo] +———————————————————————+
[echo] | |
[echo] | Converting project properties file to an |
[echo] | array dump for run-time performance. |
[echo] | |
[echo] +———————————————————————+
[capsule] Using templatePath: /usr/local/propel-generator/templates
[capsule] Generating to file /usr/local/propel-generator/projects/infor96/build/conf/infor96-conf.php
[capsule] Parsing control template: conf/Control.tpl
BUILD FINISHED
Total time: 3.0861 seconds
