Published 6 months ago by consil
I bet thousands of people ask this question every day, search the web, find dozens of partial solutions, dozens of tutorials against unknown versions of Laravel, packages and projects that have been abandoned a year ago, or are not clear in what they do or do not do...so what is today's baseline that will give a new project its initial leg up?
I'm looking to start a new project, hopefully L5.4 or thereabouts. I would like user registration, backend user admin, roles, permissions, password reset, maybe social media auth. You know, all the usual stuff that has to be done, just kind of there and working.
I can install Wordpress, and all that is there in five minutes flat. That;s a great start, but then Wordpress is a MONSTER to try to develop in, leaving you banging your head against a brick wall more often than not. Laravel is an absolute pleasure to develop in. But I want to just get on with the application and now have to spend a week messing on with admin pages, password recovery, registration etc. before I can get close to the application functionality. I'm looking for a rapid but fully functioning prototype framework to build in.
So, am I asking too much? Or are there great solutions to this that I have not found? Or is all there already but I just can't see it?
Laravel is a php framework, where yes you have to code a lot yourself. That's the nature of a framework. But Taylor has good examples in the Docs, and Jeffrey has good training videos. Many are free.
So just take a deep breath, don't try to be too "rapid" and relax and learn this stuff.
I came from java technology to php, a much higher learning curve.
And when you get stuck, show what you tried, and ask for help here.
Edit: I start every project with pencil and paper. Write out and draw up what I want a add / edit page to look like and the logical field order that the customer would be happy with.
I am totally with you @jlrdw and understand what you are saying. I would say the same thing to anyone else starting out, including never underestimating the power of pencil and paper to flesh out an idea. I do that all the time.
I've been down this path a number of times, and have projects written in different versions of Laravel over the years, even going back as far as FuelPHP, which I feel set down some of the structural groundwork that Laravel followed.
Each project is still running today, doing its thing in its own legacy ways. Each followed the lessons of the day, was built on the packages of the moment that seemed popular and did things in a way that felt natural and right. They were all good, and are now all stuck in their own little walled legacy gardens with the occasional updates and bug fixes.
The trouble is, the user stuff - logging in, registering, managing the users at the back end, roles, privileges, ACLs, password recovery - all that stuff is kind of a little footnote in my current project. I just want it done and out the way; "[x] Users". Ticked. Done. Now I can move on to the real guts of the application and flesh it out. That's where the real business end is.
I guess I am looking to hit the ground running a little faster than I would be with a big box of loose LEGO bricks, to mix my metaphors. And I am sure many other people are right there too, and have found the perfect solutions that provide enough out of the box to provide the framework that does things the right way - the Laravel way - and is ready, excited and eager to accept custom modifications so it can shine brighter than it could ever have dreamed.
Sorry, got carried away there. I've looked at Spark. That seems to very much revolve around implementing one particular business model (reseller apps). So I was hoping someone here had hit just the right magical combination of packages, libraries, glue and customisations.
Aghh! Just typed up a long reply, did not realise this forum had expired tokens in the page, refused to post it, then discarded the post I have typed up. Firefox will remember what you typed on going back a page, unless the site tells it not to. This is an annoying bug that has caught me many times in the past, and really needs to go. Just don't throw my post away!
Anyway, found some stuff, did some stuff, looking good so far, and will come back later to fill in the details again.
I think you are right in wanting to hit the ground running a little faster with a few added functionalities already set in. The ones that are usually used.
The way I have been coping with this is, once i develop a project with a functionality that I think I will reuse, i try to isolate it as much as possible. Then when I need it again for another project, I copy and paste. Its not an ideal solution but it does help me get to work faster. Also there are some cool packages out there that I use regularly.
Also thank you for sharing this package. Looks to be a great baseline.
Yes, https://github.com/jeremykenedy/laravel-auth seems to be well thought-out and has many things I needed right from the start. Hopefully if they accept PRs for additions we find really useful, or if I not, I simply maintain a fork, this will be our reusable baseline for the next few projects at least.
One niggle is that each user can only be assigned one role, which is something I thought died out a decade ago - yes, one user can be a supplier and a customer - it's just the way the real world works. Still, it's better than a poke in the eye with a sharp stick, and is fine for our prototype. Edit: the underlying auth package handles multiple roles, and it seems the GUI shows them too if you add them in the database, so it is just lacking admin pages for roles, permissions and adding multiple roles to a user. Which TBH, is great, because the right data structures are all there and handled by the auth middleware.
Copy and paste is fine, but using git is even better. That way you can continue to maintain your baseline install with a complete history, and it makes feeding improvements back into it even easier.