Ankündigung

Einklappen
Keine Ankündigung bisher.

namespaces

Einklappen

Neue Werbung 2019

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

  • namespaces

    Hallo Leute,
    bestimmt kann mit einer weiterhelfen.

    Ich versuch mich grad an den namespaces und scheitere gerade.

    Verzeichnisse:

    root
    ----library
    --------Merge.php
    ----public
    --------index.php


    public ist das docroot.

    Die Merge.php hat
    Code:
    <?php
    namespace son\library;
    class Merge 
    {....
    In der Index schaut es so aus:
    Code:
    <?php
    use son\library\Merge;
    $css = new Merge(RAWCSSPATH, MODULESPATH);

    Beim Aufruf erhalte ich aber nun:
    Fatal error: Class 'son\library\Merge' not found in /var/www/vhosts/xxx/xxxg/public/index.php on line 2


    Eine mit ner Idee am Start?

    Timo
    .::Wenn das Rauskommt, wo ich überall reinkomme, komme ich da Rein, wo ich so schnell nicht mehr Rauskomme::.
    .:ie drei natürlichen Feinde des WebWorkers: Frischluft, Sonnenschein und das unerträgliche Gebrüll der Vögel.::


  • #2
    Autoloader? Google dich mal Schlau im Thema "Composer" und "PSR-4"
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      ok, habe es mit Comnposer versucht...

      composer.json
      Code:
      {
          "name": "son",
          "description": "System ohne Namen",
          "version": "0.1.0",
          "authors": [
              {
                  "name": "Timo Frenzel",
                  "email": "timofrenzel@agnat.org"
              }
          ],
          "autoload": {
              "psr-4": {
                  "Son": "library/"
              }
          }
      }
      In der index.php habe ich ergänzend die autoload.php hinzugefügt
      Code:
      require '../vendor/autoload.php'; 
      
      use Son\library\Merge;
      Namespace in der Merge.php -> namespace Son\library;

      composer natürlich ausgeführt...



      aber gleiches Bild...

      Fatal error: Class 'Son\library\Merge' not found in /var/www/vhosts/xxx/xxxg/public/css.php on line 27
      .::Wenn das Rauskommt, wo ich überall reinkomme, komme ich da Rein, wo ich so schnell nicht mehr Rauskomme::.
      .:ie drei natürlichen Feinde des WebWorkers: Frischluft, Sonnenschein und das unerträgliche Gebrüll der Vögel.::

      Kommentar


      • #4
        habs.. danke
        .::Wenn das Rauskommt, wo ich überall reinkomme, komme ich da Rein, wo ich so schnell nicht mehr Rauskomme::.
        .:ie drei natürlichen Feinde des WebWorkers: Frischluft, Sonnenschein und das unerträgliche Gebrüll der Vögel.::

        Kommentar


        • #5
          Bloß keinem erzählen, was der Fehler war. Sonst schaut noch jemand ab!
          Lerne Grundlagen | Schreibe gute Beispiele | PDO > mysqli > mysql | Versuch nicht, das Rad neu zu erfinden | Warum $foo[bar] böse ist | SQL Injections | Hashes sind keine Verschlüsselungen! | Dein E-Mail Regex ist falsch

          Kommentar


          • #6
            Composer wirft einen Fehler, wenn du einen PSR-4 Namespace ohne "\\" am ende angibst.

            Code:
            {
               "autoload": {
                  "psr-4: {
                     "Son\\Library\\": "./library/"
                  }
               }
            }
            Bewirkt das was du willst.
            [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

            Lädt...
            X