Implementieren von Namespaces in einem fettfreien Framework

Ketan Mujumdar

Ich versuche, Namespaces in einem fettfreien Framework zu verwenden, aber irgendwie kann ich die folgende Klasse nicht finden, ist mein Setup

route.ini

[routes]
GET /=Src\Controllers\Index->index

index.php

namespace Src\Controllers;

class Index {
    function index($f3) {
        $f3->set('name','world');
        echo View::instance()->render('template.htm');
    }
}

Global index.php

// Retrieve instance of the framework
$f3=require('lib/base.php');

// Initialize CMS
$f3->config('config/config.ini');

// Define routes
$f3->config('config/routes.ini');

// Execute application
$f3->run();

AKTUALISIEREN:

Error:

Nicht gefunden

HTTP 404 (GET /)

• index.php: 13 Base-> run ()

UPDATE 2:

config.ini

[globals]
; Where the framework autoloader will look for app files
AUTOLOAD=src/controllers/
; Remove next line (if you ever plan to put this app in production)
DEBUG=3
; Where errors are logged
LOGS=tmp/
; Our custom error handler, so we also get a pretty page for our users
;ONERROR=""
; Where the framework will look for templates and related HTML-support files
UI=views/
; Where uploads will be saved
UPLOADS=assets/

Ich bin mir nicht sicher, was falsch läuft.

Danke im Voraus.

xfra35

Der Autoloader des Fat-Free Framework ist sehr einfach. Es wird erwartet, dass Sie einen oder mehrere Ordner zum automatischen Laden definieren, von denen jeder dem Root-Namespace zugeordnet wird.

Nehmen wir also an, Sie definieren $f3->set('AUTOLOAD','app/;inc/')und Ihre Dateistruktur lautet:

- app
- inc
- lib
  |- base.php
- index.php

Dann sollte eine Klasse mit dem Namen, MyClassdie zum Foo\BarNamespace gehört (vollständiger Pfad Foo\Bar\MyClass:), entweder in app/foo/bar/myclass.phpoder gespeichert werden inc/foo/bar/myclass.php(denken Sie daran: Wir haben zwei Ordner zum automatischen Laden angegeben).

NB : Vergessen Sie nicht, dies zu namespace Foo\BarBeginn von anzugeben myclass.php(der Autoloader erledigt dies nicht für Sie).

- -

Um Ihr spezifisches Problem zu beantworten, haben Sie die folgende Dateistruktur:

- lib
  |- base.php
- src
  |- controllers
     |- index.php
- index.php

Drei Konfigurationen sind möglich:

Konfiguration 1

$f3->set('AUTOLOAD','src/controllers/')

Dann werden alle Dateien unter src/controllers/automatisch geladen, aber denken Sie daran: Wird src/controllers/dem Root-Namespace zugeordnet . Das bedeutet, dass die IndexKlasse zum Root-Namespace gehören sollte (vollständiger Pfad :) \Index.

Konfiguration 2

$f3->set('AUTOLOAD','src/')

Dann werden alle Dateien unter src/automatisch geladen, was bedeutet, dass die IndexKlasse zum ControllersNamespace gehören sollte (vollständiger Pfad :) \Controllers\Index.

Konfiguration 3

$f3->set('AUTOLOAD','./')

Dann werden alle Dateien unter ./automatisch geladen, was bedeutet, dass die IndexKlasse zum Src\ControllersNamespace gehören sollte (vollständiger Pfad :) \Src\Controllers\Index.

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

TOP Liste

  1. 1

    Modbus Python Schneider PM5300

  2. 2

    Glassfish v3.0.1 im Vergleich zu Oracle GlassFish Server 3.0.1 - Gibt es einen technischen Grund, die kommerzielle Version zu verwenden?

  3. 3

    Wie schließe ich mehrere Ordner mit der Variablen EXTRA_ARGS aus?

  4. 4

    Wie kann eine gleichmäßige Lastverteilung in ElasticSearch mit Indizes mit unterschiedlicher Anzahl von Shards erreicht werden?

  5. 5

    Wie kann man eine Multi-Container-Anwendung in Steuerkarten erstellen?

  6. 6

    ElasticSearch - Knotensperren konnten nicht abgerufen werden

  7. 7

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  8. 8

    Elasticsearch startet nicht nach dem Laden in viele Daten

  9. 9

    Ärgerliches Problem mit yaml, das ich nicht lösen kann

  10. 10

    Wie Verwenden von Httpclient mit jedem SSL-Zertifikat, egal wie „schlecht“ es ist

  11. 11

    Wie vergleicht man scala.xml-Knoten richtig?

  12. 12

    ElasticSeach Auto Complete mit dem Vervollständigungsvorschlag, um das vollständige Dokument zurückzugeben

  13. 13

    Wie füge ich eine Spalte in einer Zeile in der Ansible Jinja2-Vorlage mit der for-Schleife hinzu?

  14. 14

    HTTPS-Verbindung mit Moneris-Servern in Curl

  15. 15

    Unity Build-Fehler: Der Name 'EditorUtility' ist im aktuellen Kontext nicht vorhanden

  16. 16

    Bester Crawler, um festzustellen, ob er mit Technologien gebaut wurde?

  17. 17

    So erhalten Sie eine gleichmäßige Höhe für alle Eingabefelder

  18. 18

    Wie kann ich den Kaskadenmodus global einstellen?

  19. 19

    Eclipse Oxygen - Projekte verschwinden

  20. 20

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

  21. 21

    ElasticSearch BulkShardRequest ist aufgrund von org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor fehlgeschlagen

heißlabel

Archiv