- 1、本文档共53页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
itf14条码生成器 第14章生成器
itf14条码生成器 第14章生成器
第 14 章 - 生成器
很多程序基于存储在数据库里的数据并提供访问这些数据的界面。symfony能够自动完成根据Propel对象生成数据处理模块这样的重复任务。 如果模型定义的好,symfony甚至可以自动生成整个网站后台。 本章将会介绍symfony的两种生成器:脚手架生成器和管理生成器。其中后者依赖于一个特别的语法复杂的配置文件,所以这一章的大部分篇幅会用来介绍管理生成器的各种用法。基于模型生成代码
在web应用程序里,数据访问操作可以归结为以下几类:
?
?
?
?新增(Creation)一条记录取得(Retrieval)记录更新(Update)一条记录(并且修改它的字段)删除(Deletion)一条记录
这些操作很常见,它们有一个专门的缩写:CRUD。很多页面都可以简化成其中之一。例如,在论坛程序里,最新帖子列表就是一个取得记录的过程,回帖子是一个新增过程。
针对一个表的CRUD操作制作基本的动作(action)和模板在web程序里会经常出现。在symfony里,模型层包含的信息足够生成CRUD操作代码的需要,这样可以加快早期的后台界面开发。
所有的基于模型的代码生成任务都会建立整个模块,只要通过类似下面的一行symfony命令就可以完成:
symfony
代码生成任务包括propel-init-crud、propel-generate-crud和propel-init-admin。
脚手架与管理界面
开发应用程序的过程中,代码生成有两种不同的用途:
?脚手架是给定表CRUD操作所需的基本结构(动作与模板)。它的代码是最小化的,因为它需要成为后续开发的指导。它是起步的基础,经过修改后才能满足你的逻辑与表现的需求。脚手架大多用在开发阶段,用来提供数据库的web访问界面,建立一个原型,或者以此为基础制作一个与某个表相关的模块。
?管理界面是专门用于数据处理的界面,多用于后台管理。管理界面与脚手架的不同点是它的代码不是用来手动修改的。它们可以被定制,扩展或者通过配置或继承进行装配。它们的外观很重要,它需要有排序,分页,还有过滤功能。管理界面可以作为软件的成品交给客户。
symfony命令行用crud代表脚手架,用admin代表管理界面。
初始化或生成代码
symfony有两种生成代码的方式:通过继承(init)或者代码生成(generate)。你可以初始化一个模块,也就是建立空的继承自框架的类。这样可以避免动作(action)和模板的PHP代码被修改。如果你的数据结构还没最终确定或者你只需要一个快速的数据库接口来操作数据,这个功能很有用。运行时执行的代码不在你的应用程序里,而是在缓存里。这类生成任务的命令行任务名以 propel-init-开头。
初始化的动作(action)代码是空的。例如,一个初始化的article模块的代码可能会是这样:
class articleActions extends autoarticleActions
{
}
另一方面,你也可以生成动作(action)和模板的代码,这样可以修改它们。这样生成的模块不依赖于框架,并且不能被配置文件修改。这种生成任务的命令行任务名以propel-generate-开头。
由于脚手架是后续开发的基础,所以最好生成一个脚手架。另外,管理界面需要能够通过配置文件方便的修改,模型变化的情况下也要能够使用。所以管理界面只能够初始化。
数据模型的例子
本章的所有演示symfony生成器功能的例子都基于这个简单的例子,这个例子可能会让你回想起第8章。这就是那个有名的博客应用程序,包含Article和Comment两个类。例14-1是它的设计(schema)。
例 14-1 - 博客应用程序的schema.yml文件
propel:
blog_article:
_attributes: { phpName: Article }
id:
title: varchar(255)
content: longvarchar
created_at:
blog_comment:
_attributes: { phpName: Comment }
id:
article_id:
author: varchar(255)
content: longvarchar
created_at:
图
14-1 - 例子的数据模型
代码生成并不会对设计(schema)的建立有什么特别的要求。symfony会使用已有的设计(schema),解释它的属性并生成脚手架或管理界面。
TIP 学习本章要达到最好的效果,你需要跟着这些例子去做。如果你按照这些例子里的每一个步骤去做,你会更好的理解symfony生成
您可能关注的文档
最近下载
- (新版)道路交通运输安全管理培训课件.pptx VIP
- 人教版小学六年级上册数学教学反思全册.pdf
- 快速康复在骨科护理中的应用.pptx
- 雷达原理.ppt VIP
- 华大九天EDA工具使用说明-全国工业和信息化技术技能大赛-集成电路EDA赛项技术资料.doc
- 儿科护理学练习题.doc
- 黑龙江中医药大学2022-2023学年《细胞生物学》期末考试试卷(A卷)附参考答案.docx
- 部编版四年级语文上册期末测试卷(八套)(附答案).docx
- 辽宁省营口市2023-2024学年九年级上学期期末数学试题.pdf VIP
- 电大《学前儿童卫生与保健》课程实践二:课程相关新闻(或身边)事件发现与点评 .doc VIP
文档评论(0)