2017-04-11 4 views
4

私はLaravelインストールガイドからすべての手順を実行しました。Laravelに新たに - ベンダーのディレクトリ

Composerを使用すると、プロジェクトはサーバーに正常にインストールされ、チャームのように実行されます。

インストール時に、Composerはベンダーディレクトリにいくつかの依存関係を追加します。

私の質問は、「Hello Worldプロジェクト」の依存関係が非常に多いのはなぜですか。私はディレクトリの必要性を理解していません。相続人のリスト:

  • jeremeamia
  • laravel
  • モノローグ
  • をircmaxell
  • classpreloader
  • 作曲
  • d11wtq
  • 財投
    • ビン
    • nesbot
    • nikic
    • paragonie
    • パッチワーク
    • phpseclib
    • predis
    • PSR
    • ではSwiftMailerスタック
    • 交響曲

    私はZend開発から来ました。だから、ベンダーのディレクトリで、私はフレームワークLaravelだけを期待していました。なぜ私は第三者のスクリプトの4200以上のファイルが必要ですか?

    ありがとうございます。

    カール

  • +2

    フレームワークでは、ほとんどの開発者がHello Worldプロジェクト以上の目的でLaravelを使用すると想定されているため、これらの依存関係はあらかじめロードされています。それらのパッケージのそれぞれが何をしているのか尋ねていますか? – WillardSolutions

    +0

    速い返答をありがとう。うん、しかし、私はどのパッケージが通常のMVCプロジェクトのために削除できるのだろうかと思っていた。私はLaravelが第三者に依存することなくこれらすべてのクラスを持っていると教えました。 例として、本当にpsr、swiftmailerが必要ですか? なぜ交響曲。私はLaravelがそれに触発されているのを知っています...しかし、なぜそれに依存していますか? –

    +0

    @ SequenceDigitale.com、 'symfony /'ディレクトリを見てください。これはおそらくフレームワーク全体ではなく、いくつかのライブラリです。 – Chris

    答えて

    2

    Laravelはすぐに他のフレームワークに欠けている多くの機能を持っています。あなたが完全に正しいので、Hello Worldプロジェクトのような単純なものに対しては、依存関係が多すぎると思います。しかし、Laravelは、必要なときに機能を追加することではなく、すべての機能を既に備えているということです。これは、Arch LinuxとUbuntuを比較するようなものです。 Archでは、必要なときに外出先で物事をインストールします。 Ubuntuにはすぐに使えるものがすべてあります。

    どちらが優れているかは、主に味の問題です。

    新しいLaravelプロジェクトでcomposer show --treeを実行して、依存関係のツリーを表示しました。さて、Laravel 5.4.18の時点では、他のすべての依存関係を取り込む4つの主要な依存関係があります。

    1. laravel /フレームワーク
    2. laravel /ティンカー
    3. fzaninotto /偽物
    4. PHPUnitの/ PHPUnitの

    配備されたとき、これらの依存関係の多くが使用されていない、例えばphpunitは単体テストにのみ使われるか、デバッグのためにsymfonyのデバッグバーが使われています。

    依存関係を削除するためのコメントについて:それらは4つの主な依存関係のうちの1つによって取り込まれているので、それらをフォークして未使用のコンポーネントを削除するか、それを使用しなければなりません。