Mit $_SERVER man den webroot
Ich bin mit dem folgenden code in die cakephp-Projekt in der bootstrap-Definition von Konstanten wie webroot Pfad. Ist es richtig
$_ROOTPATH = strtolower('http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']);
$URLPART = explode('cake',$_ROOTPATH);
define('ROOTPATH',$URLPART[0].'cake/');
define('RESOURCEBASEPATH',$URLPART[0].'resources/');
define('DOCUMENTROOTPATH',substr($_SERVER['SCRIPT_FILENAME'],0,-9));
- ROOTPATH an Stelle von $this->webroot .
- DOCUMENTROOTPATH Hinweis auf die tatsächliche zu piont dem tatsächlichen Pfad, wie in
/var/www/
Was Sie dazu sagen. Jeder Hinweis/Anregung ist willkommen.
$_SERVER['DOCUMENT_ROOT']
wäre der "offizielle" Dokument-root in der httpd.cond- ich bin auf der cakephp webroot, das ist so etwas wie /apachewebroot/Pfad/zu/cake/app/webroot/
- Obwohl CakePHP funktioniert, wenn sitzt unter der Apache-webroot, es ist auch möglich, konfigurieren Sie das Apache-webroot zu
app/webroot
. Im letzteren Fall$_SERVER['DOCUMENT_ROOT']
undWWW_ROOT
sind das gleiche Verzeichnis.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bezüglich der Dateipfade, haben Sie schaute auf die bestehenden core-Konstanten? Sie werden wahrscheinlich finden Sie die meisten der Datei-Pfad-Konstanten, die Sie benötigen, sind bereits definiert.
Beispielsweise Ihre
DOCUMENTROOTPATH
ist genau das gleiche wie (ich glaube) dieWWW_ROOT
konstant.Als für URLs, CakePHP ist
Router::url()
kümmert sich um das handling aller URLs in einer konsistenten Art und Weise (zB. URLs Ausgabe vonController::redirect()
,FormHelper
,HtmlHelper
usw.)Können Sie uns auch anrufen
Router::url()
statisch, wohin Sie müssen zum erstellen von URLs:Es sei denn, ich bin fehlt etwas, ich würde halt die oben anstelle von littering Ihre Anwendung mit den gleichen von
ROOTPATH
undRESOURCEBASEPATH
. Zum Beispiel die folgenden Ansätze sind äquivalent:Warum nicht
$_SERVER['DOCUMENT_ROOT']
brauchen Sie nicht, keine variable zu bekommen webroot.
es ist immer nur
/
. Sehr praktisch.Ich bin mit diesem (vorausgesetzt, dass ich in den richtigen Ordner mit der Datei, die ich Schreibe diesen code in):
Dieser ist ziemlich alt der post, aber im Falle das jemand wissen will. Es ist $this->webroot, der Ihnen das webroot der Anwendung. diese ist in den controller & die Ansichten auch.