PHP PHP  ·  25 вопросов  ·  ~70 мин  ·  ⏱ Таймер 10:00  ·  Средний  · 

Пространства имён и автозагрузка

Тест проверяет путь от имени класса в коде до файла, который должен загрузить Composer. Вопросы затрагивают use, псевдонимы, полные имена, конфликты и ошибки в сопоставлении пространства имён каталогу.

Отвечено: 0 из 25
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. Разбирайте каждое имя слева направо: текущее пространство, импорт и правило автозагрузки. Таймер — 70 минут.
Вопрос 1 из 25
Какое полное имя имеет класс?
PHP
namespace App\Model;
class User {}
Вопрос 2 из 25
Что означает начальный обратный слеш в new \DateTimeImmutable()?
PHP
namespace App\Service;
$now = new \DateTimeImmutable();
Вопрос 3 из 25
Почему объявление namespace размещают до обычного исполняемого кода файла?
PHP
namespace App\Service;

final class Mailer {}
Вопрос 4 из 25
Как вызвать глобальную функцию strlen из namespace явно?
PHP
namespace App\Text;
$length = \strlen('PHP');
Вопрос 5 из 25
Что означает namespace\Helper?
Вопрос 6 из 25
Что делает use Vendor\Package\Client;
PHP
namespace App\Checkout;
use Vendor\Package\Client;

$client = new Client();
Вопрос 7 из 25
Как импортировать два класса User с разными короткими именами?
PHP
use Domain\User as DomainUser;
use Api\User as ApiUser;

$entity = new DomainUser();
$dto = new ApiUser();
Вопрос 8 из 25
Импортируется ли функция обычным class-use автоматически?
PHP
namespace App;
use Vendor\Tools\Helper;
use function Vendor\Tools\normalize;

$value = normalize(' demo ');
Вопрос 9 из 25
Что выведет код после импорта класса A\X коротким именем X?
PHP
namespace A { class X { public function v(){return 'X';} } }
namespace B { use A\X; echo (new X)->v(); }
Вопрос 10 из 25
Почему use нельзя считать заменой require_once без автозагрузчика?
Вопрос 11 из 25
Как путь обычно строится из App\Service\Mailer при префиксе App\ => src/?
PHP
$prefix = 'App\\';
$baseDir = __DIR__ . '/src/';
$class = 'App\\Service\\Mailer';
Вопрос 12 из 25
Почему класс может работать на Windows и не находиться на Linux?
PHP
namespace App\Service;

final class Mailer {}

$path = __DIR__ . '/src/service/Mailer.php';
Вопрос 13 из 25
Когда нужен composer dump-autoload?
Вопрос 14 из 25
Что делает vendor/autoload.php?
Вопрос 15 из 25
Почему не стоит вручную require каждый класс в контроллере?
Вопрос 16 из 25
Что произойдёт, если раскомментировать второй use без псевдонима as?
PHP
namespace Demo;

use Api\User;
// use Domain\User; // второй импорт с тем же коротким именем

$user = new User();
Вопрос 17 из 25
Код находится в namespace App\Controller, а импорт User уже занят другим классом. Как создать именно Vendor\Package\User, не меняя use?
PHP
namespace App\Controller;
use Vendor\Legacy\User;

// Требуется экземпляр Vendor\Package\User.
Вопрос 18 из 25
Можно ли дать псевдоним встроенному классу?
Вопрос 19 из 25
Что делает class_alias?
Вопрос 20 из 25
Почему псевдоним Cache для двух разных смыслов вреден даже в разных файлах?
Вопрос 21 из 25
Что проверяет class_exists($name)?
PHP
$name = 'Vendor\\Package\\Client';
if (class_exists($name)) {
    $client = new $name();
}
Вопрос 22 из 25
Ошибка Class not found появилась после переименования каталога только регистром. Что проверить?
PHP
$class = 'App\\Service\\Mailer';
$file = __DIR__ . '/src/service/Mailer.php';
require $file;
Вопрос 23 из 25
Какой инструмент Composer показывает, почему конкретный класс не соответствует PSR-4?
Вопрос 24 из 25
Почему ручной spl_autoload_register, который подавляет все ошибки, затрудняет диагностику?
Вопрос 25 из 25
Как проверить воспроизводимость автозагрузки перед выпуском?

Ответьте на все 25 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу