【问题标题】:How to access packages in vendor directory如何访问供应商目录中的包
【发布时间】: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 目录结构中的包?

【问题讨论】:

标签: php cakephp autoload


【解决方案1】:

我现在环顾四周,在vendor 目录中看到了文件autoload.php,我试了一下。

解决办法是:

在 CakePHP 世界我只需要包含这个 autoload.php:

include( __DIR__ . '/../vendor/autoload.php');

然后vendor 目录中的所有包都可用了。

【讨论】:

    猜你喜欢
    • 2013-10-31
    • 1970-01-01
    • 2023-03-29
    • 2017-01-11
    • 2017-04-27
    • 2018-07-06
    • 1970-01-01
    • 2017-05-02
    • 2012-10-30
    相关资源
    最近更新 更多