重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

laravel框架的学习笔记(一)运行逻辑-创新互联

1、laravel应用的入口文件都是public/index.php文件,所有请求都会被web服务器导向这个文件。这里是加载框架其它部分的起点。

在澄城等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供做网站、网站制作 网站设计制作定制网站建设,公司网站建设,企业网站建设,品牌网站制作,成都全网营销,外贸营销网站建设,澄城网站建设费用合理。

         index.php文件载入composer生成的自动加载设置,然后从bootstrap/app.php脚本获取Laravel应用实例,Laravel的第一个动作就是创建服务容器实例。

 2、HTTP/Console内核

      接下来,请求被发送到HTTP内核或者Console内核,这取决于进入应用的请求类型。这两个内核是所有请求要经过的中央处理器,现在,就让我们聚焦在位于app/Http/Kernel.php的HTTP内核。

        HTTP 内核继承自 Illuminate\Foundation\Http\Kernel 类,该类定义了一个 bootstrappers 数组,这个数组中的类在请求被执行前运行,这些 bootstrappers 配置了错误处理、日志、检测应用环境以及其它在请求被处理前需要执行的任务。

      HTTP 内核还定义了一系列所有请求在处理前需要经过的 HTTP 中间件,这些中间件处理 HTTP 会话的读写、判断应用是否处于维护模式、验证 CSRF 令牌等等。

    HTTP 内核的标志性方法 handle 处理的逻辑相当简单:获取一个 Request,返回一个 Response,把该内核想象作一个代表整个应用的大黑盒子,输入 HTTP 请求,返回 HTTP 响应。

     服务提供者

    内核启动过程中最重要的动作之一就是为了应用载入服务提供者,应用的所有服务提供者都被配置。

    在config/app.php配置未见的providers数组中。首先,所有提供者的register方法被调用,然后所有提供者被注册之后,boot方法就会被调用。

     服务提供者负责启动框架的所有各种各样的组件,比如数据库、队列、验证器,以及路由组件等,正是因为他们启动并配置了框架提供的所有特性,服务提供者是整个 Laravel 启动过程中最重要的部分。

    分发请求

     一旦应用被启动并且所有服务提供者被注册,Request将会被交给路由器进行分发,路由器将会分发请求到路由或者控制器,同时运行所有路由指定的中间件。

   3、聚焦服务提供者

        服务提供者是启动 Laravel 应用中最关键的部分,应用实例被创建后,服务提供者被注册,请求被交给启动后的应用进行处理,整个过程就是这么简单!

        对 Laravel 应用如何通过服务提供者构建和启动有一个牢固的掌握非常有价值,当然,应用默认的服务提供者存放在app/Providers目录下。

        默认情况下,AppServiceProvider 是空的,这里是添加自定义启动和服务容器绑定的最佳位置,当然,对大型应用,你可能希望创建多个服务提供者,每一个都有着更加细粒度的启动。

     注意:由此可以看出,laravel的所有路径都是通过本身的路由器进行定义的,和tp,ci这些按照规则访问控制器是完全不一样的。

目录

        根目录

        新安装的 Laravel 应用包含许多文件夹:

        app目录包含了应用的核心代码;

        bootstrap目录包含了少许文件用于框架的启动和自动载入配置,还有一个cache文件夹用于包含框架生成的启动文件以提高性能;

        config目录包含了应用所有的配置文件;

        database目录包含了数据迁移及填充文件,如果你喜欢的话还可以将其作为 SQLite 数据库存放目录;

        public目录包含了前端控制器和资源文件(图片、JavaScript、CSS等);

        resources目录包含了视图文件及原生资源文件(LESS、SASS、CoffeeScript),以及本地化文件;

        storage目录包含了编译过的Blade模板、基于文件的session、文件缓存,以及其它由框架生成的文件,该文件夹被细分为成appframeworklogs子目录,app目录用于存放应用要使用的文件,framework目录用于存放框架生成的文件和缓存,最后,logs目录包含应用的日志文件;

        tests目录包含自动化测试,其中已经提供了一个开箱即用的PHPUnit示例;

        vendor目录包含Composer依赖;

    App目录

        应用的核心代码位于app目录下,默认情况下,该目录位于命名空间 App 下,  并且被 Composer 通过 PSR-4自动载入标准 自动加载。你可以通过Artisan命令app:name来修改该命名空间。

        app目录下包含多个子目录,如ConsoleHttpProviders等。ConsoleHttp目录提供了进入应用核心的API,HTTP协议和CLI是和应用进行交互的两种机制,但实际上并不包含应用逻辑。换句话说,它们只是两个向应用发布命令的方式。Console目录包含了所有的Artisan命令,Http目录包含了控制器、中间件和请求等。

        Jobs目录是放置队列任务的地方,应用中的任务可以被队列化,也可以在当前请求生命周期内同步执行。

        Events目录是放置事件类的地方,事件可以用于通知应用其它部分给定的动作已经发生,并提供灵活的解耦的处理。

        Listeners目录包含事件的处理器类,处理器接收一个事件并提供对该事件发生后的响应逻辑,比如,UserRegistered事件可以被SendWelcomeEmail监听器处理。

        Exceptions目录包含应用的异常处理器,同时还是处理应用抛出的任何异常的好地方。

        注意:app目录中的很多类都可以通过Artisan命令生成,要查看所有有效的命令,可以在终端中运行php artisan list make命令。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前题目:laravel框架的学习笔记(一)运行逻辑-创新互联
文章地址:http://cqcxhl.cn/article/jodid.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP