Часто бывает нужно использовать сторонние библиотеки классов. Или какой то свой код хочется вынести в отдельный класс. Конечно правильнее использовать для этого расширения и делать это через композер. Но на дешевом шаред хостинге о доступе к консоли речи не идет и проще использовать компоненты. Все как в Yii 1. Если в корне нет папки components – создаем её. В принципе можно создать совершенно любую папку. В ней можно создать необходимые подпапки. Допустим мы создали папку components, в ней подпапку azzrael, в ней файл Helpers, а в файле мы будем писать наш код. Но сначала нужно прописать неймспейс. Без неймспейса при попытке использовать класс в файле мы получим ошибку.

Для указанного примера неймспейс будет таким

То есть components, azzrael это по сути путь до файла класса. Ну а дальше пишем код класса. Например так.

Чтобы использовать этот класс пишем такой код

Если класс нужен часто можно в web.php, в компонентах прописать так:

Тогда чтобы использовать класс нужно будет писать так:

 

18 сентября 2015 |

2 Комментариев к “Yii2 как использовать свои классы”

  1. Lev 27 мая, 2016

    Здравствуйте.
    “В ней можно создать необходимые подпапки. Допустим мы создали папку components, в ней подпапку azzrael, в ней файл Helpers, а в файле мы будем писать наш код.”
    namespace app\components\azzrael;
    А зачем дальше пример с файлом components\helpers ? нельзя было так же папку Azzrael оставить, сбивает с толку этот момент, не сразу понятен, особенно новичкам

  2. Azzrael 9 июня, 2016

    Поправил код с примерами. Но, по большому счету, здесь просто нужно разобраться с неймспейсами. А без них теперь в php никуда.

Есть что сказать по теме статьи? Пожалуйста - пишите!