Разработка пакета Laravel 5

У меня возникли проблемы с созданием пакета в Laravel 5 при удалении рабочего места.

Как и в этой теме ( Как создать пакет в Laravel 5? ), Goldorak предлагает нам самим создать собственную структуру пакетов.

Итак, как я могу создать рабочее место вручную и подготовить все для разработки пакета?

Использование пакета larvel Workbench:

Вы можете добавить пакет light illuminate/workbench в Laravel 5, добавив к вашему composer.json :

 "illuminate/workbench": "dev-master" 

затем добавьте WorkbenchServiceProvider в файл config/app.php :

 'Illuminate\Workbench\WorkbenchServiceProvider' 

Теперь вам нужно создать файл config/workbench.php поскольку он был удален из Laravel 5:

 <?php return [ /* |-------------------------------------------------------------------------- | Workbench Author Name |-------------------------------------------------------------------------- | | When you create new packages via the Artisan "workbench" command your | name is needed to generate the composer.json file for your package. | You may specify it now so it is used for all of your workbenches. | */ 'name' => '', /* |-------------------------------------------------------------------------- | Workbench Author E-Mail Address |-------------------------------------------------------------------------- | | Like the option above, your e-mail address is used when generating new | workbench packages. The e-mail is placed in your composer.json file | automatically after the package is created by the workbench tool. | */ 'email' => '', ]; 

Заполните свою информацию в этом файле конфигурации, и вы сможете использовать команду workbench:

 php artisan workbench vendor/name 

Создание собственной структуры пакета

В этом примере мы создадим наш пакет, названный awesome в каталоге пакетов.

Вот структура пакета:

 packages/ vendor/ awesome/ src/ Awesome.php composer.json 
  • Поставщик : ваше имя поставщика, обычно это ваше имя пользователя github.
  • Awesome : название вашей упаковки
  • src : Где вы размещаете бизнес-логику

Чтобы сгенерировать файл composer.json, вы можете использовать эту команду в каталоге packages/vendor/awesome :

 composer init 

Теперь мы создаем класс Awesome.php в каталоге src с помощью простого метода:

 <?php namespace Vendor/Awesome; class Awesome { public static function printAwesomeness() { echo 'Awesome'; } } 

После этого мы добавим пакет в автозагрузчик larvel composer.json psr-4:

 "autoload": { "psr-4": { "App\\": "app/", "Vendor\\Awesome\\": "packages/vendor/awesome/src" } }, 

и мы сбрасываем автозагрузчик композитора

 composer dump-autoload 

Теперь вы можете использовать свой пакет повсюду в своем проекте laravel 5. Если вам нужна определенная функция laravel, такая как поставщик услуг или публикация публикации, используйте их, как описано в документации Laravel 5.0 .

laravel 5 Стандарты с наружным верстаком .

Установите 1: установите laravel, как обычно.

Шаг 2. Создание папки пакета и поставщика услуг.

В корневом каталоге создайте вызов папки «packages» /"vendorName"/"packageName"/src" Eg: root/packages/jai/Contact/src

теперь перейдите в папку src и создайте класс поставщика услуг: «ContactServiceprovider.php»,

поставщик услуг должен расширить ServiceProvider, который должен реализовать метод регистрации.

Примечание. Если вы хотите, у вас может быть dd («тестирование»); в функции загрузки и перейдите к шагу 3, но вы скопировали файл, который может потребоваться для создания представлений, маршрутов, конфигураций и контроллеров.

Шаг 3: добавьте путь пакета в корневой файл composer.json в корневой файл composer.json "jai\Contact\": "packages/jai/Contact/src/" под psr-4

 "psr-4": { "App\": "app/", "Jai\Contact\": "packages/jai/contact/src/", } 

Шаг 4: добавьте поставщика услуг в конфигурацию приложения.

в вашем корневом / conifg / app.php под провайдерами добавьте поставщика пакетов, чтобы подключить ваш пакет.

  'Jai\Contact\ContactServiceProvider', 

Шаг 5: запустите компоновщик dump-autoload – убедитесь, что ошибок нет.

все сделано – теперь вы можете получить доступ к своему пакету через url – "yourwebsite/contact"

Ресурс отсюда: https://github.com/jaiwalker/setup-laravel5-package