DEV Community

Discussion on: Laravel Service Container

Collapse
 
avecnava profile image
avecNava • Edited

Hi Parixit,

Many thanks for the article, very beautifully explained.

However, I got an error. It reads as


ReflectionException
Class App\Services\MathService does not exist


When I die dump inside the route, I get the binding listed successfully.

"MathService" => array:2 [▼
      "concrete" => Closure($container, $parameters = []) {#140 ▼
        class: "Illuminate\Container\Container"
        this: Illuminate\Foundation\Application {#6}
        use: {▶}
        file: "/home/vagrant/nadias/vendor/laravel/framework/src/Illuminate/Container/Container.php"
        line: "259 to 267"
      }
      "shared" => false
    ]

MathService class


namespace App\Services\MathService;

class MathService
{
    public function doAddition($numbers)
    {
        return array_sum($numbers);
    }

    public function doMultiplication($numbers)
    {
        return array_product($numbers);
    }
}

Controller function


namespace App\Http\Controllers;
use App\Services\MathService;

class MathController extends Controller
{
  public function math(MathService $mathservice)
    {
        $sum = $mathService->doAddition([40, 20, 10]);
        return $sum;
    }
Collapse
 
patelparixit07 profile image
Parixit Patel

I guess there is something wrong with namespace and class name on MathService class. Hope you stored MathService class inside app/Services folder

Try to update this on MathService class :

namespace App\Services\MathService;
// To
namespace App\Services;

class AdhocMath
// To
class MathService
Collapse
 
avecnava profile image
avecNava

Many thanks.

Once I added the binding it worked.

App::bind('MathService',\App\Services\MathService::class);

There must have been some cache refresh issues.