diff --git a/II-Concepts/Tasks.md b/II-Concepts/Tasks.md index d5a98ca..bc23636 100644 --- a/II-Concepts/Tasks.md +++ b/II-Concepts/Tasks.md @@ -1,22 +1,24 @@ -[translation here] +# タスク -[translation here] +タスクはRocketeerの重要なコンセプトの一つです。これまであなたが見てきたコマンドのほとんどは、裏では事前に定義されたタスクを使っています。**Rocketeer\Tasks\Setup** や **Rocketeer\Tasks\Deploy** のようにです。それらの多くはRocketeerによってすでに定義されていますが、Rocketeerに、同じようにあなたのサーバーでカスタムした動作をさせるタスクをあなた自身で追加できます。 -[translation here] +一つのタスクは以下の三つから一つのことができます。 -[translation here] +- 最新リリースフォルダで動作する単純な一行のコマンド。`composer install`や一行コマンドを寄せ集めたコマンドなど. +- より高度な動作を許容するRocketeerのコアヘルパへのアクセスを与えるクロージャー。 +- そして、最後は完全に快適なコントロールが与えられる`Rocketeer\Abstracts\AbstractTask`を継承したクラス。すべてのカスタムメイドのタスクは少なくとも一つ`execute`メソッドを保つ必要があります。以上です。 -[translation here] +_これは意図的にですが、_レベルごとに、あとちょっとのコントロールと快適さをあなたに与えてくれます。もしあなたがクロージャーが与えてくれるものよりもコントロールを必要とするならば、多分クラスが必要なのです。 -[translation here] +----- -[translation here] +## Rocketeerのタスク内でのフック -[translation here] +多くのユーザーがやるであろうことは、すでにあるRocketeerのタスクに、フックをすることです。Rocketeerは、- 最低限 -タスク実行の前と後に実行可能なビルトインのイベントシステムを提供しています。 -[translation here] +### 設定ファイルへのタスクの定義 -[translation here] +Rocketeerの設定ファイルの`hooks.php`ファイルで、任意のタスクにフックすることができます。その書式はとっても簡単です。以下に、上で述べた三つのタイプのタスクでの例を示します。 -[translation here] +Rocketeerは、また、あなたが使えるファサードも提供します。これは、クロージャーを使うと汚れてしまうなどの、設定ファイルに何かを入れたくない時に、特に有用です。 -[translation here] +Rocketeerは、次の2つのことを許容します。すべてのフックを含んだ`.rocketeer/events.php`ファイルの作成。または、複数のクラスでクラスごとに1ファイルにするなど多数のファイルがあるならば、単純に`.rocketeer/events/`フォルダを作成して、各々のタスクを中にいれると、Rocketeerは自動的にロードします。 -[translation here] +## 独自タスクを定義する -[translation here] +Rocketeerはまた、タスクランニングシステムとあわせて独自タスクの作成、管理、実行も提供します。これらは、`.rocketeer/tasks.php`ファイルに入れるか、もし多数ある場合には、それらが自動的にロードされる`./rocketeer/tasks/`フォルダに入れることができます。 -[translation here] +### ファサードを使う -[translation here] +これらのタスクは、自動的にRocketeerに登録されます。これらは、`php rocketeer composer`などのようにCLIを使うか、ファサードを使って実行することができます。 -[translation here] +![職人](http://i.imgur.com/jwdQ2Ly.png) -[translation here] +## タスクの実行 -[translation here] +タスクが定義されたら、それはコマンドラインとファサードの2箇所に配置されます。 -[translation here] +もし、タスク名`composer`で登録したら、例えば、次のように実行できます。 -[translation here] +ローカルサーバー上で何かを実行するような快適さをもってコマンド郡をローカルで実行する必要のあるような場合。これは実タスククラスでのみ実現できます。ローカルプロパティを*true*に設定することのみでできます。 -[translation here] +----- -[translation here] +## タスクを書く -[translation here] +### コアメソッド -[translation here] +タスクのコアメソッドは、`run`メソッドです。これは、ほぼ全ての他のヘルパーの下に位置します。 +これは単にリモートサーバーでコマンドを実行し出力を返します。 -[translation here] +2,3のフォルダ・ファイルを操作する方法も存在します。 これらはとても基本的で抽象的な低レベルなbashコマンドたちですが、しかし、これらは有用です。 -[translation here] +いくつかのメソッドは、Rocketeerの別のタスクで使われ、独自のタスクをつくるのに使うことができます。それら全ては、カレントのリリースに関連付けされます。 -[translation here] +タスクはまたRocketeerの他のクラスにアクセスすることができます。他のタスクを呼び出すことが可能です。 -[translation here] +- **command** は、現在実行されているコマンドのオプションや引数を加えるためのインスタンスです。 +- **scm** は、(git, SVNといった)カレントSCMのバイナリのインスタンスです。 +- **rocketeer** は、カレントアプリケーションおよびその設定を取得を司ります。 +- **connections** はカレント接続/ステージ/サーバーおよびそれぞれの資格情報を取得するハンドルです。 +- **remote** は、`run`メソッドを使用しているクラスでのサーバーへのエントリポイントです。 +- **explainer** は、出力の表示を司ります。たとえば、タスクの中で進行を表示するなどで使います。 +- **paths** で、ローカルおよびリモートのパスを見つけます。 +- **releasesManager** は、リリースおよびそのパスを扱います。 +- **localStorage** クラスは、ローカルストレージのファイル更新を保持し、リモートサーバーの状態と資格情報を追跡します。 +- **builder** は、タスクとストラテジをその場で構築するのに使用します。 +- **queue** は、あなたのタスク中のキューの中でタスクを実行させるのに使用します。 +- **tasks** はタスクおよびそのイベントの登録を扱います。これは、Rocketeerのファサードに隠蔽されたクラスです。 -[translation here] +それぞれのサービスに存在するメソッドのリストは、[APIドキュメント](http://rocketeer.autopergamene.eu/api/namespaces/Rocketeer.html)より直接見ることができます。 +これらのタスクは、自動的にRocketeerに登録されます。これらは、プロパティとしてアクセスされます。例えば、カレントリリースのフォルダーを取得するには以下のようにします。