Home > Backend Development > PHP Tutorial > 新型ORM queryphp框架简介和教程入门解决办法

新型ORM queryphp框架简介和教程入门解决办法

WBOY
Release: 2016-06-13 13:44:11
Original
1127 people have browsed it

新型ORM queryphp框架简介和教程入门
目前网上很多php框架
国内 thinkphp还是不错的 qeephp也不错,但是写程序时候要写太多代码
国外 我经常使用symfony,这个确实是一个非常好的框架,也很多自动化,优美的验证方式,自动form
比起我们国内那种别扭验证方式很有开放性。
但是感觉太自动了,有时候想手工弄下,还得自己去写一个插件
还有symfony第一次有点慢,不过插件多 doctrine实现了jquery操作方式

能坚持使用下来只有js框架jquery jquery也比较小,google也给CDN了,所以自己服务器流量也小了

于是过年后几天顺手开发了queryphp框架,一种类拟jquery操作方式来写php程序。
如:supply和books都是数据库表。
echo $supply->Books->classname;//自动取得Books中内容
  echo $supply->Books->Supply->title; //反过来取supply中的内容
  echo $supply->title;
  echo $books->classname;

还支持hasOne hasMany ManyhasMany方式关联

还有PATH_INFO也支持
testframework.php?controller=default&action=index
testframework.php/default/index
可以使用apache重写 去掉testframework.php文件

下面贴些教程

这个一个微型框架
可以实现MVC方式

支持path_info方式

控制动作在router目录下面
/default/index
调用router目录下面defaultRouter.class.php文件
取得类后调用index方式
J()是index方法跳转
R()是由控制
C()是生成类
M()是数据库类模型 数据库链接在model.function.php里面设置

只包括framework.php文件就可以了。

path_info方式
testframework.php?controller=default&action=index
testframework.php/default/index

可以使用apache重写 去掉testframework.php文件

可以自己设置路由规则
C("router")->ruleMaps("login",'/login/:id', array('controller' => 'auth', 'action' => 'login'));
那么会配匹testframework.php/login/5555
这样可以使用$_GET['id']得到5555;
'controller' => 'auth', 'action' => 'login'
是控制器和方法

其它设置
C("router")->ruleMaps('logout','/logout', array('controller' => 'auth', 'action' => 'logout'));
C("router")->ruleMaps('signup','/signup', array('controller' => 'auth', 'action' => 'signup'));
C("router")->ruleMaps('profile','/profile/:action', array('controller' => 'profile')); // will call controller "Profile" with dynamic method ":action()"
C("router")->ruleMaps('users','/users/:id', array('controller' => 'users'), array('id' => '[\d]{1,8}')); // define filters for the url parameters


数据库数据模型
使用方法

构造一个数据库表模型
$beian=M('beian');

自动填充aaa bbb字段 $_POST中也要有这两个字段
//$beian->autoField(array("aaa","bbbb"));
$data中填充
$beian->autoField($data,array("aaa","bbbb"));
取两个主键值,排序为升序
//print_r($beian->get(53,54,'asc'));

赋值给字段。
$beian->userid=2;
$beian->language=1;


打印已经赋值字段
//print_r($beian->data);

保存,再显示刚才插入的ID
//echo $beian->save()->pkid();

设置主键然后删除
//echo($beian->pkid(69)->delete());

取得表的行数
//echo $beian->Totalnum();

select显示两个字段,Arraylist为数组
//print_r($beian->getAll("userid,language")->record); //改为record了

查询两个userid和language为1和5,fetch为取值
print_r($beian->whereUseridAndLanguage('1','5')->fetch()->record);

取得两个主键,显示三个字段,升序
//print_r($beian->get('confid,userid,language',53,54,'asc')->record);

输出主键值
//echo $beian->confid;

更新某个表的字段累加1
$beian->colupdate('tplid');

可以在model目录下,*****Model.class.php文件里面添加方法。

生成模型后可以马上可以使用
print_r($booktype=M("booktype")->getAll());


更新J()跳函数
可以支持各个路由之间跳转和传递参数
参数为array
J("show") 为转到本路由方法show
J("show",array("id"=>555)) 为转到本路由方法show 并传递参数ID过去
J(R("member"),"list") 将跳转到member路由上面并调用list方法 如果没有list那么默认为index方法,具体框架中设置的默认方法。
J("member")
J("member","list",array("userid"=>999))


hasOne hasMany ManyhasMany ORM(Object-Relational Mapper) 对象关系影射有三种可以在"map"=>"hasOne"这里更改
模型文件自动生成

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><?php class supplyModel extends supplyBase{ 
  var $mapper=array("Books"=>array("map"=>"hasOne","TargetModel"=>"booktype","localFiled"=>"typeid","targetFiled"=>"typeid"));
  var $maps;
}
?>
 <div class="clear">
                 
              
              
        
            </div>
Copy after login
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template