易截截图软件、单文件、免安装、纯绿色、仅160KB

PHP ORM框架Propel VS Doctrine


认识ORM其实最早源自一场争论,各个框架都声称具备良好的ORM实现,但是使
用后发现,如果仅仅是强制返回数据对象还声称自己是ORM的话,那就贻笑大方了。那只能说是伪ORM或是ORA(array)而已。很显然返回的对象除了
属性值外,还应该包括可执行方法,实现对数据的操作运用。
后来工作改用symfony
框架,该框架内置了对ORM框架Propel
和Doctrine

支持,symfony 1.2.*以前是采用propel作为默认ORM框架,symfony
1.3以后官方将默认ORM框架改为Doctrine。当然实际运用你可以自由切换,你也可以不用symfony直接在开发中采用Propel或
Doctrine。一番PK,最终在项目中采用了Doctrine作为默认ORM框架。
以下将对Propel和Doctrine的异同做一个简单对比,欢迎拍砖……
基本特性:
1)两者只需简单设置即可应用,支持常用CRUD操作;
2)两者均支持自动生成model,每个表生成两个model文件,也支持从原有数据库生成model;有些数据库数据类型转过来的属性类型可能不是完全一样,是一个最接近的类型;
3)支持数据有效验证和定义model关系;
4)支持单表继承,支持字段自动赋值;
5)支持主从复制;
6)Doctrine支持全文搜索
文档:
Doctrine的文档一直就比Propel要全面丰富,社区更活跃
使用方法:
Propel和Doctrine基本CRUD操作很类似,但是涉及条件操作时区别就比较大了
1)propel查询:
$criteria
= new
Criteria(
)
;
$criteria
->add
(
JobeetJobPeer::CREATED_AT
, time
(
)
- 86400
* 30
, Criteria::GREATER_THAN
)
;
$this
->jobeet_job_list
= JobeetJobPeer::doSelect
(
$criteria
)
;
2)doctrine查询:
$result = Doctrine_Query::create()->from("User")->where("name = 'caleng'")->excute();
明显可以看出Doctrine的连贯写法更加自然、更易阅读、更接近原生SQL。
性能:
Doctrine > Propel
关键字:orm、symfony
、doctrine
、propel


相关文档:

关于php性能调优的几条建议

最近在处理小鱼社区的开发过程,遇到程序的性能问题,在解决这个问题的时候提出几个建议:
1、处理while/foreach之类的循环要特别注意,因为这个循环可能是好几千次的,所以里面的每句语句都要注意执行速度,要精简。还有个不好的习惯一定要注意,不要在这个中写太长的程序,因为这可能让你在几百行的代码中迷失,慢慢地迷 ......

搭建Eclipse PHP开发环境

    搭建PHP开发环境:
    1、准备并安装下列软件:
    MySQL 5.1.30: http://dev.mysql.com/downloads/。
    Apache 2.2.14: http://httpd.apache.org/. 在安装过程中,会出现3个文本框,上面两个输入你的本机IP(如:127.0.0.1),最下面输入你的EMAIL ......

PHP音乐播放程序

在网上找到2段PHP音乐播放程序,有空再完善一下,写个功能比较齐全的
测试运行环境:WindowsXP+APMServ 5.2.6
在CoreAmp PHP5.3.1上面运行要么无结果,要么运行不正常。-/\-
1。这个例子功能比较强大,将php文件上传到含有mp3歌曲的目录后运行,程序会自动寻找mp3歌曲并生成有歌手专辑等信息能下载能试听的静态页面。< ......

php加入linux系统命令


假设php安装在/usr/local/php5/bin/php,初始在命令行执行PHP的时候要输入一长串的路径,eg:
$>/usr/local/php5/bin/php phpinfo.php
非常的麻烦,现在只需将php拷贝至usr/sbin目录即可直接使用php命令,eg:
$>cp /usr/local/php5/bin/php /usr/sbin/
$>php phpinfo.php
......

PHP部分常见算法


//1. 用户密码六位数,不能大于六位而不能小于六数,数字值正则为[0-9],请用PHP写出有几种可能性,并做暴力破解;
function dePassword($pwd) {
$tmp = array('000000', '555555', '999999');
for ($i = 0; $i < 3; $i++) {
if ($pwd == $tmp[$i]) return $tmp[$i];
}
return $pwd < $tmp[1] ? getPwd(0, $pwd ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号