PHP が最近の更新で実装したすばらしい新しい名前空間機能を使用してライブラリを作成しています。ただし、クラスの 1 つから simple_html_dom.php クラスを使用する必要があります。標準の PSR-0 準拠のオートローダー クラスを使用していますが、simple_html_dom クラスの新しいオブジェクトを作成しようとすると、アンダースコアが原因でエラーが発生します。
私のオートローダ クラスを見ると、下線が whacks に置き換えられています。これは簡単に修正できますが、私の PSR-0 準拠に違反する可能性があるのではないかと心配しています。レガシー ライブラリでこのような問題を解決するためのベスト プラクティスは何だろうと思っていました。
ディレクトリ構造
- vendor/
- MyStuff/
- lib/
- simple_html_dom.php
- MyClass1.php
MyClass1.php
<?php
namespace MyStuff;
// This require works
require(__DIR__ . '/lib/simple_html_dom.php');
class MyClass1 {
public function __construct() {
// This breaks
// Warning: require(C:\www\vendor\LoU\simple\html\dom.php): failed to open stream
$html = new simple_html_dom();
}
}