我创建了一个 cli 应用程序,它尝试使用 symfony 3 文件系统组件创建一个文件。一切正常,但如果我将应用程序放在 phar 存档中,symfony 将无法写入文件。
这就是我创建 phar 档案的方式:
<?php
$phar = new Phar('app.phar', 0, 'app.phar');
$phar->buildFromDirectory(dirname(__FILE__) );
$phar->setStub($phar->createDefaultStub('app.php'));
app.php 调用 symfony 文件系统组件:
<?php
....
$this->fileSystem->dumpFile(
'testfile.txt',
'my test content'
);
如果我直接执行 app.php,这可以正常工作。但是,如果我将它作为 .phar 执行,我会收到此消息。
[Symfony\Component\Filesystem\Exception\IOException]
Failed to create ".": mkdir(): File exists.
其他操作喜欢echo
工作正常。在我看来,我认为 phar 存档的 IO 操作存在问题。但我不明白这是什么问题。在我的 php.ini 中配置了 phar.readonly=Off 。
我希望有人能给我一个提示。:)