
ウェブサイトには明確な指示はありません。GitHubページのためのphp parsecsv
。ただし、以下を手動で含める必要があるという明白な言及があります。
Drupal、Laravel、Symfony、Yiiなどのフレームワークを使用していない場合は、PHPスクリプトにComposerの自動ローダーファイルを手動で含める必要があります。
> require_once __DIR__ . '/vendor/autoload.php';
これが何を意味するのか分かりません。
- この行をPHPスクリプトに一括コピーして機能すると予想していますか?
- 私のディレクトリに固有のパスを使用してrequire行を編集する必要がありますか?
- ファイルをダウンロードしてどこかに入れる必要がありますか?もちろんです。それともPHPスクリプトの場所を基準として配置する必要がありますか?
- どういう意味ですか
__DIR__
?
注:私はCentos 7システムを使用しています。
答え1
このライブラリが機能するには、Composerの自動ローダが必要です。自動ロードPHPインタプリタがシステムパス内の特定のパターンでクラス定義を見つけることを可能にする機能。
自動ロードを使用しない場合は、そのクラスに基づいてオブジェクトをインスタンス化する前に、クラス定義を含むすべてのファイルをインクルード/リクエスト(include()
、、)する必要があります。require()
したがって、これは不可能です。
$csv = new ParseCsv\Csv('data.csv');
ParseCsv\Csv
PHPインタプリタはクラスについて知らないからです。一方、自動ロードを使用すると、PHPインタプリタは特定のスキーマ定義システムパスでクラス定義を含むファイルを見つけ、最初の使用前に自動的にロードします。
だからあなたは必要です使用 作曲家。システム全体またはプロジェクト全体にインストールする必要があります。次に、ダウンロードしたcomposer.phar
ファイルを使用してプロジェクトを初期化します(まだ完了していない場合)。
$ composer init
その後、コマンドに与えられたものを使用することができますparcsv/parse-csv-for-php図書館:
$ composer require parsecsv/php-parsecsv
それからあなたはしなければなりませんジムComposerの自動ローダは、Composerの機能を利用するすべてのPHPファイル(少なくともphp-parsecsv
ライブラリを使用したいファイル)にこの行を追加するか、単一のPHPファイルに含めて機能しますindex.php
。bootstrap.php
アプリケーション全体のオープンエントリポイントです。
require_once __DIR__ . '/vendor/autoload.php';
今行ってもいいです。
あなたの質問に答えてください:
- この行をPHPスクリプトに一括コピーして機能すると予想していますか?
はい。
- 私のディレクトリに固有のパスを使用してrequire行を編集する必要がありますか?
時々。 Composerのデフォルト値を使用している場合は、このパスは問題ありません。
- ファイルをダウンロードしてどこかに入れる必要がありますか?もちろんです。それともPHPスクリプトの場所を基準として配置する必要がありますか?
どこかにダウンロードする必要が
composer.phar
ありますが、プロジェクトディレクトリである必要があります。このファイルは、プロジェクトの依存関係を管理する外部アプリケーションにすぎません(composer.json
プロジェクトディレクトリの依存関係リストおよびその他のComposer関連情報を参照)。composer.phar
アプリケーションを実行するためにファイル自体は必要ありません走る、家に住むために建築計画が不要なようです。composer.phar
(単に名前を変更することもできますcomposer
)はどこにでも(つまり、すべてのパスの下に)配置できますが、PATH
環境変数に含まれる一部のディレクトリまたはアプリケーションのルートに配置するのが便利なので、コマンドから呼び出す方が簡単です。ライン。
- どういう意味ですか
__DIR__
?
次のようなPHPマニュアル:ファイルディレクトリ。インクルード内で使用されている場合は、インクルードファイルのディレクトリを返します。これは dirname(
__FILE__
) と同じです。ディレクトリ名は、ルートディレクトリ以外の後にスラッシュはありません。
頑張ってください!
注:この質問はUNIX / LinuxオペレーティングシステムよりもPHPプログラミングに関連しているので、stackoverflow.comで尋ねる必要があります。 :)