注册Silex提供商抛出错误

时间:2014-12-16 13:22:40

标签: service silex provider

在Silex中创建应用程序并尝试执行前几个步骤,其中一个步骤是设置我的服务/提供程序。

我目前正在使用YAML文件加载这些文件。我也尝试过注册每个人,就像文档说的那样。

$this->register( new TwigServiceProvider(),array() );

这是我当前的bootstrap文件(从文件加载服务):

<?php
namespace App;

use Igorw\Silex\ConfigServiceProvider;
use Silex\Application as Silex;
use Symfony\Component\Routing\Route;
use Symfony\Component\Routing\RouteCollection;
use Symfony\Component\HttpFoundation\Request;


class Bootstrap extends Silex
{
    public function __construct()
    {
        $this['debug'] = true;

        $this->registerDefaultParameters();
        $this->registerDefaultServices();
        $this->registerRoutes();

    }

    protected function registerDefaultParameters()
    {
        $paths = isset($this['base_path']) ? $this['base_path'] : array();

        if (!isset($paths['base'])) {
            $paths['base'] = realpath(__DIR__ . '/../');
        }

        $defaults = array(
            'config' => $paths['base'] . '/App/Config',
            'twig.path' => $paths['base'] . '/public/themes/base/templates'
        );

        foreach ($defaults as $key => $value) {
            if (!isset($paths[$key])) {
                $paths[$key] = $value;
            }
        }

        $this['paths'] = $paths;
    }

    protected function registerDefaultServices()
    {
        $this->register( new ConfigServiceProvider($this['paths']['config'] . "/Services.yml") );

        foreach($this['services'] as $serviceName => $serviceData)
        {
            $this->register( new $serviceData['class'],(array_key_exists('parameters',$serviceData)) ? $serviceData['parameters'] : array() );
        }

    }

    protected function registerRoutes()
    {
        $this->register( new ConfigServiceProvider($this['paths']['config'] . "/Routes.yml") );

        $collection = new RouteCollection();
        foreach($this['routes'] as $key => $value)
        {
            $collection->add( $key, new Route(
                $value['path'],
                $value['defaults'],
                array(),
                array(),
                null,
                null,
                $value['methods']
            ));
        }

        $this['routes'] = $collection;
    }
}

我的问题是:

对于每个提供商,我都会收到致命错误,例如

  

致命错误:未捕获的异常&#39; InvalidArgumentException&#39;带有消息&#39; Identifier&#34; this_is_an_identifier&#34;未定义。&#39;

我从文件中手动加载服务时收到此错误。和每个提供商的不同之处,例如

与树枝提供者相关的错误是:

  

致命错误:未捕获的异常&#39; InvalidArgumentException&#39;带有消息&#39; Identifier&#34; request_error&#34;未定义。&#39;

另一个与Monolog相关的是:

  

致命错误:未捕获的异常&#39; InvalidArgumentException&#39;与消息&#39;标识符&#34;调度员&#34;没有定义。

因此,每个提供商/服务都有一些错误,显然情况并非如此。所以我的问题是为什么我不断收到这些错误?从我可以看到我没有做错什么?

下面是我的作曲家文件,以防万一它是一个版本的东西:

    {
    "name": "cranbri/cvcms",
    "description": "Cranbri CV CMS Silex",
    "minimum-stability": "dev",
    "require": {
        "silex/silex": "1.2.2",
        "symfony/yaml": "2.6.1",
        "igorw/config-service-provider": "1.2.2"
    },
    "autoload": {
        "psr-4":{
            "App\\": "App/"
        }
    }
}

这完全阻止了我的发展,所以如果有人能给我任何细节,我将不胜感激。干杯

1 个答案:

答案 0 :(得分:1)

我没有打电话给父母!因此,我没有父类所做的任何值,因此为什么许多$ app变量没有设置且无法找到