【问题标题】:My composer autoload file don't contain classes我的作曲家自动加载文件不包含类
【发布时间】: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


【解决方案1】:

我通过使用-a 标志加载dump-autoload 上的类解决了我的问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-15
    • 2018-03-30
    • 2021-12-18
    • 2015-12-24
    • 2013-03-05
    • 2014-07-04
    • 2018-10-01
    • 2016-03-06
    相关资源
    最近更新 更多