我已使用file_put_contents
将一些内容(PHPdoc块)保存到文件中,但是,当该文件被其他程序读取时,它不会读取我的 phpdoc文本。但是当我在Netbeans IDE中保存(添加空格并删除它)文件时,另一个程序可以读取phpdoc块而无需修复任何内容。可能是什么原因以及如何解决它。
生成的文本中没有错误。我刚刚使用Netbeans保存了文件并且它有效,我没有修改任何内容。
代码:
$tableOrmAnnotation = "* @ORM\\Table(name=\"song\")";
$evntHandlerCode = "* @ORM\\EntityListeners({\"hghcgh\\gvhghgBundle\\EventListener\\SongUploadListener\"})";
$entityCnt = file_get_contents($entityFilePath);
$entityCnt = \str_replace($tableOrmAnnotation, $tableOrmAnnotation . "\n " . $evntHandlerCode, $entityCnt);
\file_put_contents($entityFilePath, $entityCnt);
生成的文字:
/**
* Song
*
* @ORM\Table(name="song")
* @ORM\EntityListeners({"hghcgh\gvhghgBundle\EventListener\SongUploadListener"})
* @ORM\Entity(repositoryClass="hghcgh\gvhghgBundle\Repository\SongRepository")
*/
class Song
答案 0 :(得分:0)
这不是任何字符问题。这是一个缓存问题。由于我的项目是一个Symfony项目,而我编辑的文件是首先由Symfony生成的,因此它会缓存注释(phpdoc),而忽略我的以下修改。然后,当我启动项目时,Symfony读取缓存而不是实体文件。因此,当我手动编辑文件或删除缓存时,Symfony会重新生成注释缓存(看起来像Symfony读取了文件修改日期)。