PHP学习心得


用户后台管理模块

<h2>功能点</h2> <ul> <li>后端登录 <ul> <li>后端用户表结构设计</li> <li>模板引入</li> <li>验证码接入</li> <li>登录功能编码</li> </ul></li> <li>前端登录 <ul> <li>前后端分离</li> <li>前端vue</li> <li>后端API</li> <li>获取验证码</li> <li>登录逻辑开发</li> </ul></li> </ul> <h2>登录页面</h2> <ul> <li>ajax <ul> <li>参数校验</li> <li>获取用户信息</li> <li>判断密码是否正确</li> <li>数据表更新</li> <li>session存储</li> <li>页面跳转</li> </ul></li> </ul> <h2>用户操作</h2> <ul> <li> <p>获取验证码</p> <ul> <li>API</li> <li>生成6位数字的验证码</li> <li>请求短信服务</li> <li>记录redis缓存</li> </ul> </li> <li>输入验证码 <ul> <li>点击登录</li> <li>API <ul> <li>根据手机号获取</li> <li>验证码数据</li> <li>短信验证校验</li> <li>登录成功或失败</li> </ul></li> </ul></li> </ul> <h2>页面使用layui</h2> <h2>安装模板引擎</h2> <pre><code class="language-she">composer require topthink/think-view</code></pre> <ul> <li> <p>安装后的目录位置:/vendor/topthink/think-view/</p> <ul> <li>调用验证码方法</li> </ul> <pre><code class="language-php">// /vendor/topthink/think-captcha/src/helper.php captcha_img() // 验证码图片</code></pre> </li> <li> <p>验证码访问url</p> <ul> <li>域名/验证码方法</li> </ul> <pre><code class="language-php">// /vendor/topthink/think-captcha/src/CaptchaController.php index()</code></pre> </li> <li> <p>自定义验证码</p> <ul> <li> <p>域名/admin/Verify/index</p> </li> <li>/app/admin/controller/Verify.php</li> </ul> <pre><code class="language-php">namespace app\admin\controller; use think\captcha\facade\Captcha; class Verify { public function index() { return Captcha::create("captcha_info"); } }</code></pre> <ul> <li>位置文件配置验证码</li> </ul> <pre><code class="language-php">// /config/captcha.php 'captcha_info' =&gt; [ 'length' =&gt; 3, // 验证码字符集合 'codeSet' =&gt; '1234567890', ],</code></pre> </li> </ul> <h2>验证码校验</h2> <ul> <li>要开启session,thinkphp6默认没有开启seesion</li> </ul> <pre><code class="language-php">captcha_check(); </code></pre> <ul> <li>开启seesion,去掉注释即可 <ul> <li>/app/middleware.php</li> <li>Session初始化</li> <li>\think\middleware\SessionInit::class</li> </ul></li> </ul> <h2>跳转方法要写在控制器内</h2> <ul> <li> <p>业务逻辑控制器内,不能写基类控制器,会形成死循环的</p> <pre><code class="language-php">return redirect(); // 中间件中也可以使用此方法</code></pre> </li> </ul> <h2>中间件</h2> <ul> <li>中间件主要用于拦截或过滤应用的HTTP请求,并进行必要的业务处理 <ul> <li>位置-&gt;架构-&gt;中间件</li> <li><a href="https://www.kancloud.cn/manual/thinkphp6_0/1037493">https://www.kancloud.cn/manual/thinkphp6_0/1037493</a></li> </ul></li> <li>中间使用场景 <ul> <li>管理后台登录,登录访问操作在中间件中进行处理,登录成功后,再跳转到登录页面</li> </ul></li> <li>执行流程 <ul> <li>使用断点调用方式查看执行流程</li> <li>可以分别在控制器方法中输出,两条语句,再在中间件输出一条语句,查看一下执行流程</li> </ul></li> <li>中间件 <ul> <li>可以简单大概理解为,在一个控制器方法执行流程中间执行调用</li> </ul></li> <li>前置中间件获取不到,request请求信息,后置中间件可以获取到request请求信息,前置和后置中间件根据实际业务逻辑选择使用业务场景</li> </ul> <h2>声明强制类型,在调用方法传参数时,参数类型必须严格对应</h2> <pre><code class="language-php">declare (strict_types = 1); // 如:调用方法参数为int类型,只能传int类型</code></pre> <h2>validate验证机制</h2> <ul> <li><a href="https://www.kancloud.cn/manual/thinkphp6_0/1037624">https://www.kancloud.cn/manual/thinkphp6_0/1037624</a></li> <li>使用validate及方法查看</li> </ul> <pre><code class="language-php">use think\Validate;</code></pre> <p>​ </p>

页面列表

ITEM_HTML