簡體   English   中英

Symfony2 - 捆綁包的致命錯誤

[英]Symfony2 - Fatal error with Bundles

我有錯誤[問題末尾的解決方案]

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

在Symfony2中創建了如何安裝或集成軟件包的問題 ,但是給出的解決方案對我沒有幫助,因為我已經做了那里的建議。 我正在遵循教程symblog.co.uk,除了我創建的

app/config/routing.yml

一個

*.php resource

提前致謝!

我必須補充說,在通過控制台注冊捆綁包時,我得到了錯誤

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',

我跟着他。

AppKernel.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的答案后解決方案非常簡單,捆綁包通常位於src / Blogger / SymBlogBu​​ndle / BloggerSymBlogBu​​ndle.php

雖然使用控制台進行了配置,但它關於捆綁包的位置,默認為/../src,但我更改為/../blog。 當然它不起作用,Symfony正在尋找錯誤的位置。 我所做的是將/ blog中的文件夾移動到/ src,一切都很順利。

它有一些可能的東西。 我會介紹一些我能想到的東西。

  1. 通常捆綁包放在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(), 

    *注意 - 您的資源和對此捆綁包的引用具有上述配置

     BloggerSymBlogBundle 

    所以你的php路由將通過使用:

     @BloggerSymBlogBundle/Resources/config/routing.php 

有不同的解決方案。

清除app / cache /(prod | dev)文件夾。 編輯Appkernel和自動加載后。

致命錯誤:第20行的/var/www/Symfony/app/AppKernel.php中找不到類'symblog \\ Blogger \\ BlogBu​​ndle \\ SymblogBu​​ndle'

現在有不同的問題:

  1. 查看Bundle Folder中的SymblogBu​​ndle.php並查看它們使用的命名空間。 也許它真的像@kuba那樣大寫(“S”)。

  2. 類文件不在文件夾中,或者您對解釋器可以加載文件的文件夾沒有任何權限。

  3. 我認為你的autoload.php不正確。

     'Avalanche' => __DIR__.'/../vendor/bundles', 

    這是注冊命名空間的常用方法。 在你的情況下,它必須是

     'Symlog' => '/var/www/Symfony/blog', 

以下是“BloggerBundle”中的說明,我希望它是正確的

在那里你可以看到你的自動加載不正確名稱空間是“Blogger”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM