I'm new to PHP, using PhpStorm. I have a doubt, which is the difference between using
Illuminate\Routing\Controller
and
App\Http\Controllers\Controller
I want to pass an API but whenever I have to decide which route for the Controller class import I doubt on the difference.
Can anyone explain me?
Illuminate\Routing\Controller
is the controller class in the framework. App\Http\Controllers\Controller
is the one in your project which extends framework's controller. If your controller has override methods or some base methods that you prefer them to be available to other extended controllers such as;
namespace App\Http\Controllers;
use App\Traits\DateTime\DateTime;
use App\Traits\Partner\PartnerDetail;
use App\Traits\Redirect\RedirectRoute;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController; // this is in the framework
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
class Controller extends BaseController
{
// Laravel Traits
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
// Project Traits
use RedirectRoute, DateTime, PartnerDetail;
public function someCommonMethod()
{
//
}
}
<?php
namespace App\Http\Controllers;
class DashboardController extends Controller
{
public function index()
{
$this->someCommonMethod();
}
}
If you don't have anything special in your App\Http\Controllers\Controller
then you may go with Illuminate\Routing\Controller