Ankündigung

Einklappen
Keine Ankündigung bisher.

relative pfade mit apache und php5.5

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • relative pfade mit apache und php5.5

    Hi Leute ich habe das Forum und Google durchsucht und finde keine lösung für mein Problem.
    Ich habe eine etwas kompliziert verschachtelte Ordnerstruktur und versuche mit einem relativen Pfad eine datei mit require zu laden.
    vereinfachte ordnerstruktur:
    root
    ........app
    ...........version1
    ...............controller
    .......................hauptcontroller.php
    ...............module
    ...............view
    ...................vieUserVer.php
    ...............templates
    .......................test.tpl.phtml
    .......................no_subnavi.tpl.phtml
    index.php

    Die komplette seite wird in index.php ausgefürht sie läd die hauptcontroller.php die wiederum mit
    PHP-Code:
    require('/../templates/test.tpl.phtml'
    einbindet.

    jetzt zum Problem
    mit dieser schreibweise findet er das template nicht ebenso mit der schreibweise
    PHP-Code:
    require('../templates/test.tpl.phtml'
    er findet es nur mit absoluten pfad von root aus
    oder wen es sich im selben ordner wie die hauptcontroller.php befindet relativ mit
    PHP-Code:
    require('test.tpl.phtml'
    .
    weil ich eine versionierung drin habe kommen absolute pfade nicht in frage aber ich weiss mir nicht mehr zu helfen.
    P:S: Local auf XAMPP mit virtualhost der auf root zeigt funktioniert alles.

  • #2
    PHP-Code:
    require __DIR__ '/../templates/test.tpl.phtml'
    Hintergründe etwa neulich hier: http://www.php.de/832186-post7.html

    Kommentar


    • #3
      doch nicht
      PHP-Code:
      require (__DIR__ '/../templates/test.tpl.phtml'); 
      Fatal error: require(): Failed opening required '/var/www/vhosts/cosmosigns.de/httpdocs/app/main/userVer/version00001/view/../templates/no_subnavi.tpl.phtml ' (include_path='.:/opt/rh/php55/root/usr/share/pear:/opt/rh/php55/root/usr/share/php') in /var/www/vhosts/cosmosigns.de/httpdocs/app/main/userVer/version00001/view/viewUserVer.php on line 30

      Kommentar


      • #4
        Sorry, kann ich jetzt schlecht was zu sagen, weil ich deine Verzeichnisstruktur nicht im Detail kenne. Das ist ja zum Beispiel auch nicht mehr das, was du in #1 fragst.

        Kommentar


        • #5
          im grunde ist es das selbe nur das nun das script im view ordner ist
          das zweite template befindet sich eine ebene tiefer im template ordner

          Kommentar


          • #6
            "template"- oder "templates"-Verzeichnis? Und „eine Ebene tiefer“ heißt, dass das Verzeichnis im "view"-Verzeichnis liegt? In dem Fall bräuchtest du dann den einen "../"-Anteil eben nicht.

            PHP-Code:
            require __DIR__ '/templates/no_subnavi.tpl.phtml'
            In deiner Darstellung in #1 sieht es aber so aus, als befänden sich "view" und "templates" auf einer Ebene.

            Kommentar


            • #7
              ordnerstrukjtur acktualisiert
              beim ersten fall wo das skript im verzeichniss "controller" liegt klappt es mit __DIR__
              PHP-Code:
              echo __DIR__ 
              /var/www/vhosts/cosmosigns.de/httpdocs/app/main/userVer/version00001/controller

              im zweiten fall liegt das skript im ordner "view" da gehts nicht
              PHP-Code:
              echo __DIR__ 
              /var/www/vhosts/cosmosigns.de/httpdocs/app/main/userVer/version00001/view

              also im grunde die selbe struktur

              Kommentar


              • #8
                In #1 heißt die Datei jetzt "noSubnavi.tpl.phtml" und nicht mehr "no_subnavi.tpl.phtml". Falls das hilft.

                Kommentar


                • #9
                  nein die schreibweise ist es nicht habe ich gecheckt nur hier falsch

                  Kommentar


                  • #10
                    Na ja, wenn das so aussieht…

                    Code:
                    . . view
                    . . . . viewUserVer.php
                    . . templates
                    . . . . test.tpl.phtml
                    . . . . no_subnavi.tpl.phtml
                    …, musst du jedenfalls in viewUserVer.php erst eins hoch ("..") und dann in "templates".

                    PHP-Code:
                    require __DIR__ '/../templates/no_subnavi.tpl.phtml'

                    Kommentar


                    • #11
                      Ich verstehe
                      Code:
                      root
                      ........app
                      ...........version1
                      ...............controller
                      .......................hauptcontroller.php
                      ...............module
                      ...............view
                      ...................vieUserVer.php
                      ...............templates
                      .......................test.tpl.phtml
                      .......................no_subnavi.tpl.phtml
                      als
                      Code:
                      app/
                         version1/
                            controller/
                               hauptcontroller.php
                            module/
                            view/
                               viewUserVer.php
                            templates/
                               test.tpl.phtml
                               no_subnavi.tpl.phtml
                      index.php
                      Was beim zugriff auf no_subnavi.tpl.phtml darauf hinausläuft:
                      PHP-Code:
                      include __DIR__.'/app/version1/templates/no_subnavi.tpl.phtml'
                      [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                      Kommentar


                      • #12
                        ich habe denn fehler gefunden
                        es war ein leerzeichen hinter der pfadangabe
                        jetzt läuft alles
                        Danke dir ganz Herzlich hast mir sehr weitergeholfen

                        Kommentar


                        • #13
                          //OT:

                          /var/www/vhosts/cosmosigns.de/httpdocs/app/main/userVer/version00001/view/../templates/no_subnavi.tpl.phtml
                          was "ls" ergibt oder so ist in diesem kontext ja nicht wichtig.

                          //mist:
                          mein browser erneuet die threads nicht mehr, sorry dachte #3 war der neuste ....

                          Kommentar

                          Lädt...
                          X