coder2 YenerPolat arkadaşın bahsettiği şu sanırım:
@inject('productController', \App\Http\Controllers\ProductController::class)
{{ $productController->doSomething() }}
Ben de mesela ProductService gibi bir sınıf kullansın, hem controller içinde hem de blade içinde kullanabilir demek istedim:
@inject('productService', \App\Services\ProductService::class)
{{ $productService->doSomething() }}
class ProductController extends Controller
{
protected $productService;
public function __construct(ProductService $productService)
{
$this->productService = $productService;
}
public function index()
{
$result = $this->productService->doSomething();
}
}
Her ne kadar controller da bir sınıf olsa da dışarıdan çağrılmasını doğru bulmuyorum çünkü işi çok net şekilde belirlenmiş bir obje. Kendi işi dışında kullanmak yanlış olur.
Ayrıca bu tür blade içine enjekte edilen durumlarda widget mantığı kullanmak daha uygun olabilir. Şu şekilde bir mantık yapılabilir mesela: (Böyle bir kullanım Laravel'de yok ama kendiniz oluşturabilirsiniz.)
@widget('latest-products')