2016-04-20 14 views
2

aufrufen Ich möchte R in PHP mit php-r verwenden. Da ich sehr neu in PHP bin, wäre ich sehr dankbar, wenn jemand mir bei der Installation von php-r in xampp hilft und dasselbe ausführt.mit php-r R innerhalb PHP

Ich versuchte, das PHPR Verzeichnis innerhalb htdocs setzen und zugegriffen es aus mit PHP

<?php 

use Kachkaev/PHPR/RCore; 
use Kachkaev/PHPR/Engine/CommandLineREngine; 

$r = new RCore(new CommandLineREngine('/usr/bin/R')); 

$result = $r->run(<<<EOF 
x = 1 
y = 2 
x + y 
x + z 
x - y 
EOF 
    ); 

echo $result; 
?> 

Diese gibt einen Fehler

Fatal error: Class 'Kachkaev\PHPR\RCore' not found in /opt/lampp/htdocs/testserver/test.php on line 6

NB: My R ist in /usr/bin/R installiert

+0

der R Installationsort ist im Moment irrelevant. Die RCore-Klasse wird nicht geladen, daher funktioniert der Code nicht. –

+0

'composer require kachkaev/php-r' ist der einfachste Weg, php-r zu installieren –

+1

Ich habe nie eine Rückmeldung bezüglich der Antwort erhalten, die ich verließ; Hat es dein Problem gelöst? Wenn dies der Fall wäre, wäre es wünschenswert, es als akzeptiert zu markieren; Vielen Dank. – miken32

Antwort

1
use Kachkaev/PHPR/RCore; 
use Kachkaev/PHPR/Engine/CommandLineREngine; 

Ich vermute, dass Sie den Zweck der use Anweisung verwirren. Es imports a namespace in den aktuellen Code. Dementsprechend verwendet es die namespace separator - ein Backslash, kein Schrägstrich:

use Kachkaev\PHPR\RCore; 
use Kachkaev\PHPR\Engine\CommandLineREngine; 

Bevor Sie den Namensraum importieren, PHP kennen die zugehörigen Code sein muss. Die einfachste Art und Weise ist include() oder require() Anweisungen zu verwenden:

require /path/to/htdocs/php-r/src/Kachkaev/PHPR/RCore.php 

Beachten Sie, dass diese Dateisystem Pfade sind, keine URLs. require wird einen Fehler ausgeben, wenn die Datei nicht gefunden werden kann, include wird nicht.

Die meisten modernen Projekte haben eine Autoloading-Komponente wie Composer, die dies für Sie aber behandeln wird. Einmal eingerichtet, würden Sie dies einfach zu Ihrer composer.json Datei hinzufügen: