PHP のオートローダーと名前空間に少し混乱しています。
私のクラスは資産ファイル内に整理されています。
-- Assets
-- user
-- User.php
-- database
-- Database.php
これは単純なバージョンで、各フォルダ (つまり、ユーザー、データベース) にはさらに多くのファイルがあります。
このプロジェクトには 1 つのベンダー (つまり私) しかいないため、競合するベンダー名について心配する必要はありませんが、たとえば、PSR0 オートローダーを使用する場合:
function autoload($className)
{
$className = ltrim($className, '\\');
$fileName = '';
$namespace = '';
if ($lastNsPos = strripos($className, '\\')) {
$namespace = substr($className, 0, $lastNsPos);
$className = substr($className, $lastNsPos + 1);
$fileName = str_replace('\\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;
}
$fileName .= str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';
require $fileName;
}
各クラス ファイルで名前空間を宣言し、.xml を使用してクラスを初期化する必要がありますかnew user\User();
? を使用して初期化することはできませんかnew user_User;
どうもありがとう