Composer找不到类...但是找到了同级文件

时间:2019-11-30 21:49:09

标签: php composer-php autoload

我有一个很好的文件夹结构,因为它在大多数情况下都可以工作。

看看这两个标题:

import React, { useState } from "react";



function Search() {

    const [joke, setJoke] = useState()
    const [firstname, setFN] = useState("sharoze")
    const [lastname, setLN] = useState("khan")

    const newJoke = (first, last) => {
        fetch(`http://api.icndb.com/jokes/random?firstName=${first}&lastName=${last}`)
            .then(result => result.json())
            .then(result2 => {
                console.log(result2)
                setJoke(result2.value.joke)

            })

    }


    function validateForm() {
        var firstname = document.getElementsByName("firstname")[0].value;
        var lastname = document.getElementsByName("lastname")[0].value;
        if (firstname === "" && lastname === "") {
            alert("Please enter atleast one name");
            return false;
        }
        else if (!(/^[a-zA-Z]+$/.test(firstname + lastname))) {
            alert("'Only alphabets allowed'");
            return false;
        }
        newJoke(firstname, lastname);
    }


    return (
        <div className="jokeForm" >
            <form name="searchForm" >
                <input type="text" name="firstname" placeholder="First name" value={firstname} onChange={(e) => setFN(e.target.value)} />
                <input type="text" name="lastname" placeholder="Last name" value={lastname} onChange={(e) => setLN(e.target.value)} />
            </form>
            <button id="button" onClick={() => validateForm()}>click here for a personalised chuckle</button>
            <h3>{joke}</h3>
        </div >


    )
}

export default Search;

namespace Library\GitHubClient\Client\Services;

use Library\GitHubClient\Client\GitHubClient;
use Library\GitHubClient\Client\GitHubService;
use Library\GitHubClient\Client\Objects\GitHubTeam;
use Library\GitHubClient\Client\Objects\GitHubFullTeam;
use Library\GitHubClient\Client\Objects\GitHubUser;
use Library\GitHubClient\Client\Objects\GitHubRepo;

class GitHubOrgsTeams extends GitHubService {

第一个文件composer会自动加载,没有问题,但是第二个文件找不到。令人头疼的是:他们俩都生活在同一个文件夹中。

实际上,从该父构造函数可以看到,同一文件夹中存在3个类,并且只有前2个自动加载。

namespace Library\GitHubClient\Client\Services;

use Library\GitHubClient\Client\GitHubClient;
use Library\GitHubClient\Client\GitHubService;

class GithubOrgsRepos extends GitHubService {

作曲家会遇到某种限制问题吗?

2 个答案:

答案 0 :(得分:0)

我一直把这三个地方塞满:

  • 文件名中的错字(例如区分大小写的文件系统上的大写字母不正确)
  • 自动装带器已缓存;运行composer dump-autoload来重新构建自动加载器。
  • 很少见:您使用的是文件加载器而不是PSR,并且需要将文件手动添加到composer.json。

最后要检查的是,您的调用代码(在构造函数中)肯定在顶部有use Library\GitHubClient\Client\Services\GithubOrgsRepos;语句。

答案 1 :(得分:0)

  

正如您评论中所建议的,这是您可以接受的答案。

这两行有助于注意可能是拼写错误:

    $this->teams = new GitHubOrgsTeams($client);
    $this->repos = new GithubOrgsRepos($client);

第一个具有用于集线器的大写字母H,而不是第二个。

您可能输错了类名或文件名。