蓝冰大侠 发表于 2011-12-21 08:44

我的框架:控制器


               
<ul style="margin-left:.0743in;direction:ltr;unicode-bidi:embed;margin-top:
0in;margin-bottom:0in"><p style="margin:0in;font-size:10.0pt"><span style="font-family:SimSun" lang="zh-CN">所有的控制器存放在</span><span style="font-family:Calibri" lang="en-US">
controller </span><span style="font-family:SimSun" lang="zh-CN">目录下</span></p><p style="margin:0in;font-family:SimSun;font-size:10.0pt">&nbsp;</p><p style="margin:0in">&lt;?php<br>/**<br>&nbsp;* 首页控制器<br>&nbsp;*<br>&nbsp;*/<br>class CHome extends SController {<br><br>&nbsp;&nbsp;&nbsp; /**<br>&nbsp;&nbsp;&nbsp; &nbsp;* 首页显示动作<br>&nbsp;&nbsp;&nbsp; &nbsp;*<br>&nbsp;&nbsp;&nbsp; &nbsp;* @param unknown_type $request<br>&nbsp;&nbsp;&nbsp; &nbsp;* filter: today/hot/past 今日团购/最火团购/往期团购<br>&nbsp;&nbsp;&nbsp; &nbsp;*/<br>&nbsp;&nbsp;&nbsp; public function index(SRequest $request) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //取首页配置信息<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $config = SConfig::application('home');<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $filter = $request-&gt;get('filter');<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $share = $request-&gt;get('share');<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if($filter != 'hot' and $filter != 'past'){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $filter = 'today';<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $layout = $filter == 'today' ? $config['layout'] : 3; //列数<br><br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if($layout == 1){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $lines = $config['lines_1']; //行数<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }else{<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $lines = $config['lines_3'];<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br></p><p style="margin:0in;font-family:SimSun;font-size:10.0pt">&nbsp;</p><div style="direction:ltr">
<table valign="top" style="direction:ltr;
border-collapse:collapse;border-style:solid;border-color:#A3A3A3;border-width:
1pt" border="1" cellpadding="0" cellspacing="0">
<tbody><tr>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:.6673in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-family:Calibri;font-size:10.0pt" lang="en-US">1</p>
   </td>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:4.7736in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-size:10.0pt"><span style="font-family:SimSun" lang="zh-CN">要有类注释</span><span style="font-family:Calibri" lang="en-US">,</span><span style="font-family:SimSun" lang="zh-CN">说明此控制器主要管理的范围</span></p>
   </td>
</tr>
<tr>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:.6673in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-family:Calibri;font-size:10.0pt" lang="en-US">2</p>
   </td>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:4.7736in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-size:10.0pt"><span style="font-family:SimSun" lang="zh-CN">所有的控制器继承</span><span style="font-family:Calibri" lang="en-US">SController</span></p>
   </td>
</tr>
<tr>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:.6673in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-family:Calibri;font-size:10.0pt" lang="en-US">3</p>
   </td>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:4.7736in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-size:10.0pt"><span style="font-family:SimSun" lang="zh-CN">所有的控制器类名</span><span style="font-family:Calibri" lang="en-US"> </span><span style="font-family:SimSun" lang="zh-CN">以</span><span style="font-family:Calibri" lang="en-US">C </span><span style="font-family:SimSun" lang="zh-CN">开头</span><span style="font-family:Calibri" lang="en-US"><span style="mso-spacerun:yes">&nbsp;
   </span></span><span style="font-family:SimSun" lang="zh-CN">再以驼峰方式</span></p>
   </td>
</tr>
<tr>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:.6673in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-family:Calibri;font-size:10.0pt" lang="en-US">4</p>
   </td>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:4.7736in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-size:10.0pt"><span style="font-family:SimSun" lang="zh-CN">每个</span><span style="font-family:Calibri" lang="en-US">Action(</span><span style="font-family:SimSun" lang="zh-CN">动作</span><span style="font-family:
   Calibri" lang="en-US">) </span><span style="font-family:SimSun" lang="zh-CN">要有方法注释</span></p>
   </td>
</tr>
<tr>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:.6673in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-family:Calibri;font-size:10.0pt" lang="en-US">5</p>
   </td>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:4.7736in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-size:10.0pt"><span style="font-family:SimSun" lang="zh-CN">类中</span><span style="font-family:Calibri" lang="en-US">,</span><span style="font-family:SimSun" lang="zh-CN">非动作方法必须指明</span><span style="font-family:Calibri" lang="en-US">Private<span style="mso-spacerun:yes">&nbsp;&nbsp; </span></span></p>
   </td>
</tr>
<tr>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:.6673in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-family:Calibri;font-size:10.0pt" lang="en-US">6</p>
   </td>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:4.7736in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-size:10.0pt"><span style="font-family:SimSun" lang="zh-CN">如果动作需要获取前端传递的参数</span><span style="font-family:Calibri" lang="en-US">,</span><span style="font-family:SimSun" lang="zh-CN">参数必须是</span><span style="font-family:Calibri" lang="en-US">SRequest </span><span style="font-family:SimSun" lang="zh-CN">类型</span><span style="font-family:
   Calibri" lang="en-US"> ,</span><span style="font-family:SimSun" lang="zh-CN">且要在注释中说明每个参数</span></p>
   </td>
</tr>
<tr>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:.6673in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-family:Calibri;font-size:10.0pt" lang="en-US">7</p>
   </td>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:4.7736in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-family:SimSun;font-size:10.0pt">有些动作不需要传递任何参数</p>
   </td>
</tr>
</tbody></table>
</div></ul>

<p style="margin:0in">&nbsp;</p>

<ul style="margin-left:.0743in;direction:ltr;unicode-bidi:embed;margin-top:
0in;margin-bottom:0in"><p style="margin:0in;font-family:SimSun;font-size:10.0pt">可用的方法</p><p style="margin:0in;font-family:SimSun;font-size:10.0pt">&nbsp;</p><div style="direction:ltr">
<table valign="top" style="direction:ltr;
border-collapse:collapse;border-style:solid;border-color:#A3A3A3;border-width:
1pt" border="1" cellpadding="0" cellspacing="0">
<tbody><tr>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:.6673in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-family:Calibri;font-size:10.0pt" lang="en-US">1</p>
   </td>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:.959in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-family:Calibri;font-size:10.0pt" lang="en-US">ajaxOk</p>
   </td>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:3.5673in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-size:10.0pt"><span style="font-family:SimSun" lang="zh-CN">处理前端</span><span style="font-family:Calibri" lang="en-US">Ajax</span><span style="font-family:SimSun" lang="zh-CN">请求时</span><span style="font-family:
   Calibri" lang="en-US">,</span><span style="font-family:SimSun" lang="zh-CN">返回一个正确状态以及相关数据</span></p>
   </td>
</tr>
<tr>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:.6673in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-family:Calibri;font-size:10.0pt" lang="en-US">2</p>
   </td>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:.959in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-family:Calibri;font-size:10.0pt" lang="en-US">ajaxError</p>
   </td>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:3.5673in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-size:10.0pt"><span style="font-family:SimSun" lang="zh-CN">处理前端</span><span style="font-family:Calibri" lang="en-US">Ajax</span><span style="font-family:SimSun" lang="zh-CN">请求时</span><span style="font-family:
   Calibri" lang="en-US">,</span><span style="font-family:SimSun" lang="zh-CN">返回一个错误状态以及提示信息</span></p>
   </td>
</tr>
<tr>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:.6673in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-family:Calibri;font-size:10.0pt" lang="en-US">3</p>
   </td>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:.959in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-family:Calibri;font-size:10.0pt" lang="en-US">promptOk</p>
   </td>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:3.5673in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-size:10.0pt"><span style="font-family:SimSun" lang="zh-CN">显示一个成功信息页面</span><span style="font-family:Calibri" lang="en-US">,</span><span style="font-family:SimSun" lang="zh-CN">并跳转到指定页面</span></p>
   </td>
</tr>
<tr>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:.6673in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-family:Calibri;font-size:10.0pt" lang="en-US">4</p>
   </td>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:.959in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-family:Calibri;font-size:10.0pt" lang="en-US">promptError</p>
   </td>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:3.5673in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-size:10.0pt"><span style="font-family:SimSun" lang="zh-CN">显示一个错误提示页面</span><span style="font-family:Calibri" lang="en-US">,</span><span style="font-family:SimSun" lang="zh-CN">并跳转到指定页面</span></p>
   </td>
</tr>
<tr>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:.6673in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-family:Calibri;font-size:10.0pt" lang="en-US">5</p>
   </td>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:.959in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-family:Calibri;font-size:10.0pt" lang="en-US">back</p>
   </td>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:3.5673in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-size:10.0pt"><span style="font-family:SimSun" lang="zh-CN">显示一个错误提示页面</span><span style="font-family:Calibri" lang="en-US">,</span><span style="font-family:SimSun" lang="zh-CN">并跳到上一页</span></p>
   </td>
</tr>
<tr>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:.6673in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-family:Calibri;font-size:10.0pt" lang="en-US">6</p>
   </td>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:.959in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-family:Calibri;font-size:10.0pt" lang="en-US">prompt</p>
   </td>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:3.5673in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-size:10.0pt"><span style="font-family:Calibri" lang="en-US">promptOk</span><span style="font-family:SimSun" lang="zh-CN">与</span><span style="font-family:Calibri" lang="en-US">promptError</span><span style="font-family:SimSun" lang="zh-CN">的简化调用</span><span style="font-family:
   Calibri" lang="en-US">,</span><span style="font-family:SimSun" lang="zh-CN">请自行查看源代码</span></p>
   </td>
</tr>
<tr>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:.6673in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-family:Calibri;font-size:10.0pt" lang="en-US">7</p>
   </td>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:.959in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-family:Calibri;font-size:10.0pt" lang="en-US">headerto</p>
   </td>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:3.5673in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-family:SimSun;font-size:10.0pt">前端重定向</p>
   </td>
</tr>
<tr>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:.6673in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-family:Calibri;font-size:10.0pt" lang="en-US">8</p>
   </td>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:.959in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-family:Calibri;font-size:10.0pt" lang="en-US">redirect</p>
   </td>
   <td style="border-style:solid;border-color:#A3A3A3;border-width:1pt;
   vertical-align:top;width:3.5673in;padding:4pt 4pt 4pt 4pt">
   <p style="margin:0in;font-size:10.0pt"><span style="font-family:SimSun" lang="zh-CN">后端重定向</span><span style="font-family:Calibri" lang="en-US">(</span><span style="font-family:SimSun" lang="zh-CN">这个使用较少</span><span style="font-family:
   Calibri" lang="en-US">)</span></p>
   </td>
</tr>
</tbody></table>
</div></ul>

<p style="margin:0in">&nbsp;</p>

<p style="margin:0in;font-family:SimSun;font-size:10.0pt">开发规范</p>

<p style="margin:0in;font-family:SimSun;font-size:10.0pt">&nbsp;</p>

<p style="margin:0in;font-size:10.0pt"><span style="font-family:宋体" lang="zh-CN">所有用户传递的参数都要经过检查</span><span style="font-family:Calibri" lang="en-US">,</span><span style="font-family:宋体" lang="zh-CN">以避免注入</span><span style="font-family:Calibri" lang="en-US">.<span style="mso-spacerun:yes">&nbsp; </span>SRequest</span><span style="font-family:宋体" lang="zh-CN">类已经有一些检查方法</span><span style="font-family:Calibri" lang="en-US">,</span><span style="font-family:宋体" lang="zh-CN">开发人员也可自行添加检查方法</span></p>

<p style="margin:0in;font-family:SimSun;font-size:10.0pt">&nbsp;</p>


               
               
               
               
               
               
               
页: [1]
查看完整版本: 我的框架:控制器