Cleaver 开源项目教程
1. 项目的目录结构及介绍
Cleaver 项目的目录结构如下:
cleaver/
├── app/
│ ├── Console/
│ ├── Exceptions/
│ ├── Http/
│ │ ├── Controllers/
│ │ ├── Middleware/
│ │ ├── Requests/
│ │ └── Kernel.php
│ ├── Models/
│ ├── Providers/
│ │ ├── AppServiceProvider.php
│ │ ├── AuthServiceProvider.php
│ │ ├── BroadcastServiceProvider.php
│ │ ├── EventServiceProvider.php
│ │ └── RouteServiceProvider.php
│ └── Services/
├── bootstrap/
│ ├── app.php
│ └── cache/
├── config/
│ ├── app.php
│ ├── auth.php
│ ├── broadcasting.php
│ ├── cache.php
│ ├── database.php
│ ├── filesystems.php
│ ├── hashing.php
│ ├── logging.php
│ ├── mail.php
│ ├── queue.php
│ ├── services.php
│ ├── session.php
│ └── view.php
├── database/
│ ├── factories/
│ ├── migrations/
│ └── seeds/
├── public/
│ ├── index.php
│ └── assets/
├── resources/
│ ├── js/
│ ├── lang/
│ ├── sass/
│ └── views/
├── routes/
│ ├── api.php
│ ├── channels.php
│ ├── console.php
│ └── web.php
├── storage/
│ ├── app/
│ ├── framework/
│ │ ├── cache/
│ │ ├── sessions/
│ │ └── views/
│ └── logs/
├── tests/
│ ├── Feature/
│ └── Unit/
├── .env
├── .env.example
├── .gitignore
├── artisan
├── composer.json
├── composer.lock
├── package.json
├── phpunit.xml
├── README.md
├── server.php
└── webpack.mix.js
目录结构介绍
app/
: 包含应用程序的核心代码,包括控制器、模型、服务提供者等。bootstrap/
: 包含启动应用程序的文件,如app.php
。config/
: 包含应用程序的配置文件。database/
: 包含数据库迁移、种子和工厂文件。public/
: 包含公共资源和入口文件index.php
。resources/
: 包含视图、语言文件和前端资源。routes/
: 包含应用程序的路由定义。storage/
: 包含应用程序生成的文件,如日志、缓存等。tests/
: 包含测试文件。.env
: 环境配置文件。artisan
: Laravel 命令行工具。composer.json
和composer.lock
: Composer 依赖管理文件。package.json
: npm 依赖管理文件。phpunit.xml
: PHPUnit 配置文件。README.md
: 项目说明文档。server.php
: 用于开发服务器的文件。webpack.mix.js
: Laravel Mix 配置文件。
2. 项目的启动文件介绍
public/index.php
这是 Cleaver 项目的入口文件。它负责启动应用程序,加载 Composer 自动加载器,并实例化应用程序实例。
<?php
/**
* 启动应用程序
*/
require __DIR__.'/../bootstrap/app.php';
$app = require_once __DIR__.'/../bootstrap/app.php';
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);
$response->send();
$kernel->terminate($request, $response);
bootstrap/app.php
这个文件负责创建 Laravel 应用程序实例,并注册核心服务提供者。
<?php
$app = new Illuminate\Foundation\Application(
$_ENV['APP_BASE_PATH'] ?? dirname(__DIR__)
);
$app->singleton(
Illuminate\Contracts\Http\Kernel::class,
App\Http