我的班级结构如下:
click event
我已经通过自动加载创建了composer.json:
myproject
|
-------src (namespace PicoCore;)
|
-----objects (namespace PicoCore\Objects;)
-----tests (namespace PicoCore\Tests;)
我在安装后创建了一个测试脚本:
{
"autoload": {
"psr-0": {
"PicoCore": "src",
"PicoCore\\Objects" : "src/objects",
"PicoCore\\Tests" : "src/tests"
}
}
}
用户类:
<?php
require_once "../../vendor/autoload.php";
use PicoCore\Objects\User;
$user = new User();
$user->name = "asaf";
echo $user->name;
?>
我找不到类异常..有什么想法吗?
答案 0 :(得分:0)
如果它是没有课程的命名空间,那么它必须以\\结尾 所以:
"autoload": {
"psr-0": {
"PicoCore\\": "src",
"PicoCore\\Objects\\" : "src/objects",
"PicoCore\\Tests\\" : "src/tests"
}
}
并检查文件自动加载
作曲/ autoload_namespaces.php
答案 1 :(得分:0)
要使用PSR-0,您需要将结构布局更改为:
src/
└── PicoCore
├── Objects
│ └── User.php
└── Tests
在您的composer.json中,您需要添加PicoCore
命名空间:
"psr-0": {
"PicoCore\\": "src"
}
如果要保留当前的文件系统布局,可以使用PSR-4而不是PSR-0。要使用PSR-4,您需要更新composer.json:
"autoload": {
"psr-4": {
"PicoCore\\": "src",
"PicoCore\\Objects\\" : "src/objects",
"PicoCore\\Tests\\" : "src/tests"
}
}
完成更改后,运行composer dumpautoload
以重新生成自动加载文件。