Valonix
@Valonix
Back end / Front end developer

Как пользоваться namespace php?

Добрый день. Объясните мне пожалуйста как с этим работать?
Тут был php.net/manual/ru/language.namespaces.php прочел и все равно не понял.
Хочу понять как это работает, так как сейчас начал учить YII2 и там это везде. И дальше нет смысла двигаться пока не пойму как это работает.
Вот в какой нибудь моделе я создаю объект и PHP Storm предлагает мне при создании объекта написать не new User, а app\models\User к примеру. Что это значит? То есть я в моделе юзера могу прописать другой путь в namespace и обращаться в моделе SignupForm так - $model = app\models\KakYaNazvalNamespace ??? При этом и use нужно будет написать такой же или я не правильно понял?
В Codeigniter и в OpenCart была загрузка моделей что-то типа "load this user model" А тут иначе.
  • Вопрос задан
  • 2803 просмотра
Пригласить эксперта
Ответы на вопрос 3
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Namespace это просто еще один вариант структурирования кода.

Есть стандарты PSR, в частности PSR-0(устаревший) и PSR-4 ( www.php-fig.org/psr/psr-4 ) касаются автозагрузки классов. Вот чисто между собой все договорились что классы должны называться вот так, должны быть вот такие то неймспейсы и лежать это все должно вот в таких папочках, что бы используемые автолоадеры это проглатывали.
Ответ написан
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
Работать по аналогии с папками - в одну папку 2 файла с одинаковым именем не запихнуть, значит нужно создать под каждый файл свою папку, группировать файлы по папкам\неймспейсам по смыслу\функционалу, например: контроллеры Your\Namespace\Controller\Base, Your\Namespace\Controller\Page\Base, Your\Namespace\Controller\Widget\Base
Ответ написан
Valonix
@Valonix Автор вопроса
Back end / Front end developer
Кому интересно, вот тут интересно расписано habrahabr.ru/post/245893
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 23:00
5000 руб./за проект
19 апр. 2024, в 20:43
20000 руб./за проект