Advanced Laravel: 10 Topics to Learn

Advanced Laravel: 10 Topics to Learn

MD. Arif Ahmed

--

Topic 1. Sending emails and notifications

You sometimes need to send notification form your application, seems like a topic for basic Laravel developer, but while it’s easy to send emails, but the whole system of various notifications is much deeper, and worth studying.

Topic 2. Queues and Jobs

Modern web-applications are much more than just browser-based synchronous page rendering, a lot of stuff is happening in the background on the server, while user may not even be online. So queues are getting more and more vital to learn. Also, there are a few tools related to the queues mechanism.

Topic 3. Advanced Eloquent and DB Operations

Eloquent is a great Laravel mechanism to deal with the database, but there’s so many less-known functions under the hood, like: Observers, Accessors/Mutators, Seeding, “magic methods” like firstOrCreate(), Collections etc.

Topic 4. Advanced Error/Exception Managing and Preventing

Bugs happen everyday, and that’s normal. But you can do a lot of things to prevent them or help the team to fix them easier. Using try-catch blocks, creating exceptions, configuring logging parameters, using tools like Rollbar/Sentry, sending bug notifications to Slack/email etc.

Topic 5. APIs: Resources, Auth and Passport

There are many project you need to work with API, so you need to learn it. A while ago I would recommend learning Lumen, but now it lost popularity and performance advantage over main Laravel.

Topic 6. Events and Listeners

It’s very small topic, representing one of the design patterns in Laravel. You can fire an event, and have a separate class “listening” for when it happens.

Topic 7. Automated Testing, TDD and Dusk

This is a hot topic, with constant debates around it. Should we do unit testing? Should we do TDD? (test-driven development) What kind of tests do we write? How to make them run smoothly?

My personal take is that you have to have some automated tests, for the crucial parts of your application — especially related to money transactions, or main authentication. Basically, test everything that would make you lose your job, if it fails. Testing everything else — not a priority.

Topic 8. Deployment to Servers and Continuous Integration

Related to the previous topic — part of the deployment of your features, you should run your automated tests on some kind of staging server, and ideally set it up to run automatically.

Some of this knowledge isn’t specific to Laravel — you need to know how to set up and configure a new server (or use tools for it), how to do git branching and how to push your code correctly (especially if you work in a team), how to do zero-time deployment, rollback if something happens etc.

Topic 9. Socialite and OAuth

If you’ve ever seen a button “Login with Facebook” or “Sign in with Google”, it is usually powered by OAuth protocol, and its implementation tool in Laravel is called Socialite. Pretty easy to install and configure, and valuable to learn.

Topic 10. Vue.js

This may sound controversial, but these days it’s almost a must to be able to at least understand how front-end coding works. Of course, every employer is looking for a full-stack developer, but my personal opinion is that most of us are back-enders with some front-end knowledge, or vice versa, you can’t be good at both.

That said, you need to be able to construct a basic Vue.js structure to work with your Laravel API, also taking care of authentication and error handling.

--

--