Zend Framework
快速学用 框架工具 原理类似,性能功能差别。熟悉框架的流程.优缺点.能尽快上手进行开发 上手步骤:
一.结构
二.流程
三.配置
四.DB
五.Catch
六.常用函数
一.熟悉Zend Framework的结构
1.application:{
configs:配置文件
controllers:控制器
models:模型
views:视图
}
2.public:{
网站入口和一些静态资源(如css,js,image)
}
3.library:{
类库:如Zend
}
二.流程
1.控制器文件:***Controller.php, class:***Controller extends Zend_Controller_Action
2.模型文件:***.php, class:Application_Model_***
3.视图文件:***.phtml
三.配置
一些基本配置,框架基本配置,数据库配置
[production]
webhost = www.example.com
database.adapter = pdo_mysql
database.params.host = db.example.com
database.params.username = dbuser
database.params.password = secret
database.params.dbname = dbname
四.DB数据库操作
1.增 inser
2.删 delete
3.改 update
4.查 select
五.catch:
Zend Framework的PHP编码规范
1. 概述... 2
1.1. 文档主要内容... 2
1.2. 目标... 2
2. PHP文件格式要求... 2
2.1. 一般要求... 2
2.2. 缩排... 2
2.3. 行最大字符数... 2
2.4. 行结束符... 3
3. 命名规范... 3
3.1. 类的命名... 3
3.2. 接口类的命名... 4
3.3. 文件命名... 4
3.4. 函数与方法的命名... 4
3.5. 变量命名... 5
3.6. 常量命名... 5
4. 编码风格... 6
4.1. PHP代码定界符... 6
4.2 字符串书写风格... 6
4.3. 数组... 7
4.4. 类... 8
4.5. 函数与方法... 9
4.6. 控制语句... 11
4.7. 内部文档化
1. 概述
1.1. 文档主要内容
PHP开发规范 指导和建议
PHP文件格式要求
命名规范
编码风格规范
代码内文档化要求
1.2. 目标
编码规范对于项目都是很重要的,多人协作时良好的编码规范意味着代码高质量、较少bug,易维护
2. PHP文件格式要求
2.1. 对于只包含PHP代码的文件,不使用PHP结束标签(”?>”), PHP语法并不要求必须这么做,但去掉这个结束标签,可以避免尾部的空白字符意外输出,造成不必要的影响。
虽然在PHP里可以通过 __HALT_COMPILER() 来包含任意的二进制数据,但在本规范里禁止这么做,只有在某些安装了特殊脚本的情况下才允许这么做。
2.2. 缩排时使用4个SPACE字符(键),不要使用TAB字符(键)。
2.3. 行最大字符数 每行不要超过80个字符,即,在实际开发过程中每行的代码尽量不要超过第80列这个边界,稍微超过也可以,PHP代码每行最大字符数是120。
2.4. 行结束符 采用UNIX文本文件标准,即每行以“换行符(LF)”结束,在ASCII码中,换行符是的十进制值为10,十六进制值为0x0A。
不要使用Macintosh系统的标准:以回车符(CR,十六进制值是0x0D)为行结束符
也不要使用Windows系统的标准:以回车/换行(CRLF,0x0D, 0x0A)为行结束符
3. 命名规范
3.1. 类的命名
Zend Framework引入了一种层级类命名方法,通过类的名称映射到该文件实际存储目录。Zend Framework的根目录是"Zend/",类文件都按一定目录层次分别保存。
类的名称只能包括字母和数字,但不推荐使用数字。下划线只能用于替换路径分隔符的情况,比如文件名"Zend/Db/Table.php"会映射到类的名称"Zend_Db_Table"。
如果类的名称由多个单词组成,那么每个单词的首字母都必须大写,其他字母小写,例如类名"Zend_PDF"是不允许的,应该命名为"Zend_Pdf"。
由Zend公司发布的类,其名称总是以"Zend_"开头,其相应的文件保存在层级目录"Zend/"中。
规范的类命名的例子:
Zend_Db
Zend_View
Zend_View_Helper
在项目开发中类的命名 只有Zend公司(或参与Zend Framework开发的合作伙伴公司)发布的类,才能使用”Zend_”命名
3.2. 接口类的命名规则与其他类的命名规则类似 必须以单词"Interface"结尾,举例如下:
Zend_Log_Adapter_Interface
Zend_Controller_Dispatcher_Interface
3.3. 文件命名 只可以使用 字母 数字 下划线和短划线("-"),不允许使用空格和其他特殊字符。
只要是包含有PHP代码的文件都必须以".php"为文件名后缀,
Zend/Db.php
Zend/Controller/Front.php
Zend/View/Helper/FormRadio.php
正如上面的例子,文件命名与类命名必须一致。
3.4. 函数与方法的命名
函数名只能包含字母和数字字符,不允许使用下划线,虽然允许使用数字,但并不提倡。
函数名必须以小写字母开始。如果函数名包含多个单词,那么除了第一个单词,其他单词的首字母都大写,骆驼法则("studlyCaps"或"camelCaps")。
为增强代码的可读性,允许命名一定程度的详细和冗长。
合乎规范的函数命名的例子:
filterInput()
getElementById()
widgetFactory()
面向对象编程,对象的存取器 以"get"或"set"为前缀;当使用设计模式时,比如singleton或工厂模式(factory),方法的命名通常会包含模式的名称,这样可增强代码可读性, 采用的设计模式 一目了然 ,本规范不允许有全局范围的函数(即游离于对象之外的函数),这些函数应该包装进一个静态类
3.5. 变量命名 只能包含字母和数字字符,不允许使用下划线(对于下面的情况例外),同样,数字也是允许但不提倡的。
对于声明为private或protected的类成员变量,变量名必须以一个下划线开头, 是变量命名规则中唯一允许使用下划线的情况,而声明为public的成员变量则不允许使用下划线。
与函数命名规则(参看3.3节)一致,变量命名必须以小写字母开始,而之后的单词,遵循首字母大写的骆驼法则(camelCaps)。
为了增强可读性,变量命名需要一定程度的详细和冗长,并且要有实际意义。类似于$i、$n这样的变量命名,除了用于较少代码的循环语句,在其他情况下是不允许的。
如果循环语句超过20行代码,那么用于循环的索引变量也应该使用有意义的名字
3.6. 常量命名
常量名允许使用字母和数字字符,与函数命名和变量命名等不同的是,他也允许使用下划线,对数字的使用也没有限制。
常量的所有字母都必须大写。常量必须使用const指示符定义为类成员,在全局范围使用define定义常量虽然允许,但也不提倡。
4. 编码风格
4.1. PHP代码定界符 PHP代码定界符必须使用完整的标准的PHP定界标签: 禁止使用短标签。
4.2 字符串书写风格
4.2.1 纯文字字符串 对于纯文字字符串(不包含变量替代),必须使用单引号包含:$a = 'Example String';
4.2.2. 含有引号的字符串 对于包含有引号的纯文字字符串,允许使用双引号来包含,这种方式多用于SQL语句的书写:
$sql = "SELECT `id`, `name` from `people` WHERE `name`='Fred' OR `name`='Susan'";书写方法比使用转义符加引号更加清晰,可读性强。
4.2.3. 含有变量替代的字符串 对于含有变量替代的字符串,以下两种方式都是允许的:
$greeting = "Hello $name, welcome back!";
$greeting = "Hello {$name}, welcome back!";
为了书写的连贯性,以下方式是不允许的:
$greeting = "Hello ${name}, welcome back!";
4.2.4. 字符串连接
多个字符串可以使用点操作符(".")连接,但点操作符前后必须各有一个空格,目的是增强可读性 $company = 'Zend' . 'Technologies';
当使用点操作符连接多个字符串时,可以把语句拆分成多行来增强可读性,对于这种情况,每个后续行应该使用空格填充,使点操作符刚好对齐在等号下面:
$sql = "SELECT `id`, `name` FROM `people` "
. "WHERE `name` = 'Susan' "
. "ORDER BY `name` ASC ";
4.3. 数组
4.3.1. 数字索引数组
数组的索引不允许使用负数。索引数组可以使用任何非负整数开始,但并不提倡这么做,建议每个数组都应该使用索引0开始。
当使用array关键字定义索引数组时,每个逗号后面都应该跟随一个空格字符,目的是增强可读性:$sampleArray = array(1, 2, 3, 'Zend', 'Studio');
使用array关键字定义索引数组的语句可以拆成多行,这种情况下每个后续行都应该使用空格填充头部,使每行以如下的形式保持对齐:
$sampleArray = array(1, 2, 3, 'Zend', 'Studio',
$a, $b, $c,
56.44, $d, 500);
4.3.2. 关联数组
当使用array关键字定义关联数组时,建议把语句拆分成多行,对于这种情况,应该使用空格使每一行的键和值分别对齐:
$sampleArray = array('firstKey' => 'firstValue','secondKey' => 'secondValue');