【发布时间】:2020-11-15 20:42:07
【问题描述】:
在任何CakePHP 控制器中从vendor 目录结构调用任何包都有效,因为composer 正确设置了所有内容。例如来自https://github.com/giggsey/libphonenumber-for-php#quick-examples的这个MCVE
$swissNumberStr = "044 668 18 00";
$phoneUtil = \libphonenumber\PhoneNumberUtil::getInstance();
try {
$swissNumberProto = $phoneUtil->parse($swissNumberStr, "CH");
var_dump($swissNumberProto);
} catch (\libphonenumber\NumberParseException $e) {
var_dump($e);
}
当我直接在webroot/sample.php 中运行相等代码时,它会失败:
得到错误'PHP 消息:PHP 致命错误:未捕获错误:类 在 ...sample.php 中找不到“libphonenumber\PhoneNumberUtil”
我的问题:
我必须在 CakePHP 世界之外做什么才能使用 vendor 目录结构中的包?
【问题讨论】:
-
这只是因为他们通过作曲家安装了它:
composer require giggsey/libphonenumber-for-php。 vendor 文件夹是 composer 存储您的依赖项的一个文件夹。也许看看项目,看看它是如何易于使用的:getcomposer.org -
@β.εηοιτ.βε 检查我的答案,我想,我找到了解决方案。最后它比我想象的要简单。希望它可以帮助其他有同样问题的人。
-
getcomposer.org/doc/04-schema.md#classmap ,然后使用命名空间来包含类