How to Create Services in Laravel 10

Hey there, Ever found yourself writing the same chunk of code over and over again in your Laravel controllers? Well, I've got just the solution for you! In this guide, I'm going to show you how to create services in Laravel 10.

Services are like little helpers that contain reusable blocks of code. They're fantastic for keeping your controllers clean and focused, and they make your code easier to maintain and understand.

By the end of this guide, you'll be able to create your own services in Laravel and use them to streamline your application's logic.

So, let's see how to create services in laravel 10, laravel services, what is service in laravel 10, create and register the service, and how to create a service class in laravel 8/9/10.

What is the difference between helper and service in laravel?

In Laravel, both helpers and services play crucial roles in organizing and facilitating code, but they serve different purposes and are used in different contexts:

  1. Helpers:

    • Helpers are utility functions or classes that provide commonly used functionalities throughout your application.
    • They are typically globally accessible and are used to perform common tasks like string manipulation, array operations, generating URLs, formatting data, etc.
    • Laravel provides a set of built-in helper functions and classes that you can use directly in your code without needing to import or instantiate them explicitly.
  2. Services:

    • Services, on the other hand, are classes that encapsulate specific business logic or functionality within your application.
    • They are designed to handle more complex and domain-specific tasks, such as interacting with databases, making API calls, performing calculations, and implementing business rules.
    • Services are typically instantiated and used within your application's components (such as controllers, commands, or other services) to perform specific operations.
    • Unlike helpers, services are not globally accessible by default. Instead, they are typically instantiated and injected into the components that require them, following the principles of dependency injection.


Step 1: Create a New Service Class

To create a new service class, simply generate a new PHP file in your app/Services directory. You can name this file based on the functionality it provides. For example, MyService.php.


Step 2: Write Your Service Logic

Next, let's define the logic for your service. This could include interacting with models, making API calls, performing calculations, or any other business logic specific to your application.


namespace App\Services;

class MyService
    public function doSomething()
        // Your business logic goes here
        return "I'm doing something!";


Step 3: Utilize Your Service in Controllers

Now that your service is ready, let's use it in your controllers. Simply inject your service class into the constructor or method where you need it, and then call its methods as needed.


namespace App\Http\Controllers;

use App\Services\MyService;

class MyController extends Controller
    protected $myService;

    public function __construct(MyService $myService)
        $this->myService = $myService;

    public function someMethod()
        $result = $this->myService->doSomething();
        return response()->json(['message' => $result]);

In this example, MyService contains a method doSomething() that returns a simple message. The MyController injects an instance of MyService through its constructor and calls the doSomething() method. Finally, it returns a JSON response with the result.


Step 4: Register Your Service (Optional)

If you're using Laravel's service container to inject dependencies automatically, you don't need to register your service explicitly. However, if you prefer manual dependency injection or need to customize how your service is instantiated, you can register it in the AppServiceProvider.



And that's it! You've successfully created a service in Laravel 10 and integrated it into your application.


You might also like:


Techsolutionstuff | The Complete Guide

I'm a software engineer and the founder of Hailing from India, I craft articles, tutorials, tricks, and tips to aid developers. Explore Laravel, PHP, MySQL, jQuery, Bootstrap, Node.js, Vue.js, and AngularJS in our tech stack.