2 Star 0 Fork 0

狂奔的蜗牛. / soter-docs

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
code_specification.html 4.60 KB
一键复制 编辑 原始数据 按行查看 历史
arraykeys 提交于 2017-07-19 11:41 . No commit message
<!DOCTYPE html>
<html>
<head>
<title>Soter代码规范</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="js/inc.js"></script>
</head>
<body>
<fieldset>
<legend>Soter代码规范</legend>
<ol>
<li><b class="text_strong">Soter使用PSR-0命名规范同时兼容PSR-4命名规范。</b></li>
<li>变量名,方法名,函数名,参数名,采取驼峰命名方式。比如userId</li>
<li>命名采用英文完整单词不能缩写,取最接近功能的单词。比如:userScoreLevel</li>
<li>常量名,静态变量名,采取全部大写加下划线分割多个单词的命名方式。比如:MAX_ID</li>
<li><b>使用PSR-0命名规范同时:</b><br/>
<b class="text_strong">classes类目录下的:文件名、类名、文件的位置,三者是对应的,大小写敏感。</b><br>
1.比如有文件:classes/Controller/User.php<br>
那么User.php文件里面的类名就应该是:Controller_User<br>
2.比如有文件:classes/Controller/Vip/User.php<br>
那么User.php文件里面的类名F就应该是:Controller_Vip_User,也就是下划线代表着文件夹的分隔符。<br>
3.比如有文件:classes/Model/User.php<br>
那么User.php文件里面的类名就应该是:Model_User<br>
4.比如有文件:classes/MyLib/User.php<br>
那么User.php文件里面的类名就应该是:MyLib_User<br>
</li>
<li><b class="text_strong">类库目录library/classes下的文件名和类名是对应的。</b><br>
比如有文件:library/classes/User.php<br>
那么User.php文件里面的类名就应该是:User<br>
</li>
<li><b>使用PSR-4命名规范同时:</b><br/>
<p>
术语「类」是一个泛称;它包含类,接口,traits 以及其他类似的结构;
<br/>完全限定类名应该类似如下范例:
<br/>\< NamespaceName >(\< SubNamespaceNames >)*\< ClassName >
<br/>完全限定类名必须有一个顶级命名空间(Vendor Name);
<br/>完全限定类名可以有多个子命名空间;
<br/>完全限定类名应该有一个终止类名;
<br/>下划线在完全限定类名中是没有特殊含义的;
<br/>字母在完全限定类名中可以是任何大小写的组合;
<br/>所有类名必须以大小写敏感的方式引用;
<br/>当从完全限定类名载入文件时:
<br/>在完全限定类名中,连续的一个或几个子命名空间构成的命名空间前缀(不包括顶级命名空间的分隔符),至少对应着至少一个基础目录。
<br/>在「命名空间前缀」后的连续子命名空间名称对应一个「基础目录」下的子目录,其中的命名 空间分隔符表示目录分隔符。子目录名称必须和子命名空间名大小写匹配;
<br/>终止类名对应一个以 .php 结尾的文件。文件名必须和终止类名大小写匹配;
</p>
<b class="text_strong">classes类目录下的:文件名、类名、文件的位置,三者是对应的,大小写敏感。</b><br>
1.比如有文件:classes/Controller/User.php<br>
那么User.php文件内容应该是:
<pre class="brush:php">
&lt;?php
namespace Controller;
class User extends \Soter_Controller {
public function do_echo() {
\Sr::dump(__CLASS__);
}
}
</pre>
2.比如有文件:classes/Controller/Vip/User.php<br>
User类是:\Controller\Vip\User ; User.php类文件内容应该是如下:<br>
<pre class="brush:php">
&lt;?php
namespace Controller\Vip;
class User extends \Soter_Controller {
public function do_echo() {
\Sr::dump(__CLASS__);
}
}
</pre>
3.比如有文件:classes/Model/User.php<br>
User类是:\Model\User ; User.php类文件内容应该是如下:<br>
<pre class="brush:php">
&lt;?php
namespace Model;
class User extends \Soter_Model {
public function demo() {
return "demo";
}
}
</pre>
4.比如有文件:classes/MyLib/User.php<br>
User类是:\MyLib\User ; User.php类文件内容应该是如下:<br>
<pre class="brush:php">
&lt;?php
namespace MyLib;
class User {
public function demo() {
return "demo";
}
}
</pre>
</li>
<li>代码采用tab缩进,一个tab占用8个英文半角空格宽度</li>
</ol>
</fieldset>
<script src="js/inc.foot.js"></script>
</body>
</html>
1
https://gitee.com/snail/soter-docs.git
git@gitee.com:snail/soter-docs.git
snail
soter-docs
soter-docs
master

搜索帮助