use*_*781 33 php laravel laravel-5
我很难在Laravel 5中创建workbench已删除的包.
正如在这个帖子中(如何在Laravel 5中创建包?),Goldorak建议我们自己创建自己的包结构.
那么,我如何手动创建工作台并为包开发做好准备呢?
小智 69
您可以illuminate/workbench通过添加到以下内容在Laravel 5中添加该包composer.json:
"illuminate/workbench": "dev-master"
Run Code Online (Sandbox Code Playgroud)
然后将WorkbenchServiceProvider添加到您的config/app.php文件中:
'Illuminate\Workbench\WorkbenchServiceProvider'
Run Code Online (Sandbox Code Playgroud)
现在您需要创建该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' => '',
];
Run Code Online (Sandbox Code Playgroud)
在此配置文件中填写您的信息,然后您就可以使用workbench命令:
php artisan workbench vendor/name
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我们将在packages目录中创建名为awesome的包.
这是包结构:
packages/
vendor/
awesome/
src/
Awesome.php
composer.json
Run Code Online (Sandbox Code Playgroud)
要生成composer.json文件,您可以在packages/vendor/awesome目录中使用此命令:
composer init
Run Code Online (Sandbox Code Playgroud)
现在我们用一个简单的方法Awesome.php在src目录中创建一个类:
<?php namespace Vendor/Awesome;
class Awesome
{
public static function printAwesomeness()
{
echo 'Awesome';
}
}
Run Code Online (Sandbox Code Playgroud)
之后,我们将包添加到laravel psr composer.json-4自动加载器:
"autoload": {
"psr-4": {
"App\\": "app/",
"Vendor\\Awesome\\": "packages/vendor/awesome/src"
}
},
Run Code Online (Sandbox Code Playgroud)
我们转储作曲家自动加载器
composer dump-autoload
Run Code Online (Sandbox Code Playgroud)
现在,您可以在laravel 5项目中的任何位置使用您的软件包.如果您需要某些特定于laravel的功能,如服务提供程序或视图发布,请按照Laravel 5.0文档中的说明使用它们.
小智 10
laravel 5带有工作台的标准.
设置1:像往常一样安装laravel.
第2步:创建包文件夹和服务提供者
在根目录下创建一个文件夹调用"packages" /"vendorName"/"packageName"/src" Eg: root/packages/jai/Contact/src
现在导航到src文件夹并创建一个服务提供者类:"ContactServiceprovider.php"
您的服务提供者应该扩展必须实现register方法的ServiceProvider.
注意:如果你想要你可以有dd("测试"); 在启动功能并转到步骤3,但您已经复制了您可能想要创建视图的文件,路由,配置和控制器检查下面的链接
步骤3:在psr-4下composer.json的根composer.json文件中的root 中添加包路径"jai\Contact\": "packages/jai/Contact/src/"
"psr-4": { "App\": "app/", "Jai\Contact\": "packages/jai/contact/src/", }
Run Code Online (Sandbox Code Playgroud)
第4步:在app config中添加服务提供商.
在您的root/conifg/app.php下,在提供商下添加您的包服务提供商以挂钩您的包.
'Jai\Contact\ContactServiceProvider',
Run Code Online (Sandbox Code Playgroud)
第5步:运行composer dump-autoload - 确保没有错误.
全部完成 - 现在您可以通过网址访问您的包裹 - "yourwebsite/contact"
来自这里的资源:https://github.com/jaiwalker/setup-laravel5-package