满足schema.yml
二六年七月五日·发表的弗朗索瓦Zaninotto
直到今天,推动symfony中的集成意味着您ob娱乐下载的数据库模式必须在XML文件中定义schema.xml
.的数据库模式第一个项目教程看起来是这样的:
<?xml version="1.0" encoding="UTF-8"?> <数据库名="propel" defaultIdMethod="native" noxsd="true"> <表名="weblog_post" phpName="Post"> <列名="id" type="integer" required="true" primaryKey="true" autoIncrement="true" /> <列名="title" type="varchar" size="255" /> <列名=" extract " type="longvarchar" /> <列名="body" type="longvarchar" /> <列名="created_at" type="timestamp" /> <表> <列名="id" phpName=" integer" required="true"primaryKey="true" autoIncrement="true" /> <列名="post_id" type="integer" required="true" /> <列名="author" type="varchar" size="255" /> <列名="email" type="varchar" size="255" /> <列名="body" type="longvarchar" /> <列名="created_at" type="timestamp" />
我们认为,对于一个试图尽可能简单的框架来说,这不是我们能做到的最好的。事实上,很多symfony初学者特别担心它的配置,就是因为这个XML文件。ob娱乐下载他们中的一些人甚至在那个时候放弃了,因为他们认为学习模式文件的新语法对于第一次尝试来说太难了。
因此,我们使写入数据库模式成为可能YAML格式.你知道我们喜欢这种格式:易于阅读和书写,简单易懂,而且有趣。例如,第一个项目教程模式(很快会在文档中更新)现在看起来是这样的:
propel: weblog_post: _attributes: {phpName: Post} id: title: varchar(255)摘录:longvarchar body: longvarchar created_at: weblog_comment: _attributes: {phpName: Comment} id: post_id: author: varchar(255) email: varchar(255) body: longvarchar created_at:
仅此而已。保存到schema.yml
在项目中存档配置/
文件夹,然后运行
$ ob娱乐下载symfony推进-构建-模型
...和前面一样生成了Propel模型类。
当然,为了让它简单,我们添加了一些魔法。如果您遵循约定,就不需要编写太多的配置(这是否让您想起了什么?)例如,如果你的主键被调用id
,那么symfob娱乐下载ony将自动使其成为一个自增整数。如果字段以_id
,那么symfob娱乐下载ony将识别外键,并按照您的期望丰富模式。字段名为created_at
或updated_at
当然,是那种类型吗时间戳
,所以您不需要指定它。I18N表将被识别为这样,只要它们的名称以_i18n
.
很快就会有关于它的完整文档,但在那之前,我们邀请您尝欧宝官网下载app试这个新功能并给我们您的反馈。自版本1577开始在SVN中继中使用。
发表在
评论
评论截止。
为了确保评论保持相关性,旧帖子将被关闭。
您自己的XML文件也将被处理,就像以前一样。
> column name="id" type="integer" required="true" autoincrement="true" primarykey="true" />
> column name="type" type="integer" inheritance="single">
>继承键="1" class="Customer" extends="Person"/>
>继承key="2" class="Delivery" extends="Person"/>
& lt; / column>
> column name="name" type="varchar" size="255" />
<column name="created_at" type="timestamp" />
<column name="updated_at" type="timestamp" />
& lt; / table>
这里有一个问题,如何实现驱动继承与这个yaml描述?这可能吗?