dongmin3754 2017-04-16 17:40
浏览 312
已采纳

为什么我的Composer包不能自动加载?

I've been testing getting my packages up to Packagist with a simple class I made. Whenever I require it in a different project, it says the class cannot be found. Is something wrong with my composer.json autoload block?

Here's my project repo file structure:

- src
    - prodikl
        - View.php
- .gitignore
- composer.json

And here's my composer.json:

{
  "name":"prodikl/simple-view",
  "description":"A simple to use, basic View object.",
  "require" : {
    "php" : ">=5.3.0"
  },
  "autoload": {
    "psr-4": {"prodikl": "src/"}
  }
}

And finally, in my View.php:

<?php

namespace prodikl;

class View
{
    ...
}

But whenever I require it into a project and do require "vendor/autoload.php" and use use prodikl\View; it it keeps saying not found

  • 写回答

1条回答 默认 最新

  • dorv56831 2017-04-16 17:46
    关注

    You just need to point your autoloader down one more directory:

      "autoload": {
        "psr-4": {"prodikl": "src/prodikl/"}
      }
    

    This means "classes that belong to the \prodikl namespace can be found in the src/prodikl/ directory."

    You might need trailing backslashes on the namespace name too, not sure how picky Composer is about it:

    "psr-4": {"prodikl\\": "src/prodikl/"}
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码