2017-02-13 28 views
0

PHPデプロイヤーv4.2.1の基本インストールの後、正式に承認された第三者とは動作しませんレシピを箱から出してください。私はDeployerをかなり新しく導入しています。ここに私がしたことがあります。Deployer v4.2.1致命的なエラー "undefined function"正式に承認された第三者のレシピをそのまま受け入れる

私はPHPデプロイヤのV4.2.1をインストール:

composer require --dev deployer/deployer 
composer require --dev deployer/recipes 

そしてもちろん、私は基本的なdeploy.phpファイルで設定を取得するdep initを走りました。私deploy.php

私が先頭に次を追加しました:

namespace Deployer; 

require 'recipe/laravel.php'; 
require 'vendor/deployer/recipes/local.php'; 
require 'vendor/deployer/recipes/rsync.php'; 
require 'vendor/deployer/recipes/npm.php'; 
require 'vendor/deployer/recipes/cachetool.php'; 

をその後、私は私の最後のdeployタスクがlocal:prepareコマンドを実行など、私のgitリポジトリ、サーバーの情報を設定し、それがでチョーク場所です奇数エラー:

PHP Fatal error: Uncaught Error: Call to undefined function Deployer\desc() in /home/vagrant/Code/MyProject/vendor/deployer/recipes/local.php:76 

明らかに、名前空間の問題が発生しています。

は、どういうわけか私はサードパーティのレシピファイルのローカルコピー(外ベンダーのディレクトリ)を作る場合は、問題を回避して、desc(...)への呼び出しがtask(...)->desc(...)ようtask(...)をたどるように、それらを変更することができることを考え出しました。これはうまくいきますが、今は別の問題に取り組んでいます。間違った方向に向かっているような気がします。私はこれが基本的に新鮮なものであることのためにこれが受け入れがたい仕事であるように感じる。デプロイヤーにバンドルされているlaravel.phpレシピは、task(...)->desc(...)の後にではなく、すべてdesc(...)と呼びます。だから、第三者のレシピはそれを処理できるはずですが、エラーを投げます。 (先頭に「namespace Deployer;」と表記されている場合もあります)

他にこの問題が発生しましたか? deploy.phpに追加することを忘れた簡単なことがあるので、ベンダーファイルを変更する必要はありませんか?

+0

すべてが手動で変更することは意図していない、ベンダーのディレクトリを削除してみてくださいコンテンツを作成し、コンポーザーをインストールして、すべてのインストールを再開できるようにしてください。また、プロの場合は、composer.jsonにあればコマンドを実行しますblemは引き続きcomposer.jsonのコンテンツとPHPのバージョンを投稿しようとしています – Gntem

+0

私はベンダーのファイルを直接編集しませんでした。ベンダーのディレクトリの外にあるベンダーのファイルのローカルコピーを作成し、それらのファイルを含めました。(a)mkdir myEmptyDir(b)cd myEmptyDir(c)コンポーザーrequire --dev deployer/deployer(およびdeployer/recipes)(d)これは、 dep init [laravel]を選択し、(e)deploy.phpを編集し、laravelレシピが含まれた後に、 "require( 'vendor/deployer/recipes/local.php'); (f)何もしないダミーの「テスト」タスクを追加する(終了する)。この基本的な設定でも、 "dep test"エラーを実行しています。 – fronzee

+0

@ Mr.Phoenix Nevermind答えを見つけました。ここでは別に掲示する。 – fronzee

答えて

0

(...ここでは自分の質問に答えるために行く)

私はグローバルバージョン3.3.0(作曲せずに手動でインストール)で、これは私が入力した毎回実行していたファイルだったdepをインストールしていましたdepのローカルにインストールされた新しいプロジェクトの代わりにdepを使用してください。そこで、3.3.0デプロイヤで4.2.1レシピを実行しようとしていました。このコマンドラインから

ラン:

php vendor/bin/dep deploy [server] 

の代わり:

ソリューションベンダーのディレクトリに

dep deploy [server] 
関連する問題