Laravel 5 包开发

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/28378460/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-14 10:51:32  来源:igfitidea点击:

Laravel 5 package development

phplaravellaravel-5

提问by user1995781

I am having trouble to create package in Laravel 5 as workbenchhas been removed.

由于workbench已删除,我无法在 Laravel 5 中创建包。

As in this thread (How create package in Laravel 5?), Goldorak suggest that we have to create our own package structure ourselves.

正如在这个线程中(如何在 Laravel 5 中创建包?),Goldorak 建议我们必须自己创建自己的包结构。

So, how can I create the workbench manually and get everything ready for package development?

那么,如何手动创建工作台并为包开发做好一切准备?

回答by Nicolas Beauvais

Using the laravel Workbench package:

使用 laravel 工作台包:

You can add the illuminate/workbenchpackage in a Laravel 5 by adding to your composer.json:

您可以illuminate/workbench通过添加到 Laravel 5 中来添加包composer.json

"illuminate/workbench": "dev-master"

then add the WorkbenchServiceProvider into your config/app.phpfile:

然后将 WorkbenchServiceProvider 添加到您的config/app.php文件中:

'Illuminate\Workbench\WorkbenchServiceProvider'

Now you need to create the config/workbench.phpfile since it has been removed from Laravel 5:

现在您需要创建该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' => '',
];

Fill your information in this config file then you will be able to use the workbench command:

在此配置文件中填写您的信息,然后您将能够使用工作台命令:

php artisan workbench vendor/name


Creating your own package structure

创建自己的包结构

In this exemple we will create our package called awesomein a packages directory.

在本例中,我们将在包目录中创建名为awesome的包。

Here is the package structure:

这是包结构:

packages/
  vendor/
    awesome/
      src/
        Awesome.php
      composer.json
  • Vendor: your vendor name, typically this is your github username.
  • Awesome: the name of your package
  • src: Where you put the business logic
  • Vendor:您的供应商名称,通常是您的 github 用户名。
  • Awesome: 你的包名
  • src: 放置业务逻辑的地方

To generate a composer.json file you can use this command in the packages/vendor/awesomedirectory:

要生成 composer.json 文件,您可以在packages/vendor/awesome目录中使用此命令:

composer init

Now we create a Awesome.phpclass in the srcdirectory with a simple method:

现在我们用一个简单的方法Awesome.phpsrc目录中创建一个类:

<?php namespace Vendor/Awesome;

class Awesome
{
    public static function printAwesomeness()
    {
        echo 'Awesome';
    }
}

After that we add the package to the laravel composer.jsonpsr-4 autoloader:

之后,我们将包添加到 laravel psr composer.json-4 自动加载器:

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

and we dump the composer autoloader

我们转储作曲家自动加载器

composer dump-autoload

Now you can use your package everywhere in your laravel 5 project. If you need some laravel specific feature like service provider or view publishing, use them as described in the Laravel 5.0 documentation.

现在你可以在你的 laravel 5 项目中的任何地方使用你的包。如果您需要某些 Laravel 特定功能,例如服务提供者或视图发布,请按照Laravel 5.0 文档中的描述使用它们。

回答by jai

laravel 5 Standards with out workbench.

没有工作台的 laravel 5 标准

Set 1 : install laravel as usual.

设置 1:像往常一样安装 Laravel。

Step 2 : Create package folder and service provider

第 2 步:创建包文件夹和服务提供者

In root directory create a folder call "packages" /"vendorName"/"packageName"/src" Eg: root/packages/jai/Contact/src

在根目录中创建一个名为“packages”的文件夹 /"vendorName"/"packageName"/src" Eg: root/packages/jai/Contact/src

now navigate to src folder and create a service provider class: "ContactServiceprovider.php"

现在导航到 src 文件夹并创建一个服务提供者类:“ContactServiceprovider.php”

your service provider should extend ServiceProvider which has to implement register method.

您的服务提供者应该扩展必须实现注册方法的 ServiceProvider。

Note:If you want you can have dd("testing"); in boot function and go to step 3 but you have copied the file you might want to create views , routes , config and controllers check link below for that

注意:如果你愿意,你可以有 dd("testing"); 在启动功能中并转到第 3 步,但您已经复制了您可能想要创建视图、路由、配置和控制器的文件,请检查下面的链接

Step 3 : add package path in root composer.jsonin your root composer.json file "jai\Contact\": "packages/jai/Contact/src/"under psr-4

第3步:在psr-4下composer.json的根composer.json文件中的root中添加包路径"jai\Contact\": "packages/jai/Contact/src/"

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

Step 4 : add service provider in app config.

第 4 步:在应用配置中添加服务提供者。

in your root/conifg/app.php under providers add your package service provider to hook your package in.

在您的 root/conifg/app.php 下的 providers 下添加您的包服务提供商以挂钩您的包。

   'Jai\Contact\ContactServiceProvider',

Step 5 : run composer dump-autoload - make sure there are no errors.

第 5 步:运行 composer dump-autoload - 确保没有错误。

all done - now you can access your package via url - "yourwebsite/contact"

全部完成 - 现在您可以通过 url 访问您的包 - "yourwebsite/contact"

Resource from here : https://github.com/jaiwalker/setup-laravel5-package

来自这里的资源:https: //github.com/jaiwalker/setup-laravel5-package

回答by Goper Leo Zosa

You could use package on this named packman. composer global require "hadefication/packman", just a simple package creator for Laravel.

你可以在这个命名的packman上使用 package 。composer global require "hadefication/packman",只是 Laravel 的一个简单的包创建者。