Silverstripe 4 — доступ к основным методам

В Silverstripe 3 все было загружено по требованию. Это означало, что каждый мог знать класс и метод, который они хотели использовать. Пример:

Debug::dump('dump message');

Если я правильно понимаю концепции SS4, нужно импортировать класс в файл, который вы хотите использовать метод (или свойство). В приведенном выше примере, нужно сделать что-то, как показано в верхней части файла

use /name/space/to/Debug
Debug::dump('dump message');

Это понимание правильно? Если так, то мой реальный вопрос заключается в том, как разработчик эффективно узнает точное местоположение всего в ядре? Ожидается ли, что они точно знают, где в системе находятся эти основные файлы поверх их имен и методов, которые вы хотите использовать? Есть ли инструменты или методы, чтобы помочь в этом?

2

Решение

Во-первых, просто пояснение — то, о чем вы говорите, не является автозагрузкой, это больше похоже на псевдонимы — но оба они связаны.

Поскольку Debug class больше не находится в глобальном пространстве имен, его имя намного более многословно (SilverStripe\Dev\Debug). Это называется полным именем класса или, если коротко, «FQCN». Однако нет ничего короткого в этом новом имени. Набирать текст утомительно, и если класс когда-либо изменит свое имя, у вас будет много обновлений.

Для этого вы можете использовать use оператор «импортировать» этот класс в локальную область вашего файла под псевдонимом. По умолчанию этот псевдоним является только завершающей частью FQCN (Debug), но вы также можете использовать любой пользовательский псевдоним. (use SilverStripe\Dev\Debug as MyDebugger).

SS4 теперь использует Автозагрузка PSR-4, для которого пространство имен является критической частью. В очень короткие сроки это диктует, что структура каталогов должна совпадать с FQCN, например, /framework/src/Dev/Debug.php, Это делает автозагрузку детерминированной и предсказуемой.

Что касается оснастки, использую полностью включенную IDE, такую ​​как PhpStorm неоценим для выполнения работы разработчика в среде с классами пространства имен (что является гораздо более правилом, чем исключением в наши дни). Хорошая IDE, такая как PHPStorm, не только автоматически заполняется при вводе имени класса, но и добавляет use Заявление для вас, среди многих, многие другие замечательные функции экономии времени.

Для более ручного подхода api.silverstripe.org является хорошим местом для поиска отображений классов.

7

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]