2017-01-14 6 views
0

I持って一つのファイルDHMOFramework/libに/コア/ core.phpのこのコードで:別のファイルで1つのファイルのクラスを正しく使用する方法は?

<?php 

namespace DHMOFramework\lib\Core\Core; 

/** 
* Main DHMOFramework class 
*/ 

$registeredCommands = []; 

class Core 
{ 

    function registerCommand($command) { 
    global $registeredCommands; 
    $registeredCommands[$command] = []; 
    } 

    function registerSubCommand($commandname, $subcommand, $args, $helpmsg) { 
    global $registeredCommands; 
    $structure = array('command' => $commandname, 'subcommand' => $subcommand, 'args' => $args, "helpmsg" => $helpmsg); 
    array_push($registeredCommands[$commandname], $structure); 
    echo $registeredCommands; 
    } 

} 

そして、私は、このコードを持つ別のファイルtest.phpを持っている:

<?php 

require_once "DHMOFramework/lib/Core/Core.php"; 

$dhmo = new Core(); 

$dhmo->registerCommand("command"); 
$dhmo->registerSubCommand("command", "subcommand", ["arg1" => [true, string], "arg2" => [true, boolean]], "Usage: /command subcommand <arg1> <arg2>"); 

をそして、私はこれを取得しておきますtest.phpファイルを実行するとエラーが発生します。

Fatal error: Class 'Core' not found in /home/ubuntu/workspace/test.php on line 5 

Call Stack: 
    0.0001  232464 1. {main}() /home/ubuntu/workspace/test.php:0 

どのように修正できますか?

+0

use DHMOFramework\lib\Core\Core\Core; $dhmo = new Core(); 

チェックアウト名前空間は、両方のファイルへの絶対パスを含めてください。すなわち:/home/ubuntu/workspace/test.php しかし、あなたのワークスペースに関連してDHMOFramework/lib/Core/Core.phpはどこですか? (もしあなたがちょうど/home/ubuntu/workspace/DHMOFramework/lib/Core/Core.phpにあるようなものを持っていればもっと良いでしょう) – gabeio

答えて

0

使用完全なクラス名:

$dhmo = new DHMOFramework\lib\Core\Core\Core(); 

やクラスを使用する前useステートメントを使用:Official PHP documentation

+0

私はuseステートメントと完全なクラス名を試しました。仕事と私はどちらも同じエラーになりません。 –

+0

完全修飾クラス名で1つのCoreが見つかりませんでした。答えを編集しました。 – Finwe

+0

ありがとう!それは今働く。 –

関連する問題