PHP学习心得


健壮系统服务

<h1>健壮系统服务</h1> <ul> <li>杜绝无效请求</li> </ul> <h2>访问一个不存在的方法</h2> <ul> <li> <p>访问地址</p> <ul> <li>域名/index.php/Index/test1</li> </ul> </li> <li> <p>修改配置文件</p> <ul> <li>/config/app.php</li> </ul> <pre><code class="language-php">'show_error_msg' =&gt; true, // 显示错误信息</code></pre> </li> <li> <p>复制.example.env,重命名为.env</p> <pre><code>APP_DEBUG = true // 查看详细报错信息</code></pre> </li> </ul> <h2>访问方法不存在</h2> <ul> <li> <p>访问地址</p> <ul> <li>域名/index.php/Index/test1</li> </ul> </li> <li> <p>使用魔术方法__call()</p> <ul> <li>/app/BaseController.php</li> </ul> <pre><code class="language-php">public function __call($name, $param) { $arr = [ 'status' =&gt; 0, 'msg' =&gt; '找不到该方法', 'data' =&gt; [], ]; return json($arr, 400); }</code></pre> </li> </ul> <h2>访问控制器不存在</h2> <ul> <li> <p>访问地址</p> <ul> <li>域名/index.php/Index1/test1</li> </ul> </li> <li> <p>建立文件</p> <ul> <li>/app/controller/Error.php</li> </ul> <pre><code class="language-php">namespace app\controller; class Error { public function __call($name, $param) { $arr = [ 'status' =&gt; 0, 'msg' =&gt; '找不到该控制器', 'data' =&gt; [], ]; return json($arr, 400); } }</code></pre> </li> </ul> <h2>建立公共返回数据方法</h2> <ul> <li>/app/common.php</li> </ul> <pre><code class="language-php">function return_data ($status, $msg, $data = [], $code = 200, $header = [], $options = []) { $arr = [ 'status' =&gt; $status, 'msg' =&gt; $msg, 'data' =&gt; $data, ]; return json($arr, $code, $header, $options); }</code></pre> <h2>存放业务状态码及对应消息描述</h2> <ul> <li>/config/statuscode.php</li> </ul> <pre><code class="language-php">return [ 'success' =&gt; 200, // 成功 'success_msg' =&gt; '成功', 'error' =&gt; 0, // 失败 'error_msg' =&gt; '失败', // 'logined' =&gt; 1, // 已登录 'logined_msg' =&gt; '已登录', 'not_login' =&gt; -1, // 未登录 'not_login_msg' =&gt; '未登录', 'user_is_register' =&gt; -2, // 已注册 'user_is_register_msg' =&gt; '已注册', 'controller_not_found' =&gt; -3, // 控制器不存在 'controller_not_found_msg' =&gt; '控制器不存在', 'action_not_found' =&gt; -4, // 方法不存在 'action_not_found_msg' =&gt; '方法不存在', ];</code></pre> <h2>优化BaseController代码写法</h2> <ul> <li>/app/BaseController.php</li> </ul> <pre><code class="language-php">public function __call($name, $param) { return return_data(config('statuscode.action_not_found'), config('statuscode.action_not_found_msg')); }</code></pre> <h2>优化Error文件</h2> <ul> <li>/app/controller/Error.php</li> </ul> <pre><code class="language-php">public function __call($name, $param) { return return_data(config('statuscode.controller_not_found'), config('statuscode.controller_not_found_msg')); }</code></pre>

页面列表

ITEM_HTML