Skip to content
Muhammet Şafak
tr

Expertise

Laravel developer — since 2014

I have worked with Laravel since 2014 and write about its parts, from Eloquent to queues, from policies to scheduled tasks.

years
12

Laravel is not an add-on to PHP for me but a way of working: routing, queues, validation, authorization and testing under one roof, with one contract. The PHP page covers the language itself; this page covers how I use that roof.

Over time I saw that I do not have to use everything the framework offers. I take a pattern because it is needed, not because it comes ready-made.

I look at new versions the same way: my question is not “is this great?” but “does this fit my problem?”. I have written version and migration notes on the blog starting from Laravel 4. Microservice boundaries, event-driven design itself and database internals I write about, with their costs, in the Engineering section.

What is the Laravel Developer role?

Laravel is a web application framework written in PHP: it offers routing, database access, queues, validation and authorization as ready-made layers. A Laravel developer is the person who writes the application's business rules on top of those layers.

What does the Laravel Developer do?

With Laravel I write APIs, web applications and background processes that take work off queues. I keep the business rule in separate, testable classes instead of spreading it across controllers and models; queues, scheduled tasks, authorization and testing I set up inside the same application.

Recent writing in this area

Laravel's preload curve: 123 files buy eight times what the last 1,912 do

How far can a curated preload take Laravel, and what does each slice cost in start-up time?

Finding

The curve is not proportional to volume. The first 1,592 files — Laravel's own framework — buy 30 ms and add 1.2 seconds to start-up. The next 1,094 Symfony files buy 9.5 ms for free. The 123 files after that (psr, carbon) buy 15.7 ms, more than the 1,094 before them. And the last 1,912 buy 1.8 ms while adding another 1.2 seconds. So the blanket preload the earlier record measured as a ceiling is the worst point on the curve that is not the origin: stopping at 2,809 files gives 12.77 ms for 1,514 ms of start-up, while 4,721 files ask 2,691 ms to reach 10.96 ms.

measured 71 days ago

High confidence

Technologies I pair it with

  • Laravel

    Routing, queues, validation, authorization and testing under one roof.

  • Composer

    Where Laravel's packages come from; I weigh community packages selectively.

  • PHPUnit

    The test tool I meet in older Laravel codebases.

  • Pest

    The testing layer I prefer on new Laravel projects.

  • Redis

    The store I use for cache, session and queues in Laravel.

  • MySQL

    The primary relational store behind Eloquent.

  • RabbitMQ

    Where billing left the synchronous path.

Frequently asked

8 questions

  • How long have you worked with Laravel?

    Since 2014 — 12 years.

  • What does a Laravel developer do?

    A Laravel developer writes web applications, APIs and background jobs with the Laravel framework on top of PHP. For me that means putting the business rule in the right place inside the application, setting up queues and scheduled tasks, and building the authorization and test surface.

  • What is the difference between Laravel and PHP?

    PHP is the language itself; Laravel is a framework that runs on top of it. On the PHP page I cover the language's ecosystem and the framework decision; on this page, how I use the roof Laravel provides.

  • Where do you put the business rule in Laravel?

    I keep the controller thin: the business rule lives in action classes, validation in form requests, authorization in policies and gates. A rule spread across controllers and models ends up where nobody can find it at the first big change.

  • Which parts of Laravel have you written about?

    The blog archive carries separate posts on Eloquent and its relationships, middleware, service providers and the container, policies and gates, queues and Supervisor, scheduled tasks, Livewire, Inertia, Octane and broadcasting over WebSockets.

  • How do you run queue workers in Laravel?

    I wrote a separate post on Laravel's queue layer and keeping worker processes alive under Supervisor. Whether the work runs synchronously or asynchronously is a decision that comes before the framework.

  • How do you set up tests in Laravel?

    Pest on new projects and PHPUnit in older codebases; I also wrote about the habit of writing tests in Laravel and the move to Pest.

  • How do you build the interface with Laravel?

    Two ways: Laravel as an API feeding web and React Native clients from the same API, or the interface produced from the server side. For the second I wrote about Livewire and Inertia on the blog.

Let us work together

If you have work in this ecosystem, tell me what you are building and we will talk about how to build it.

Search the site

Start typing to search posts, projects and pages.

Esc to close Powered by Pagefind