📜  如何自动加载 composer.json laravel 中添加的配置文件 - Javascript (1)

📅  最后修改于: 2023-12-03 14:53:15.318000             🧑  作者: Mango

如何自动加载 Composer.json Laravel 中添加的配置文件

在 Laravel 开发中,我们经常需要引入一些第三方组件,以及自己编写一些常用类库等等。为了方便管理这些组件和类库,我们通常会使用 Composer 来进行依赖管理。在 Laravel 中,可以通过在 composer.json 文件中添加配置信息,自动加载我们的组件和类库。本文将介绍如何在 Laravel 中自动加载添加到 composer.json 的配置文件。

Composer.json 介绍

Composer 是 PHP 的依赖管理工具,它可以通过在 composer.json 文件中添加配置信息,来管理项目的依赖。

Laravel 项目中的 composer.json 文件通常长这样:

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": "^8.0",
        "fideloper/proxy": "^4.4",
        "laravel/framework": "^8.12",
        "laravel/tinker": "^2.5"
    },
    "require-dev": {
        "facade/ignition": "^2.5",
        "fakerphp/faker": "^1.9.1",
        "phpunit/phpunit": "^9.3.3"
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/",
            "Database\\Factories\\": "database/factories/",
            "Database\\Seeders\\": "database/seeders/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "config": {
        "optimize-autoloader": true,
        "preferred-install": "dist",
        "sort-packages": true
    },
    "extra": {
        "laravel": {
            "dont-discover": []
        }
    }
}

其中,autoload 配置项定义了项目的自动加载规则。

添加自动加载配置

Laravel 中,我们可以通过 composer.json 文件中的 autoload 配置来添加自动加载规则。

以添加一个自定义类库 App/Helpers 为例,首先需要在项目中创建这个目录,并在目录下创建一个类库文件 MyHelpers.php,文件内容如下:

<?php

namespace App\Helpers;

class MyHelpers
{
    public static function test()
    {
        echo "Hello World!";
    }
}

然后在 composer.json 文件中添加如下配置:

{
    "autoload": {
        "files": [
            "app/Helpers/MyHelpers.php"
        ]
    }
}

此时,我们已经成功添加了一个自动加载的类库。

更新 Composer

在配置完成后,需要通过 composer dump-autoload 命令来更新自动加载规则。只有更新后,我们添加的自动加载规则才能生效。

总结

以上就是在 Laravel 中,通过 composer.json 文件自动加载类库的方法。通过这种方式,我们可以方便地管理自己的代码,也可以轻松使用第三方组件,提高开发效率。

// 添加一个自动加载的类库
{
    "autoload": {
        "files": [
            "app/Helpers/MyHelpers.php"
        ]
    }
}