Как правильно организовать доработку админ пакета tcg/voyager?
================================================================

 Сразу хочу сказать, что будет много текста, laravel я ещё изучаю, и многих тонкостей не знаю, поэтому могу ошибаться в своих рассуждениях. Я больше задаю этот вопрос, людям которые давно работают с laravel и имеют большой опыт с ним.   

  

Админ пакет tcg/voyager реализуется на некоторых базовых моделях фреймворка laravel, исходя из этого у меня возникла необходимость доработать некоторые базовые модели - возьмём к примеру модель users. Я добавил в неё SoftDeletes, и наследовал ее от модели users, непосредственно voyager пакета, настроил конфиги, все заработало с моей доработкой, но базовый виджет UserDimmer перестал работать так как он работает на user модели voyager. Немного покопавшись в исходниках и документации пакета, я разобрался и решил сделать свой виджет на основе моей модернизированной модели users, сделал новый виджет и все работает. Но есть одна загвоздка - я не уверен, что такой способ правильный, с точки зрения организации структуры файлов, их назначения и решения задачи by laravel way. Поделитесь пожалуйста советом и примерами, как бы вы решили эту, в целом, не сложную задачу, но скажем так «правильно» все оформив.  

  

Ниже на скриншотах, пример моей реализации структуры файлов и сам код - пришлось сделать потомка CustomVoyager (так и не смог определить чем он является согласно архитектуры laravel, и в какую папку его определить) от оригинального класса приложения Voyager, который при инициализации, изменяет его свойство - массив базовых моделей приложения models, и вызывает его Facade, что бы определить, можно ли показывать данный виджет пользователю или у него нет прав на это, в моем случаем инициализация CustomVoyager происходит в моем виджете CustomUserDimmer.  

  

![60245b0122ff6693478804.jpeg](https://habrastorage.org/webt/60/24/5b/60245b0122ff6693478804.jpeg)  

![60245b1116ede583829021.jpeg](https://habrastorage.org/webt/60/24/5b/60245b1116ede583829021.jpeg) 

 Решение вопроса тут -   

[https://voyager-docs.devdojo.com/customization/ove...](https://voyager-docs.devdojo.com/customization/overriding-files#overriding-voyager-models)  

Разобрался, нашел в документации то, что мне нужно, мало-ли кто будет искать - вот решение, в сервис провайдер переопределить базовую модель, которую использует Voyager, и тогда моя доработка, что я сделал выше НЕ НУЖНА ВОВСЕ, все так заработает! 

 А вы не пробовали просто добавить неймспейс вашего пользователя в настройках?  

[https://delphinpro.gitbook.io/voyager-ru/getting-s...](https://delphinpro.gitbook.io/voyager-ru/getting-started/configurations#polzovateli)