問題タブ [laravel-facade]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
370 参照

php - Laravel ファサードの依存関係はありますか?

1 つのクラスにあまり多くの依存関係があってはならないことを読みました。ある本では、4 つの依存関係は、クラスがやりすぎている可能性があることを示している可能性があると述べています。

10 個の依存関係 (6 つのクラスと 4 つのファサード) を使用するクラスを作成したとします。これらの 6 つのクラスのみを考慮して分割する必要がありますか、それとも 4 つのファサードも考慮する必要がありますか?

誰かが私がどのようにして多くのファサードを取得したか知りたい場合:

これらはすべて頻繁に必要になります。質問を聞きました - なぜアプリが必要なのですか? 関数を呼び出すには:

ここでも、ファサードは依存関係ではないと言う人もいます:

ポリモーフィズムと依存性注入 - 依存性が多すぎる

この問題についてはさまざまな見方がありますが (クラスが何かに依存する場合)、クラスの依存関係は通常、コンストラクターに渡されるもの、つまりクラスをオブジェクトとしてインスタンス化するために必要なものと見なされます。

クラスからファサードを自分で作成できると思います。この方法で依存関係を減らします。しかし、これはあまり意味がありませんか?

たとえば、この記事では、ファサードを使用すべきではないと述べています。

http://taylorotwell.com/response-dont-use-facades/

それから、ファサードがそれほど悪くないことは理解できますが、悪いことは、クラスがあまりにも多くのことをやり始めることです。

私はLaravel 4について話していますが、おそらく同じことがLaravel 5または同じものを使用する他のフレームワークにも当てはまります。Laravel 5 は Laravel 4 ほど多くのファサードを使用していないと聞きました。

アップデート:

また、このトピックについて話し合うときに他の人と使用できるように、そのような議論をしたいと思います. 私が言うように-インターネットの何人かの人(良いスタックオーバーフロープロファイルを持っていても)は、ファサードは悪い、それらはグローバル変数のようなものであると私に言いました、彼らはすぐにわかります-これはグローバルと同じではありません、それらはモック可能です、あなたはすべきではありませんお手入れ。また、彼らは言うかもしれません、これはその人の意見です。だから自分を守るためにストロングポイントが欲しい。だから私はそれを 2*2 = 4 のように説明でき、誰も反対することはできませんでした。または少なくともそれに近い。

アップデート:

それらが依存関係であり、1 つのクラスに対して最大約 4 つの依存関係が必要な場合、グループ化されたクラスを作成するというアイデアは 1 つだけです。クラス ツリーのようになります。しかし、私は小さな機能のために多くのクラスになってしまいます。この 10 個の依存関係のように、最大​​ 4 個の依存関係が必要な場合、1 つではなく 3 ~ 5 個のクラスが必要になると思います。したがって、大きなプロジェクトがある場合は、数百万の小さなクラスが必要になります。もっと複雑に見えませんか?Laravel のように多くのクラスがあるのに対し、CodeIgniter にはクラスがはるかに少なく、読みやすく、フォローしやすく、拡張しやすいように見えます。

0 投票する
2 に答える
763 参照

php - Laravel 5イメージクラスの競合

私は画像モデルを持っていますが、介入画像を使用して画像のサイズを変更し始めた後、両方のクラス名が Image であるため、クラス競合の問題が発生しました。

app.php のエイリアスを変更して、介入ファサード名が image ではなく imageIntervention になるようにしました。

しかし、imageController でこのファサードを使用するにはどうすればよいでしょうか?

ありがとう - アンドレアス

0 投票する
1 に答える
1417 参照

php - スタンドアローン Illuminate IoC Container の Illuminate/Support/Facade/App ファサードを作成する方法

私のスタンドアロン (Laravel なし) プロジェクトでは、Illuminate IoC コンテナーを使用したいと考えています。また、コンポーネントAppによって提供されるファサードを介してアプリ コンテナーにアクセスしたいと考えています。illuminate/support両方のコンポーネント (v5.0.28) をインストールしました。これが私の(簡略化された)コードです:

残念ながら、何かをバインドしようとすると、次の結果になります。

これがその行のコードです

、、および$instanceのインスタンスはどこにありますか。問題は、が のインスタンスではなく、クラスが静的プロパティで任意の関数を呼び出すことをサポートしていないことです。Illuminate\Support\Facades\App$method == 'bind'$args[0] == 'w'$args[1] == 'Widget'$instanceIlluminate\Container\ContainerIlluminate\Support\Facades\App$app

それを機能させるために、次の関数をに追加しましたIlluminate\Support\Facades\App

しかし、確かに外部コンポーネントを編集することは正しいことではありません!!! 確かに誰かがこれに遭遇したことがあります!

質問は次のとおりです。これを行う適切な方法は何ですか?

0 投票する
3 に答える
1159 参照

php - Laravel - PHP-Vars-To-Js-Transformer パッケージを機能させることができません

私は Laravel 5 を初めて使用し、 PHP-Vars-To-Js-Transformer をセットアップしようとしていました 。問題は、コントローラーでJavaScriptファサードを使用できないことです。このクラスが見つかりません。

私のコントローラー:

私の // app/config/app.php

コマンドphp artisan vendor:publishcomposer install. 何か特別なものが欠けているかどうかはわかりません..ありがとう

0 投票する
1 に答える
569 参照

laravel-5 - Laravel5、Event::listen()を別ファイルに配置したいのですが、Eventファサードが不明でした

一連のEvent::listen()s を別のファイルに入れたいのですが、これがこれまでに行ったことです。

ブートストラップ/autoload.php

ブートストラップ/listeners.php

エラーはクラスイベントが見つかりません

私の要件の正しい方法は何ですか? 新しい .php ファイルを作成し、bootstrap/autoload.phpからそれを要求することが、この要件の正しい方法であるかどうかはわかりません。

助けてください。ありがとう

0 投票する
0 に答える
95 参照

php - Laravel5ファサードが解決されていません

にサービス プロバイダを登録しましたconfig/app.php。ロードして実行しています。

サービス プロバイダーの register() メソッドで:

次に、このようなファサードを作成しました

次に、ファサードの実装を追加しました

最後に、エイリアスを追加しましたconfig/app.php

私がする時

私は次のことを得る

どうしたの?

編集

Foo\Facades\Timer正常に読み込まれています。

また、Foo\Utils\Timer私はできるので解決されています

エラーなし。

0 投票する
2 に答える
3045 参照

php - laravel-ide-helper の問題

Laravel 5 Fundamentals Laracasts ビデオ セットを使用していますが、IDE (Phpstorm 8) の Facades で問題が発生しています。Eloquent ファサードを使用するモデルがありますuse Illuminate\Database\Eloquent\Model;

laravel-ide-helper を必要としcomposer require barryvdh/laravel-ide-helper、サービス プロバイダーを providers 配列に追加し'Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider',、ドキュメントを再生成して IDE を再起動しましたが、成功しませんでした。

コントローラーにモデル宣言があります$article = Article::findOrFail($id);が、findOrFailメソッドが強調表示され、クラス App\Article に見つからないメソッド 'findOrFail' としてフラグが付けられます。

私は Laravel と Facades の概念に不慣れですが、道に迷っており、私の問題に対する既存の答えを見つけることができませんでした。