Είμαι εργάζονται για ένα νέο έργο Silex και είμαι έχοντας προβλήματα τοποθέτηση μια διαδρομή για τους παρόχους ελεγκτή μου. Έχω κάνει με επιτυχία πριν από αυτό σε ένα άλλο έργο, αλλά τώρα όταν έβαλα τις ακόλουθες γραμμές app.php
:
$app->mount('/', new CommonController());
$app->mount('/feeds', new FeedsController());
$app->mount('/admin', new AdminController());
Θα λάβετε ένα μοιραίο λάθος: Fatal error: Call to undefined method Silex\Route::setPath() in [root]/vendor/symfony/routing/Symfony/Component/Routing/RouteCollection.php on line 255
EDIT:
Το σφάλμα δεν παίρνει ρίχνονται όταν τοποθετείτε τη διαδρομή ρίζας. Μόνο όταν μπορώ να προσθέσω /feeds
ή /admin
.
ΤΕΛΟΣ EDIT
Δεν μπορώ να καταλάβω εάν αυτό θα μπορούσε να προέρχεται από - Έχω ψάξει άλλο σχέδιο εργασίας μου για αυτό το ορισμό της συνάρτησης, αλλά είναι πουθενά να βρεθεί στον κώδικα. Νομίζω ότι θα μπορούσε να λείπει μια βιβλιοθήκη composer.json
, αλλά δεν είμαι σίγουρος ποια θα μπορούσε να είναι - το αρχείο είναι σχεδόν ίδια και στα δύο έργα:
ΕΡΓΑΣΙΑΣ composer.json:
{
name : lyrixx/Silex-Kitchen-Edition,
type : library,
description : A Silex Edition. This project is a base for your silex applications.,
keywords : [framework],
homepage : http://lyrixx.github.com/Silex-Kitchen-Edition/,
license : MIT,
authors : [
{
name : Grégoire Pineau,
email : [email protected]
}
],
repositories: [
{
type: package,
package: {
name : twitter/bootstrap,
version : 2.0.4,
source : {
url : https://github.com/twitter/bootstrap.git,
type : git,
reference : v2.0.4
}
}
}
],
require: {
php : >=5.3.3,
silex/silex : dev-master,
twig/twig : 1.*,
monolog/monolog : 1.0.*,
symfony/form : 2.1.*,
symfony/translation : 2.1.*,
symfony/twig-bridge : 2.1.*,
symfony/validator : 2.1.*,
symfony/yaml : 2.1.*,
symfony/config : 2.1.*,
kriswallsmith/assetic : 1.0.*,
twitter/bootstrap : 2.0.4,
doctrine/dbal : 2.2.*,
symfony/security : 2.1.*,
fate/silex-extensions : dev-master,
michelf/php-markdown : 1.3.*@dev,
swiftmailer/swiftmailer : >=4.1.2,<4.2-dev
},
require-dev: {
symfony/dom-crawler : 2.1.*,
symfony/css-selector : 2.1.*,
symfony/browser-kit : 2.1.*
},
minimum-stability : dev,
scripts: {
post-install-cmd: Lx\\Composer\\Script::postInstall
},
autoload: {
psr-0: {
[autoload routes defined here]
}
}
}
Σπασμένα composer.json:
{
require: {
php : >=5.3.3,
silex/silex : dev-master,
twig/twig : 1.*,
monolog/monolog : 1.0.*,
symfony/form : 2.1.*,
symfony/translation : 2.1.*,
symfony/twig-bridge : 2.1.*,
symfony/validator : 2.1.*,
symfony/yaml : 2.1.*,
symfony/config : 2.1.*,
kriswallsmith/assetic : 1.0.*,
twitter/bootstrap : 2.0.*,
doctrine/dbal : 2.2.*,
fate/silex-extensions : dev-master,
swiftmailer/swiftmailer : >=4.1.2,<4.2-dev
},
autoload: {
psr-0: {
[autoload routes defined here]
}
}
}
Και πάλι, αυτό δεν μπορεί ακόμη να είναι η βασική αιτία του ζητήματος μου, απλά ένστικτό μου. Μπορεί κανείς να αποκρυπτογραφήσουν τι συμβαίνει εδώ;
ΔΕΥΤΕΡΗ EDIT: FeedsController.php
<?php
namespace Controllers;
use Controllers\CommonController;
use Silex\Application;
use Symfony\Component\HttpFoundation\Request;
class FeedsController extends CommonController
{
public function connect(Application $app)
{
$controller = $app['controllers_factory'];
$controller->get('/', function (Request $request, Application $app)
{
return 'Yay!';
});
return $controller;
}
}