web-dev-qa-db-ja.com

WordPressの名前空間 - メインクラスを始めるにはどうすればいいですか?

私はOOPの中のPHPの非常に基本的な知識を持っていて、WordPressプラグインで名前空間を使うことを学ぶことを試みている。これら2つの情報源からの指示に従ってください。

  1. WPSE 63668
  2. Paulund

これが私の現在のコードの見え方です。

ルートフォルダ:plugins/oowp

ファイル:oowp/bootstrap.php

<?php
/*
Plugin name: OOWP
*/
require_once('autoload.php');

ファイル:oowp/autoload.php

<?php
spl_autoload_register('autoload_function');
function autoload_function( $classname )
{
    $class = str_replace( '\\', DIRECTORY_SEPARATOR, str_replace( '_', '-', strtolower($classname) ) );

    // create the actual filepath
    $filePath = WP_PLUGIN_DIR . DIRECTORY_SEPARATOR . $class . '.php';

    // check if the file exists
    if(file_exists($filePath))
    {
        // require once on the file
        require_once $filePath;
    }
}

ファイル:oowp/objects/custom-objects.php

<?php

namespace oowp\objects;

class Custom_Objects {
    public function __construct() {
        add_action('plugins_loaded', array($this, 'trial'));
    }

    public function trial() {
        echo 'Works';
    }
}

どのようにそしてどこで私はこのクラスを始めますか?処理を開始するクラスをもう1つ書く必要がありますか?ファイル自体にcustom-objectsクラスのインスタンスを作成しようとしましたが、うまくいきません。

5

それを試してみてください。

ファイル:oowp/bootstrap.php

<?php
/*
Plugin name: OOWP
*/

require_once( 'autoload.php' );

use oowp\objects\Custom_Objects;

new Custom_Objects;
5
webtoure