GA黄金甲

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 文件夹中 ?刂破鳌⒛W印⑹油己吐酚墒 Laravel 中很是主要的四部分。只要学会了这些部分在代码中的实现方法 ,就可以更好地明确 Laravel 的运作。虽然 ,Laravel 的开发者也在一直地给这些部分添加新的功效 ,以是学习 Laravel 的历程也是一连一直的。

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

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

相关新闻

联系GA黄金甲

18523999891

可微信在线咨询

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

QR code
【网站地图】【sitemap】