I. 初始化环境

2. include_path设定

解压缩后将DoctrineORM-2.0.0目录下的Doctrine 放到include_path涉及的目录,放好后目录结构如下:

3. 建立项目布局

将tools\sandbox目录下的index.php复制到自己的项目目录下作为doctrine2的开端是一个比较好的实践。复制过来需要修改该文件的两处:

1).将

require '../../lib/Doctrine/Common/ClassLoader.php';

修改为

require 'Doctrine/Common/ClassLoader.php';

(因为前面已经将doctrine2的包放到了include_path涉及的目录)

2).将下面代码

$user = new User;

$address = new Address;

注释掉

4. 运行Index.php

php index.php 输出 Hello World!

II. 数据库操作

1. 修改数据库连接

index.php原有一处

$connectionOptions = array(

'driver' => 'pdo_sqlite',

'path' => 'database.sqlite'

);默认链接sqlite数据库,但是如果你的服务器没有enable它,或者向连接到mysql数据,请修改为:

$connectionOptions = array(

'dbname' => 'mydb',

'user' => 'root',

'password' => '',

'host' => '127.0.0.1',

'driver' => 'pdo_mysql',

);

(具体参数根据你的服务器配置做相应修改)

2. 建立实体文件到index.php的Entities目录下

这里以User为例:

namespace Entities;

/** @Entity @Table(name="users") */

class User {

/**

* @Id @Column(type="integer")

* @GeneratedValue(strategy="AUTO")

*/

private $user_id;

/** @Column(type="string", length=50) */

private $name;

private $address;

public function getUserId(){

return $this->user_id;

}

public function getName(){

return $this->name;

}

public function setName($name){

$this->name = $name;

}

}

3. 建立数据库schema

CREATE TABLE `users` (

`name` varchar(32) default NULL,

`user_id` int(11) NOT NULL auto_increment,

PRIMARY KEY (`user_id`)

);

4. 修改index.php.

1). 在index.php头部use前面建立的实体类

use Entities\User; //实际默认已经引用了该类.

2) 在index.php末尾增加如下代码

$user = new User;

$user->setName('Allen');

$em->persist($user);

$em->flush();

5. 重新运行index.php

查看数据库,看到如下结果

mysql> select * from users;

+-------+---------+

| name | user_id |

+-------+---------+

| Allen | 1 |

+-------+---------+

1 row in set (0.00 sec)

附件是项目代码,请参考

大小: 3.4 KB

分享到:

2010-05-09 11:50

浏览 4055

评论

doctrine2 mysql_Hello Doctrine2相关推荐

  1. php中求数据库两个数的和,php – Doctrine2和Zend框架中的多个数据库连接

    我不瘦,你可以将实体绑定到特定的连接,它在Doctrine 2架构中没有意义. 另一方面,你可以做的是拥有两个EntityManagers,每个都有不同的连接选项.您必须在业务逻辑中决定哪个实体由哪个 ...

  2. php query builder,php – Symfony2 – Doctrine2 QueryBuilder WHERE I...

    对于您的解决方案,您可以使用带有HAVING和GROUP BY子句的COUNT(DISTINCT) public function findByServices($services) { $qb = ...

  3. php 去除实体,php – 如何在学说中正确关闭实体管理器

    我在Doctrine2脚本中遇到了内存泄漏问题,这个问题通常是由一段代码消除内存问题造成的. 在我知道你可以(并且应该)清除实体管理器之前,每20次迭代我做了以下事情: if ($this->u ...

  4. 结合MongoDB开发LBS应用

    http://www.cnblogs.com/jifeng/p/4356052.html 然后列举一下需求: 1.实时性要高,有频繁的更新和读取 2.可按距离排序支持分页 3.支持多条件筛选(一个经纬 ...

  5. Symfony2Book04:Doctrine03-对象关系映射(ORM)

    Doctrine是一个基于PHP的对象关系映射(ORM),它构建在强大的数据库抽象层(DBAL)之上,透明地为PHP对象提供持久化. 你可以从官方文档中读到更多关于Doctrine ORM 的内容. ...

  6. 高级php平时的工作,【高级PHP开发工作内容|工作职责|高级PHP开发做什么】-看准网...

    职位要求 1.能非常熟练PHP开发和调试语言:并且在Python/Ruby/Perl语言上有更好经验:良好的编码风格习惯和测试习惯维持系统的质量: 2.乐于维持和提高团队的专业水平,甚至正面影响其他开 ...

  7. php的ddd,在MVC框架中实现DDD – PHP

    在mvc中,模型是一个层,它包含所有的域业务逻辑. 在域驱动设计中,业务逻辑可以分为各种构建块. 在域驱动设计域模型中. A domain model is a system of abstracti ...

  8. 转:PHP开发框架流行度排名:Laravel居首

    原文来自于:http://www.sitepoint.com/best-php-frameworks-2014/ Update: If you'd like to take part in the n ...

  9. 听 Fabien Potencier 谈Symfony2 之 《What is Symfony2 ?》

    Symfoy2 是什么? PHP世界里又一广受关注的web MVC框架? Fabien Potencier 却不这么说! Fabien Potencier这样定义Symfoy2 是个什么东西: 首先, ...

  10. PHP第十次实验总结,The Clean Architecture in PHP 读书笔记(十)

    laravel 这是clean architecture的第十篇,也是具体案例的第二篇,本篇会通过使用laravel框架,来开发我们的应用. 本文为系列文章的第十篇,完成的目录请查看Clean Arc ...

最新文章

  1. 新日光Q3收入亏损8400万美元缩水33.85%
  2. numpy a[...,:2]
  3. 三十二、R语言基本语法(下篇)
  4. 洛谷P1801 黑匣子 双堆套路的使用
  5. 中文转数字 java_java将阿拉伯数字转换为中文数字
  6. python汉诺塔运行程序_用python编写一个程序,得到汉诺塔的解决方案
  7. 【基础】算法时空复杂度【OI缩水版】
  8. java 多态 重载的区别_重写、覆盖、重载、多态几个概念的区别分析
  9. 超过130个你需要了解的vim命令
  10. java 毕向东_毕向东java视频目录
  11. max30102c语言程序,STM32驱动MAX30102源码
  12. 发布一款小软件:和讯博客助手-测试版- 0.3.0
  13. python获取四六级成绩单
  14. 360木马查杀后mysql数据不能启动
  15. 2012 年美国总统候选人政治献金 数据分析(numpy+pandas)
  16. 史上最健康的养胃时间表
  17. 求矩阵主对角线元素及副对角线元素之和
  18. vue遍历输出列表中以逗号隔开的字符串
  19. 王者荣耀坦克位思路和上分必读知识
  20. HDU2452 Navy maneuvers 记忆化搜索

热门文章

  1. 东华大学(C++)OJ题目收集(代码详解版)
  2. 麦客表单无法登录打开显示空白怎么办?
  3. 离散数学 (上)小结
  4. Q4营收突破20亿且连续四个季度盈利斗鱼驶入“后直播时代”快车道
  5. 真正的高手,都在自讨苦吃——数显之家快讯之【SHIO世硕心语】
  6. centos安装图形化界面及vnc-server连接
  7. Javascript的交互性
  8. 【HTML】HTML网页设计-----游戏网页设计
  9. Fluentd (td-agent) 日志处理
  10. Android:Content has been consumed