League\Container 不能全局安装,因其无 CLI 入口;须本地 composer require 引入,通过 vendor/autoload.php 加载后手动 new Container() 使用,注意 PHP 版本、自动加载和 IDE 缓存问题。
League\Container 不能通过 Composer 全局安装,必须作为项目依赖引入;它本身不提供命令行工具,也不是“安装完就能用”的独立服务。
为什么
没用
League\Container 是一个纯 PHP 类库,没有 CLI 入口或全局可执行文件。执行
确实会下载代码,但你无法在终端里直接运行
命令——它根本不存在。
它只提供
类,供你在代码里
或
全局安装还会导致 autoloader 冲突,尤其当你多个项目用不同版本时
Composer 的
机制本就适合装
、
这类有 bin 脚本的包
正确引入方式:项目本地 require
在你的项目根目录下运行:
完成后,
会自动加载该库,你就可以在代码中用了:
Composer 2.9.6
Composer 2.9.6 是 PHP 生态中高效、稳定的依赖管理工具。此版本在性能与兼容性上进一步优化,改进了依赖解析算法,提升大型项目中的安装与更新速度。它支持并行下载任务,显著减少等待时间,并增强了与私有仓库及镜像源的交互稳定性。同时修复了多项命令行交互与内存使用相关的缺陷,确保在复杂依赖关系下依然可靠运行。无论是新项目初始化还是现有系统维护,Composer 2.9.6 都能为开发者提供流畅、精准的依赖管理体验。
下载
别手动改
后不跑
—— 依赖不会真正下载
如果项目已禁用自动加载(比如某些微框架),需确认
已被包含
PHP 版本需 ≥ 7.4(v4.x)或 ≥ 8.1(v4.4+),低版本会报
常见报错:
这不是包没装好,而是 autoloading 没触发或路径不对。
检查是否漏了
(尤其在入口脚本如
中)
确认
没被误删过
如果你用的是 PSR-4 自定义命名空间,注意
不支持覆盖其内部命名空间
IDE(如 PHPStorm)可能缓存旧的类索引,重启索引或清缓存后重试
它轻量、无侵入、不绑定框架,但也不会替你自动扫描类或解析注解——所有绑定都得手写。这点容易被忽略:你以为配个配置文件就能自动注入,其实得一行行
或
。
composer global require league/containercomposer global requirecontainerLeague\Container\Containernewmake()globalphpunitlaravel/installercomposer require league/containervendor/autoload.php$container = new \League\Container\Container();
$container->add('Logger', \Monolog\Logger::class);
$logger = $container->get('Logger');composer.jsoncomposer installvendor/autoload.phpParseErrorClass 'League\Container\Container' not foundrequire 'vendor/autoload.php';index.phpcomposer dump-autoloadvendor/composer/autoload_classmap.phpleague/containeradd()share()