【问题标题】:Symfony error while doctrine:database:create学说时的 Symfony 错误:数据库:创建
【发布时间】:2016-11-09 11:56:30
【问题描述】:

我输入了以下命令来同步数据库

php bin/console doctrine:database:create

但它返回了以下错误消息:

PHP 致命错误:未捕获 Symfony\Component\Debug\Exception\ClassNotFoundException:试图从全局命名空间加载类“DOMDocument”。 您是否忘记了“使用”声明?在 /opt/lampp/htdocs/linguavel/vendor/symfony/symfony/src/Symfony/Component/Config/Util/XmlUtils.php:52 堆栈跟踪: 0 /opt/lampp/htdocs/linguavel/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php(261): Symfony\Component\Config\Util\XmlUtils::loadFile('/opt/ lampp/htdo...',数组) 1 /opt/lampp/htdocs/linguavel/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php(41): Symfony\Component\DependencyInjection\Loader\XmlFileLoader->parseFileToDOM('/opt/ lampp/htdo...') 2 /opt/lampp/htdocs/linguavel/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php(58): Symfony\Component\DependencyInjection\Loader\XmlFileLoader->load('web.xml ') 3 /opt/lampp/htdocs/linguavel/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Comp in /opt/lampp/htdocs/linguavel/vendor/symfony/symfony/src/Symfony/Component/Config/Util /XmlUtils.php 第 52 行

有人知道如何解决这个问题吗? 谢谢:)

编辑

我按照 Benjamin 告诉我的方式运行 composer install,它返回给我:

> Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache handling the post-install-cmd event terminated with an exception


[RuntimeException]                                                  
An error occurred when executing the "'cache:clear --no-warmup'" c  
ommand:                                                             
PHP Fatal error:  Uncaught Symfony\Component\Debug\Exception\Class  
NotFoundException: Attempted to load class "DOMDocument" from the   
global namespace.                                                   
Did you forget a "use" statement? in /opt/lampp/htdocs/linguavel/v  
endor/symfony/symfony/src/Symfony/Component/Config/Util/XmlUtils.p  
hp:52                                                               
Stack trace:                                                        
#0 /opt/lampp/htdocs/linguavel/vendor/symfony/symfony/src/Symfony/  
Component/DependencyInjection/Loader/XmlFileLoader.php(261): Symfo  
ny\Component\Config\Util\XmlUtils::loadFile('/opt/lampp/htdo...',   
Array)                                                              
#1 /opt/lampp/htdocs/linguavel/vendor/symfony/symfony/src/Symfony/  
Component/DependencyInjection/Loader/XmlFileLoader.php(41): Symfon  
y\Component\DependencyInjection\Loader\XmlFileLoader->parseFileToD  
OM('/opt/lampp/htdo...')                                            
#2 /opt/lampp/htdocs/linguavel/vendor/symfony/symfony/src/Symfony/  
Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php(  
58): Symfony\Component\DependencyInjection\Loader\XmlFileLoader->l  
oad('web.xml')                                                      
#3 /opt/lampp/htdocs/linguavel/vendor/symfony/symfony/src/Symfony/  
Component/DependencyInjection/Comp in /opt/lampp/htdocs/linguavel/  
vendor/symfony/symfony/src/Symfony/Component/Config/Util/XmlUtils.  
php on line 52                                                      
.                                                                   

新编辑:

当我输入 composer update 它返回给我这个:

要启用扩展,请确认它们已在这些 .ini 文件中启用: - /etc/php/7.0/cli/php.ini - /etc/php/7.0/cli/conf.d/10-mysqlnd.ini - /etc/php/7.0/cli/conf.d/10-opcache.ini - /etc/php/7.0/cli/conf.d/10-pdo.ini - /etc/php/7.0/cli/conf.d/15-xml.ini - /etc/php/7.0/cli/conf.d/20-calendar.ini - /etc/php/7.0/cli/conf.d/20-ctype.ini - /etc/php/7.0/cli/conf.d/20-dom.ini - /etc/php/7.0/cli/conf.d/20-exif.ini - /etc/php/7.0/cli/conf.d/20-fileinfo.ini - /etc/php/7.0/cli/conf.d/20-ftp.ini - /etc/php/7.0/cli/conf.d/20-gettext.ini - /etc/php/7.0/cli/conf.d/20-iconv.ini - /etc/php/7.0/cli/conf.d/20-json.ini - /etc/php/7.0/cli/conf.d/20-mcrypt.ini - /etc/php/7.0/cli/conf.d/20-mysqli.ini - /etc/php/7.0/cli/conf.d/20-pdo_mysql.ini - /etc/php/7.0/cli/conf.d/20-phar.ini - /etc/php/7.0/cli/conf.d/20-posix.ini - /etc/php/7.0/cli/conf.d/20-readline.ini - /etc/php/7.0/cli/conf.d/20-shmop.ini - /etc/php/7.0/cli/conf.d/20-simplexml.ini - /etc/php/7.0/cli/conf.d/20-sockets.ini - /etc/php/7.0/cli/conf.d/20-sysvmsg.ini - /etc/php/7.0/cli/conf.d/20-sysvsem.ini - /etc/php/7.0/cli/conf.d/20-sysvshm.ini - /etc/php/7.0/cli/conf.d/20-tokenizer.ini - /etc/php/7.0/cli/conf.d/20-wddx.ini - /etc/php/7.0/cli/conf.d/20-xmlreader.ini - /etc/php/7.0/cli/conf.d/20-xmlwriter.ini - /etc/php/7.0/cli/conf.d/20-xsl.ini 您也可以在终端内运行php --ini,以查看 PHP 在 CLI 模式下使用了哪些文件。

【问题讨论】:

  • 你能运行composer install并重试吗?

标签: ubuntu doctrine symfony


【解决方案1】:

我终于通过这样做解决了这个问题:

$ sudo apt-get install php-curl
$ sudo apt-get install php-mbstring
$ sudo apt-get update
$ composer install

据我了解,出现这个问题是因为我有php7.0

如果您使用的是 php7.0 和 symfony 2,请运行以下命令

$sudo apt-get install php7.0-curl php7.0-mbstring php7.0-zip php7.0-xml

运行之后

php app/check.php

查看是否还有其他缺失的要求。

【讨论】:

  • 嗨 FabulousCo. mbstring 是一项要求。我发现你可以查看文件var/SymfonyRequirements.php(但不要编辑这个文件),看看bin/symfony_requirements 在做什么。我仍然强烈建议您始终运行php bin/symfony_requirements 来验证您的安装。此外,这将在每个版本中更新。
【解决方案2】:

顺便问一下,你试过跑步吗:

php bin/symfony_requirements

看看那显示给你什么? 您可能缺少安装要求...

【讨论】:

    【解决方案3】:

    您的机器上没有安装 PHP ext/dom 扩展。在 Ubuntu 上,你需要运行类似 sudo apt-get install php-xml 的东西。

    编辑

    似乎ext/dom 安装正确。请用

    创建一个简单的PHP文件
    <?php
    namespace Test;
    
    $d = new \DOMDocument();
    

    如果这样可行,则说明您的设置存在严重问题。

    【讨论】:

    • 通过查看phpinfo()的输出检查扩展是否可用(这意味着在配置文件中激活)。
    • 我必须在终端输入 phpinfo() 吗?
    • 没有。将&lt;?php phpinfo(); ?&gt; 放入web 文件夹中的一个简单PHP 文件中,然后使用浏览器访问它。
    • 它返回了 5.6.23 版本
    • 您需要查找dom,如果没有找到,请检查正在使用的配置文件(最开始)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-16
    • 2011-05-06
    • 1970-01-01
    • 2011-03-17
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多