首页 > 后端开发 > php教程 > 怎么在php中使用实体类

怎么在php中使用实体类

怪我咯
发布: 2023-03-11 20:56:02
原创
4010 人浏览过

php 是弱类型语言,通常情况下,是不去定义变量类型的。但是如果是JAVA或者.NET的开发人员转做PHP会不适应。或者是自己想自己写一个类似于 hibernate的orm框架的时候,没有实体类的概念,就不那么好控制了,那么简单讲下,怎么在php中实现实体类的概念。

首先建一个基本Model类

<?php
class BaseModel{
	private $_tableName;
	
	public function construct($tableName=""){
		$this->_tableName=$tableName;
	}
	
	public function getTableName(){
		return $this->_tableName;
	}
	
	public function getFieldsArray(){
		try {			
			$obj=json_decode(json_encode($this),true);  //此处可能会影响效率,但是为了去除类中的private属性,目前是这么做的
			$fieldsArray=array();
			foreach ($obj as $k=>$v){
				$fieldsArray[]=$k;
			}
			return $fieldsArray;
		} catch (Exception $e) {
			throw new Exception($e,3, $previous);
		}
	}
	
	
	public function find($condition=null){
		try {
			$sql="select ".implode(",",$this->getFieldsArray())." from ".$this->_tableName." ";
			if($condition){
				$sql.=" where ".$condition;
			}else {
				$obj=json_decode(json_encode($this),true);
				$fieldsArray=array();
				foreach ($obj as $k=>$v){
					if($v!=null && $v!=""){
						$fieldsArray[]=$k."=&#39;".$v."&#39;";
					}
				}
				if(count($fieldsArray)>0){
					$sql.=" where ".implode(" and ", $fieldsArray);
				}
			}
			return $sql;	
		} catch (Exception $e) {
			throw new Exception($e,3, $previous);
		}
	}
}
?>
登录后复制

下面来建一个对应数据库中表的将在项目中使用的类

<?php
class MemberModel extends BaseModel{
	public $m_ID;
	public $m_Account;
	public $m_Pwd;
	public $m_TEL;
	public $m_UserID;
	public $m_ChannelID;
	public $m_Status;
	public $m_CreateTime;
	public $m_UpdateTime;
	
}
?>
登录后复制

下面就是实体类如何去使用的了 

首次看controller

	public function actionSelectMember(){
		try {
			$member=new MemberModel("T_Member");
			$member->m_Account=GetValue::getParam("Account");
			$member->m_Pwd=GetValue::getParam("Pwd");
			$result=MemberService::selectMember($member);
			if($result){
				Yii::app()->session["MemberID"]=$result["m_ID"];
				echo IMReturnStr::success();
			}else {
				echo IMReturnStr::GetInfo(false,"用户名或者密码错误");
			}
		} catch (Exception $e) {
			echo IMReturnStr::failure();
		}
	}
登录后复制

service 

<p style="margin-bottom: 7px;">	public static function selectMember(MemberModel $member){<br/>		try {<br/>			return MemberDao::selectMember($member);<br/>		} catch (Exception $e) {<br/>			throw new Exception($e,4);<br/>		}<br/>	}</p>
登录后复制

dao

	public static function selectMember(MemberModel $member){    //这里就是为什么要写类型了,写了类型可以拿到定义的类中的方法,否则虽然也可以直接写,但是没有自动提示,如果用的方法比较多,就很蛋疼了。
		try {
			$sql=$member->find();
			return YIISqlOper::queryRow($sql);
		} catch (Exception $e) {
			throw new Exception($e,4);
		}
	}	
登录后复制

以上是怎么在php中使用实体类的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板