人気のPHPoWEBアプリケーションフレームワークLaravelのTipsを記録していきます

Laravel で自作パッケージを簡単に作成する

PackageCreator がとても便利です

● PackageCreator

https://github.com/SUKOHI/PackageCreator

・インストール

composer require sukohi/package-creator

インストールすると「make:package コマンド」が使用できるようになります

・パッケージの作成( php artisan 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 クラスを作成してみます。

1. コマンドの実行

php artisan  make:package  akato0315  mydump  mypackages 

2. クラスの実装

APP/mypackages/Akato0315/Mydump/src/Mydump.php を編集して以下の内容にします

<?php 
namespace Akato0315\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";
    }
}

3. configファイル と composer.json を編集

APP/config/app.php の「providers」と「aliases」に以下を追加します

    'providers' => [
        ..................... 
        Akato0315\Mydump\MydumpServiceProvider::class,
    'aliases' => [
        ..................... 
        'Mydump' => Akato0315\Mydump\Facades\Mydump::class,

composer.json を以下のように修正します

        "psr-4": {
            "App\\": "app/" 
        }

        ↓

        "psr-4": {
            "App\\": "app/" ,
            "Akato0315\\Mydump\\": "mypackages/Akato0315/Mydump/src"
        }

4. コマンドラインから次のコマンドを実行

composer dumpautoload -o
php artisan config:cache

5. Laravelのコントローラーから使用する

use Mydump;

$mix = [
    'aaa' => 'bbb' ,
    'ccc' => 'ddd' ,
];
Mydump::dump( $mix );

5. 結果

関連エントリー

添付ファイル1
mydump.png ( 22.5 KBytes ) ダウンロード
No.1282
10/05 09:52

edit

添付ファイル

Laravel
composer