Простори імен: псевдонімування та імпорт

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Здатність посилатися на зовнішнє абсолютне ім'я псевдоніму або імпортувати зовнішні абсолютні імена - це важлива властивість просторів імен. Це схоже на здатність файлових систем на основі Unix створювати символічні посилання на файл або директорію.

PHP вміє створювати псевдоніми або імпортувати константи, функції, класи, інтерфейси, трейти, перерахування та простори імен.

Псевдонім імені створюють, вказуючи ключове слово use. Ось приклад, який показує 5 типів імпорту:

Приклад #1 Імпорт або псевдонімування через ключове слово use

Loading...

Зверніть увагу, що іменам усередині простору імен (абсолютним іменам просторів імен, які містять роздільник просторів імен, наприклад Foo\Bar, на відміну від глобальних імен, які його не містять, наприклад FooBar) початковий зворотний сліш (\) не потрібен і не рекомендований, оскільки імена, що імпортуються, повинні бути абсолютними і не обробляються щодо поточного простору імен.

PHP додатково підтримує зручне скорочення для завдання кількох операторів use в одному і тому ж рядку

Приклад #2 Імпорт або створення псевдоніма через ключове слово use, комбінування кількох виразів

Loading...

Імпорт виконується під час компіляції, тому не впливає на імена динамічних класів, функцій або констант.

Приклад #3 Імпорт та динамічні імена

Loading...

Крім того, імпорт поширюється тільки на неповні та повні імена. На абсолютні імена операція імпорту не впливає.

Приклад #4 Імпортування та абсолютні імена

Loading...

Огляд правил імпорту

Ключевое словоuse має бути вказано на самому початку файлу (у глобальній області) або всередині оголошення простору імен. Це необхідно тому, що імпорт виконується під час компіляції, а не під час виконання, тому його не можна укладати в блок. Наступний приклад показує неприпустиму вказівку ключового слова use :

Приклад #5 Неприпустиме правило імпорту

Loading...

Зауваження :

Правила імпорту задають кожен файл окремо. Тому файли, що приєднуються НЕбудут наследовать правила импорта из родительского файла.

Групові оголошення через ключове слово use

Класи, функції та константи, що імпортуються з одного і того ж простору імен (namespace), можна групувати в одному виразі з ключовим словом use

Loading...