file_put_contents сохраняет плохие символы в файл - PullRequest
0 голосов
/ 23 мая 2018

Я сохранил некоторое содержимое (блок PHPdoc) в файл, используя file_put_contents, но когда этот файл читается другой программой, он не читает мой текст phpdoc .Но когда я сохраняю (добавляю пробел и удаляю его) файл в IDE Netbeans, другая программа может прочитать блок 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

1 Ответ

0 голосов
/ 25 июня 2018

Никаких проблем с персонажем.Это была проблема с кешем.Поскольку мой проект - это проект Symfony, а отредактированный мной файл был сначала сгенерирован Symfony, он кэшировал аннотации (phpdoc) и игнорировал мои следующие изменения.Затем, когда я запускаю проект, Symfony читает кеш, а не файл сущностей.Поэтому, когда я редактирую файл вручную или удаляю кеш, Symfony регенерирует кеш аннотаций (похоже, что Symfony читает дату изменения файла).

...