2016-05-07 5 views
1

Я вызываю метод из нескольких контроллеров в своем приложении. Я не хочу иметь дублирующий код в своем проекте, поэтому я ищу способ разместить метод где-то, поэтому я могу назвать его с каждого контроллера.Пакет: метод вызова из нескольких контроллеров

Я провел некоторое исследование, и я наткнулся на «помощников». (Я не»знаю, если это правильный путь, чтобы решить эту проблему и другие подходы тоже приветствуются.) Я прочитал this пост и сделал именно то, что сказал Джеффри Way на своем посту, но я все еще получаю следующее сообщение об ошибке:

Call to undefined function initFb()

Я пробовал composer dump-autoload.

Так что это мой helpers.php:

<?php 

if (! function_exists('initFb')) 
{ 
    function initFb() 
    { 
     $fb = new \Facebook\Facebook([ 
      'app_id' => getenv('FACEBOOK_APP_ID'), 
      'app_secret' => getenv('FACEBOOK_APP_SECRET'), 
      'default_graph_version' => 'v2.5', 
     ]); 

     return $fb; 
    } 
} 

Мой composer.json моего пакета:

"files": [ 
      "src/helpers.php" 
     ] 

Важно

Это для пакета я разрабатываю.

ответ

0

Чтобы зарегистрировать свой собственный helpers.php файл, добавьте эти строки в composer.json Laravel в:

"autoload": { 
     ... 
     "files": [ 
      "app/some_path/helpers.php" 
     ] 

Для классов используют psr-4 раздел:

"psr-4": { 
      "App\\": "app/", 
      "YourName\\PackageNamespace\\": "packages/yourname/package-name/src" 
     }, 

Затем запустите composer dumpauto (если не поможет, попробуйте composer dumpauto -o).

Кроме того, попробуйте какой-нибудь простой помощник, чтобы проверить, работает ли он, сделать что-то вроде этого:

if (! function_exists('helpersTest')) 
{ 
    function helpersTest() 
    { 
     return 'It works!'; 
    } 
} 

Если вы пытаетесь использовать эти хелперы после установки пакета с composer (от Packagist), вам следует добавить эти строки в файл composer.json пакета.

+0

Такая же ошибка. Также, если я попробую helpertest(). :/ – sseraluck

+0

Если вы добавите эти строки в 'larvel'' composer.json'? –

+0

О, извините. Вы говорите, что это должно быть в главном приложении composer.json? – sseraluck

 Смежные вопросы

  • Нет связанных вопросов^_^