При использовании пространств имен в PHP, у вас есть выбор, как ссылаться на них. Вы можете поместить их в начало вашего класса
use Symfony\Component\HttpFoundation\JsonResponse;
Или вы можете включить их, как вы называете класс:
return Symfony\Component\HttpFoundation\JsonResponse::create($data);
Мой вопрос, есть ли какие-либо соображения производительности, которые могли быпредпочитаете один метод другому?
Я мог бы себе представить, основываясь на каких-либо реальных знаниях, что вполне возможно, что объявление use
в классе может быть своего рода предопределенными определениями классов, которые никогда не будут использованы вфактическое выполнение кода, в зависимости от данных - к которому можно обратиться, ссылаясь только на класс пространства имен, когда вы на самом деле вызываете его. Или, если вы делаете объявление во время разработки, но никогда не заканчиваете тем, что вызываете этот класс, но не думаете удалять его, когда заканчиваете, ваш код всегда загружал бы определение этого класса и никогда не использовал его.
Продолжая использовать мои очень точные знания PHP во время выполнения, возможно, что объявление пространств имен в определении класса будет скомпилировано, что сделает его более быстрым при вызове этого класса, вместо того, чтобы выполнять какой-то «динамический» поискпри вызове класса.
Или use
используют пространства имен в верхней части объявлений классов только для удобства разработчика, чтобы избежать многократной типизации?
Я нашел этот вопрос, Являются ли пространства имен плохими для производительности? , но спрашивается только, если использование пространств имен для всех , где-либо в коде, отрицательно влияет на производительность. Также ему 7 лет;возможно, информация устарела.