未定义的方法
(相关文件链接在我问题的底部。)
我让作曲家写了一些
post-install-cmd
post-update-cmd
脚本。在我的脚本中,我想利用
readlink()
函数来自
symfony/filesystem
/vendor
文件夹中有
3.4
我
use Symfony\Component\Filesystem\Filesystem;
在我档案的最上面。
但每当我跑的时候:
$fs = new Filesystem();
$path = '/path/to/some/symlink';
if ($fs->readlink($path)) {
// code
}
出现以下错误,告诉我调用的是未定义的方法:
PHP致命错误:未捕获错误:调用未定义的方法
好的,所以我在我的项目的
文件夹。这种方法是存在的。我的IDE指向我。但当我跑的时候:
$fs = new Filesystem();
get_class_methods($fs);
它试图从哪个文件加载方法?
好的,我试着检查它从哪个文件加载这个类:
$fs = new Filesystem();
$a = new \ReflectionClass($fs);
echo $a->getFileName();
phar:///usr/local/Cellar/composer/1.7.2/bin/composer/vendor/symfony/filesystem/Filesystem.php
但为什么呢?为什么它要从我的苹果地窖里拿走包裹?真奇怪。
但好吧,我认为这是一个自制的问题,并卸载了自制作曲家
$ brew uninstall --force composer
然后又安装了一次,就像上面记录的那样
https://getcomposer.org/doc/00-intro.md#globally
.
但现在都一样了。
$a=新的\ReflectionClass($fs);
phar:///usr/local/bin/composer/vendor/symfony/filesystem/Filesystem.php
.
还有什么?
$PATH
包含
/Users/leymannx/.composer/vendor/bin /usr/local/bin /usr/bin /bin /usr/sbin /sbin
/Users/leymannx/.composer/vendor/bin
只返回
/usr/local/bin /usr/bin /bin /usr/sbin /sbin
我还尝试在我的
composer.json
. 还是一样:
"optimize-autoloader": true,
"classmap-authoritative": true,
"vendor-dir": "vendor/",
我终于在GitHub上创建了一个问题:
https://github.com/composer/composer/issues/7708