也許是一個簡單的問題,但對於我來說,作爲Neo4j的首發者,一個障礙。我使用作曲家將neo4jphp安裝在與我的應用程序相同的目錄中。供應商子文件夾已創建,下面的everyman/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
谷歌搜索給我帶來了喬什Adell的評論指出
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-statement是錯誤的或代碼無法處理額外的子文件夾結構。
使用
require('phar://neo4jphp.phar');
工作正常,但我讀了不贊成這種方式,應該由作曲家/自動加載所取代。
任何人都有一個提示什麼改變或有同樣的問題?
感謝您的時間, Balael
啊,似乎我的作曲家設置不正確,我已經重做了設置,現在它的工作正常。 – Balael 2014-10-27 16:44:13