問題タブ [set-include-path]

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 投票する
2 に答える
16312 参照

php - 独自の BASE_PATH と set_include_path を定義しますか?

関数 set_include_path() を知りました。この間ずっと、config.php ファイルで定数を定義しました。

そして、後続のすべてのphpファイルに、次のように含めます

一定のアプローチと set_include_path のアプローチ、およびその逆に利点はありますか? 一定のアプローチは時代遅れですか?

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

php - cron 経由で zend フレームワークを実行するための CLI インクルード パス

Zend Framework を使用してコマンド ライン ユーティリティを作成し、夜間のレポート作成を行いました。付随するサイトと同じ機能を大量に使用しています。手動で実行するとうまく機能しますが、cron で実行するとインクルード パスの問題が発生します。set_include_path で簡単に修正できるようですが、何か足りないのでしょうか?

私のディレクトリ構造は次のようになります。

public_bootstrap.php では、現在のディレクトリに対して問題なく set_include_path を使用しています。

私が正しく理解している場合、commandline_bootstrap.php に絶対パスを入力する必要があるため、cron はすべてがどこにあるかを認識します。私のファイルは次のように始まります:

しかし、cron経由で実行すると、次のエラーが発生します。

PHP 致命的なエラー: require_once(): 必要な '../application/Globals.php' (include_path='/var/www/clientname/library/') を /var/www/clientname/commandline/zfcli.php で開くことができませんでした11行目

コマンドラインを実行してphpinfoをダンプすると、次のように表示されるため、PHPは新しいパスを受け入れていると思います。

include_path => /var/www/clientname/library/:.:/usr/share/pear:/usr/share/php => .:/usr/share/pear:/usr/share/php

ここの構文が少し奇妙に見えることは認めますが、修正方法がわかりません。どんな提案でも大歓迎です。

ありがとう夏

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

php - パスと奇妙な構造を含める

ハイ。本当に変なサイトを持っていて、今は困っています。これは単純化された構造です

それで。Index.phpは巨大なローダーです。それには線があります:(しかし、私は彼らが違いを作っているとは思いません)

Bonus_DAO.class.phpの内部は次のようなものです

Raportpdf.phpはindex.phpを介して呼び出されます-メールでエラーなしでコンテンツを送信します。しかし、raport.phpにアクセスしたい場合、次のようなエラーが発生します。

どうすればこれを解決できますか?

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

unit-testing - PHPUnit パスの問題への対処

現在の MVC フレームワーク アプリケーション内から PHPUnit を実行しようとすると、次のエラーが発生します。

そのエラーをいくつかの組み合わせに追跡することができました。

コメントアウトしたら

PHPUnit はテストを実行します

コメントアウトしたら

私は得る

他のすべてのディレクトリをコメントアウトすると、

「再宣言できません」というエラーが表示されます。

実際のテストを実行できる唯一の方法は、set_include_path ステートメントを使用せずに実行し、個々の単体テストによって呼び出されるすべてのクラス ファイルを手動でインクルードすることです。

何か案は?

編集: __autoload 関数と競合しているようです。私はまだ問題に対処する方法がよくわかりません。

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

php - PHP の名前空間と set_include_path() に問題がある

C:\xampp\htdocsにはController.phpApplicationHelper.phpが含まれています。 C:\xampp\htdocs\siteにはindex.phpが含まれています。

これが私が得ているエラーです:

致命的なエラー: 17 行目の C:\xampp\htdocs\Controller.php にクラス 'site\controller\ApplicationHelper' が見つかりません

私は名前空間ビジネス全体に不慣れですが、それがその背後にあるものであると100%確信していません. インクルードパスを設定してそのフォルダーを検索しても、ApplicationHelper.phpが見つからないようです。Controller.phpにApplicationHelper.phpを直接インクルードすると機能します。(関連する)コードは次のとおりです。

index.php

Controller.php

ApplicationHelper.php

助けてくれてありがとう!

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

php - PHP「set_include_path」はどこで有効ですか?

にとファイルを相対的に追加my_pathしたいと思います。include_pathincludemy_path

私のウェブサイトのメイン PHP ファイルでinclude_pathusingを設定するだけで十分ですか、それともすべての PHP ファイルでこれを行う必要がありますか?set_include_path

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

php - PHPでset_include_path()を使用する理由と、さまざまなフォルダーからクラスを自動ロードする方法を教えてください。

PHPのインクルードパスとファイルやクラスのインクルードについていくつか質問があります。

以下は、複数のインクルードパスを設定しているコードの簡単なスニペットです。これは別のプロジェクトで見ましたが、理由がわかりません。

過去5年ほどの間、どのプロジェクトでもset_include_path()を使用する必要はありませんでした。

Q1)
では、インクルードパスを設定する目的は正確には何ですか?私はいつもinclude()呼び出しにパスを含めてきました。

Q2)
以下の例では、複数のパスを設定しています。複数の場所にファイルを含める場合、これはどのように機能しますか、目的または正確に何をするのか混乱していますか?

Q3)
これは少し異なる質問ですが、それでもインクルードに関連しています。以下は、クラスの単純な自動ロード関数です。以前はclassesフォルダーがあり、すべてのクラスファイルを自動ロードしていました。現在のプロジェクトでは、以下のように自動ロードするクラスのライブラリがありますが、モジュールディレクトリからクラスファイルを自動ロードする必要がある別のセクションもあります。

したがって、このような場所にある ライブラリクラスを自動ロードする必要があります。

root / contains / library / classes / library_class_files.php

+++ plus +++

このような場所にあるさまざまなモジュール(アカウント、メッセージ、友達、写真、ブログ、フォーラムなど)のクラスをロードします。

root / modules / forums / modules_class_files.php

2つの異なる場所からクラスファイルをロードする必要はないかもしれませんが、ロードする場合、どうすればそれを実行できますか?

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

php - zendフレームワークを含める適切な方法は何ですか?

Zend Frameworkをダウンロードして、サーバールートのすぐ上(Where /tmpisなど)に配置しましたが、単一のPHPファイルで認識されません。私は共有ホストを使用しており、これがディレクトリを含める方法です。

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

set-include-path - include_pathはphpで正常に機能しますが、.htaccessでは機能しません...何が得られますか?

一部のプログラムをあるサーバーから別のサーバーに移動しました。彼らは古いサーバーで作業していました...(ロードされていることはわかっていますが、私が見たところ、違いはありません)。「類似したタイトル」の質問を見ましたが、ここで起こっていることのようなものは見つかりません。過去と同じように、.htaccessファイルを使用してこのパスを設定したいと思います。これまでのところ、私はPHPを使用しています。

...私のhtaccessで私は試しました:

..と:

ただし、.htaccessファイルで動作させることはできません。.phpファイルで動作しますが、簡単に.htaccessファイルで動作するようにしたいと思います。

何か考えやアイデアはありますか?!

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

php - PHP/Apache はデフォルトで include フォルダを探しますか?

私は最近 set_include_path() を発見し、返されるパスがインクルード ディレクトリへのパスであることを発見しました。

PHP は自動的に includes ディレクトリを探し、include_path をこれに更新しますか?

また、set_include_path で設定したいくつかのパスは、クラス自体の外部で設定すると、クラス メソッド内で使用できないことにも気付きました。

どうしてこれなの?

事前にすべてのアドバイスをありがとう!