Maison >développement back-end >tutoriel php >Comment utiliser les classes d'entités en php
php est un langage faiblement typé. Normalement, les types variables ne sont pas définis. Mais si vous êtes développeur JAVA ou .NET, vous ne pourrez pas vous adapter à PHP. Ou lorsque vous souhaitez écrire un framework ORM similaire à hibernate, sans le concept de classes d'entités, ce n'est pas si facile à contrôler. Permettez-moi de parler brièvement de la façon d'implémenter le concept de classes d'entités en PHP.
Construisez d'abord une classe Model de base
<?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."='".$v."'"; } } if(count($fieldsArray)>0){ $sql.=" where ".implode(" and ", $fieldsArray); } } return $sql; } catch (Exception $e) { throw new Exception($e,3, $previous); } } } ?>
Ensuite, créez une classe qui correspond à la table de la base de données et qui sera utilisée dans le projet
<?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; } ?>
Ci-dessous, voici comment utiliser les classes d'entités
Regarder le contrôleur pour la première fois
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); } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!