Оптимизация уровня 1 может создать проблемы, если вы переместите класс в другой каталог без изменения пространства имен.Поскольку может быть несколько способов разрешения одного пространства имен, такие изменения будут правильно обрабатываться Composer, но могут не работать, если у вас устаревшая карта классов.
Пример:
"autoload": {
"psr-4": {
"app\\": "src",
"app\\db\\": "src/drafts/db"
}
},
Класс app\db\Entity
может быть помещен в src/drafts/db/Entity.php
или src/db/Entity.php
, и в этом порядке Composer будет искать файл класса.Обычно, если вы перемещаете файл из src/drafts/db
в src/db
, Composer, наконец, найдет этот класс.Но если у вас устаревшая карта классов, Composer будет слепо включать несуществующий файл, и вы получите фатальную ошибку.
В дополнение к этой опции apcu-autoloader
также будет кешировать пропуски.Поэтому, если вы запрашиваете несуществующий класс app/db/NewEntity
, а затем добавляете этот класс, Composer не обнаружит это изменение, поскольку он кэшировал информацию о том, что этот класс не существует.
Обычно это крайние случаи, обычноВы никогда не заметите такие нюансы.Но это все еще возможно, и незаметное повышение производительности в среде разработки не стоит риска потерять несколько часов на отладку проблем с кешем автозагрузчика Composer.