私が書いたプログラムでSwiftMailer php ライブラリを使用しようとしています。このライブラリを含める前に、spl_autoload_register() 関数を問題なく使用していました。ただし、このライブラリを使用する前に、spl 関数を使用してクラス拡張と場所を明示的に定義していました。
set_include_path(get_include_path().[my include path]);
spl_autoload_extensions('.class.php');
spl_autoload_register();
session_start();
私が直面している問題は、同じ命名規則に従っていないライブラリを使用しようとしているということです。独自の autoload クラス (ライブラリへの最初の呼び出しによって構築された) は、次のようになります。
public static function autoload($class)
{
//Don't interfere with other autoloaders
if (0 !== strpos($class, 'Swift_'))
{
return;
}
$path = dirname(__FILE__).'/'.str_replace('_', '/', $class).'.php';
if (!file_exists($path))
{
return;
}
if (self::$initPath && !self::$initialized)
{
self::$initialized = true;
require self::$initPath;
}
require $path;
}
クラスを呼び出した後にプログラムを単純に実行しようとすると、次のようになります。
Fatal error: spl_autoload() [<a href='function.spl-autoload'>
function.spl-autoload</a>]:Class Swift_MailTransport could not
be loaded in [my file] on line 30
30行目:
$transport = Swift_MailTransport::newInstance();
私は彼らの後にモデル化されたカスタム autoload クラスを使用しようとしましたが、試してみるとすべて得られます:
var_dump(spl_autoload_functions());
結果:
bool(false);
これはかなり単純な問題である必要があることはわかっていますが、見落としていますが、見つかりません。
どんな助けでも大歓迎です。