Class ‘~’ not found エラーが出たときに確認すること[PHP]

WORDPRESSのプラグインを作成中、PHPのクラス「DOMDocument」を使用しようとしたときに思わずつまづいたため、
戒めを込めて記事にしておこうと思います。
普段何気なくやっていたことのおさらいですね。

早い話がエラー「Class ‘XXXX\DOMDocument’ not found in …」みたいなエラーが出ました。
Classのパス指定が違っていただけですが、PHP自体のClassのパスの指定の方法はどうだったか?
ということを解説します。

Class ‘~’ not found エラーが出たときに確認すること

まずは「namespace」(名前空間)を使用しているか確認します。
PHP自体のクラスは名前空間でいうと「グローバル空間」に存在しています。
名前空間を使用しているかどうかでパスが変わってきます。
例)

// none error
<?php
$dom = new DOMDocument();


// class not found error
<?php

namespace WPplugin;

class testClass{
    public function test()
    {
        $dom = new DOMDocument();
    }
}

上記エラーが起こる場合「class ‘WPplugin\DOMDocument’ not found」になります。

class not found の解決方法

上記名前空間のエラーの場合下記二つの方法でエラー解消可能です。

// Import Class using "use"
<?php
namespace WPplugin;

use DOMDocument;

class testClass
{ 
    public function test()
    {
        $dom = new DOMDocument();
    } 
}

// Using Backslash
<?php
namespace WPplugin;

class testClass
{ 
    public function test()
    {
        $dom = new \DOMDocument();
    } 
}

 
「use」を使ってClassをしっかり呼び出すか、newで呼び出すときにパスを記述するかです。
グローバル関数の場合は、「\」バックスラッシュ(日本語だと¥)明示的に記述します。

補足:DOMDocumentがそもそもインストールされていないケースも

参考:Class ‘DOMDocument’ not found
WORDPRESSを設置している環境によっては上記参考サイトのように、拡張機能自体のインストールが必要になるケースも。

PHPおすすめ書籍

PHPは書籍も多いですが、比較的読みやすそうな奴を紹介します。まぁどれも読み切れば身に付くと思います。
入門用
いきなりはじめるPHP~ワクワク・ドキドキの入門教室
中級用
気づけばプロ並みPHP 改訂版–ゼロから作れる人になる!
PHP8を体系的に学びたい場合
詳細! PHP 8 + MySQL入門ノート XAMPP + MAMP 対応