Как я могу использовать файл packagist для моего контроллера? - PullRequest
0 голосов
/ 22 июня 2019

Я добавил одного Packagist сейчас, как я могу использовать это в моем контроллере?

Я использовал свою команду composer, но теперь я добавил в папку vendor, как получить доступ к этому файлу?

composerrequire jainam / basic-functions

Я хочу использовать функции этого файла для моего контроллера

1 Ответ

0 голосов
/ 22 июня 2019

Читая ваш пакет, я вижу там некоторые проблемы:

  1. На composer.json вы определяете PSR-4 автозагрузку для jainam\\basicFunctions с root на src этопочти верно, за исключением того, что пространство имен не соответствует PSR-4.Чтобы исправить это, используйте UpperCamelCase вместо lowerCamelCase.( Camel Case wiki
  2. Ваш basicFunctions.php также должен быть в UpperCamelCase.
  3. Ваш basicFunctions.php должен использовать пространство имен, которое вы определили в composer.json.
  4. Ваш класс basicFuncions на самом деле является контроллером, поэтому позвоните правильно: LoginController или что-нибудь, что что-то значит.

Исправлено, теперь вы можете использовать контроллер, который вы определили в двухспособы:

Непосредственное объявление маршрута для него

Если этот контроллер в вашем пакете завершен и не требует каких-либо дополнительных методов, вы можете просто объявить некоторые маршруты с помощью вашего контроллера на вашем routes\web.phpфайл, например:

Route::post('login', ['uses'=>'\Jainam\BasicFunctions\LoginController@login'])

Расширение вашего контроллера

Если вам нужно добавить методы или настроить методы для вашего контроллера, вы можете расширить его внутри своего проекта Laravel, создав собственную версиюLoginController:

<?php
namespace App\Http\Controllers

use Jainam\BasicFunctions\LoginController as BaseLoginController // Must import that class with an alias if using same name on your class

class LoginController extends BaseLoginController {
    // Extend wanted methods here, or add new ones.
}

И в вашем файле routes\web.php вам просто нужно удалить это пространство имен:

Route::post('login', ['uses'=>'LoginController@login'])

Надеюсь, это поможет вам, я пишу с мобильного.

Также проверьте на Шаблон комментариев PhpDoc и рассмотрите возможность его использования.

...