Приветы!
...про модули и их бутстрап:
До этого смотрел как сделано у дргих, и делал отдельным файлом Bootstrap. Теперь открыл для себя что сам класс модуля (Module обычно) могет сам implements BootstrapInterface и вроде тогда зачем файлы плодить? Но я подозреваю что есть какие то подводные камни или я просто чего то не понимаю... Может есть какие то договоренности или где то может пригодится бутстрап-функция именно отдельно от класса модуля?
И еще, если делать внутри Module тогда вроде как и в composer.json extra:bootstrap прописывать не нада, верно?
Спасибо!
Module::bootstrap($app) vs Bootstrap::bootstrap($app)
Module::bootstrap($app) vs Bootstrap::bootstrap($app)
// Yii2Rulez!
Re: Module::bootstrap($app) vs Bootstrap::bootstrap($app)
я так понимаю, в случае модуля создастся объект модуля, а он будет жирнее чем отдельный класс.fly2k писал(а):Приветы!
...про модули и их бутстрап:
До этого смотрел как сделано у дргих, и делал отдельным файлом Bootstrap. Теперь открыл для себя что сам класс модуля (Module обычно) могет сам implements BootstrapInterface и вроде тогда зачем файлы плодить? Но я подозреваю что есть какие то подводные камни или я просто чего то не понимаю... Может есть какие то договоренности или где то может пригодится бутстрап-функция именно отдельно от класса модуля?
почему? надоfly2k писал(а): И еще, если делать внутри Module тогда вроде как и в composer.json extra:bootstrap прописывать не нада, верно?
Re: Module::bootstrap($app) vs Bootstrap::bootstrap($app)
ну да... это то есть urlManager прописали, но если по нему не будет хитов, то экземпляз модуля так и не будет создан...zelenin писал(а): я так понимаю, в случае модуля создастся объект модуля, а он будет жирнее чем отдельный класс.
с другой стороны, насколько тяжелый сам класс модуля? он ведь контроллеры(если их куча) не будет грузить - там тоже всё лениво...
я к тому, что может отдельный Bootstrap оправдан только в том случае если в классе самого модуля полно кода. Но вообще то, нафик наверное, ибо легко могет быть ситуёвина где конструктор модуля могеть только после бутстрапа выполнен...
ну я до конца конечно не уверен но вроде вотzelenin писал(а):почему? надоfly2k писал(а): И еще, если делать внутри Module тогда вроде как и в composer.json extra:bootstrap прописывать не нада, верно?
и если модуль implements BootstrapInterface, то вроде как должно работать... то есть в конфиге то приложения нада прописывать всё равно, но в composer.json - не... в этом смысле может быть удобно: хочешь - юзай отдельно классы, из расширения, хочешь - подключай модуль, а хочешь - пропиши в конфиге его(модуль) в bootstrap.
Но это в случае модуля. В случае асбстрактного расширения, где модуль не подразумевается, без этого наверное никак... Но блин меня смущает вот эта вот избыточность(в конфиге приложения вроде как логичнее бутстрап прописать?) и безвариантность(решение о бутстрапе в модуле как бэ hardcoded) описания extra:bootstrap в composer.json
По всему, наверное, сама суть отдельного класса с единственной функцией - оно да, но вот как бы избавиться от канители с composer.json и позволить принимать решение о бутстрапе(нада - не нада) всё таки на уровне приложения, а не расширения...
// Yii2Rulez!
Re: Module::bootstrap($app) vs Bootstrap::bootstrap($app)
не совсем понял про хиты.fly2k писал(а):ну да... это то есть urlManager прописали, но если по нему не будет хитов, то экземпляз модуля так и не будет создан...zelenin писал(а): я так понимаю, в случае модуля создастся объект модуля, а он будет жирнее чем отдельный класс.
с другой стороны, насколько тяжелый сам класс модуля? он ведь контроллеры(если их куча) не будет грузить - там тоже всё лениво...
я к тому, что может отдельный Bootstrap оправдан только в том случае если в классе самого модуля полно кода. Но вообще то, нафик наверное, ибо легко могет быть ситуёвина где конструктор модуля могеть только после бутстрапа выполнен...
тем не менее зачем создавать объект того, чего не нужно?
опять же не понял. у вас два выбора: либо вручную прописывать в бутстрап либо через композер, и композер сам пропишет в бутстрап.fly2k писал(а):ну я до конца конечно не уверен но вроде вот
и если модуль implements BootstrapInterface, то вроде как должно работать... то есть в конфиге то приложения нада прописывать всё равно, но в composer.json - не... в этом смысле может быть удобно: хочешь - юзай отдельно классы, из расширения, хочешь - подключай модуль, а хочешь - пропиши в конфиге его(модуль) в bootstrap.
причем оба способа взаимозаменяемы.
вообще не смешивайте модули и бутстрапы. бутстрап относится к модулю как и к любому другому виду расширения.fly2k писал(а):Но это в случае модуля. В случае асбстрактного расширения, где модуль не подразумевается, без этого наверное никак... Но блин меня смущает вот эта вот избыточность(в конфиге приложения вроде как логичнее бутстрап прописать?) и безвариантность(решение о бутстрапе в модуле как бэ hardcoded) описания extra:bootstrap в composer.json
По всему, наверное, сама суть отдельного класса с единственной функцией - оно да, но вот как бы избавиться от канители с composer.json и позволить принимать решение о бутстрапе(нада - не нада) всё таки на уровне приложения, а не расширения...
Хардкодед - да. Но там необходимый для расширения функционал. Не нужен? Не ставь.
Re: Module::bootstrap($app) vs Bootstrap::bootstrap($app)
А что Вам мешает это сделать? Не пишите в композер бутстрап, а напишите в конфиге.fly2k писал(а):в конфиге приложения вроде как логичнее бутстрап прописать?
Re: Module::bootstrap($app) vs Bootstrap::bootstrap($app)
Вот я и разбираюсь... Так то понимаю что в App::bootstrap можно вообще любой класс прописать и пофиг от какого он расширения и откуда вообще, главное чтобы implements BootstrapInterface...
Изначально вообще казалось что в composer.json обязательно прописывать bootstrap в любом случае... и плюсом в конфиге приложения... ну это каша пригорела
Хотелось бы, может, чтобы в App::bootstrap можно было писать имя расширения(модуля) вместо имени класса, но это капризы уже
Изначально вообще казалось что в composer.json обязательно прописывать bootstrap в любом случае... и плюсом в конфиге приложения... ну это каша пригорела
Хотелось бы, может, чтобы в App::bootstrap можно было писать имя расширения(модуля) вместо имени класса, но это капризы уже
// Yii2Rulez!
Re: Module::bootstrap($app) vs Bootstrap::bootstrap($app)
вы так и не поняли структуру. расширение/модуль/бутстрап не зависят друг от друга - их может быть несколько, или не быть вовсе, и непонятно что в таком случае писать.fly2k писал(а): Хотелось бы, может, чтобы в App::bootstrap можно было писать имя расширения(модуля) вместо имени класса, но это капризы уже
Re: Module::bootstrap($app) vs Bootstrap::bootstrap($app)
да вроде догоняю, хотя да - долгое время вообще бустрап считал частью расширения...
всем спасибо, тема для меня пока исчерпана... а то я было ринулся бутстрап в класс модуля переносить
всем спасибо, тема для меня пока исчерпана... а то я было ринулся бутстрап в класс модуля переносить
// Yii2Rulez!