- 浏览: 350986 次
- 性别:
- 来自: 南宁
文章分类
最新评论
-
萌蜗牛:
我也用华为smproxy包发送短信,运行一会儿后总是间隔一段时 ...
半桶水开发 CMPP2.0 with Spring + JPA 2 -
萌蜗牛:
我也用华为smproxy包发送短信,运行一会儿后总是间隔一段时 ...
半桶水开发 CMPP2.0 with Spring + JPA 1 -
萌蜗牛:
我也用华为smproxy包发送短信,运行一会儿后总是间隔一段时 ...
半桶水开发 CMPP2.0 with Spring + JPA 3 -
sw970345363:
[b][/b]
jqGrid 表格demo -
二年级chuck:
哪里有Java的验证。
reCAPTCHA 学习
最近在看PHP的 rails式的框架 symfony,这是个整合的框架,ORM框架用的是 propel.基于xml配置的PHP ORM.
粗略的看了一下还是比较勥的.
官方文档
支持: 至少php 5.2.x
Lisense : lgpl v3
安装:
推荐使用pear 安装. 需要 phing 支持
从现有的数据库中迁移:
propel支持从现有的数据库结构中生成 schema.xml .可以使用 自带的引擎
propel-gen ./ reverse
或者 cropel
propel-gen ./ creole
需要一个配置文件 build.properties
迁移时可以使用
propel-gen ./ sql
来迁移数据库结构
当然也可以使用
propel-gen ./ datadump
将数据导出来
详细说明请看 这里
---------------------------------我是分割线----------------------------
配置:
类似hibernate,propel也需要一个映射的配置文件 schema.xml
查看它的DTD
根节点
看一个简单的例子
schema.xml
运行propel的时候需要另一个配置文件 runtime-conf.xml
更多配置说明
---------------------------------我是分割线----------------------------
使用:
终于到使用这个方便的框架的时候了,所有操作都和hibernate非常相似
首先在使用的脚本前加载库,可以放在你的应用的启动器里头
一些常用的操作: C.R.U.D 引用
粗略的看了一下还是比较勥的.
官方文档
支持: 至少php 5.2.x
Lisense : lgpl v3
安装:
推荐使用pear 安装. 需要 phing 支持
//添加更新源 pear channel-discover pear.phpdb.org pear channel-discover pear.phing.info //安装propel生成器,类似hibernate pear install --alldeps phpdb/propel_generator //安装运行支持库 pear install --alldeps phpdb/propel_runtime
从现有的数据库中迁移:
propel支持从现有的数据库结构中生成 schema.xml .可以使用 自带的引擎
propel-gen ./ reverse
或者 cropel
propel-gen ./ creole
需要一个配置文件 build.properties
propel.project = 项目名称 # The Propel driver to use for generating SQL, etc. propel.database = mysql # This must be a PDO DSN propel.database.url = mysql:dbname=test propel.database.user = root # propel.database.password =
迁移时可以使用
propel-gen ./ sql
来迁移数据库结构
当然也可以使用
propel-gen ./ datadump
将数据导出来
详细说明请看 这里
---------------------------------我是分割线----------------------------
配置:
类似hibernate,propel也需要一个映射的配置文件 schema.xml
查看它的DTD
根节点
<database name="bookstore" defaultIdMethod="native"> </database>
看一个简单的例子
schema.xml
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?> <!-- 配置数据库名 --> <database name="bookstore" defaultIdMethod="native"> <!-- 配置实体对应的表 --> <table name="book" description="Book Table"> <!-- 配置实体熟悉对应的列 --> <column name="book_id" type="integer" primaryKey="true" autoIncrement="true" required="true" description="Book Id"/> <column name="title" type="varchar" size="255" required="true" description="Book Title"/> <column name="isbn" type="varchar" size="24" required="true" phpName="ISBN" description="ISBN Number"/> <column name="publisher_id" type="integer" required="true" description="Foreign Key for Publisher"/> <column name="author_id" type="integer" required="true" description="Foreign Key for Author"/> <!-- 配置实体对应的关系 这里是one to one--> <foreign-key foreignTable="publisher"> <reference local="publisher_id" foreign="publisher_id"/> </foreign-key> <foreign-key foreignTable="author"> <reference local="author_id" foreign="author_id"/> </foreign-key> </table> <table name="publisher" description="Publisher Table"> <column name="publisher_id" type="integer" required="true" primaryKey="true" autoIncrement="true" description="Publisher Id"/> <column name="name" type="varchar" size="128" required="true" description="Publisher Name"/> </table> <table name="author" description="Author Table"> <column name="author_id" type="integer" required="true" primaryKey="true" autoIncrement="true" description="Author Id"/> <column name="first_name" type="varchar" size="128" required="true" description="First Name"/> <column name="last_name" type="varchar" size="128" required="true" description="Last Name"/> </table> </database>
运行propel的时候需要另一个配置文件 runtime-conf.xml
<?xml version="1.0" encoding="ISO-8859-1"?> <config> <!-- 如果安装了 pear Log 可以注销这部分. 用来保存pear的错误 <log> <type>file</type> <name>/path/to/prople.log</name> <ident>propel-bookstore</ident> <level>7</level> </log> --> <propel> <!-- 配置数据源 --> <datasources default="bookstore"> <datasource id="bookstore"> <!-- this ID must match <database name=""> in schema.xml --> <adapter>sqlite</adapter> <!-- sqlite, mysql, myssql, oracle, or pgsql --> <connection> <dsn>sqlite2:/path/to/bookstore.db</dsn> <!-- the PDO connection DSN for database --> </connection> </datasource> </datasources> </propel> </config>
更多配置说明
---------------------------------我是分割线----------------------------
使用:
终于到使用这个方便的框架的时候了,所有操作都和hibernate非常相似
首先在使用的脚本前加载库,可以放在你的应用的启动器里头
// 设置domain类所在的文件夹 这里假设在build/classes里面. set_include_path("/path/to/bookstore/build/classes" . PATH_SEPARATOR . get_include_path()); require_once 'propel/Propel.php'; Propel::init("/path/to/bookstore/build/conf/bookstore-conf.php");
一些常用的操作: C.R.U.D 引用
include_once 'build/class/Author.php'; //新建 $author = new Author(); $author->setFirstName("Jack"); $author->setLastName("London"); $author->save(); //获取, AuthorPeer: AuthorPeer 相当域pojo的域类,包含了curd的静态方法, 是自动生成的 $author = AuthorPeer::retrieveByPK(1); //查询 $c = new Criteria(); $c->add(AuthorPeer::FIRST_NAME, "Karl"); $c->add(AuthorPeer::LAST_NAME, "Marx", Criteria::NOT_EQUAL); $authors = AuthorPeer::doSelect($c); //或 查询 $c = new Criteria(); $cton1 = $c->getNewCriterion(AuthorPeer::FIRST_NAME, "Leo"); $cton2 = $c->getNewCriterion(AuthorPeer::LAST_NAME, array("Tolstoy", "Dostoevsky", "Bakhtin"), Criteria::IN); // combine them $cton1->addOr($cton2); // add to Criteria $c->add($cton1); //直接使用SQL $con = Propel::getConnection(DATABASE_NAME); $sql = "SELECT books.* FROM books WHERE NOT EXISTS (SELECT id FROM review WHERE book_id = book.id)"; $stmt = $con->prepare($sql); $stmt->execute(); $books = BookPeer::populateObjects($stmt); //删除 $author = AuthorPeer::retrieveByPK(1); AuthorPeer::doDelete($author); //或者 $author->delete();
发表评论
-
reCAPTCHA 学习
2009-08-03 21:29 6001最近在帮朋友写一下小的申请页面,里头有用到验证码来防止恶意注册 ... -
silex 汉化文件
2009-06-03 22:03 1255今天看了一下新闻介绍的silex 这个项目 看起来样子不错, ... -
CakePhp phpThumb Compenet
2009-05-07 10:40 2197参照了一下官网的国际友人的一篇帖子修改的 请先将phpthu ... -
cacti安装笔记
2009-04-07 10:45 2384今天同事装cacti有些问题,让我帮忙装,顺便记一下笔记 我 ... -
在OSX下安装php oracle instanclient
2009-03-12 13:54 1445项目需要用php + oracle 在本机调试需要装orac ... -
补充一个jqgrid的demo php后台
2009-02-11 09:28 10356之前写了一个,感觉后台代码不是很好理解,再发一个吧 09-03 ... -
Mac apache2 mod_fcgid 权限问题
2009-02-03 11:20 1928呃,原来一直被这个组合的 403问题折磨,文件夹权限都正确.反 ... -
刷公司日志 php 脚本
2009-01-21 16:41 1308#!/usr/bin/env php /** * 自动 ... -
mac下用macport 安装lighttpd + php +fastcgi + freetds笔记
2009-01-06 19:45 25081.安装Macports 2.更新port sudo port ... -
MySQL数据库版本控制 ---ruckusing
2008-12-01 08:27 1954最近在做一个项目的时候偶然遇到这个这个 ruckusing 按 ... -
phptelnet for cakephp
2008-11-20 15:16 2002最近有用到在PHP telnet到远程的服务器上校验用户密码的 ... -
搞定osx下的freetds
2008-10-18 13:51 1495在OSX下开发PHP+Mssql是需要有freetds的 先 ... -
Xdebug的远程调试搞明白了
2008-10-17 22:39 12920琢磨了1天终于给搞明白了 懒得自己编译的话下面有编译好的包 ... -
PHP 5.3的新特点
2008-08-08 02:08 1096原文 :http://www.iteye.com/news/3 ... -
一个PHP动态数据库基础类
2008-08-14 02:52 1096参考:http://www.ibm.com/developer ... -
Php.ini 配置(中文)
2008-08-20 01:47 1447原文:http://lamp.linux.gov.cn/Web ... -
PHP-ExcelReader 安装&使用
2008-09-16 08:29 10520原文:http://sourceforge.net/docma ... -
兼容PHP4的json_Encode
2008-09-16 08:23 2500忘了从哪里弄来的了 if (!function_exis ... -
超强php的firebug插件
2008-09-16 08:22 1851这个的主要作用是输出php的调试信息哦.先看看截图 Fire ... -
一个PHP动态数据库基础类
2008-09-16 08:18 1557参考:http://www.ibm.com/developer ...
相关推荐
然而,集成Propel-Eloquent也可能带来一些挑战,如性能和兼容性问题,因为两个ORM系统可能会在某些方面存在冲突。因此,你需要权衡利弊,确保选择最适合项目的解决方案。 总结起来,"Laravel开发-propel-eloquent...
"Laravel开发-propel-laravel"这个主题涉及到的是将Propel ORM(对象关系映射)与Laravel框架整合的过程。Propel ORM是另一个开源项目,它允许开发者使用面向对象的方式来操作数据库,而无需关注底层SQL的细节。 ...
9. **版本管理**:Propel-1.0.0beta1表明这是该框架的一个早期版本,可能包含一些实验性的特性和功能。随着时间的发展,Propel不断更新,引入更多改进和优化。 在实际开发中,Propel通常与MVC(模型-视图-控制器)...
和 SLIM 框架的代码生成器Propel 是一个简单的 PHP ORM,可以从数据库结构中自动生成复杂的模型SLIM 是一个小型 PHP 框架,可简化 REST API 的设计和实现。 AngularJS 是一个具有双重绑定和关注点分离的 JavaScript ...
- **Propel ORM**: 整合了Propel ORM,这是一个强大的对象关系映射器,可以显著提高数据库交互效率。 - **Creole**: 用于数据库抽象层,提供了一致的数据库交互接口。 - **Mojavi**: 用于MVC模型层,增强了模型层的...
- PEAR Propel:PHP5的对象关系映射(ORM)框架。 - Zend Framework:PHP5的全栈开发框架。 - Qcodo:PHP5的MVC框架,带有CRUD代码生成器。 - SAJAX:模块化的Ajax开发工具。 - Smarty:PHP的MVC模板引擎,分离...
在PHP中,有许多流行的ORM库,例如 Doctrine、Eloquent(Laravel框架的一部分)、Propel 和 RedBeanPHP 等。这些ORM库提供了数据模型的定义、查询构造器、事务处理、关系管理等功能。例如,Doctrine支持使用YAML或...
- **PEAR Propel**: PHP5的对象关系映射(ORM)框架。 - **Zend Framework**: 官方支持的全功能PHP开发框架。 - **Qcodo**: 包含MVC架构和CRUD代码生成的PHP5框架。 - **SAJAX**: 使创建Ajax应用变得简单的模块...
- **简介**:Propel 是另一个流行的 ORM 框架。 - **用途**:同样用于简化数据库操作,提高开发效率。 - **特点**:提供代码生成工具,可以自动生成数据库相关的代码。 ### 14. PHPExcel - **简介**:PHPExcel 是一...
7. **数据库操作**:虽然Ding框架本身可能不包含完整的ORM(对象关系映射)工具,但其灵活的设计可以方便地与其他PHP ORM库集成,如Doctrine或Propel,以实现数据库操作。 8. **模板引擎(Template Engine)**:...
在PHP中,常见的ORM框架有: 1. **Doctrine**:Doctrine是PHP中最受欢迎的ORM之一,它提供了一个强大的实体管理器,支持SQL子查询、事务处理、事件监听等特性。 Doctrine还包含了一个用于命令行操作的工具,方便...
12. **Propel** - 另一个ORM框架,Propel旨在解决面向对象语言与关系型数据库之间的不匹配问题,它提供了一种机制,将数据库表映射到PHP类,从而简化了数据的持久化和检索过程。 13. **Outlet** - 一个用于对象关系...
3. **Propel**:一个基于PHP5的对象关系映射框架,提供了一种灵活的方式来管理和操作数据库数据。 4. **Outlet**:另一个ORM实现,为PHP5提供了一个简单的数据持久化解决方案。 #### PDF生成类库 1. **FPDF**:一...
2. **PHP Propel**:PHP Propel是一个开源的PHP ORM框架,它自动生成数据库访问层代码,简化了数据库操作。 3. **JavaScript到HTML 5 ORM**:ImplEL是这个领域的实现,将PHP Propel的ORM功能拓展到了前端,让...
- Propel:PHP5的对象关系映射框架。 - Outlet:另一个ORM工具,简化数据库操作。 7. **PDF生成**: - FPDF:纯PHP类库,可用于生成PDF文档。 8. **Excel操作**: - php-excel:简单易用的Excel文件生成类。 ...
- Propel:ORM(对象关系映射)工具,连接业务对象和数据库操作。 - Phing:Propel的命令行接口,用于自动化构建任务。 所有这些包都被集成到Symfony中,并且它们各自的许可证可能不同。例如,pake和lime由Symfony...
Symfony项目是扩展性极强的开发框架,集成了Propel ORM和其他开源项目代码,为开发者提供了强大的数据库抽象层和MVC模型层支持。不过,它对PHP5以上版本的依赖以及实现某些任务的复杂性,使得它可能不适合初学者。 ...
在本章中,我们将重点关注Symphony框架中基于对象/关系映射(ORM)的模型组件——Propel。 Propel是一个PHP的ORM库,它允许开发者使用面向对象的方式来操作数据库,而无需直接编写SQL语句。通过ORM,对象与数据库中...
Propel是一个PHP5的ORM框架,源自Apache Torque项目。它提供了一种数据库抽象层,允许开发者以面向对象的方式处理数据库操作。通过简单的XML配置,Propel可以自动生成数据库模型类,增强了代码的灵活性和可移植性,...