gpt4 book ai didi

php - PHP 5.3.2 的 Silex 问题?

转载 作者:可可西里 更新时间:2023-10-31 22:44:48 24 4
gpt4 key购买 nike

我尝试了 Silex 的示例并将我的 Controller 放在单独的目录和类中。

默认情况下, Controller 方法将获取 RequestApplication 对象。这适用于我的开发机器,它有 5.3.14,但不适用于默认的 Ubuntu 5.3.2。它给我:

PHP Catchable fatal error: Argument 1 passed to Sv\Controller\Index::index() must be an instance of Symfony\Component\HttpFoundation\Request, none given, called in /site/include/app/bootstrap.php on line 23 and defined in /site/include/app/Sv/Controller/Index.php on line 46

这是我的 PHP Bootstrap :

<?php

require_once __DIR__ . '/../vendor/autoload.php';

use Sv\Repository\PostRepository;
use Sv\Controller;

$app = new Silex\Application();

// define global service for db access
$app['posts.repository'] = $app->share( function () {
return new Sv\Repository\PostRepository;
});

// register controller as a service
$app->register(new Silex\Provider\ServiceControllerServiceProvider());
$app['default.controller'] = $app->share(function () use ($app) {
return new Controller\Index();
});
$app['service.controller'] = $app->share(function () use ($app) {
return new Controller\Service($app['posts.repository']);
});

// define routes
$app->get('/', 'default.controller:index');
$app->get('/next', 'default.controller:next');

$service = $app['controllers_factory'];
$service->get('/', "service.controller:indexJsonAction");
// mount routes
$app->mount('/service', $service);

// definitions
$app->run();

这是 Controller 代码:

namespace Sv\Controller;

use Silex\Application;
use Symfony\Component\HttpFoundation\Request;

class Index
{
public function index(Request $request, Application $app)
{
return 'Route /index reached';
}

public function next(Request $request, Application $app)
{
return 'Route /next reached';
}
}

为什么这不起作用?

我希望这不是阻止我在 PHP 5.3.2 下使用 ZF2 的同一个问题...

最佳答案

Silex 需要 PHP 5.3.3,正如您在 their composer.json 中看到的那样:

"require": {
"php": ">=5.3.3",
...

它还在README file中说明:

Silex works with PHP 5.3.3 or later.

这是因为 Symfony2 不再支持 PHP 5.3.2。

关于php - PHP 5.3.2 的 Silex 问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15931056/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com