1

私は名前空間に慣れていないので、SplClassLoader のメソッドで自動読み込みを行っていると思います。多くのチュートリアルを検索しようとしましたが、あまり運がありません。おそらく、皆さんは私がこれを進めるのを手伝ってくれるでしょうか?

ディレクトリ構造

- Oram
    - Lib
        - Classes
            Test.php
- index.php
- SplClassLoader.php

Test.php

<?php
namespace Oram\Lib\Classes;

class Test
{
    function __construct()
    {
        echo "Test Class loaded";
    }
}

index.php

<?php
require_once('SplClassLoader.php');

$loader = new SplClassLoader('Lib', 'Oram\Lib'); 
$loader->register();

use Oram\Lib\Classes\Test;
$test = new Test();

私はWAMPで実行しているので、これはすべてlocalhost/website/の中にあります。

Fatal error: Class 'Oram\Lib\Classes\Test' not found in C:\Program Files\wamp\www\website\index.php on line 10

何かアドバイスがあれば、または誰かがこれを回避するためにいくつかの読書リソースを教えてくれるなら、それは素晴らしいことです.

ありがとうございました

4

1 に答える 1

1

編集: 私はそれを持っています!バックスラッシュ (\) をスラッシュ (/) に変更する必要があると思います。

<?php
    require_once('SplClassLoader.php');

    $loader = new SplClassLoader('Lib', 'Oram/Lib'); 
    $loader->register();

    use Oram\Lib\Classes\Test;
    $test = new Test();
?>
Take a look on [this][1]. 

それを試してみてください。名前空間の前に \ を追加しました。それが答えかもしれません:

$loader = new SplClassLoader('Lib', '\Oram\Lib'); 
于 2013-06-23T16:07:23.637 に答える