PackageCreator がとても便利です
https://github.com/SUKOHI/PackageCreator
composer require sukohi/package-creator
インストールすると「make:package コマンド」が使用できるようになります
php artisan make:package (ベンダー名) (パッケージ名) (保存するフォルダ名(アプリケーションからの相対パス) )
php artisan make:package myname my-package test_packages
./test_packages/Myname/MyPackage/src/Facades/MyPackage.php
./test_packages/Myname/MyPackage/src/MyPackage.php
./test_packages/Myname/MyPackage/src/MyPackageServiceProvider.php
./test_packages/Myname/MyPackage/composer.json
例として mydump クラスを作成してみます。
php artisan make:package myname mydump mypackages
APP/mypackages/MyName/Mydump/src/Mydump.php を編集して以下の内容にします
<?php
namespace MyName\Mydump;
class Mydump {
public static function dump( $mix )
{
print "\n".'<pre style="text-align:left;display:block;padding:9.5px;margin:10px;font-size:13px;line-height:1.4;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px;">'."\n";
print '<span style="color:#999;">TYPE: ' . gettype($mix) . "</span>\n";
print_r($mix);
print "\n</pre>\n\n";
}
public static function dump2( $mix )
{
print "\n"."<!--"."\n";
print "\n".'<pre style="text-align:left;display:block;padding:9.5px;margin:10px;font-size:13px;line-height:1.4;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px;">'."\n";
print '<span style="color:#999;">TYPE: ' . gettype($mix) . "</span>\n";
print_r($mix);
print "\n</pre>\n\n";
print "\n"."-->"."\n";
}
}
APP/config/app.php の「providers」と「aliases」に以下を追加します
'providers' => [
.....................
MyName\Mydump\MydumpServiceProvider::class,
'aliases' => [
.....................
'Mydump' => MyName\Mydump\Facades\Mydump::class,
composer.json を以下のように修正します
"psr-4": {
"App\\": "app/"
}
↓
"psr-4": {
"App\\": "app/" ,
"MyName\\Mydump\\": "mypackages/MyName/Mydump/src"
}
composer dumpautoload -o
php artisan config:cache
use Mydump;
$mix = [
'aaa' => 'bbb' ,
'ccc' => 'ddd' ,
];
Mydump::dump( $mix );