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
Laravel 5 package development
提问by user1995781
I am having trouble to create package in Laravel 5 as workbench
has 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/workbench
package 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.php
file:
然后将 WorkbenchServiceProvider 添加到您的config/app.php
文件中:
'Illuminate\Workbench\WorkbenchServiceProvider'
Now you need to create the config/workbench.php
file 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/awesome
directory:
要生成 composer.json 文件,您可以在packages/vendor/awesome
目录中使用此命令:
composer init
Now we create a Awesome.php
class in the src
directory with a simple method:
现在我们用一个简单的方法Awesome.php
在src
目录中创建一个类:
<?php namespace Vendor/Awesome;
class Awesome
{
public static function printAwesomeness()
{
echo 'Awesome';
}
}
After that we add the package to the laravel composer.json
psr-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.json
in 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