PHP - 命名空间不能正常工作

时间:2017-08-11 13:19:30

标签: php namespaces composer-php runtime-error

我正在使用php 5.6.24在Windows 7上使用xampp。我有php Namespace的问题。

我的项目目标看起来像这样:

-project
 + config
 - Framework
   + database
   + Expection
   test.php
 + src
 index.php

我在Framework / test.php中有php文件,它包含以下代码:

<?php
namespace Framework\Test;
echo " i  Am in test.php class";
class Test{
    public function __construct(){
        echo "I m from test classs ";
    }

    public function test_method(){
        echo " No";
    }
}

在我的根目录中,我有index.php,composer.json

我的composer.json有自动加载对象

  "autoload": {
    "psr-4": {
      "Framework\\": "Framework/"
    },
    "files": [
        "src/Helpers/ArrayHelpers.php"
    ]
  },

在我的index.php中,我有以下代码:

<?php
echo "<pre>";

require __DIR__ . '/vendor/autoload.php';
use Framework\Test;
$n      = new Test;
print_r($n);

当我在浏览器上运行index.php文件时,我得到了回复:

  

我在test.php类中;

     

致命错误:Class&#39; Framework \ Test&#39;找不到   第12行的C:\ xampp \ htdocs \ project \ index.php

我不知道我做错了什么?我的命名空间是错的吗?但是我从那个文件得到回声怎么样?为什么?什么出错了?我的作曲家档案错了吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

Test的命名空间只是Framework,(因为它也位于Framework文件夹中)所以尝试更改 Test.php ,如下所示:

<?php
namespace Framework;
echo " i  Am in test.php class";
class Test{
    public function __construct(){
        echo "I m from test classs ";
    }

    public function test_method(){
        echo " No";
    }
}

希望这个帮助