【发布时间】:2020-01-24 12:51:40
【问题描述】:
我正在使用 Composer 和 coffeecode/datalayer 库创建带有 PHP 的 REST API,但是当我尝试加载我的类时,我收到 Class not found 错误,当我在终端上输入 dump-autoload 我得到 生成的包含 0 个类的自动加载文件
composer.json
{
"name": "bruno_monteiro/restapi_php",
"description": "Simple PHP REST API",
"type": "project",
"require": {
"coffeecode/datalayer": "1.1.*"
},
"license": "MIT",
"authors": [
{
"name": "Bruno Monteiro",
"email": ""
}
],
"minimum-stability": "stable",
"autoload": {
"psr-4": {
"Source\\": "source/"
}
}
}
型号
namespace Source\Models;
final class Validations{
...
}
控制器(发生错误的地方)
namespace Source\Controllers;
require "../../vendor/autoload.php";
require "../Config.php";
use Source\Models\Validations;
switch($_SERVER["REQUEST_METHOD"]){
case "POST":
$data = json_decode(file_get_contents("php://input"), false);
if(!$data){
header("HTTP/1.1 400 Bad Request");
echo json_encode(array(
"response"=>"Nenhum dado informado"
));
exit;
}
$errors = array();
if(!Validations::validateString($data->first_name)){
array_push($errors, "Nome informado inválido");
}
...
目录结构
│ composer.json
│ composer.lock
│ Script.sql
│
├───source
│ │ Config.php
│ │
│ ├───Controllers
│ │ User.php
│ │
│ └───Models
│ User.php
│ Validations.php
│
└───vendor
│ autoload.php
│
├───coffeecode
│ └───datalayer
│ │ composer.json
│ │ CONTRIBUTING.md
│ │ LICENSE
│ │ README.md
│ │
│ ├───example
│ │ │ db_config.php
│ │ │ destroy_example.php
│ │ │ find_example.php
│ │ │ pdo_example.php
│ │ │ save_example.php
│ │ │
│ │ └───Models
│ │ Address.php
│ │ User.php
│ │
│ └───src
│ Connect.php
│ CrudTrait.php
│ DataLayer.php
│
└───composer
autoload_classmap.php
autoload_namespaces.php
autoload_psr4.php
autoload_real.php
autoload_static.php
ClassLoader.php
installed.json
LICENSE
【问题讨论】:
-
请告诉我们您的目录结构。
-
已添加到问题中
标签: php rest composer-php autoloader