zoukankan      html  css  js  c++  java
  • laravel 概念

    核心概念

    一次请求的生命周期:

    nginx/apache
    第一件事
    --->public/index.php 在index.php中从 bootstrap/autoload.php中载入composer生成的自动加载设置, 从bootstrap/app.php中获取laravel应用实例,laravel应用实例第一个动作就是创建服务容器实例 http console debug
    HTTP/Console 内核
    --->接下来请求被发送到http内核或者console内核,这取决于进入应用的请求类型,这两个内核的所有请求都要经过中央处理器的
    --->在http继承自kernel类,该类定义了一个bootstrappres数组,这个数组中的类在请求被执行前,配置了错误处理 日志 检测应用环境 以及它在请求被处理前所需要执行的任务
    --->该类还定义了一系列所有请求处理前所需要经过的Http中间件,,这些中间件处理http会话的读写 判断应用是否处于维护模式 csrf令牌的验证
    --->http内核的标志性方法handle的逻辑很简单,就像一个大黑盒,获取request 返回response 获取http请求 返回HTTP响应
    服务提供者
    --->在内核启动的过程中,第一件事就是载入服务提供者,所有的服务提供者providers都被配置在config/app.php的providers数组中,服务提供者负责启动各式各样的组件.不如数据库 队列 验证器 路由组件等
    分发请求
    --->一旦应用被启动和所有服务提供者被注册,request将会被交给路由器进行分发,路由器将会分发请求到路由器或者控制器,同时运行路由器所指定的中间件


    服务容器:

    Laravel 服务容器是一个用于管理类依赖和执行依赖注入的强大工具。依赖注入听上去很花哨,其实质是通过构造函数或者某些情况下通过 setter 方法将类依赖注入到类中。


    服务提供者

    服务提供者是laravel应用启动的中心,你自己的应用和laravel的核心服务都是被服务提供者启动的.启动意味着注册事务,包括注册服务容器绑定 事件监听器 中间件 路由,服务提供者类很多都是延迟加载的(php里面的延迟加载说到底就是按需加载文件,按需实例化对象这两个部分)


    门面(Facades)

    门面为应用服务容器中的绑定类提供了一个静态接口.laravel内置了很多门面,常用的有View DB Cache Log Request Response Session Cookie Config Mail File
    门面提供了简单易记得语法.和辅助函数一样方便 直接静态门面调用
    __callStatic() 使用,

     'aliases' => [
    
            'App' => IlluminateSupportFacadesApp::class,
            'Artisan' => IlluminateSupportFacadesArtisan::class,
            'Auth' => IlluminateSupportFacadesAuth::class,
            'Blade' => IlluminateSupportFacadesBlade::class,
            'Broadcast' => IlluminateSupportFacadesBroadcast::class,
            'Bus' => IlluminateSupportFacadesBus::class,
            'Cache' => IlluminateSupportFacadesCache::class,
            'Config' => IlluminateSupportFacadesConfig::class,
            'Cookie' => IlluminateSupportFacadesCookie::class,
            'Crypt' => IlluminateSupportFacadesCrypt::class,
            'DB' => IlluminateSupportFacadesDB::class,
            'Eloquent' => IlluminateDatabaseEloquentModel::class,
            'Event' => IlluminateSupportFacadesEvent::class,
            'File' => IlluminateSupportFacadesFile::class,
            'Gate' => IlluminateSupportFacadesGate::class,
            'Hash' => IlluminateSupportFacadesHash::class,
            'Lang' => IlluminateSupportFacadesLang::class,
            'Log' => IlluminateSupportFacadesLog::class,
            'Mail' => IlluminateSupportFacadesMail::class,
            'Notification' => IlluminateSupportFacadesNotification::class,
            'Password' => IlluminateSupportFacadesPassword::class,
            'Queue' => IlluminateSupportFacadesQueue::class,
            'Redirect' => IlluminateSupportFacadesRedirect::class,
            'Redis' => IlluminateSupportFacadesRedis::class,
            'Request' => IlluminateSupportFacadesRequest::class,
            'Response' => IlluminateSupportFacadesResponse::class,
            'Route' => IlluminateSupportFacadesRoute::class,
            'Schema' => IlluminateSupportFacadesSchema::class,
            'Session' => IlluminateSupportFacadesSession::class,
            'Storage' => IlluminateSupportFacadesStorage::class,
            'URL' => IlluminateSupportFacadesURL::class,
            'Validator' => IlluminateSupportFacadesValidator::class,
            'View' => IlluminateSupportFacadesView::class,
            'Excel' => MaatwebsiteExcelFacadesExcel::class,
    
        ],
    

    契约(Contracts)

    laravel中契约是框架提供的一系列定义核心服务的接口.
    好处: 松耦合和简单。


    HTTP层
    路由
    中间件
    CSRF 保护
    控制器
    请求
    响应
    视图
    Session
    验证
    前端
    Blade 模板
    本地化
    前端脚手架
    编译前端资源(Laravel Mix)
    安全
    认证
    API认证(Passport)
    授权
    加密
    哈希(Hashing)
    密码重置
    常用功能
    Artisan控制台
    广播
    缓存
    集合
    错误&日志
    事件
    文件存储
    辅助函数
    邮件
    通知
    扩展包
    队列
    调度任务


    数据库

    查询构建器
    数据库查询构建器提供了一个方便的流接口用于创建和执行数据库查询。查询构建器可以用于执行应用中大部分数据库操作,并且能够在支持的所有数据库系统上工作。

    分页
    迁移
    填充数据
    Redis


    Eloquent ORM https://blog.csdn.net/qq_42611547/article/details/86314348
    每张数据表都对应一个与该表进行交互的“模型”
    我们通过调用模型类的相应方法实现对数据库的增删改查。
    Eloquent 模型本质上就是查询构建器,

    Active Record(活动记录)ActiveRecord(非常流行) 中模型与数据表一一对应,
    1>什么是ORM?
    ORM,即 Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在操作具体的 业务对象时,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法即可。

    与数据库的映射关系

          类名 <-------> 表名
    
          属性 <------->字段
    

    属性的约束 <------->字段的类型

    实例对象 <-------> 表记录


    快速入门
    关联关系
    集合
    访问器 & 修改器
    序列化
    测试
    快速入门
    HTTP测试
    浏览器测试(Laravel Dusk)
    数据库
    模拟
    官方包
    Cashier(支付解决方案)
    Envoy(远程服务器操作解决方案)
    Passport(API认证解决方案)
    Scout(全文搜索解决方案)
    Socialite(社会化登录解决方案)

  • 相关阅读:
    Core Data
    scrollViews
    网络通信
    UIView
    textView取消键盘
    AFNetworking转载
    多线程
    css3[转载][菜单导航] 带有记忆功能的多页面跳转导航菜单
    jQuery翻牌或百叶窗效果
    jQuery联动日历(三)完成
  • 原文地址:https://www.cnblogs.com/djwhome/p/12521700.html
Copyright © 2011-2022 走看看