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.
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, MyClass
die zum Foo\Bar
Namespace gehört (vollständiger Pfad Foo\Bar\MyClass
:), entweder in app/foo/bar/myclass.php
oder 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\Bar
Beginn 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:
$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 Index
Klasse zum Root-Namespace gehören sollte (vollständiger Pfad :) \Index
.
$f3->set('AUTOLOAD','src/')
Dann werden alle Dateien unter src/
automatisch geladen, was bedeutet, dass die Index
Klasse zum Controllers
Namespace gehören sollte (vollständiger Pfad :) \Controllers\Index
.
$f3->set('AUTOLOAD','./')
Dann werden alle Dateien unter ./
automatisch geladen, was bedeutet, dass die Index
Klasse zum Src\Controllers
Namespace 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.
Lass mich ein paar Worte sagen