Структура файла выглядит следующим образом:
index.php
composer.json
composer.lock
-lib
--books
---SearchClient.php (contains class books\SearchClient
В Windows работает следующий docker-compose.yml + PHP:
{
"name" : "keithdavis/books",
"description" : "",
"version" : "0.1",
"minimum-stability": "beta",
"require" : {
"ext-curl" : "*",
"ext-json" : "*",
"guzzlehttp/guzzle": "^6.3"
},
"autoload" : {
"psr-4": {
"books\\": "lib"
}
}
}
<?php
use books\SearchClient;
require_once __DIR__."/vendor/autoload.php";
$oSearchClient = new SearchClient();
Однако в macOS (Mojave):
( ! ) Fatal error: Uncaught Error: Class 'books\SearchClient' not found in /var/www/html/search.php on line 6
( ! ) Error: Class 'books\SearchClient' not found in /var/www/html/search.php on line 6
Call Stack
# Time Memory Function Location
1 0.0032 416944 {main}( ) .../search.php:0
При отладке кажется, что путь "lib" является проблемой, но я пробовал "/ lib", и это тоже не работает.Я думаю, может быть, я неправильно установил Composer.Я опытный PHP-разработчик для Windows, но относительно новичок в Mac, и поэтому я не на 100% уверен в лучшем способе установки Composer на Mac.Я следовал этим инструкциям по всему миру:
https://getcomposer.org/doc/00-intro.md#globally