Heim >Backend-Entwicklung >PHP-Tutorial >Yii2框架打包成Phar包报错的经历

Yii2框架打包成Phar包报错的经历

WBOY
WBOYOriginal
2016-07-29 09:05:461129Durchsuche

以yii2为例

打包文件过程比较简单,但打包好以后,一直报错:

PHP Fatal error: Uncaught yii\base\InvalidParamException: The directory does not exist: phar:///Users/jimmy/PHP/Library/yii2-advanced/yii2.phar/console in phar:///Users/jimmy/PHP/Library/yii2-advanced/yii2.phar/base/Module.php:224

一开始一直以为是打包出了问题有文件没有被打包进去,换了各种姿势去打包,还是报各种错。

最后没办法的情况下,去看了报错的这个文件,发现用了realpath来判断路径是否存在,注释掉后,基本正常。这是php一个bug。

<code>/**
 * Sets the root directory of the module.
 * This method can only be invoked at the beginning of the constructor.
 * @param string $path the root directory of the module. This can be either a directory name or a path alias.
 * @throws InvalidParamException if the directory does not exist.
 */
public function setBasePath($path)
{
    $path = Yii::getAlias($path);
    $p = $path;//realpath();
    if ($p !== false && is_dir($p)) {
        $this->_basePath = $p;
    } else {
        throw new InvalidParamException("The directory does not exist: $path");
    }
}</code>

http://git.oschina.net/web3d/codes/zyhsoev0b3i9u5njgaf42

以上就介绍了Yii2框架打包成Phar包报错的经历,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn