代码编织梦想

更多python、PHP、JAVA教程请到友情连接: 菜鸟教程https://www.piaodoo.com

茂名一技http://www.enechn.com

ppt制作教程步骤 http://www.tpyjn.cn

兴化论坛http://www.yimoge.cn

电白论坛 http://www.fcdzs.com

表格制作excel教程 http://www.tsgmyy.cn


学习通 http://www.hssi.net/


laravel入门

简介

作为PHP最常用的框架之一,Laravel的框架目录布置得尤其清晰,适用于各种类型的项目开发。今天来记录下laravel入门需要熟悉的知识点。

1、根目录

其中,public/index.php是项目的入口文件

2、配置

1)config目录

该文件夹下面,包含的是各种配置文件。包括mysql数据库连接信息,redis,自定义的配置文件信息等等

2).env文件

用以存储一些依赖环境的变量,比如数据库配置,因为它不会被加入到版本库中, 所以还用以配置一些敏感信息:比如正式环境的一些第三方应用账号,token 等。有点类似Yii框架中的main-local.php

用法参考:env('DB_HOST','192.168.1.223')

说明:优先使用.env文件中配置的DB_HOST对应的值,如果.env中没有配置,则使用这里设置的默认值'192.168.1.223'

3)用法参考

config('redis_keys.redis_keys.all_follow_user')

3、MVC

4、路由

1、routes目录

routes目录包含了应用定义的所有路由。Laravel 默认提供了四个路由文件用于给不同的入口使用:web.php、api.php、 console.php 和 channels.php。 除此之外,我们还可以自定义路由文件。

这里介绍两个比较重要的官方提供的默认路由文件web.php和api.php

1)web.php

文件包含的路由通过 RouteServiceProvider 引入,都被约束在 web 中间件组中,因而支持 Session、CSRF 保护以及 Cookie 加密功能,如果应用无需提供无状态的、RESTful 风格的 API,那么路由基本上都要定义在 web.php 文件中

2)api.php

文件包含的路由通过 RouteServiceProvider 引入,都被约束在 api 中间件组中,因而支持频率限制功能,这些路由是无状态的,所以请求通过这些路由进入应用需要通过 token 进行认证并且不能访问 Session 状态。

2、路由定义

稍微复杂一点的情况:

3、RouteServiceProvider

文件包含的路由通过 RouteServiceProvider 引入

5、中间件

提到中间件,那一定离不开app/Http/Kernel.php这个文件

1) kernel

Kernel 中定义了重要的中间件列表,所有的请求 request 在被应用处理前,都必须经过这些中间件,筛过一遍后,才会被决定如何处理。这涉及到中间件(middleware)的作用。

App\Http\Kernel

<?php

namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel
{
/**

  • The application’s global HTTP middleware stack.
  • These middleware are run during every request to your application.
  • @var array
    */
    protected $middleware = [
    \App\Http\Middleware\CheckForMaintenanceMode::class,
    \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
    \App\Http\Middleware\TrimStrings::class,
    \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
    \App\Http\Middleware\TrustProxies::class,
    \App\Http\Middleware\EnableCross::class,
    ];

/**

  • The application’s route middleware groups.
  • @var array
    */
    protected $middlewareGroups = [
    ‘web’ => [
    \App\Http\Middleware\EncryptCookies::class,
    \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
    \Illuminate\Session\Middleware\StartSession::class,
    // \Illuminate\Session\Middleware\AuthenticateSession::class,
    \Illuminate\View\Middleware\ShareErrorsFromSession::class,
    \App\Http\Middleware\VerifyCsrfToken::class,
    \Illuminate\Routing\Middleware\SubstituteBindings::class,
    ],
    ‘api’ => [
    // ‘throttle:300,1’,
    ‘bindings’,
    ],
    ‘web_api’ => [
    // ‘throttle:300,1’,
    ‘bindings’,
    ‘check_token’
    ],
    ‘admin_api’ => [
    // ‘throttle:300,1’,
    ‘bindings’,
    ‘admin’
    ],
    ];

/**

  • The application’s route middleware.
  • These middleware may be assigned to groups or used individually.
  • @var array
    */
    protected $routeMiddleware = [
    ‘auth’ => \Illuminate\Auth\Middleware\Authenticate::class,
    ‘auth.basic’ => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
    ‘bindings’ => \Illuminate\Routing\Middleware\SubstituteBindings::class,
    ‘cache.headers’ => \Illuminate\Http\Middleware\SetCacheHeaders::class,
    ‘can’ => \Illuminate\Auth\Middleware\Authorize::class,
    ‘guest’ => \App\Http\Middleware\RedirectIfAuthenticated::class,
    ‘signed’ => \Illuminate\Routing\Middleware\ValidateSignature::class,
    ‘throttle’ => \Illuminate\Routing\Middleware\ThrottleRequests::class,
    ‘check_token’ => \App\Http\Middleware\CheckToken::class,
    ];
    }
上面的 $middleware[] 是面向全局的,特别是针对 HTTP 以及较为底层的。后面的 $middlewareGroups[] 和 $routeMiddleware[] 是比较具体的实施层面的。应该是可以根据开发需要继续添加。

我们再看看App\Http\Kernel继承的父类Illuminate\Foundation\Http\Kernel

<?php

namespace Illuminate\Foundation\Http;

use Exception;
use Throwable;
use Illuminate\Routing\Router;
use Illuminate\Routing\Pipeline;
use Illuminate\Support\Facades\Facade;
use Illuminate\Contracts\Debug\ExceptionHandler;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\Http\Kernel as KernelContract;
use Symfony\Component\Debug\Exception\FatalThrowableError;

class Kernel implements KernelContract
{
/**

  • The application implementation.
  • @var \Illuminate\Contracts\Foundation\Application
    */
    protected $app;

/**

  • The router instance.
  • @var \Illuminate\Routing\Router
    */
    protected $router;

/**

  • The bootstrap classes for the application.
  • 引导类,起引导作用的类
  • 这些类里面基本上都有一个 bootstrap(Application $app) 方法,
  • 从不同的角度 bootstrap 应用。为最终 boot() 最准备。
  • 注意:这些事做不完,不能接受请求,或许连$request都无法正确生成。
  • @var array
    */
    protected $bootstrappers = [
    // 载入服务器环境变量(.env 文件?)
    \Illuminate\Foundation\Bootstrap\LoadEnvironmentVariables::class,
    // 载入配置信息(config 目录?)
    \Illuminate\Foundation\Bootstrap\LoadConfiguration::class,
    // 配置如何处理异常
    \Illuminate\Foundation\Bootstrap\HandleExceptions::class,
    // 注册 Facades
    \Illuminate\Foundation\Bootstrap\RegisterFacades::class,
    // 注册 Providers
    \Illuminate\Foundation\Bootstrap\RegisterProviders::class,
    // 启动 Providers
    \Illuminate\Foundation\Bootstrap\BootProviders::class,
    ];

/**

  • The application’s middleware stack.
  • @var array
    */
    protected $middleware = [];

/**

  • The application’s route middleware groups.
  • @var array
    */
    protected $middlewareGroups = [];

/**

  • The application’s route middleware.
  • @var array
    */
    protected $routeMiddleware = [];

总之,Kernel 做了两件事,第一个是定义 $bootstraps[],做好了 boot 系统的准备,第二个是定义 各种 middleware,这些都对 $request 进行加工、处理、甄选、判断,最终为可以形成正确的、有效的 $response 做准备,都完成后,进行了 index.php 中的 $kernel->handle($request),返回 $response。

总结:

1) $request ---> $kernel { service providers/middlewares/routers } ---> $response

2) Kernel 是就是个大黑箱,送入请求,输出响应,我们只管往里面添加服务、中间件、路由等等。

2) middleware

系统自带的VerifyCsrfToken.php

自定义的中间件CheckToken.php

基本上中间件的具体过滤操作都在handle方法中完成

6、日志

1) 日志的配置文件:config/logging.php

2) logging.php

3) 使用参考

Log::channel('wechatlog')->info("获取第三方平台component_access_token",['data'=>$data]);

然后执行请求完毕,就可以在storage/logs这个文件夹下面看到对应的日志记录

7、服务提供者

1)自定义服务提供者

在laravel里面,服务提供者其实就是一个工厂类。它最大的作用就是用来进行服务绑定。当我们需要绑定一个或多个服务的时候,可以自定义一个服务提供者,然后把服务绑定的逻辑都放在该类的实现中。在larave里面,要自定一个服务提供者非常容易,只要继承Illuminate\Support\ServiceProvider这个类即可

举个栗子

app/providers/AppServiceProvider.php

在这个举例里面,可以看到有一个register方法,这个方法是ServiceProvider里面定义的。自定义的时候,需要重写它。这个方法就是用来绑定服务的。

2)laravel初始化自定义服务提供者的源码

3)config/app.php

从上一步的源码也能看到,laravel加载自定义服务提供者的时候,实际是从config/app.php这个配置文件里面的providers配置节找到所有要注册的服务提供者的。

参考链接:https://blog.csdn.net/qqtaizi123/article/details/95949672

文章来源:https://www.piaodoo.com/
本文链接:https://blog.csdn.net/liming89/article/details/124051193

laravel框架_jijerry的博客-爱代码爱编程

开启 Laravel 之旅以及环境配置 一、Laravel 介绍 Laravel 是一套简洁、优雅的 PHP Web 开发框架,采用了 MVC 的架构模式。它可以让你从杂乱的代码中解脱出来,帮你构建一个完美的网络 APP。 Laravel 的代码简洁、富于表达力,可以说是为 WEB 艺术家创造的 PHP 框架,在 2011 年 6 月正式发布

laravel知识点整理_范特西fantasy的博客-爱代码爱编程

1,composer安装调试工具 debugbar 安装 Debugbar# 使用 Composer 安装: $ composerrequire”barryvdh/laravel-debugbar:~3.1”–dev

新手快速学习php入门技巧,绕过不必要的知识点直达核心_qq_2190630418的博客-爱代码爱编程

在网上很多人公布了太多的PHP学习路线图,本人在互联网公司工作十余年,也带了很多PHP入门的新手,将他们的一些问题和学习路线图为大家整理出来,希望很多小白少走弯路。 一、 网上某些错误的学习路线图 网上有些错误的学习路线图,让学完HTML、CSS后立马去学Javascript和jQuery等,这种课程简直是对牛弹琴。你特么的怎么不去搞个前端工程师培训或者是

超全php学习资源整理:入门到进阶系列_蓝桥云课的博客-爱代码爱编程

PHP是少数几门在语言层面饱受诟病,但在实际开发和应用上却又让人无法撒手的语言之一。就好比路边摊小吃,一遍骂人家不卫生,一遍却又说:真香。所谓接地气,不外如此,大道理不说,PHP光是轮子多、市场占有率高这两点,就足够说明

php必备知识点_千古~的博客-爱代码爱编程_thinkphp字符串占位符

1、酒店预订怎么实现?怎么设计表        你好,我大概的说下我们的业务流程,我们的业务流程是:用户在网站浏览酒店信息,可以根据地区检索出该地区的酒店信息。列表展示酒店的信息由:酒店的名称,酒店图片,酒店位置,评论人数,评论分数以及最低入住价格。用户选中要入住的酒店进入酒店详情页面,查看酒店的介绍以及酒店的房型列表,用户根据他要入住的时间和离店的时间,

windows + homestead 5 搭建 laravel 开发环境-爱代码爱编程

统一开发环境 为了保证在学习和工作过程中避免因为开发环境不一致而导致各种各样的问题,Laravel 官方为了我们提供了一个完美的开发环境 Laravel Homestead,让我们无需再本地安装 PHP,web 服务器或任何服务软件。 Homestead 可以在任何 Windows、Mac 或 Linux 系统上运行,它包括了 Nginx Web 服务

laravel框架基础知识总结-爱代码爱编程

laravel框架基础知识总结 1.laravel简介 laravel框架是一套简洁的web开发的框架,具有简介语法,易于理解提供了强大的开发工具。 laravel框架提供了很多功能,如:数据库(DB)、缓存(cache)、会话(session)、上传文件等; laravel框架的优点: 文档齐全,社区活跃,后期支持好。 2.laravel下载安装

如何在Laravel5.6中使用Swoole的协程数据库查询-爱代码爱编程

这篇文章主要介绍了在Laravel5.6中使用Swoole的协程数据库查询,详细的介绍了什么是Swoole,以及Laravel5.6中使用Swoole,非常具有实用价值,需要的朋友可以参考下   什么是Swoole 直接套用Swoole官网的介绍:PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP

关于使用 Laravel 服务容器的优势介绍-爱代码爱编程

如果说laravel框架的核心是什么,那么无疑是服务容器。理解服务容器的概念,对于我们使用laravel太重要了,应该说是否理解服务容器的概念是区分是否入门laravel的重要条件。因为整个框架正是在服务容器这一基础上构建起来的。   laravel服务容器就像一个高度自动化的工厂,你需要的东西,定制好模型,使用特定接口来制造。 因为使用了服务容器,

在 Laravel 中使用 Tailwind CSS-爱代码爱编程

Tailwind Tailwind 是新的 CSS 实用程序框架,它很快成为我最喜欢的构建界面的方法。通常,尝试一个新的框架、包或语言的最困难的部分是建立起来。 建造 Tailwind 的人做了一项令人难以置信的工作,记录了这个过程,而且非常容易做到。但是,有时还是很高兴看到别人是怎么做到的。所以,让我们跳进去看看是怎么做到的。 入门 首先,假设我们

解析laravel之redis简单模块操作-爱代码爱编程

闲话不多说,往下看会有你想要的 入门级操作 普通 set / get 操作; set操作,如果键名存在,则会覆盖原有的值; $redis = app('redis.connection'); $redis->set('library', 'predis'); // 存储 key 为 library, 值为 predis 的记录; $redis-

mysql workbench8.0关键词大写_Mysql从入门到精通全文整理-爱代码爱编程

mysql基础 数据库基本概念 MariaDB or MySQL官网:https://db-engines.com/en/ranking 磁盘文件--> 层次模型 --> 网状模型 --> (Codd) 关系模型DBMS是管理数据库的系统软件,它实现数据库系统的各种功 能。是数据库系统的核心 DBA:负责数据库的规划、设计、协

laravel redis_TP5使用Redis处理电商秒杀-爱代码爱编程

本篇文章介绍了ThinkPHP使用Redis实现电商秒杀的处理方法,具有一定的参考价值,希望对学习ThinkPHP的朋友有帮助! TP5使用Redis处理电商秒杀[1] 1、首先在TP5中创建抢购活动所需要的Redis类库文件,代码如下: <php namespace appbaseservice; use

laravel mysql sum_laravel mysql sum查询并排行_如何在Laravel5.6中使用Swoole的协程数据库查询...-爱代码爱编程

这篇文章主要介绍了在Laravel5.6中使用Swoole的协程数据库查询,详细的介绍了什么是Swoole,以及Laravel5.6中使用Swoole,非常具有实用价值,需要的朋友可以参考下 (点击此处加入php高级交流群一起学习交流,10年架构师带你解读年薪50万面试通关秘籍。) 什么是Swoole 直接套用Swoole官网的介绍:PHP的异步

php 视图中如何用include方式使用控制器中的变量,Laravel框架基础语法与知识点整理【模板变量、输出、include引入子视图等】...-爱代码爱编程

本文实例讲述了Laravel框架基础语法与知识点整理。分享给大家供大家参考,具体如下: 这篇文章的知识点主要有以下几个点: 模板中输出PHP变量 模板中调用PHP代码 原样输出 模板注释 引入子视图 知识点一:模板中输出PHP变量 首先我们要有一个变量,这个变量我们将他存储于控制器当中。 如下: $name = 'Rarin';