准确使用1.2版本和2.0版本的学说?

Iko*_*kon 4 php doctrine

Doctrine 1.2和2.0有什么区别,如何在它们之间进行选择.

gpi*_*ino 11

学说2

  • 这是推荐版本
  • 随附symfony 2.0
  • 快于1.2
  • 没有神奇的方法
  • 使用实体管理器(datamapper like)
  • 组件松散耦合
  • 需要PHP 5.3(使用命名空间)
  • 相对较新的项目

学说1.2

  • 更容易学习
  • 适用于php <5.3
  • 配有symfony 1.3/1.4
  • 魔术方法(ActiveRecord之类的)
  • 成熟和测试的项目
  • 减少打字

学说2.0

$user = new User;
$user->setName('Mr.Right');
$em->persist($user);
$em->flush();
Run Code Online (Sandbox Code Playgroud)

学说1.2

$user = new User;
$user->setName('Mr.Right');
$user->save();
Run Code Online (Sandbox Code Playgroud)

总而言之,imho Doctrine 2.0具有更陡峭的学习曲线,即使它表现更好(聪明地使用交易).我发现ActiveRecord持久性模型和魔术方法相当笨拙所以我会选择2.0,但这是我的个人观点,Doctrine 1.2仍然非常好(尤其是小型项目,其中2.0可能过度杀伤)

也可以看看

Doctrine 2.0准备好了吗?

Datamapper与ActiveRecord

  • 模式语法不同(yml/xml/php),因此您必须重建模型和集合类,此外,您必须设置并使用实体管理器来使用持久层(数据库交互)和查询构建器.我认为大约70%的代码会改变.我建议坚持使用1.2代替遗留代码,并仅将2.0用于新项目. (2认同)