首页
学习
活动
专区
圈层
工具
发布

Laravel 如何使用 PHP 内置的服务器启动服务

本文为joshua317原创文章,转载请注明:转载自joshua317博客 在Laravel项目中,如果你在本地安装了 PHP, 并且你想使用 PHP 内置的服务器来为你的应用程序提供服务,则可以使用...接下来我们来分析下laravel的命令:php artisan serve 2.1 源文件ServeCommand.php 注意:此次laravel项目是基于6.20.26版本 源文件是src/Illuminate...() 代码的 publicPath() 来的,这个方法的源码位于 Illuminate\Foundation\Application 中 function public_path($path = '')...php namespace Illuminate\Foundation; use Closure; use Illuminate\Container\Container; use Illuminate...\Contracts\Container\Container::class, \Illuminate\Contracts\Foundation\Application::class, \Psr\Container

9.1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    laravel源码解读学习(一)Application的实例化

    先关注Illuminate\Foundation\Application类的定义Illuminate\Foundation\Application继承了Illuminate\Container\Container...,作为依赖注入容器需要的功能基本都在Container里,其余实现的接口我们在后面用到时再讨论来到Illuminate\Foundation\Application的构造方法从这里开始我们把构造方法里的每一个调用拆分开解读...'path.xxx'此时方法调用来到了Illuminate/Container/Container,由此方法注释可知这方法是Laravel的IOC容器对外开放的注册实例的入口(之一)。...Illuminate\Container\Container的实例注册Illuminate\Foundation\Mix单例到容器注册Illuminate\Foundation\PackageManifest...一个对应Provider实例 接着是调用Provider的register()方法,后续我们会分别来看这三个Provider的register()方法687~697行为Provider提供了方便的依赖注入方式

    81010

    Laravel5.2之Composer自动加载

    说明:本文主要以Laravel的容器类Container为例做简单说明Composer的自动加载机制。...这次先一起聊聊Composer的自动加载机制,并以Laravel的Container为例举例。...Composer的自动加载机制 1、初始化一个composer项目 在一个空目录下composer安装Laravel的容器Container包: composer require illuminate...从上图中能看出这个composer初始化路径的流程,重点是ClassLoader这个类的loadClass(class)这个方法,是通过spl_autoload_register这个PHP自动加载函数来注册到...从第二个序列图就可看出,首先调用ClassLoader中的loadClass()这个函数来找文件路径,传入的class变量值是“IlluminateContainerContainer”这个字符串,然后又继续调用

    4.1K21

    深入剖析 Laravel 服务容器

    目录结构 序章 依赖注入基本概念 什么是依赖注入 什么是依赖注入容器 什么是控制反转(IoC) Laravel 服务容器是什么 小结 Laravel 服务容器的使用方法 管理待创建类的依赖 常用绑定方法...接下来才是今天的正餐,我将从以下几个角度讲解 Laravel 服务容器的相关内容: Laravel 服务容器是什么; Laravel 服务容器的使用方法; Laravel 服务容器技术原理。...我们知道绑定方法定义在 Laravel 服务容器 Illuminate\Foundation\Application 类内,而 Application继承自 Illuminate\Container\Container...这些与服务容器绑定相关的方法便直接继承自 Container 类。 bind 方法执行原理 bind 绑定作为最基本的绑定方法,可以很好的说明 Laravel 是如何实现绑定服务处理的。...下面摘出 Container 容器中 bind 方法及其相关联的方法。

    9.8K10

    Laravel5.3之IoC Container实例化源码解析

    开发环境:Laravel5.3 + PHP7 + OS X10.11 Laravel的入口文件是public/index.php文件,首先第一步加载composer的autoload文件: // bootstrap...另一个重要的函数,如果这么调用call(EventServiceProvider@register),那就通过Container::callClass()来解析出class和method,然后在调用call...这里是通过[(new EventServiceProvider(app)), 'boot']类似这种方式来调用的。在调用boot()时有依赖怎么办?...上文说过,Application中register()会调用service provider中的register()方法,看下\Illuminate\Routing\RoutingServiceProvider...总结:本文主要学习了Application的实例化过程,主要学习了实例化过程中向这个IoC(Inversion of Control) Container绑定了哪些service,并讨论了绑定的三个方法

    2.3K41

    Laravel源码解析之中间件

    解析出Http Kernel后Laravel将进入应用的请求对象传递给Http Kernel的handle方法,在handle方法负责处理流入应用的请求对象并返回响应对象。...getSlice方法,他返回的也是一个闭包,在闭包会里解析出中间件对象、中间件参数(无则为空数组), 然后把$passable(请求对象), $stack和中间件参数作为中间件handle方法的参数进行调用...(), $firstSlice), $this->passable); 这样就能依次执行中间件handle方法,在handle方法里又会去再次调用之前说的reduce包装的洋葱闭包剩余的部分,这样一层层的把洋葱剥开直到最后...,所以只有反转后才能保证初始定义的中间件数组中第一个中间件的handle方法会被最先调用。...,依然是利用Pipeline对象来传送请求对象通过收集上来的这些中间件然后到达最终的目的地,在那里会执行目的路由的run方法,run方法里面会判断路由对应的是一个控制器方法还是闭包然后进行相应地调用,最后把执行结果包装成

    2K30

    Laravel源码解析之反射的使用

    前言 PHP的反射类与实例化对象作用相反,实例化是调用封装类中的方法、成员,而反射类则是拆封类中的所有方法、成员变量,并包括私有方法等。就如“解刨”一样,我们可以调用任何关键字修饰的方法、成员。...当然在正常业务中是建议不使用,比较反射类已经摒弃了封装的概念。 本章讲解反射类的使用及Laravel对反射的使用。..../') ); laravel开始加载它的核心类,所有的实现从 Illuminate\Foundation\Application 开始。...make方法的存在,它加载了服务提供者随后调用了父类的方法make,要知道作为独立的模块 “服务容器”是绝对不能写在核心类的。...Illuminate\Container\Container 以$api = $this->app->make('HelpSpot\API',['id'=>1]); 为例来讲解 // 真正的make方法

    98141

    Laravel 非常规教程之1 生命周期

    上一节老高零(瞎)散(扯)的讲了一下laravel的基本知识,不知道你现在搞清楚symfony vs laravel的关系了吗?...\Http\Request::capture() ); # 调用send方法,返回header和content $response->send(); # 完成收尾工作,其实最终调的是$app的terminate...直接继承了Container,并实现了ApplicationContract, HttpKernelInterface两个契约(接口) # 在初始化的时候,该类做了很多事情。...这个share值会影响make的时候的某一步逻辑,具体代码如下,针对singleton的实例化之后会被$app缓存起来,提高了性能,而通过bind方法绑定的类被实例化时每次返回的都是不同的对象。...laravel的启动过程中服务容器——laravel真正的核心一节。

    76920

    Laravel源码解析之控制器

    Pipeline、中间件和路由的原理了,接下来就看看当请求最终找到了路由对应的控制器方法后Laravel是如何为控制器方法注入正确的参数并调用控制器方法的。...在拿到控制器和方法的名称字符串后,路由对象将自身、控制器和方法名传递给了 Illuminate\Routing\ControllerDispatcher类,由 ControllerDispatcher来完成最终的控制器方法的调用...下面我们详细看看 ControllerDispatcher是怎么来调用控制器方法的。...,而这里resolveClassMethodDependencies解决的是具体某个方法的参数依赖,它是Laravel对method dependency injection概念的实现。...解决完method的参数依赖后就该调用方法了,这个很简单, 如果控制器有callAction方法就会调用callAction方法,否则的话就直接调用方法。

    1.3K20

    Laravel源码笔记(一)程序结构与生命周期

    在处理请求之前需要先初始化请求,这个通过Illuminate\Http\Request的静态方法capture()完成。...调用response的send()方法将缓冲区的响应数据发送出去。 最终调用kernel的terminate()方法进行程序的收尾工作,如上下文清理、统计上报等。...接下来就是build函数,这里使用到了反射(ReflectionClass),也是整个服务容器中最核心的部分: // Illuminate\Container\Container.php public...2.3 请求响应 程序调用kernel的handle()方法来处理上面部分中捕捉到的请求对象request,并生成相应的响应对象response。...最后调用原生的fastcgi_finish_request()函数或自定义的closeOutputBuffers()方法冲刷所有响应的数据给客户端并结束请求。

    3K31

    Laravel神奇的服务容器

    Laravel的核心是IocContainer, 文档中称其为“服务容器”,服务容器是一个用于管理类依赖和执行依赖注入的强大工具,Laravel中的功能模块比如 Route、Eloquent ORM、Request...本篇就来探讨一下Laravel中的服务绑定和解析是如何实现的 服务绑定 常用的绑定服务到容器的方法有instance, bind, singleton, alias。下面我们分别来看一下。...绑定接口和实现 $this->app->bind('Illuminate\Tests\Container\IContainerContractStub', 'Illuminate\Tests\Container...\Tests\Container\IContainerContractStub' => [//接口实现绑定 'concrete' => 'Illuminate\Tests\Container...bind方法的变种,绑定一个只需要解析一次的类或接口到容器,然后接下来对于容器的调用该服务将会返回同一个实例 alias 把服务和服务别名注册到容器: public function alias($abstract

    1.8K30
    领券