PHPスクリプトにComposerの自動ローダーファイルを含めます。

PHPスクリプトにComposerの自動ローダーファイルを含めます。

ウェブサイトには明確な指示はありません。GitHubページのためのphp parsecsv。ただし、以下を手動で含める必要があるという明白な言及があります。

Drupal、Laravel、Symfony、Yiiなどのフレームワークを使用していない場合は、PHPスクリプトにComposerの自動ローダーファイルを手動で含める必要があります。

> require_once __DIR__ . '/vendor/autoload.php';

これが何を意味するのか分かりません。

  1. この行をPHPスクリプトに一括コピーして機能すると予想していますか?
  2. 私のディレクトリに固有のパスを使用してrequire行を編集する必要がありますか?
  3. ファイルをダウンロードしてどこかに入れる必要がありますか?もちろんです。それともPHPスクリプトの場所を基準として配置する必要がありますか?
  4. どういう意味ですか__DIR__

注:私はCentos 7システムを使用しています。

ベストアンサー1

このライブラリが機能するには、Composerの自動ローダが必要です。自動ロードPHPインタプリタがシステムパス内の特定のパターンでクラス定義を見つけることを可能にする機能。

自動ロードを使用しない場合は、そのクラスに基づいてオブジェクトをインスタンス化する前に、クラス定義を含むすべてのファイルをインクルード/リクエスト(include()、、)する必要があります。require()

したがって、これは不可能です。

$csv = new ParseCsv\Csv('data.csv');

ParseCsv\CsvPHPインタプリタはクラスについて知らないからです。一方、自動ロードを使用すると、PHPインタプリタは特定のスキーマ定義システムパスでクラス定義を含むファイルを見つけ、最初の使用前に自動的にロードします。

だからあなたは必要です使用 作曲家。システム全体またはプロジェクト全体にインストールする必要があります。次に、ダウンロードしたcomposer.pharファイルを使用してプロジェクトを初期化します(まだ完了していない場合)。

$ composer init

その後、コマンドに与えられたものを使用することができますparcsv/parse-csv-for-php図書館:

$ composer require parsecsv/php-parsecsv

それからあなたはしなければなりませんジムComposerの自動ローダは、Composerの機能を利用するすべてのPHPファイル(少なくともphp-parsecsvライブラリを使用したいファイル)にこの行を追加するか、単一のPHPファイルに含めて機能しますindex.phpbootstrap.phpアプリケーション全体のオープンエントリポイントです。

require_once __DIR__ . '/vendor/autoload.php';

今行ってもいいです。

あなたの質問に答えてください:

  1. この行をPHPスクリプトに一括コピーして機能すると予想していますか?

はい。

  1. 私のディレクトリに固有のパスを使用してrequire行を編集する必要がありますか?

時々。 Composerのデフォルト値を使用している場合は、このパスは問題ありません。

  1. ファイルをダウンロードしてどこかに入れる必要がありますか?もちろんです。それともPHPスクリプトの場所を基準として配置する必要がありますか?

どこかにダウンロードする必要がcomposer.pharありますが、プロジェクトディレクトリである必要があります。このファイルは、プロジェクトの依存関係を管理する外部アプリケーションにすぎません(composer.jsonプロジェクトディレクトリの依存関係リストおよびその他のComposer関連情報を参照)。composer.pharアプリケーションを実行するためにファイル自体は必要ありません走る、家に住むために建築計画が不要なようです。composer.phar(単に名前を変更することもできますcomposer)はどこにでも(つまり、すべてのパスの下に)配置できますが、PATH環境変数に含まれる一部のディレクトリまたはアプリケーションのルートに配置するのが便利なので、コマンドから呼び出す方が簡単です。ライン。

  1. どういう意味ですか__DIR__

次のようなPHPマニュアル:ファイルディレクトリ。インクルード内で使用されている場合は、インクルードファイルのディレクトリを返します。これは dirname( __FILE__) と同じです。ディレクトリ名は、ルートディレクトリ以外の後にスラッシュはありません。

頑張ってください!

注:この質問はUNIX / LinuxオペレーティングシステムよりもPHPプログラミングに関連しているので、stackoverflow.comで尋ねる必要があります。 :)

おすすめ記事