Laravel 5 包开发
Laravel 5 package development
我无法在 Laravel 5 中创建包,因为 workbench
已被删除。
在这个帖子中(How create package in Laravel 5?),Goldorak 建议我们必须自己创建自己的包结构。
那么,如何手动创建 workbench 并为包开发做好一切准备?
使用 laravel Workbench 包:
您可以将 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
现在我们在src
目录下创建一个Awesome.php
class,方法很简单:
<?php namespace Vendor/Awesome;
class Awesome
{
public static function printAwesomeness()
{
echo 'Awesome';
}
}
之后我们将包添加到 laravel composer.json
psr-4 autoloader:
"autoload": {
"psr-4": {
"App\": "app/",
"Vendor\Awesome\": "packages/vendor/awesome/src"
}
},
我们转储作曲家自动加载器
composer dump-autoload
现在您可以在 laravel 5 项目的任何地方使用您的包。如果您需要某些 laravel 特定功能,例如服务提供商或视图发布,请按照 Laravel 5.0 documentation.
中的说明使用它们
laravel 5 标准 workbench.
第 1 组:照常安装 laravel。
第 2 步:创建包文件夹和服务提供商
在根目录下创建文件夹调用"packages"/"vendorName"/"packageName"/src" Eg: root/packages/jai/Contact/src
现在导航到 src 文件夹并创建一个服务提供者 class:"ContactServiceprovider.php"
您的服务提供者应该扩展 ServiceProvider,它必须实现 register 方法。
注意:如果你想要你可以有dd("testing");在引导功能中并转到第 3 步,但您已经复制了您可能想要创建视图、路由、配置和控制器的文件,请检查下面的 link
第 3 步:在你的根 composer.json 文件 "jai\Contact\": "packages/jai/Contact/src/"
下的 psr-4
中添加包路径 composer.json
"psr-4": { "App\": "app/", "Jai\Contact\": "packages/jai/contact/src/", }
第 4 步:在应用程序配置中添加服务提供商。
在您的 root/conifg/app.php providers 下添加您的包裹服务提供商以挂接您的包裹。
'Jai\Contact\ContactServiceProvider',
第 5 步:运行 composer dump-autoload - 确保没有错误。
全部完成 - 现在您可以通过 url - "yourwebsite/contact"
访问您的包裹
您可以在这个名为 packman 上使用包。 composer global require "hadefication/packman"
,只是 Laravel 的简单包创建器。
我无法在 Laravel 5 中创建包,因为 workbench
已被删除。
在这个帖子中(How create package in Laravel 5?),Goldorak 建议我们必须自己创建自己的包结构。
那么,如何手动创建 workbench 并为包开发做好一切准备?
使用 laravel Workbench 包:
您可以将 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
现在我们在src
目录下创建一个Awesome.php
class,方法很简单:
<?php namespace Vendor/Awesome;
class Awesome
{
public static function printAwesomeness()
{
echo 'Awesome';
}
}
之后我们将包添加到 laravel composer.json
psr-4 autoloader:
"autoload": {
"psr-4": {
"App\": "app/",
"Vendor\Awesome\": "packages/vendor/awesome/src"
}
},
我们转储作曲家自动加载器
composer dump-autoload
现在您可以在 laravel 5 项目的任何地方使用您的包。如果您需要某些 laravel 特定功能,例如服务提供商或视图发布,请按照 Laravel 5.0 documentation.
中的说明使用它们laravel 5 标准 workbench.
第 1 组:照常安装 laravel。
第 2 步:创建包文件夹和服务提供商
在根目录下创建文件夹调用"packages"/"vendorName"/"packageName"/src" Eg: root/packages/jai/Contact/src
现在导航到 src 文件夹并创建一个服务提供者 class:"ContactServiceprovider.php"
您的服务提供者应该扩展 ServiceProvider,它必须实现 register 方法。
注意:如果你想要你可以有dd("testing");在引导功能中并转到第 3 步,但您已经复制了您可能想要创建视图、路由、配置和控制器的文件,请检查下面的 link
第 3 步:在你的根 composer.json 文件 "jai\Contact\": "packages/jai/Contact/src/"
下的 psr-4
composer.json
"psr-4": { "App\": "app/", "Jai\Contact\": "packages/jai/contact/src/", }
第 4 步:在应用程序配置中添加服务提供商。
在您的 root/conifg/app.php providers 下添加您的包裹服务提供商以挂接您的包裹。
'Jai\Contact\ContactServiceProvider',
第 5 步:运行 composer dump-autoload - 确保没有错误。
全部完成 - 现在您可以通过 url - "yourwebsite/contact"
您可以在这个名为 packman 上使用包。 composer global require "hadefication/packman"
,只是 Laravel 的简单包创建器。