Symfony تشغيل معلمة hint kernel.secret غير موجودة

0

رسالة الخطأ: تعتمد خدمة "uri_signer" على معلمة غير موجودة "kernel.secret". هل تقصد هذا: "kernel.charset"؟

تفاصيل index.php هي:

<?php
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Debug\Debug;
use App\Kernel;

require './vendor/autoload.php';

// 开启调试
Debug::enable();

// 实例化请求
$request = Request::createFromGlobals();

// 实例化内核
$kernel = new Kernel('dev', true);

$response = $kernel->handle($request);

$response->send();

$kernel->terminate($request, $response);

تفاصيل التطبيق / Kernel.php هي:

<?php
namespace App;
use Symfony\Component\Config\Loader\LoaderInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\Kernel as BaseKernel;

class Kernel extends BaseKernel{

    public function registerContainerConfiguration(LoaderInterface $loader)
    {
//        $confDir = $this->getProjectDir() . "/config";

//        $loader->load($confDir . "/app.php");
//        $this->set
    }

    public function registerBundles()
    {
        $contents = [
            \Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
        ];

        foreach ($contents as $class => $envs) {
            if (isset($envs["all"]) || isset($envs[$this->environment])) {
                yield new $class();
            }
        }
    }

    protected function configureContainer(ContainerBuilder $container) {
        // code invalid
        $container->setParameter("kernel.secret", "abck");
    }
}

تفاصيل composer.json هي:

{
    "require": {
        "php": "^7.2.0",
        "symfony/http-foundation": "^4.1",
        "symfony/http-kernel": "^4.1",
        "symfony/config": "^4.1",
        "symfony/dependency-injection": "^4.1",
        "symfony/framework-bundle": "^4.1"
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/"
        }
    }
}

التشغيل التالي ، اعرض:

انقر لإظهار الصورة

استخدمت مكون symonfy واحدًا تلو الآخر للتثبيت ثم التشغيل ، ووجدت أن الموجه لا يمكنه العثور على kernel.secret. لم أجد حلًا لـ Google لفترة طويلة ، والجواب عبر الإنترنت هو حل إطار عمل symfony الحالي. أتمنى أن تخبرني عن كيفية حل هذه المشكلة. شكرا لكم

2 الاجابة

0

كان لدي نفس المشكلة كان السبب هو مسار مشروع symfony الخاص بي: كان طويلًا ويحتوي على مسافات وأقواس مربعة.

لقد غيرتها إلى واحدة أقصر وأكثر أمانًا وتعمل.

:مؤلف
0

شكرا لك على Cerad.

لقد وجدت أن configContainer ليست طريقة محددة بالفعل من قبل Kernel الأصل ، لذلك لا يتم استدعاء هذه الطريقة.

لذلك قمت بتغيير configContainer لبناء وكان الأمر على ما يرام.

تظهر التعليمات البرمجية على النحو التالي:

كود التطبيق / kernel.php هو:

<?php
namespace App;
use Symfony\Component\Config\Loader\LoaderInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\Kernel as BaseKernel;

class Kernel extends BaseKernel{

    public function registerContainerConfiguration(LoaderInterface $loader)
    {
    }

    public function registerBundles()
    {
        $contents = [
            \Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
        ];

        foreach ($contents as $class => $envs) {
            if (isset($envs["all"]) || isset($envs[$this->environment])) {
                yield new $class();
            }
        }
    }

    // Modify location
    public function build(ContainerBuilder $container)
    {
        parent::build($container); // TODO: Change the autogenerated stub
        $container->setParameter("kernel.secret", "abck");
    }
}
:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام