laravel笔记

laravel框架优缺点

  1. 设计思想比较先进,集合了php比较新的特点,以及各种各样的设计模式,Ioc模式(控制反转,有一个专门的容器来控制对象的创建,所以是控制;由容器帮我们查找及注入依赖对象,对象只是被动的接受依赖对象,所以是反转),依赖注入模式,门面模式等。
  2. 强大的rest router,用简单的回调函数就可以调用,快速绑定controller和router
  3. 可继承的模板,简化view的开发和管理
  4. blade模板,渲染速度更快
  5. orm操作数据库
  6. migration,管理数据库和版本控制
  7. 测试功能也很强大
    thinkphp框架优缺点
  8. 丰富的中文文档
  9. 适合中小项目的开发
  10. 上手容易,深入学习较难
  11. 目录结构混乱
    yii框架优缺点
  12. 基于组件的高性能php框架,用于开发大型web应用
  13. view并不是理想的view,理想中的view可能只是html代码,不会涉及php代码
  14. 文档较少

代码安全

  1. 访问控制(crsf跨站点访问,参数有效性验证,)
  2. 防sql注入
  3. 松散比较符 (0==“gg” //true)
  4. 浮点精度
  5. 从源码中可以得输入一个a的参数的变量,a首先不等于QNKCDZO并且a得md5值必须等于QNKCDZO加密后的md5值。 乍一看好像不可能存在这样的值,但是这里QNKCDZO加密后的md5值为0e830400451993494058024219903391 这里是0e开头的,在进行等于比较的时候,PHP把它当作科学计数法,0的无论多少次方都是零。 所以这里利用上面的弱类型的比较的缺陷来进行解题:?a=s155964671a,不仅sha1()函数无法处理数组,这里md5()函数也有同样的问题,在处理数组的时候,都将返回NULL。

<?php
    $md51 = md5('QNKCDZO');
    $a = @$_GET['a'];
    $md52 = @md5($a);
    if(isset($a)){
        if ($a != 'QNKCDZO' && $md51 == $md52) {
            echo "nctf{*****************}";
        } else {
            echo "false!!!";
        }
    }
    else{
        echo "please input a";
    }

laravel上线优化

  1. 优化配置加载,php artisan config:cache
  2. 优化路由加载,php artisan route:cache(只能缓存应用程序中基于控制器的路由)

laravel生命周期

  1. 入口文件。public/index.php是laravel web应用程序的请求的入口点。index.php从bootstrap/autoload.php主要加载了composer生成定义的自动加载器,从bootstap/app.php中检索laravel应用程序的实例。
  2. http/控制器内核。根据应用程序的请求类型将请求发送到http内核或控制器内核。http内核的handle的方法签名:接收request并返回response。
  3. 服务提供器。内核引导操作之一是加载应用程序的服务提供器,所有服务提供器都在config/app.php的providers数组中配置。所有提供器都会调用register方法,接着,由boot方法负责调用所有被注册提供器。
  4. 分配请求。引导了应用程序且注册所有的服务提供器,request请求就会被转交给路由器来进行调度。路由器将请求发送到路由或控制器或特定中间件。

面向对象:继承,封装,多态。
接口是类的原型,一个必须要遵守其实现的接口,对象则是一个类实例化后的产物。
闭包

$closure = function ($name) {
    return 'Hello ' . $name;
};
echo $closure('nesfo');//Hello nesfo
var_dump(method_exists($closure, '__invoke'));//true

服务容器:我们之所以能调用$closure变量,是因为这个变量的值是一个闭包,而且闭包对象实现了__invoke()魔术方法。只要变量名后有(),PHP就会查找并调用__invoke()方法。

中间件:array_reduce

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值