doukefu1361 2016-09-20 15:12
浏览 46

PHP命名空间错误。 在作曲家项目中找不到的类

Can someone please point me in the right direction. I have downloaded a GIT project Namshi/JOSE which is a JWT signing and verification library. I have a directory structure shown below.

directory structure

All my unit tests (inside the folder tests work perfectly, so the composer.json and bootstrap.php files are okay. But when I try and add my own test, in the folder myTests->simpleTest.php as below what ever I try I can't get the namespace to resolve the class SimpleJWS. The namespace for the library is Namshi/JOSE. My simple test calling code is:


      use Namshi\JOSE\SimpleJWS;
      //require_once ("../src/Namshi/JOSE/SimpleJWS.php");

      $jws  = new SimpleJWS(array(
       'alg' => 'RS256'

The error text is: Fatal error: Class 'Namshi\JOSE\SimpleJWS' not found. The psr-4 statements are as follows:

    "autoload": {
    "psr-4": {
    "Namshi\\JOSE\\":  "src/Namshi/JOSE/"

    "autoload-dev": {
    "psr-4": {
        "Namshi\\JOSE\\Test\\":  "tests/Namshi/JOSE/Test/"


Any help would be greatly appreciated.

  • 写回答

1条回答 默认 最新

  • douyi6960 2016-09-20 15:58

    Your thinking about the autoloading is correct, but as you're stating, your test file lives under "myTests"; your autoload-dev simply points to the wrong directory "tests/Namshi/JOSE/Test/" while your file lies in "myTests".

    "autoload-dev": {
        "psr-4": {
             "Namshi\\JOSE\\Test\\": "myTests"

    Please also make sure, your FQCN (fully-qualified class name) of your test class is Namshi\JOSE\Test\simpleTest.

    namespace Namshi\JOSE\Test;
    class simpleTest {}

    According to the comments below you were missing the include of the autoloading in your testsuite.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?



  • ¥66 定制开发肯德基自动化网站下单软件
  • ¥20 vscode虚拟环境依赖包未安装
  • ¥15 odoo17关于owl开发js代码问题
  • ¥15 光纤中多普勒频移公式的推导
  • ¥15 怎么制作一个人脸识别门禁系统
  • ¥20 大华dss监控平台网络关闭登不进去
  • ¥15 请使用蚁群算法解决下列问题,并给出我完整的代码
  • ¥20 关于php录入完成后,批量更新数据库
  • ¥15 请教往复密封润滑问题
  • ¥15 cocos creator发布ios包