Composer 自动加载全局自定义函数

自定全局函数

  1. composer.json文件,在autoload下添加files字段,添加对应的自动加载文件。

我这里是进行Composer包开发,所以路径是src/,如果是有特定的路径存放(例如对应的项目文件夹),定义的时候注意修改文件路径就好。

如果自定义的全局自定义函数只是想要在开发环境下使用,那可以在autoload-dev字段下添加对应的内容。

{
    "name": "wenhsing/cgf",
    "description": "Auto loading of custom global functions",
    "license": "MIT",
    "type": "library",
    "authors": [
        {
            "name": "Wenhsing",
            "email": "wenhsing@qq.com"
        }
    ],
    "require": {
        "php": "^7.2"
    },
    "autoload": {
        "files": [
            "src/functions.php"
        ]
    },
    "autoload-dev": {
        "files": [
            "src/functions_dev.php"
        ]
    },
    "minimum-stability": "stable"
}

  1. 创建src/functions.php函数文件,用以存放自定义全局函数。开发用的全局这里就不列举了,同理的。
<?php

// 测试用
if (!function_exists('custom_func_test')) {
    function custom_func_test()
    {
        var_dump(func_get_args());
    }
}

  1. 运行composer dump-autoload命令让Composer重新载入文件。

其他主要注意的内容:

  1. 发现找不到对应的函数,那可以核查一下vendor/composer/autoload_files.php,看看你的文件有没有加载。如果没有加载,那查看一下路径是否正确。

  2. 如果是本地开发Composer包的情况下,包内已经显示了路径,而其他依赖这个包的项目并没有加载,那可以尝试删除项目中的vendor文件夹和composer.lock文件再重新安装,看看文件有没有加载。

  3. 一般情况下,使用Composer的项目都会加载autoload.php文件,但是不排除一些奇葩情况,如果项目没有引用那你就引用就好。

posted @ 2021-02-19 15:39  Wenhsing  阅读(382)  评论(0编辑  收藏  举报