laravel入门知识点整理_php基础

来源:脚本之家  责任编辑:小易  

学习php编程2113:1.前段的基础知识:html div+css2.php基础知识(面向过程5261),及mysql数据库3.js的相关知4102识,jQuery等4.php高级部1653分(面向对象),及pdo数据处理5.php特级部分(框架的应用)希望对你有用,这是我的学习总结,也就这些追问谢谢 我初中学历 不管学这个有多难我都会坚持,这是我的梦想,谢谢你的回答www.zgxue.com防采集请勿采集本网。

laravel入门

基础:搭建lamp环境,php语言(函数,结抄构,数据库Drivers) 中级:缓存(redis、memcache等),数据库设计(主从bai分离),服务器配置du(linux系统学习、动静分离

简介

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

如果已经学会了一个php框架,再去学习其他php框架,那么会很容易上手。 但是如果还没有php框架基础,想去学习php框架,往往是一头雾水,不知道从哪里下手,

1、根目录

这个name用官方的方法叫做命名路由。 还有一种方法是使用as来实现。 这个name命名路由的主要用途就是在模板中方便访问。 举个例子: 比如模板

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

1、计算机组成原理 如果你不是做操作系统/驱动程序的,直接和硬件打交道的机会很少,因为操作系统已经把他们屏蔽掉了,提供了抽象的API给我们使用。 但是还

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

<?phpnamespace 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

<?phpnamespace 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

想学好laravel需要扎实的php基础如闭包 和面向对象思想的理解 类 接口 多态这些东西 还有很多设计模式 工厂模式 单利模式 依赖注入。。内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • 一段php加密解密的代码
  • php学习之变量的使用
  • 初学者入门:细述php4的核心zend
  • 模仿oso的论坛(三)
  • php过滤危险html代码
  • php学习 函数 课件
  • 怎么使 mysql 数据同步
  • 支持oicq头像的留言簿(一)
  • 编写php的安全策略
  • php preg_filter执行一个正则表达式搜索和替换
  • 学习laravel框架需要什么基础php知识
  • 初学PHP学那些重要的知识点
  • 学习PHP需要掌握的几个知识点
  • 如何高效地学习 Laravel 框架
  • 零基础如何学习PHP?
  • php新手如何入门
  • php laravel基础问题 第二行后面的->name('grade')...
  • 大学计算机基础知识点整理
  • 2019《教育理论基础》知识点整理(超级完整版)
  • 求PHP laravel5框架视频教学资源
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全php基础php技巧php实例php文摘php模板首页php编程一段php加密解密的代码php学习之变量的使用初学者入门:细述php4的核心zend模仿oso的论坛(三)php过滤危险html代码php学习 函数 课件怎么使 mysql 数据同步支持oicq头像的留言簿(一)编写php的安全策略php preg_filter执行一个正则表达式搜索和替换php isset()与empty()的使用区别php strstr查找字符串中是否包含php date函数参数详解php文件怎么打开 如何执行php文件php curl curlopt参数说明(curl_php for 循环语句使用方法详细说一个典型的php分页实例代码分享php读取mysql数据代码php checkbox复选框值的获取与chphp数组中头部和尾部添加元素的方php.ini中文版用libtemplate实现静态网页的生成我常用的几个类ip签名探针php.mvc的模板标签系统(三)php array_map()数组函数使用说明为查询结果建立向后/向前按钮php 之 没有mysql支持时的替代方案laravel学习教程之存取器分页显示oracle数据库记录的类之一
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved