Ubuntu16.04でLAMPを実行しています。 drupal 7をインストールし、Composerバージョン1.5.2を介してdrush8.1.3をインストールしました php7 .2エラーの原因 Githubで説明されているように、ただし、pear/console_tableを最新バージョンに更新するという推奨修正を適用した後でも ここで説明 、問題は解決しません。私も スーパーユーザー の指示に従って、 pearの最新バージョン もインストールされていることを確認します(PHPunitはインストールされていません)。 ここにあるdrushインストールドキュメント を使用して、.bashrc
ファイルにも適切な変更を加えました(以下)。
drush status
を実行するたびに、次のエラーが表示されます。
count(): Parameter must be an array or an object that implements [warning]
Countable Table.php:789
count(): Parameter must be an array or an object that implements [warning]
Countable Table.php:789
count(): Parameter must be an array or an object that implements [warning]
Countable Table.php:789
count(): Parameter must be an array or an object that implements [warning]
Countable Table.php:789
count(): Parameter must be an array or an object that implements [warning]
Countable Table.php:789
count(): Parameter must be an array or an object that implements [warning]
Countable Table.php:789
count(): Parameter must be an array or an object that implements [warning]
Countable Table.php:789
count(): Parameter must be an array or an object that implements [warning]
Countable Table.php:789
PHP executable : /usr/bin/php
PHP configuration : /etc/php/7.2/cli/php.ini
PHP OS : Linux
Drush script : /home/webdevusr/vendor/drush/drush/drush.php
Drush version : 8.1.13
Drush temp directory : /tmp
Drush configuration :
Drush alias files :
drush sql-connect
を実行すると
Unable to load class Drush\Sql\Sql [error]
Drush\Sql\SqlException: Unable to find a matching SQL Class. Drush [error]
cannot find your database connection details. in
/home/webdevusr/vendor/drush/drush/commands/sql/sql.drush.inc:541
Stack trace:
#0
/home/webdevusr/vendor/drush/drush/commands/sql/sql.drush.inc(221):
drush_sql_get_class()
#1 /home/webdevusr/vendor/drush/drush/includes/command.inc(422):
drush_sql_connect()
#2 /home/webdevusr/vendor/drush/drush/includes/command.inc(231):
_drush_invoke_hooks(Array, Array)
#3 /home/webdevusr/vendor/drush/drush/includes/command.inc(199):
drush_command()
#4
/home/webdevusr/vendor/drush/drush/lib/Drush/Boot/BaseBoot.php(67):
drush_dispatch(Array)
#5 /home/webdevusr/vendor/drush/drush/includes/preflight.inc(66):
Drush\Boot\BaseBoot->bootstrap_and_dispatch()
#6 /home/webdevusr/vendor/drush/drush/drush.php(12): drush_main()
#7 {main}
私の~/.bashrc
ファイルの内容は次のとおりです。
export PATH="$HOME/.composer/vendor/bin:$PATH"
export PATH=/bin:/usr/local/bin:/usr/local/mysql/bin:$PATH
# Include Drush bash customizations.
if [ -f "/home/webdevusr/.drush/drush.bashrc" ] ; then
source /home/webdevusr/.drush/drush.bashrc
fi
# Include Drush completion.
if [ -f "/home/webdevusr/.drush/drush.complete.sh" ] ; then
source /home/webdevusr/.drush/drush.complete.sh
fi
# Include Drush Prompt customizations.
if [ -f "/home/webdevusr/.drush/drush.Prompt.sh" ] ; then
source /home/webdevusr/.drush/drush.Prompt.sh
fi
私のdrupalインストールフォルダ内から実行されたdrush cc all
の結果は次のとおりです。
No Drupal site found, only 'drush' cache was cleared.
私のローカル(LAMP)Drupal 7のインストールで急いで作業する方法を知っている人はいますか?
.config/composer/vendor/pear/console_table/Table.phpを編集するか、システムで最初にそのファイルを探すことができます。お気に入りのエディターで編集行789で開きます。次のように消音します。
@ $ this-> _ max_cols = max($ this-> _ max_cols、count($ rowdata));
あなたは行ってもいいです。
ファイル。config/composer/vendor/pear/console_table/Table.phpで、関連する関数_updateRowsCols($rowdata = null)
を確認できます。署名が間違っており、その引数にはデフォルトでnull
が割り当てられています-notcountable。
@
演算子を使用すると、意図したよりも多くのエラー/警告がミュートされる可能性があるため、使用するよりも、関数のシグネチャを修正することをお勧めします。
function _updateRowsCols($rowdata = []) {...}
...および/または Null合体演算子??
を使用して、関数呼び出しで空の(ただしカウント可能な)配列に安全にフォールバックします。
$this->_max_cols = max($this->_max_cols, count($rowdata ?? []));
[編集]この問題の修正は、2017年10月にpear/Console_Table
にコミットされ、2018年に質問があったことは注目に値します。したがって、最新バージョンを使用してください...とにかく、ここでの情報はコードです。おそらく下位互換性のために三項演算子を使用する修正:
function _updateRowsCols($rowdata = null)
{
// Update maximum columns.
$this->_max_cols = max($this->_max_cols, is_array($rowdata) ? count($rowdata) : 0);
...
}