0

さまざまなエンコーディングの文字列を処理する Artisan コマンド ファイルを作成しました。

関数を実装する必要がありました(そしてこれmb_str_padを見つけました)。

ヘルパーファイルを作成しましたapp/Library/Helpers/StringHelper.php

<?php

if (!function_exists('mb_str_pad')) {
    function mb_str_pad() {
        :
        :
    }
}

composer.json次に、それをファイルに追加しました:

"autoload": {
    "classmap": [
        "database/seeds",
        "database/factories"
    ],
    "psr-4": {
        "App\\": "app/"
    },
    "files": [
        "app/Library/Helpers/StringHelper.php" // <-- Here
    ]
},

そして実行しcomposer dump-autoloadます。

コマンド ( ) を実行しようとすると、次のphp artisan mytasks:generateエラーが発生します。

Call to undefined function App\Console\Commands\mb_str_pad()

2回目の試行:次
のサービスを追加しようとしました:

php artisan make:provider StringHelperServiceProvider

register()私が入れた関数で:

require_once app_path('Library/Helpers/StringHelper.php');

そして配列にapp.php追加されます:providers

App\Providers\StringHelperServiceProvider::class,

しかし、同じエラーが発生します。

=========================== 編集 ======================

それについての良い説明はありませんが、今では同じコードが正常に動作します。

私が行った唯一のことは、Tinker で機能をテストすることでした。

$ php artisan tinker
Psy Shell v0.9.9 (PHP 7.2.4-1+ubuntu16.04.1+deb.sury.org+1 — cli) by Justin Hileman
>>> mb_str_pad("Hello", 10);
=> "Hello     "
>>> mb_str_pad("Hello", 10, ' ', STR_PAD_LEFT);
=> "     Hello"
>>> mb_str_pad("Helló", 10, ' ', STR_PAD_LEFT);
=> "     Helló"
>>> 

誰かに役立つ場合に備えて、この質問を残します。

4

2 に答える 2