类名称:

驼峰式 首字母大字

class PointController

class PointRatioController

公共成员方法:

驼峰式 首字母小写

public function getPointById()

私有成员方法:

驼峰式 首字母小写

private function _getPointById()

公共成员变量:

public $users

public $userName

私有成员变量:

private $_user

private $_userName

常量:

所有字母大写,单词间用下划线分隔

const POS_HEAD = 0;

代码编写规范

1. 多使用配置文件,避免硬编码

2. 多采用设计模式(工厂模式,单例模式等)

3. 使用注释

a)   对类名进行注释

b)   方法名进行注释(包括每个方法的参数与返回值)

c)   对常量进行注释

d)   对成员属性进行注释(public $userName; // 用户名)

e)   配置文件进行注释

Yii框架MVC模式:

model

与数据持久层的交互

必要方法:

model();      // 静态方法 返回模型的实例

tableName(); // 返回数据库表名

rules();      // 表单的各种验证规则(用户名,email)

relations();  // 表关系配置(n:1 or 1:1 or n:n)

attributeLabels();  // 表字段国际化处理

search();           // 默认搜索方法

… 其他增删改查验证方法

controller

主要处理用户的请求与响应

必要方法:

filters();           // 方法过滤

accessRules();       // 动作访问控制

actions();           // 动作action配置

… 其他处理请求与响应的方法

view

采用Yii自带的组件模块

service

对于业务逻辑比较复杂的系统,在增加业务逻辑层(service);程序员自由发挥的地方;

主要处理比较复杂的业务逻辑

命名规范:UsersService

执行流程:[注:service层用于逻辑比较复杂的时候]

views->controller->service->model à用户请求

model->service->controller->views à系统响应

数据库访问

1. 数据访问对象(DAO)

复杂sql语句查询时使用

$user = Yii::app()->db->createCommand()

->select('id, username, profile')

->from('tbl_user u')

->join('tbl_profile p', 'u.id=p.user_id')

->where('id=:id', array(':id'=>$id))

->queryRow();

2. ActiveRecord

简单sql语句查询及添加修改删除时使用

Admin::model()->find(‘id=:id’, array(‘:id’=>id));

注:查询条件使用占位符的方式

需求整理

???

Yii常用方法

CHtml

Static Methods

For CActiveRecords:

activeCheckbox($m, $a);

activeCheckboxList($m, $a, $data);

activeDropDownList($m, $a, $data);

activeFileField($m, $a);

activeHiddenField($m, $a);

activeId($m, $a);

activeLabel($m, $a);

activeLabelEx($m, $a);

activeListBox($m, $a, $data);

activePasswordField($m, $a);

activeRadioButton($m, $a);

activeRadioButtonList($m, $a, $data);

activeTextArea($m, $a);

activeTextField($m, $a);

CFormModel

Properties

attributes, errors, safeAttributeNames, scenario, validators

Public Methods Events

addError($a, $error);

afterValidate($scenario);

attributeLabels();

beforeValidate($scenario);

hasErrors($a);

rules();

validate($s='', $a=NULL);

onAfterValidate($e);

onBeforeValidate($e);

CDbConnection

Properties

active, autoCommit, autoConnect, charset, commandBuilder,

connectionStatus, connectionString, currentTransaction, lastInsertId,

password, schema, schemaCachingDuration, timeout, username

For CForm

checkbox($n, $v);

checkboxList($n, $v, $data);

dropDownList($n, $c, $data);

fileField($n, $v);

hiddenField($n, $v);

label($n, $v);

listBox($n, $v, $data);

passwordField($n, $v);

radioButton($n, $c);

radioButtonList($n, $m, $data);

textArea($n, $v);

textField($n, $v);

Yii (extends YiiBase)

Static Methods

app() /*gets the application instance */

t($category, $message, $params=array ( ),$source=NULL, $language=NULL);

import(string $alias, boolean $forceInclude=false);

log($msg, $level='info', $category='application');

CController (extends CBaseController)

Properties

action, defaultAction, id, layout, module, pageTitle

Methods

actions(); /*list of external actions*/

beginClip($id, $properties=array ( ));

endClip($idclip=’’);

beginWidget($className, $properties=array ( ));

endWidget(string $id='');

missingAction(string $actionID);

redirect($url, $terminate=true, $statusCode=302);

refresh($terminate=true,$anchor='');

render($view, $data=NULL, $return=false);

renderPartial($v, $d=NULL,$r=false, $processOutput=false);

widget( $className, $properties=array ( ));

CWebApplication (extends CApplication)

Core application components

errorHandler, securityManager, statePersister,

cache, messages, coreMessages

Properties

cache, charset, components, db, language, locale,

name, modules, securityManager, sourceLanguage

Methods

getNumberFormatter(); getDateFormatter();

CWidget (extends CBaseController)

Properties

controller, id, owner, viewPath

Methods

init(); run(); render($view, $data=NULL, $return=false);

Public Methods

beginTransaction();

createCommand($sql);

open();

close();

init();

quoteColumnName($name);

quoteTableName($name);

quoteValue($name);

CHttpRequest

Properties

baseUrl, browser, cookies, hostInfo, isAjaxRequest,

isPostRequest, isSecureConnection, pathInfo,

preferredLanguage, queryString, requestUri,

serverName, serverPort, url, urlReferrer, userAgent,

userHost, userHostAddress

Methods

sendFile($fn, $c, $mime=NULL, $t=true);

CActiveRecord

Properties

attributes, errors, isNewRecord, primaryKey, scenario

Static Methods

model($className='CActiveRecord');

Public Methods Events

count($c=’’, $p=array ( ));

delete();

deleteAll($c='', $p=array ( ));

find($c='', $p=array ( ));

findAll($c='', $p=array ( ));

findBySql($sql, $p=array ( ));

hasErrors($a);

update($a=NULL);

updateAll($a, $c='', $p=array ( ));

updateByPk($pk, $a, $c='', $p=array ( ));

validate();

onAfterDelete($e);

onAfterInsert($e);

onAfterSave($e);

onAfterValidate($e);

onBeforeDelete($e);

onBeforeSave($e);

onBeforeValidate($e);

CDbCommand

Properties

connection, text

Public Methods

bindParam($n, $v, $dt=NULL, $length=NULL);

bindValue($n, $v, $dataType=NULL);

execute();

query();

queryAll($fetchAssociative=true);

queryColumn();

queryRow($fetchAssociative=true);

queryScalar();

YII编码规范的更多相关文章

  1. PSR : php编码规范

    诸王混战 关于开发标准这块,可以说一直都是风格迥异,各家都有各家的玩法,民间更是个人玩个人的.目前我们国内比较出名的几个框架(Yii,Laravel) 都已经支持Composer并且加入了PHP-FI ...

  2. Android的编码规范

    一.Android编码规范 1.学会使用string.xml文件 在我看来,当一个文本信息出现的次数大于一次的时候就必须要使用string.xml 比如一个保存按钮 , 不规范写法: <Butt ...

  3. PHP 高级编程(1/5) - 编码规范及文档编写

    PHP 高级程序设计学习笔记20140612 软件开发中的一个重要环节就是文档编写.他可以帮助未来的程序维护人员和使用者理解你在开发时的思路.也便于日后重新查看代码时不至于无从下手.文档还有一个重要的 ...

  4. 【原】JAVA SE编码规范

    /* * 编码规范: * 1.所有的命名遵循"见名知意"的原则 * 2.所有的命名不允许使用汉字或拼音 * 3.Java的工程命名建议使用小写,比如:oa.crm.cms... * ...

  5. 浅谈Android编码规范及命名规范

    前言: 目前工作负责两个医疗APP项目的开发,同时使用LeanCloud进行云端配合开发,完全单挑. 现大框架已经完成,正在进行细节模块上的开发 抽空总结一下Android项目的开发规范:1.编码规范 ...

  6. PHP编码规范PSR-2

    .note-content { font-family: "Helvetica Neue", Arial, "Hiragino Sans GB", STHeit ...

  7. Objective-C开发编码规范【转载】

    概要 Objective-C是一门面向对象的动态编程语言,主要用于编写iOS和Mac应用程序.关于Objective-C的编码规范,苹果和谷歌都已经有很好的总结: Apple Coding Guide ...

  8. 前端编码规范之CSS

    "字是门面书是屋",我们不会去手写代码,但是敲出来的代码要好看.有条理,这还必须得有一点约束~ 团队开发中,每个人的编码风格都不尽相同,有时候可能存在很大的差异,为了便于压缩组件对 ...

  9. 前端编码规范之JavaScript

    上次浅谈了下关于CSS的编码规范,大部分童鞋持赞同意见,仍存在一些童鞋不太理解这些规范的意义. 如果是个人或者小作坊开发,其实这些所谓的编码规范也没啥意思,因为大家写好的代码直接就给扔到网上去了,很少 ...

随机推荐

  1. MEF初体验之八:过滤目录

    当在使用子容器的时候,基于某些具体标准来过滤目录可能是重要的.例如,基于部件的创建策略来过滤是很常见的.下面的代码片段演示了如何构建这种特别方法: var catalog = new Assembly ...

  2. asp.net web api KnownTypeAttribute

    项目里用到了继承,在序列化的时候遇到了问题. 源代码 public class Segment { public SegmentType Type { get; set; } public strin ...

  3. Sqlserver 高并发和大数据存储方案

    Sqlserver 高并发和大数据存储方案 随着用户的日益递增,日活和峰值的暴涨,数据库处理性能面临着巨大的挑战.下面分享下对实际10万+峰值的平台的数据库优化方案.与大家一起讨论,互相学习提高!   ...

  4. Docker简介(转)

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...

  5. linux安装QQ

    下载链接:WineQQ2013SP6-20140102-Longene 下面步骤一定要依照顺序来,我用的系统是 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQ ...

  6. ABP领域层——仓储(Repositories)

    ABP领域层——仓储(Repositories) 点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之11.ABP领域层——仓储(Repositories) ABP是 ...

  7. Nyoj 修路方案(次小生成树)

    描述 南将军率领着许多部队,它们分别驻扎在N个不同的城市里,这些城市分别编号1~N,由于交通不太便利,南将军准备修路. 现在已经知道哪些城市之间可以修路,如果修路,花费是多少. 现在,军师小工已经找到 ...

  8. 网络资源(7) - JAX-WS视频

    2014_08_25 http://v.youku.com/v_show/id_XNjMzNDcyMTk2.html 基于JAX-WS编程模型的WebService 1. @WebService注释类 ...

  9. Rightmost Digit(快速幂)

    Description Given a positive integer N, you should output the most right digit of N^N.               ...

  10. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(16)-类库架构扩展以及DLL文件生成修改和用户的简单添加

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(16)-类库架构扩展以及DLL文件生成修改和用户的简单添加 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) ...