首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >符号3-奏鸣曲媒体束错误

符号3-奏鸣曲媒体束错误
EN

Stack Overflow用户
提问于 2017-09-01 10:41:34
回答 1查看 1.3K关注 0票数 1

我遵循官方的文档安装Sonata,我认为它一直工作到我使用以下命令的步骤:

代码语言:javascript
运行
复制
php bin/console sonata:easy-extends:generate --dest=src SonataMediaBundle

然后我将new Application\Sonata\MediaBundle\ApplicationSonataMediaBundle(),添加到AppKernel.php中。

在这些步骤之后,我尝试输入mi admin (localhost:8000/admin),但是抛出这个错误:

尝试从名称空间"Application\Sonata\MediaBundle“加载类"ApplicationSonataMediaBundle”。您忘了另一个名称空间的"use“语句了吗?

我尝试执行php bin/console doctrine:schema:create (或更新),错误继续:

代码语言:javascript
运行
复制
ubuntu@ubuntu-xenial:/workdir/Testing$ php bin/console doctrine:schema:update --force
PHP Fatal error:  Uncaught Symfony\Component\Debug\Exception\ClassNotFoundException: Attempted to load class "ApplicationSonataMediaBundle" from namespace "Application\Sonata\MediaBundle".
Did you forget a "use" statement for another namespace? in /workdir/Testing/app/AppKernel.php:32
Stack trace:
#0 /workdir/Testing/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php(450): AppKernel->registerBundles()
#1 /workdir/Testing/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php(116): Symfony\Component\HttpKernel\Kernel->initializeBundles()
#2 /workdir/Testing/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php(137): Symfony\Component\HttpKernel\Kernel->boot()
#3 /workdir/Testing/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php(124): Symfony\Bundle\FrameworkBundle\Console\Application->registerCommands()
#4 /workdir/Testing/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php(90): Symfony\Bundle\FrameworkBundle\Console\Applica in /workdir/Testing/app/AppKernel.php on line 32

我验证了路线是正确的,并遵循步骤,就像文件一样,我一直在互联网上寻找答案,并找到了任何东西。请帮帮我!

我试图在没有php bin/console sonata:easy-extends:generate --dest=src SonataMediaBundle的情况下执行--dest=src,以便将文件夹放在app/但是错误继续.

医生说我的config.yml:

代码语言:javascript
运行
复制
doctrine:
  dbal:
      driver: pdo_mysql
      host: '%database_host%'
      port: '%database_port%'
      dbname: '%database_name%'
      user: '%database_user%'
      password: '%database_password%'
      charset: UTF8
      types:
             json: Sonata\Doctrine\Types\JsonType
      # if using pdo_sqlite as your database driver:
      #   1. add the path in parameters.yml
      #     e.g. database_path: "%kernel.project_dir%/var/data/data.sqlite"
      #   2. Uncomment database_path in parameters.yml.dist
      #   3. Uncomment next line:
      #path: '%database_path%'

  orm:
      auto_generate_proxy_classes: '%kernel.debug%'
      naming_strategy: doctrine.orm.naming_strategy.underscore
      auto_mapping: true
      mappings:
           ApplicationSonataMediaBundle: ~
           SonataMediaBundle: ~

sonata_media:
  # if you don't use default namespace configuration
  #class:
  #    media: MyVendor\MediaBundle\Entity\Media
  #    gallery: MyVendor\MediaBundle\Entity\Gallery
  #    gallery_has_media: MyVendor\MediaBundle\Entity\GalleryHasMedia
  db_driver: doctrine_orm # or doctrine_mongodb, doctrine_phpcr it is mandatory to choose one here
  default_context: default # you need to set a context
  contexts:
      default:  # the default context is mandatory
          providers:
            - sonata.media.provider.dailymotion
            - sonata.media.provider.youtube
            - sonata.media.provider.image
            - sonata.media.provider.file
            - sonata.media.provider.vimeo

          formats:
            small: { width: 100 , quality: 70}
            big:   { width: 500 , quality: 70}

  cdn:
      server:
          path: /uploads/media # http://media.sonata-project.org/

  filesystem:
      local:
          directory:  "%kernel.root_dir%/../web/uploads/media"
          create:     false

我的routing.yml:

代码语言:javascript
运行
复制
gallery:
   resource: '@SonataMediaBundle/Resources/config/routing/gallery.xml'
   prefix: /media/gallery

media:
   resource: '@SonataMediaBundle/Resources/config/routing/media.xml'
   prefix: /media

编辑:

我认为问题在于易扩展,因为我试图安装分类包,而同样的情况发生,当前的Symfony版本支持轻松扩展吗?也许是因为Sonata用户包与当前版本不兼容(我也尝试过了).

编辑2:

我的composer.json文件:

代码语言:javascript
运行
复制
{
    "name": "vagrant/testing",
    "license": "proprietary",
    "type": "project",
    "autoload": {
        "psr-4": {
            "AppBundle\\": "src/AppBundle"
        },
        "classmap": [
            "app/AppKernel.php",
            "app/AppCache.php"
        ]
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        },
        "files": [
            "vendor/symfony/symfony/src/Symfony/Component/VarDumper/Resources/functions/dump.php"
        ]
    },
    "require": {
        "php": ">=5.5.9",
        "doctrine/doctrine-bundle": "^1.6",
        "doctrine/orm": "^2.5",
        "friendsofsymfony/user-bundle": "^2.0",
        "gedmo/doctrine-extensions": "^2.4",
        "incenteev/composer-parameter-handler": "^2.0",
        "pixassociates/sortable-behavior-bundle": "^1.3",
        "sensio/distribution-bundle": "^5.0.19",
        "sensio/framework-extra-bundle": "^3.0.2",
        "sonata-project/admin-bundle": "^3.20",
        "sonata-project/doctrine-orm-admin-bundle": "^3.1",
        "sonata-project/easy-extends-bundle": "^2.2",
        "sonata-project/media-bundle": "^3.6",
        "stof/doctrine-extensions-bundle": "^1.2",
        "symfony/monolog-bundle": "^3.1.0",
        "symfony/polyfill-apcu": "^1.0",
        "symfony/swiftmailer-bundle": "^2.3.10",
        "symfony/symfony": "3.3.*",
        "twig/twig": "^1.0||^2.0",
        "vich/uploader-bundle": "^1.6"
    },
    "require-dev": {
        "sensio/generator-bundle": "^3.0",
        "symfony/phpunit-bridge": "^3.0"
    },
    "scripts": {
        "symfony-scripts": [
            "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
        ],
        "post-install-cmd": [
            "@symfony-scripts"
        ],
        "post-update-cmd": [
            "@symfony-scripts"
        ]
    },
    "config": {
        "sort-packages": true
    },
    "extra": {
        "symfony-app-dir": "app",
        "symfony-bin-dir": "bin",
        "symfony-var-dir": "var",
        "symfony-web-dir": "web",
        "symfony-tests-dir": "tests",
        "symfony-assets-install": "relative",
        "incenteev-parameters": {
            "file": "app/config/parameters.yml"
        },
        "branch-alias": null
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-01 11:46:09

您需要以与composer.json类似的方式在AppBundle中添加自动加载器定义。

据我所知,新包是在path src/Application/Sonata/MediaBundle下生成的,如下所示:

代码语言:javascript
运行
复制
"autoload": {
    "psr-4": {
        "AppBundle\\": "src/AppBundle"
        "Application\Sonata\MediaBundle\\": "src/Application/Sonata/MediaBundle"
    },
    "classmap": [
        "app/AppKernel.php",
        "app/AppCache.php"
    ]
},
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45998464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档