Symfony1.4.11学习笔记(四):数据模型

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

在前面几篇中已经设置了环境、创建了项目、也设置好了虚拟主机,接下来就要进行核心部分的编程了。就编程来说最经典的就是MVC了,而一个好的框架更是可以把MVC的思想发挥得淋漓尽致,Symfony就是这样的好框架!在Symfony看来,MVC框架如下图所示:

 

 

这种模式将代码分离为3个层 :

  • 模型层(Model )定义业务逻辑(数据库属于这个层)。 symfony将与模型层关联的所有类和文件都放在lib/model 目录下。

  • 视图层(View )是与用户交互的层(模板引擎是这个层的一部分)。在symfony中,视图层主要由PHP模板组成。这些文件存储在不同的templates/ 目录中,当然这并不是一个很好地做法,因为PHP太灵活了,这会使很多人不知不觉得将业务逻辑写到这一层中。好在Symfony也意识到了这一点,在Symfony2中已经将Twig做为模板使用了。

  • 控制层(Controller )是一段代码,它从模型层读取数据传送给视图层,由视图层显示到客户端。先前我们看到来自用户的所有请求都由前端控制器(index.php 和 f rontend_dev.php )管理。这些前端控制器(front controllers)将实际工作交由动作(actions )处理,这些动作将被合理地组织到模块 (modules)中。

这一篇主要是学习Symfony如何进行“M”的,:)!

1、进行关系数据库的设计

由于本人比较喜欢使用工具进行设计,如MySQL WorkBench。本来的想法是从工具设计数据库,然后创建数据库,再使用php symfony doctrine:build-schema命令自动生成Schema文件,从而省略以下2-4步,但很遗憾,使用命令自动生成的Schema文件和数据库不一致,需要再做修改,而无法直接使用。还有个方法是使用johmue的Schema导出脚本,将MySQL WorkBench生成的mwb文件转成doctrains的schame文件,不过由于看上去有点复杂,所以没有去尝试,有兴趣的兄弟不妨一试。

2、就是选择ORM工具

在Symfony中支持两种基于PHP的ORM工具:Doctrains和Propel,我选择了Doctrains,原因很简单,Symfony 默认使用它!(其实我选择它是因为Symfony 在1.2时还默认使用Propel,而1.4却默认使用Doctraine,而在Symfony2中也默认使用Doctraine,所以为了以后升级顺利选择了Doctraine)。

3、配置数据库参数

这个很简单,可以直接在config/databases.yml中直接配置,也可以使用命令:

php symfony configure:database "mysql:host=localhost;dbname=jobeet" jobeet jobeet

或者直接在NetBeans上找到configure:database命令,然后在参数中输入 "mysql:host=localhost;dbname=jobeet" jobeet jobeet,点击运行,也可以达到同样的效果。(看到这里,大家对如何NetBeans中运行symfony命令 应该比较清楚了,所以 下面就偷个懒,直接写命令了 

4、编写Doctrains的Schema文件(YAML格式)

config/doctrine/schema.yml中直接编写YAML格式的文件

5、从Schema中构建模型文件

php symfony doctrine:build --model (使用
php symfony doctrine:build-model也行,这两个命令应该是等价的)

这个命令从config/doctrine/*.yml中读取Schema,然后将构建的模型文件被放置在lib/model/doctraine中。
注意:该命令不会影响lib/model/doctraine中的自定义类,只是替换lib/model/doctraine/base目录中的文件(这种处理方式真是优雅啊!)

6、生成SQL文件

php symfony doctrine:build --sql (也可使用等价命令
php symfony doctrine:build-sql)

从模型文件中生成SQL语句,该命令会从config/databases.yml文件中获得数据库的类型,然后生成经过优化的SQL语句。

7、生成数据表

php symfony doctrine:insert-sql

该命令连接数据库,并根据lib/model/doctrine/*.class.php文件生成数据表。

8、录入初始数据

首先生成初始数据,在data/fixtures/*.yml中直接编写与数据表同名的YAML格式文件。

然后运行下列命令

php symfony doctrine:data-load

这样就可以在数据库的表中插入初始数据了。                                                                                                                                                                                                                                                  本文转自 firehare 51CTO博客,原文链接:http://blog.51cto.com/firehare/585369,如需转载请自行联系原作者

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
10月前
|
缓存 安全 PHP
【PHP开发专栏】Symfony框架核心组件解析
【4月更文挑战第30天】本文介绍了Symfony框架,一个模块化且高性能的PHP框架,以其可扩展性和灵活性备受开发者青睐。文章分为三部分,首先概述了Symfony的历史、特点和版本。接着,详细解析了HttpFoundation(处理HTTP请求和响应)、Routing(映射HTTP请求到控制器)、DependencyInjection(管理依赖关系)、EventDispatcher(实现事件驱动编程)以及Security(处理安全和认证)等核心组件。
184 3
|
设计模式 前端开发 数据库
Django的简介安装与配置及两大设计模式1
Django的简介安装与配置及两大设计模式1
159 1
|
关系型数据库 MySQL 数据库
Django的简介安装与配置及两大设计模式2
Django的简介安装与配置及两大设计模式2
142 0
|
2月前
|
SQL 缓存 PHP
PHP框架详解 - symfony框架
Symfony框架凭借其灵活性、高性能和强大的社区支持,成为PHP开发领域的重要工具。无论是初学者还是资深开发者,都可以通过Symfony快速构建高质量的Web应用程序。通过深入理解Symfony的核心组件和最佳实践,开发者可以充分发挥其优势,提升开发效率和代码质量。
65 24
|
7月前
|
开发框架 自然语言处理 前端开发
|
8月前
|
测试技术 PHP 数据库
深入解析PHP框架:Symfony框架详解与应用
📚 Symfony框架深度解析:模块化设计提升开发效率,性能优越,灵活性高,支持MVC模式。探索控制器、路由、模板(如Twig)、服务容器、事件调度器等核心概念。还包括表单处理、数据库集成( Doctrine ORM)、安全组件、国际化支持及调试工具。使用Symfony CLI快速创建应用,内置PHPUnit测试支持。开始你的高质量Web开发之旅吧!
111 2
|
9月前
|
前端开发 PHP 数据库
PHP框架详解之Symfony框架
在现代Web开发中,PHP作为一种灵活且功能强大的编程语言,广泛应用于各种Web应用程序的开发中。为了提高开发效率、代码的可维护性和可扩展性,开发者通常会选择使用框架来构建应用程序。在众多PHP框架中,Symfony以其强大的功能和灵活性脱颖而出,成为开发者们的首选之一。本文将详细介绍Symfony框架,包括其历史、核心功能、组件、安装和使用方法,以及在实际开发中的应用案例。
94 2
|
8月前
|
设计模式 前端开发 PHP
PHP框架详解 - CodeIgniter 框架
PHP框架详解 - CodeIgniter 框架
|
存储 JSON 数据处理
最为常用的Laravel操作(1)-Eloquent模型
整理了 Laravel 框架 Eloquent 模型最常用的操作,包括一些常用的属性、方法,模型关联等。本系列共有 3 篇文章。
95 2
|
前端开发 JavaScript 开发者
封装库/工具库中重要概念之UI框架
UI(User Interface)框架是前端开发中十分重要的一部分,它提供了各种组件和样式,用于构建页面和用户界面。在前端开发中,封装库/工具库可以帮助我们更加高效地使用 UI 框架。
234 0