目前网上很多php框架
国内 thinkphp还是不错的 qeephp也不错,但是写程序时候要写太多代码
国外 我经常使用symfony,这个确实是一个非常好的框架,也很多自动化,优美的验证方式,自动form
比起我们国内那种别扭验证方式很有开放性。
但是感觉太自动了,有时候想手工弄下,还得自己去写一个插件
还有symfony第一次有点慢,不过插件多 doctrine实现了jquery操作方式
如:supply和books都是数据库表。
echo $supply->Books->classname;//自动取得Books中内容
echo $supply->Books->Supply->title; //反过来取supply中的内容
echo $supply->title;
echo $books->classname;
还有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
array("map"=>"hasOne","TargetModel"=>"booktype","localFiled"=>"typeid","targetFiled"=>"typeid")); var $maps;}?>