1

ヘルパー フォルダーで静的メソッドを呼び出したいと思います。

私は多くのチュートを試しましたが、常に1つのファイルだけです。

私の設定 /app/Helpers/Languages.php -> 私の静的クラス

composer.json

"autoload": {
    "classmap": [
        "database",
        "app/Helpers/" <- I understand, L5 add in own autoload

app.php

'aliases' => [ ...., 'Languages'      => 'App\Helpers\Languages',

私が試したこと:

  • 自動ロード クラスマップ、HelpersServiceProviders クラス、名前空間を追加します (コントローラーではなく、ブレード テンプレートでのみ機能します)。
  • クラスマップ、名前空間の有無にかかわらず、autoload psr-4 を追加します。

すべてのメソッドについて、 use 'app/Helpers/Languages' を配置する必要がありますが、 'use' なしで Languages::myFunction() だけを呼び出したいと思います。出来ますか ?

私はすでにpsr-4の「app /」フォルダーを持っているので、ロードフォルダーと私のファイルになりますよね?

私が持っていないページをロードするときに役立つ場合:

FatalErrorException クラス 'App\Http\Controllers\Languages' が見つかりません

composer.json を更新したら、composer dump-autoload を忘れていませんでした

4

1 に答える 1

0

あなたが抱えている問題は、クラスが自動ロードされていないからではなく、間違った方法で使用しようとしているからだと思います。追加したエイリアスを使用しても、名前空間内からクラスを使用する場合( などApp\Http\Controllers)、import ステートメントを追加する必要があります。

use App\Helpers\Languages;
// or with the alias
use Languages;

または、使用時に FQN を指定します。

\App\Helpers\Languages::myFunction();
// or with the alias
\Languages::myFunction();

これは本当に避けられません。名前空間について心配する必要がないようにできること: クラスなしでヘルパー関数を使用します。Laravel のヘルパー関数と同じです。( route()、「trans()」など)

于 2015-07-08T20:20:35.250 に答える