2016-11-05 1 views
0

ich den Anweisungen auf mongodb/mongo-php-library offiziellen Repository folgenphp7 mongodb Treiber OBJECTID nicht gefunden

$ pecl install mongodb 
$ echo "extension=mongodb.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"` 

aber wenn ich versuche, einen Test mit phpunit über diesen Konstruktor auszuführen:

use MongoDB\BSON\ObjectID; 

    (...) 

    /** 
    * X constructor. 
    * 
    * @param ObjectID|null $id 
    */ 
    public function __construct(ObjectID $id = null) 
    { 
     if (!$id) { 
      $id = new ObjectID(); 
     } 

     $this->id = $id; 
    } 

    (...) 

ich diese Fehlermeldung bekam

1) tests\X\X\XTest::testBeConstructed 
Error: Class 'MongoDB\BSON\ObjectID' not found 

BEARBEITEN

wenn ich eine Testdatei mit dieser Zeile Code zu erstellen:

<?php 

echo new \MongoDB\BSON\ObjectID(); 

und ich führen Sie es mit

php test.php 

es zeigt:

581ddc9c6fb3720352664f11 

ZWEITE EDIT

Wie in den Kommentaren erwähnt, setze ich einige Debug-Zeilen in der ersten Zeile auf m y phpunit Tests:

var_dump(extension_loaded('mongodb')); 
echo phpversion().PHP_EOL; 
print_r(get_loaded_extensions()); 

hier ist der Ausgang

bool(true) 
7.0.8-0ubuntu0.16.04.3 
Array 
(
    [0] => Core 
    [1] => date 
    [2] => libxml 
    [3] => openssl 
    [4] => pcre 
    [5] => zlib 
    [6] => filter 
    [7] => hash 
    [8] => pcntl 
    [9] => Reflection 
    [10] => SPL 
    [11] => session 
    [12] => standard 
    [13] => phpdbg 
    [14] => mysqlnd 
    [15] => PDO 
    [16] => xml 
    [17] => bcmath 
    [18] => calendar 
    [19] => ctype 
    [20] => curl 
    [21] => dom 
    [22] => mbstring 
    [23] => fileinfo 
    [24] => ftp 
    [25] => gd 
    [26] => gettext 
    [27] => iconv 
    [28] => intl 
    [29] => json 
    [30] => exif 
    [31] => mcrypt 
    [32] => mysqli 
    [33] => pdo_mysql 
    [34] => Phar 
    [35] => posix 
    [36] => readline 
    [37] => shmop 
    [38] => SimpleXML 
    [39] => sockets 
    [40] => sysvmsg 
    [41] => sysvsem 
    [42] => sysvshm 
    [43] => tokenizer 
    [44] => wddx 
    [45] => xmlreader 
    [46] => xmlwriter 
    [47] => xsl 
    [48] => Zend OPcache 
) 
PHPUnit 5.6.2 by Sebastian Bergmann and contributors. 

im laufenden phpunit mit dem folgenden Befehl

phpdbg -qrr /root/.composer/vendor/bin/phpunit 

Warum ist phpunit nicht die mongodb ext erkennen?

Was fehlt?

Dank

HINWEIS: Wenn Sie, warum im root fragen, ist, weil diese in einem Container Docker ist

+0

Was war die Ausgabe der Befehle? Ich nehme an, Sie haben sie als normaler Benutzer ausgeführt, und die Erweiterung wird aufgrund unzureichender Berechtigungen nicht installiert. Überprüfen Sie, ob die Erweiterung geladen ist: 'php -m | grep -i mongo'. –

+0

@RuslanOsmanov die Bibliothek kompiliert einfach gut und installiert ok. die Ausgabe an den Befehl, Sie erwähnen; Ausführung war: mongodb – bitgandtter

+0

Haben Sie das Skript in der Befehlszeile getestet? Vielleicht laden andere SAPIs (Apache, FPM, etc.) 'php.ini' von verschiedenen Pfaden. –

Antwort

0

Das war ein wirklich Anfänger Problem, ich installieren phpdbg nachdem ich die mongodb Erweiterung kompilieren und installieren, so dass für phpdbg Installation Die Erweiterung mongodb wurde nicht geladen. Ich mache es dafür und es funktioniert.

Verwandte Themen