gpt4 book ai didi

php - Symfony2 - bundle 的 fatal error

转载 作者:可可西里 更新时间:2023-11-01 12:45:35 25 4
gpt4 key购买 nike

我遇到了错误[问题末尾的解决方案]

Fatal error: Class 'symblog\Blogger\BlogBundle\SymblogBundle' not found in
/var/www/Symfony/app/AppKernel.php on line 20

我提出了这个问题 How to install or integrate bundles in Symfony2 ,但给出的解决方案对我没有帮助,因为我已经按照那里的建议做了。我正在学习教程 symblog.co.uk除了我创建于

app/config/routing.yml

一个

*.php resource

提前致谢!

我必须补充一点,在通过控制台注册 bundle 时我遇到了错误

The command was not able to configure everything automatically.
You must do the following changes manually.

和说明:

- Edit the app/autoload.php file and register the bundle
namespace at the top of the registerNamespaces() call:
'symblog\Blogger\BlogBundle' => '/var/www/Symfony/blog',

我跟着。

应用内核.php

class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = array(
//..
new symblog\Blogger\BlogBundle\SymblogBundle(),
);

/app/config/routing.yml

SymblogBundle:
resource: "@SymblogBundle/Resources/config/routing.php"
prefix: /

根据要求:/app/config/config.yml

imports:
- { resource: parameters.ini }
- { resource: security.yml }

framework:
#esi: ~
#translator: { fallback: %locale% }
secret: %secret%
charset: UTF-8
router: { resource: "%kernel.root_dir%/config/routing.yml" }
form: true
csrf_protection: true
validation: { enable_annotations: true }
templating: { engines: ['twig'] } #assets_version: SomeVersionScheme
session:
default_locale: %locale%
auto_start: true

# Twig Configuration
twig:
debug: %kernel.debug%
strict_variables: %kernel.debug%

# Assetic Configuration
assetic:
debug: %kernel.debug%
use_controller: false
# java: /usr/bin/java
filters:
cssrewrite: ~
# closure:
# jar: %kernel.root_dir%/java/compiler.jar
# yui_css:
# jar: %kernel.root_dir%/java/yuicompressor-2.4.2.jar

# Doctrine Configuration
doctrine:
dbal:
driver: %database_driver%
host: %database_host%
port: %database_port%
dbname: %database_name%
user: %database_user%
password: %database_password%
charset: UTF8

orm:
auto_generate_proxy_classes: %kernel.debug%
auto_mapping: true

# Swiftmailer Configuration
swiftmailer:
transport: %mailer_transport%
host: %mailer_host%
username: %mailer_user%
password: %mailer_password%

jms_security_extra:
secure_controllers: true
secure_all_services: false

[编辑] 在@Clamidity 回答 bundle 通常位于 src/Blogger/SymBlogBu​​ndle/BloggerSymBlogBu​​ndle.php 之后,解决方案非常简单

虽然使用控制台进行配置,但它考虑了包的位置,默认为/../src,但我更改为/../blog。当然它不会工作,Symfony 正在寻找错误的位置。我所做的是将/blog 中的文件夹移动到/src 并且一切正常。

最佳答案

有几种可能。我会介绍我能想到的任何内容。

  1. 通常 bundle 放在 src 文件夹中。所以你的包的路径应该是这样的。

    src/Blogger/SymBlogBundle/BloggerSymBlogBundle.php

    (注意包名遵循文件名约定)

  2. 在 BloggerSymBlogBu​​ndle.php 内部,确保您有类似于以下内容的内容:

    <?php

    namespace Blogger\SymBlogBundle;

    use Symfony\Component\HttpKernel\Bundle\Bundle;

    class BloggerSymBlogBundle extends Bundle
    {
    }

    (注意这里也遵循同名约定)

  3. 在您的 autoload.php 中,应注册的命名空间是您的包的名称/路径的“Blogger”部分。这是因为包本身位于 Blogger 文件夹中:

    'Blogger' => __DIR__.'/../src',

    (注意列出的文件夹是 Blogger 文件夹的父文件夹)

  4. 现在在 AppKernel.php 中根据您设置和注册的命名空间注册包:

    new Blogger\SymBlogBundle\BloggerSymBlogBundle(),

    *注意 - 您的资源和对具有上述配置的此 bundle 的引用将是

    BloggerSymBlogBundle

    因此您的 php 路由将通过以下方式调用:

    @BloggerSymBlogBundle/Resources/config/routing.php

关于php - Symfony2 - bundle 的 fatal error ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9898504/

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