私は、例えばDebugR()
のような私の関数を使いたいですが、ソースを含む関数ファイルをロードするためにrequireまたはinclude(include_path
)を使いたくありません。ロード元ファイルなしでPHP関数を使用するには?
私はオートロードを使用することができますが、このアクションは私のPHP構成では一般的でなければなりません。私はPHP拡張を作成する必要があると思いますが、別の方法がありますか?
私は、例えばDebugR()
のような私の関数を使いたいですが、ソースを含む関数ファイルをロードするためにrequireまたはinclude(include_path
)を使いたくありません。ロード元ファイルなしでPHP関数を使用するには?
私はオートロードを使用することができますが、このアクションは私のPHP構成では一般的でなければなりません。私はPHP拡張を作成する必要があると思いますが、別の方法がありますか?
できるPHP設定行があります。
auto_prepend_file文字列
Specifies the name of a file that is automatically parsed before the main file. The file is included as if it was called with the require() function, so include_path is used.
The special value none disables auto-prepending.
拡張機能を構築したり、関数のクラスを自動ロードしたり、関数をページに直接必要としたり、関数を同じファイルに書き込んだりすることなく、PHPを調整することなく方法がないと確信しています構成。
好奇心で、これらのことをしたくない理由は何ですか?
なぜコードをメモリにキャッシュするアクセラレータを使用しないのですか?
"include"指示文を書く必要があります。
エクステンションがあなたの頭の中にある場合は、使用可能なオープンソースアクセラレータからフォークを外してください。
それを行うための唯一の実行可能な方法は、このようなオートロードを使用することです::
ドキュメントは、これは言う。もちろん、
// your_file.php
function __autoload($class)
{
require_once('./classes/' . $class . '.php');
}
echo _::Bar();
var_dump(_::DebugR());
echo _::Foo();
// ./classes/_.php
class _
{
function Bar()
{
return 'bar';
}
function DebugR()
{
return true;
}
function Foo()
{
return 'foo';
}
}
を、すべての関数は次のようになりますこの_クラスの内部に格納されます。
別の方法として、あなたがオブジェクト内から作業している場合(__callを使用することです)マジックメソッドと同じような何かを:
return $this->DebugR();
「ありがとう私はオートロードを使うことができますが、このアクションは汎用でなければなりません " 私はオートロードを使いたくありません。投票された答えを読む、それは問題の最良の応答です。 –
はジム・PULSが、私はどのように編集futursの質問を覚えているだろう –