公海彩船

laravel 看不懂框架源码

laravel 是一个流行的 php 框架,但关于许多初学者来说,阅读框架源码是一件很是困难的事情。本文将实验解释 laravel 的代码结构和要害部分,资助读者更好地舆解这个框架。

Laravel 的代码结构

Laravel 的代码结构是很是清晰的,整个框架被剖析为多个独立的 ?,每个 ?橛衅涮囟ǖ闹霸鸷凸π。这种结构使得 Laravel 更容易维护和开发。下面是 Laravel 主要目录和文件的解释:

app

该目录包括了 Laravel 应用程序的焦点代码。其焦点构建块是控制器、视图、模型和路由。

bootstrap

该目录包括了 Laravel 应用程序启动时执行的代码。如果你了解 PHP 框架,那么这个目录对你来说不会陌生,好比自动加载类,加载配置文件等。

config

该目录包括了应用程序的配置文件。

database

该目录包括了数据库迁移和数据填充文件。

public

该目录包括了应用程序的公共会见点,应用程序的入口是 index.php 文件。

resources

该目录包括了一些指定应用程序的 assets(如配置文件、视图、语言文件、 JavaScript 文件和 CSS 文件)。

routes

该目录包括了应用程序的路由文件,即 url 与控制器的映射。

storage

该目录包括了一些 Laravel 生成的文件,如日志文件、框架生成的缓存、框架生成的文件,如路由缓存和框架生成的视图。

tests

该目录包括了测试应用程序的测试文件夹。

vendor

该目录包括了依赖包的代码。Laravel 框架依赖于一些自己开发的包和其他包。

Laravel 的部分要害代码

在 Laravel 的代码结构中,我们重点关注的是 app 文件夹中的代码。

控制器

控制器是 Laravel 的主要部分,用于响应应用程序中的 HTTP 请求。在 app/Http/Controllers 文件夹中将会看到所有的控制器类。下面是一个示例控制器:

<?php

namespace AppHttpControllers;

use IlluminateHttpRequest;
use AppUser;
use AppHttpControllersController;

class UserController extends Controller
{
    /**
     * 显示指定用户的个人资料
     *
     * @param  int  $id
     * @return Response
     */
    public function show($id)
    {
        return view('user.profile', ['user' => User::findOrFail($id)]);
    }
}

登录后复制

在控制器中,我们可以界说差别的要领来解决差别的情况,如 $id 参数就可以通过 show() 要领来处理,该要领将返回视图和用户的 ID。

模型

模型是 Laravel 中处理数据库的一种要领,是与数据库表相关联的 PHP 类。在 app 文件夹中,app/Models 文件夹中存放着种种模型,如下面的示例 User 模型:

<?php

namespace AppModels;

use IlluminateDatabaseEloquentModel;

class User extends Model
{
    /**
     * 模型的默认属性值。
     *
     * @var array
     */
    protected $attributes = [
        'can_send_email' => false,
    ];
}

登录后复制

在模型中,我们可以界说差别的属性和要领来实现对数据库表的操作,好比 $attributes 属性可以设置模型的默认属性值,可以像下面这样获取一个 User 模型:

$user = AppModelsUser::find($id);

登录后复制

视图

视图是用于向用户可读的方法泛起数据和信息的一种要领。在 resources/views 文件夹下可以看到所有的视图文件。视图通常包括 HTML、CSS 和 JavaScript 代码。

下面是一个简单的 Blade 模板示例:

<!doctype html>
<html>
    <head>
        <title>Laravel</title>
    </head>
    <body>
        <div class="container">
            @yield('content')
        </div>
    </body>
</html>

登录后复制

在该示例模板中,我们可以界说题目和一个容器来嵌套页面内容,并通过 @yield(‘content’) 来插入内容。

路由

路由用于将 URL 和应用程序中的代码相匹配,对应 Laravel 中的路由文件可以在 routes/web.php 中找到。下面是一个示例路由:

<?php

use IlluminateSupportFacadesRoute;
use AppHttpControllersUserController;

Route::get('/user/{id}', [UserController::class, 'show']);

登录后复制

在该示例路由中,我们为用户请求创立了一个 URL 模式,将在 UserController::show() 要领中处理所有的请求。

总结

Laravel 的代码结构和焦点部分主要集中在 app 文件夹中 ?刂破鳌⒛P汀⑹油己吐酚墒 Laravel 中很是重要的四部分。只要学会了这些部分在代码中的实现方法,就可以更好地舆解 Laravel 的运作。虽然,Laravel 的开发者也在不绝地给这些部分添加新的功效,所以学习 Laravel 的历程也是连续不绝的。

以上就是laravel 看不懂框架源码的详细内容,更多请关注本网内其它相关文章!

免责申明:以上展示内容来源于相助媒体、企业机构、网友提供或网络收集整理,版权争议与本站无关,文章涉及见解与看法不代表公海彩船滤油机网官方立场,请读者仅做参考。本文接待转载,转载请说明来由。若您认为本文侵犯了您的版权信息,或您发明该内容有任何涉及有违公德、冒犯执法等违法信息,请您立即联系公海彩船实时修正或删除。

相关新闻

联系公海彩船

18523999891

可微信在线咨询

事情时间:周一至周五,9:30-18:30,节假日休息

QR code
网站地图网站地图