Возможно, простой вопрос, но для меня как стартер с Neo4j барьер. Я установил neo4jphp с композитором в том же каталоге, что и мое приложение. Создана папка-подкаталог и доступна доступная папка для каждого пользователя/neo4j. Для первого теста я использовал этот фрагмент кода из примеров:neo4jphp: Невозможно создать абстрактный класс Everyman Neo4j Transport
spl_autoload_register(function ($className) {
$libPath = 'vendor\\';
$classFile = $className.'.php';
$classPath = $libPath.$classFile;
if (file_exists($classPath)) {
require($classPath);
}
});
require('vendor/autoload.php');
use everyman\Neo4j\Client,
everyman\Neo4j\Transport;
$client = new Client(new Transport('localhost', 7474));
print_r($client->getServerInfo());
Я всегда stumple на ошибки
Fatal error: Cannot instantiate abstract class Everyman\Neo4j\Transport
Googling привел меня на комментарий от Джоша Эдел о том,
You can't instantiate Everyman\Neo4j\Transport, since it is an abstract class. You must instantiate Everyman\Neo4j\Transport\Curl or Everyman\Neo4j\Transport\Stream depending on your needs
Поэтому мне показалось, что мне просто нужно изменить эксплуатационные заявления на
use everyman\Neo4j\Client,
everyman\Neo4j\Transport\Curl;
но это не работает, отладка показывает, что автозагрузчик получает только «Transport.php» вместо «everyman \ Neo4j \ Transport \ Curl.php». Для «Client.php» все еще работает («vendor \ everyman \ Neo4j \ Client.php»), поэтому я предполагаю, что неправильный оператор use или код не способен обрабатывать дополнительную структуру подпапок.
Использование
require('phar://neo4jphp.phar');
работает нормально, но я читал, что это является устаревшим и должен быть заменен композитором/автозагрузку.
У кого-нибудь есть подсказка, что изменить или возникли те же проблемы?
Спасибо за ваше время, Balael
А, кажется, моя настройка композитора была неправильной, я переделал настройку и теперь ее работоспособность. – Balael