jeroennoten / Laravel-AdminLTE

Easy AdminLTE integration with Laravel
MIT License
3.85k stars 1.09k forks source link

Add support for laravel/breeze authentication scaffolding #842

Open CyberPunkCodes opened 3 years ago

CyberPunkCodes commented 3 years ago

The docs (installation instructions) for this package do not reflect Laravel 8.

laravel/ui is a legacy package and you should use something like Laravel Breeze. Most likely, in the near future, laravel/ui will be deprecated and should be avoided for new projects.

I think the installation instructions should be for installing on Laravel 8 and Breeze, with a link to alternate instructions for laravel ui.

dfsmania commented 3 years ago

@WadeShuler Yeah, you right, but actually the authentication views provided (OPTIONALLY) by this packare are known to only work as a replacement for the ones that are installed by the laravel/ui legacy package. When I get some time I will check if they can also work with the laravel/breeze authentication scaffolding.

However, note that you can always stick with your preferred authentication scaffolding (Breeze, Jetstream, laravel/ui or another one), and then, after authentication has been done start using the package layout to display the admin panel. Again, the authentication views provided by this package are NOT MANDATORY and actually works only as replacement of the laravel/ui ones.

CyberPunkCodes commented 3 years ago

@Shidersz I understand that. This package was great on Laravel 7. It is still great now, but it seems to be caught in-between two different worlds, Laravel 7 and Laravel 8. Which, I understand :)

I understand they are optional, but unless you are a seasoned veteran with Laravel and have installed AdminLTE a dozen times, you have no idea what files you need to pull in to hook it all up.

The issue with this package at the moment, is the routes and everything do not line up with Breeze. For example, the forgot password routes (and many others). I was left with it being able to register and login, but the forgot password and everything else was a 404, as well as the views were using the laravel breeze layout and not AdminLTE.

I have been programming for a long time, but still never mastered Laravel. Time crunches on projects kept me on frameworks I already knew well. So for someone new to Laravel, there just isn't a clear process. I tried on laravel ui, got it to work.. but now trying on breeze, and looking at all the files scattered all over the place, it's a disorganize mess and I don't know what goes with what, or what is needed, etc..

What I am doing now, is I have a few different Laravel 8 fresh installs and using Git to keep track of what is changing along the way (on a branch so I can easily go back to my fresh laravel install). I am trying to compare what files exactly Breeze modified and adds, and in another comparing what laravel ui and admin lte modifies and adds.

So yeah, when using laravel ui, this installer will work correctly. When using Breeze, it has no idea and it's like 2 different sets of files laying side-by-side and not knowing how to interact with each other.

I wish I knew more about Laravel and what is going on. I would help out on this repo. I think it needs at least 2 types of install methods. install on laravel ui and install on laravel breeze.

Again, not bashing. Love the project. It isn't your fault Laravel keeps changing things up faster than people can keep up :)

dfsmania commented 3 years ago

@WadeShuler I will take this on consideration for the future. For the moment, I need to dedicate my little free time for the integration with the new AdminLTE v3.1.0 and Blade-X Components. On the other hand, I have tested Breeze installation today and I have some ideas on how to support it. Maybe with a php artisan adminlte:install --only=auth_views_breeze while renaming the previous one to php artisan adminlte:install --only=auth_views_laravelui. Breeze uses a different set of authentication views (with other names), and also other route names. So, some work will be required to support it adding a new package resource class that will handle its installation.

Thanks for your feedback!

CyberPunkCodes commented 3 years ago

Awesome, thank you for your consideration and understanding.

Here is a list of the 2 different sets of routes between the laravel ui option and laravel breeze. They are simply the unique routes in alphabetical order. The output from php artisan route:list. Some may not have or need a view associated with them.

laravel ui laravel breeze
/ /
api/user api/user
home confirm-password
login dashboard
logout email/verification-notification
password/confirm forgot-password
password/email login
password/reset logout
password/reset/{token} register
register reset-password
reset-password/{token}
verify-email
verify-email/{id}/{hash}