Laravel 5.1: вызов функции из строки

В настоящее время я пытаюсь вызвать функцию из строки.

Это функция, которую я позвоню позже:

<?php namespace App\Validation\Options; class FacebookOptionValidation { static public function validate() { echo: 'example'; die(); } } 

Вот мой контроллер:

 <?php namespace App\Http\Controllers\Profile; use App\Validation\Options; class ProfileUserEditController extends Controller { public function updateUserOption() { $class = 'Options\FacebookOptionValidation'; $class::validate(); } } 

В этом случае Laravel показывает ошибку: Class 'Options \ FacebookOptionValidation' не найден

Но когда я называю свою функцию так, все работает нормально:

 use App\Validation\Options; class ProfileUserEditController extends Controller { public function updateUserOption() { Options\FacebookOptionValidation::validate(); } } 

Как упоминалось здесь , можно вызвать класс / функцию из строки. Но в моем случае это невозможно – ни в статическом, ни в нестационарном варианте.

Разве это «laravel-thing»?

Попробуйте позвонить с полным пространством имен

  class ProfileUserEditController extends Controller { public function updateUserOption() { $class = 'App\Validation\Options\FacebookOptionValidation'; $class::validate(); } } 

С PHP7 вы даже можете это сделать:

 (App\Validation\Options\FacebookOptionValidation::class)::validate(); 

Одна строка кода и без использования строки