易截截图软件、单文件、免安装、纯绿色、仅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图片上传心得

在php中测试单个文件上传和在网上浏览了很多关于多文件上存,大多都是差不多一样的。只是上传多个文件用post传递时是数组传递,如<input type="file" name="pic[]" id="pic">而单个文见上传<input type="file" name="pic" id="pic">。
提交数据时,多个文件用foreach 来循环,其他限制和单个文件上传都是 ......

MySQL+PHP乱码解决 南三方

 MySQL+PHP产生乱码原因:
◆ MySQL数据库默认的编码是utf8,如果这种编码与你的PHP网页不一致,可能就会造成MySQL乱码;
◆ MySQL中创建表时会让你选择一种编码,如果这种编码与你的网页编码不一致,也可能造成MySQL乱码;
◆ MySQL创建表时添加字段是可以选择编码的,如果这种编码与你的网页编码不一致,也可能造成MySQ ......

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上载文件只能保存一小部分

<html>
<head>
  <title>Uploading...</title>
</head>
<body>
<h1>Uploading file...</h1>
<?php
    echo '<pre>';
    print_r($_FILES);
    echo '</pre>';
    if ($_F ......

PHP采用Pear::Pager实现分页


1、
首先去http://pear.php.net/package/Pager 下载 Pager包:Pager-2.4.8.tgz

2、
解压到自己的工作目录
3、
示例如下:
<?php
require_once('Pager/Pager.php');
$params = array(
'itemData' => $re, //要进行分页的结果数组
'perPage' => 12, //每页的记录数
'd ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号