Project StructureSchlanke Rahmen Nachricht: Callable Homecontroller nicht
public/index.php
<?php
require __DIR__ . '/../vendor/autoload.php';
ini_set('display_errors', 'On');
if (PHP_SAPI == 'cli-server') {
// To help the built-in PHP dev server, check if the request was actually for
// something which should probably be served as a static file
$url = parse_url($_SERVER['REQUEST_URI']);
$file = __DIR__ . $url['path'];
if (is_file($file)) {
return false;
}
}
session_start();
// Instantiate the app
$settings = require __DIR__ . '/../src/settings.php';
$app = new \Slim\App($settings);
// Set up dependencies
require __DIR__ . '/../src/dependencies.php';
// Register middleware
require __DIR__ . '/../src/middleware.php';
// Register routes
require __DIR__ . '/../src/routes.php';
// Run app
$app->run();
Hier existiert haben wir die composer.json
Hier{
"autoload":{
"psr-4": {
"App\\": "src"
}
},
"require": {
"php": ">=5.5.0",
"slim/slim": "^3.1",
"slim/php-view": "^2.0",
"monolog/monolog": "^1.17",
"illuminate/database": "~5.1",
"slim/twig-view": "^2.3"
},
"require-dev": {
"phpunit/phpunit": ">=4.8 < 6.0"
},
"autoload-dev": {
"psr-4": {
"Tests\\": "tests/"
}
},
"config": {
"process-timeout" : 0
},
}
ist mein Controller, ich einen Fehler mit dem Namensraum erhalten und in allen Beispielen, die ich dies so gesehen haben, verwenden .. Ich weiß nicht, was mehr
<?php
namespace \App\Controllers;
class Homecontroller
{
protected $container;
// constructor receives container instance
public function __construct(ContainerInterface $container) {
$this->container = $container;
}
public function home($request, $response, $args) {
echo "locura";
// your code
// to access items in the container... $this->container->get('');
return $response;
}
public function contact($request, $response, $args) {
// your code
// to access items in the container... $this->container->get('');
return $response;
}
}
zu tun
Tatsächliche Konfiguration In meinem routes.php ich diese gesetzt haben:
$app->get('/new', \Homecontroller::class . ':home');
Vor der Konfiguration
In dem obigen Code, habe ich versucht, den Controller in die Behälter zu schaffen, und dann
$app->get('/new', '\HomeController:home');
verwenden Und in den dependencies.php Ich habe Dieser Code:
$container['HomeController'] = function($c) {
$view = $c->get("view"); // retrieve the 'view' from the container
return new HomeController($view);
};
aber ich habe bekommen kein Ergebnis mit jeder Konfiguration
Ich möchte die Homecontroller von Router laden
Dies ist der Fehler, die ich habe, wenn ich setzen api.powertv/neu
Type: RuntimeException
Message: Callable Homecontroller does not exist
File: /Users/alfonso/Sites/powertv_api/vendor/slim/slim/Slim/CallableResolver.php
Line: 90
Ich komme hierher, und ich stelle diesen Beitrag wie meine letzte Ressource, wenn dies fehlschlägt, weiß ich nicht, was ich tun werde.
wenn u an den Controller Verzeichnis beziehen Der relative Pfad lautet: src/controllers. Wie füge ich genau eine andere Zeile hinzu? – Ratchet
Ich bin großartig, dass Sie versucht haben, mir zu helfen, aber es funktioniert nicht :( – Ratchet
Lesen Sie diesen Abschnitt der Composer-Dokumentation https://getcomposer.org/doc/04-schema.md#classmap Ich denke, es wird helfen. – Nima