コマンドラインインターフェース(CLI)コマンド

バージョン 5.7.5 以降、concrete5 はターミナルコンソール(SSHセッション、bash や sh シェル、Windowsコマンドプロンプトなど…)で使えるコマンドセットを提供しています。

注意 Windowsシステムでは、すべての /\ に読み替えてください。

CLI コマンドを実行するには、ターミナルコンソールを開き、concrete5 のウェブルートフォルダをカレントディレクトリにしてください( index.php ファイルがあるディレクトリのことです)。これは必須ではありませんが、このドキュメントを部分的に読む人に分かりやすいのでそうしています。

利用可能な CLI コマンドを一覧表示するには、次のコマンドをタイプしてください:

concrete/bin/concrete5 list

注意: *nix または MacOS X をお使いの方で Permission denied エラーが出たら、次のコマンドを実行する必要があるかもしれません: chmod a+x concrete/bin/concrete5

すべてのコマンドの一覧が短い説明文付きで表示されます。 すべてのコマンドが短い接頭辞(名前空間と呼ばれます)から始まっていることにお気づきと思います。

ここでは、c5 名前空間のコマンドのみ解説します(これらのコマンドだけ表示するには concrete/bin/concrete5 list c5 とタイプします)。 その他の利用可能な名前空間:

  • dbal
    これらのコマンドは Doctrine DBAL によって提供されています。
  • orm
    これらのコマンドは Doctrine ORM によって提供されています。
  • migrations
    これらのコマンドは Sympnony Migrations によって提供されています。

それぞれのコマンドのシンタックスは、コマンド名の後に --help をつけると表示できます。 例えばこのようにタイプすると:

concrete/bin/concrete5 c5:job --help

次のように表示されます:

``` Usage: c5:job [options] [--] []...

Arguments: jobs Jobs to run (separate multiple jobs with a space)

Options: --set Find jobs by set instead of job handle --list List available jobs ... ```

利用可能な c5 コマンド {#commands-c5}

concrete5 によって提供されているコマンドの解説です。

特に説明がなければ、返却されるコード0 の時は操作が正常に完了したことを 1 の時はエラーを表します。

concrete5 をインストールする c5:install {#c5-install}

(concrete5 5.7.5 以降で利用可能)

このコマンドを使うと、コマンドラインから concrete5 をインストールできます。 利用例:

concrete/bin/concrete5 c5:install --db-server=DB_SERVER --db-username=DB_USERNAME --db-password=DB_PASSWORD --db-database=DB_NAME --site=SITE_NAME --starting-point=STARTING_POINT --admin-email=EMAIL --admin-password=PASSWORD --default-locale=LOCALE

解説:

  • DB_SERVER データベースサーバーのホスト名(カスタムポートが必要な場合は、例えば3333ポートの場合、単に :3333 を追加してください)。
  • DB_USERNAME データベースサーバーにアクセスする際のユーザー名
  • DB_PASSWORD データベースサーバーにアクセスする際のパスワード
  • DB_NAME データベース名(存在し、空である必要があります)
  • SITE_NAME インストールするconcrete5のサイト名(ページタイトルに表示されます)
  • STARTING_POINT どの初期データをインストールするかを選べます。デフォルトで用意されているのは elemental_fullelemental_blank です。
  • EMAIL インストール時に作成される admin アカウントに関連づけられるEメールアドレス
  • PASSWORD インストール時に作成される admin アカウントに関連づけられるパスワード
  • LOCALE (オプション)サイトのデフォルト言語コード(デフォルトでは en_US

バージョン 8.0.0 以降のオプション

concrete/bin/concrete5 c5:install [--db-server DB-SERVER] [--db-username DB-USERNAME] [--db-password DB-PASSWORD] [--db-database DB-DATABASE] [--site SITE] [--canonical-url CANONICAL-URL] [--canonical-ssl-url CANONICAL-SSL-URL] [--starting-point STARTING-POINT] [--admin-email ADMIN-EMAIL] [--admin-password ADMIN-PASSWORD] [--demo-username DEMO-USERNAME] [--demo-password DEMO-PASSWORD] [--demo-email DEMO-EMAIL] [--language LANGUAGE] [--site-locale SITE-LOCALE] [--config CONFIG] [--attach] [--force-attach] [-i|--interactive]

セッションのサンプル:

$ concrete/bin/concrete5 c5:install ... 5%: Starting installation and creating directories. 10%: Creating database tables. 15%: Adding admin user. 20%: Installing permissions & workflow. 23%: Creating home page. 25%: Installing attributes. 30%: Adding block types. 33%: Adding gathering data sources. 36%: Page type basic setup. 38%: Adding themes. 40%: Installing automated jobs. 45%: Installing dashboard. 55%: Installing login and registration pages. 57%: Adding image editor functionality. 60%: Configuring site. 65%: Importing files. 70%: Adding pages and content. 90%: Setting up site permissions. 95%: Finishing. Installation Complete! $

concrete5 をリセット c5:reset {#c5-reset}

(concrete5 5.7.5 以降で利用可能)

インストール済みの concrete5 を完全にリセットするのに、このコマンドが使えます。
このコマンドは非常に危険です(すべてのサイトのコンテンツとすべてのデータベーステーブルを削除します)ので、オプションの引数 --force (または -f) を指定する必要があります。

セッションのサンプル:

$ concrete/bin/concrete5 c5:reset -f Listing tables... done. Dropping foreign key QueueMessages.queuemessages_ibfk_1... done. Dropping table AreaLayoutColumns... done. [...] Dropping table gaPage... done. Deleting file application/config/app.php... done. Deleting file application/config/database.php... done. Deleting directory application/config/generated_overrides... done. Deleting directory application/config/doctrine... done. Deleting directory application/files... done. Creating directory application/files... done. Creating empty file application/files/index.html... done. $

IDE シンボルを生成 c5:ide-symbols {#c5-ide-symbols}

(concrete5 5.7.5 以降で利用可能)

concrete5 での開発に IDE をお使いの開発者にとって便利なコマンドです。concrete5 はファサードやプロキシクラスなどを使っているため、エディターはそれらを正しく認識できません(例えば、\Core クラスなど)。また、IDE は IoC の実行結果を知ることができません(例えば、\Core::make('config') の結果のクラス名を知りません)。

次を実行すると

concrete/bin/concrete5 c5:ide-symbols

IDE の自動補完機能を助ける2つのファイルが生成されます。 最初のファイル(concrete/src/Support/__IDE_SYMBOLS__.php)はファサードクラスとそのメソッドを定義しています(その結果、\Core:: とタイプした後にメソッド名が保管されます)。

2つめのファイル(concrete/src/Support/.phpstorm.meta.php)は \Core::make('config') のような実行結果を IDE に伝えるのに役立ちます。このファイルは PhpStorm 専用であることに注意してください(ただし、機能リクエスト が Eclipse PDT に出されています - 投票しましょう)。

concrete5 の設定を変更する c5:config {#c5-config}

(concrete5 5.7.5 以降で利用可能)

この CLI コマンドは(多くの)管理画面から変更できない設定オプションを変更するのに便利です。また、コンソーススクリプトから concrete5 の設定を変更したい時、/application/config 以下の設定ファイルを直接変更するよりも便利でしょう。

c5:config は concrete5 のすべてのパラメーターの取得と設定が行えます。

例えばこの例では:

concrete/bin/concrete5 c5:config set concrete.i18n.choose_language_login true

ログインページの言語選択セクションを有効にしています。

c5:config で設定されたオプションは、concrete5 の管理画面から設定された値よりも優先順位が高いことに注意してください。   そのため、上記の concrete.i18n.choose_language_login は、管理画面>システムと設定>基本>言語 からは変更できなくなります。 これを避けたい場合は、--generated-overrides (または -g) オプションを使用することができます(concrete5 5.7.5.4 以降):

concrete/bin/concrete5 c5:config set -g concrete.i18n.choose_language_login true

concrete5 のジョブを実行する c5:job {#c5-job}

(concrete5 5.7.5 以降で利用可能)

concrete5 のジョブは、例えば cURL などで特定の URL を呼び出すことで実行可能です バージョン 5.7.5 以降は c5:job CLI コマンドからも直接実行可能になりました。

例えば、generate_sitemapindex_search の2つのデフォルトのジョブを実行したい場合は、このように記述できます:

concrete/bin/concrete5 c5:job generate_sitemap index_search

バージョン 5.7.5.5 以降は同様にジョブセットも実行できるようになりました:次は Default という名前のジョブセットを実行する例です:

concrete/bin/concrete5 c5:job --set Default

concrete5 のキャッシュをクリアする c5:clear-cache {#c5-clear-cache}

(concrete5 5.7.5.2 以降で利用可能)

concrete5 のキャッシュをクリアするには、次のコマンドを実行するだけです:

concrete/bin/concrete5 c5:clear-cache

concrete5 のパッケージをインストールする c5:package-install {#c5-package-install}

(concrete5 5.7.5.4 以降で利用可能)

パッケージをインストールするには、 c5:package-install CLI コマンドが使えます。 最初の引数はパッケージハンドルです。 もしパッケージがインストールオプションを必要とする場合は追加の引数として渡すことができます。 もし引数が配列である必要がある場合は、引数名に [] を追加してください。

こちらがサンプルセッションです:

$ concrete/bin/concrete5 c5:package-install letsencrypt arr[]=1 arr[]=2 foo=bar bar=baz Looking for package 'letsencrypt'... found (My Let's Encrypt). Checking preconditions... good. Installing package... done.

concrete5 のパッケージをアップデートする c5:package-update {#c5-package-update}

(concrete5 5.7.5.4 以降で利用可能)

いずれかの、またはすべてのパッケージをアップデートするのに、 c5:package-update コマンドを使用できます。 注意すべきオプションとして、このコマンドは --force (または短縮形で -f)を指定することができます。これはパッケージの開発者に便利な機能で、パッケージバージョンを変えずにアップグレードプレオセスを実行することができます。他のオプションに --all (または -a )があり、インストール済みのすべてのパッケージをアップグレードします。

PS:パッケージハンドルを指定できるのは バージョン 5.7.5.5 以降です。

こちらがサンプルセッションです:

$ concrete/bin/concrete5 c5:package-update letsencrypt Looking for package 'letsencrypt'... found (Let's Encrypt). Checking preconditions... good. Updating from v0.9.6 to v0.9.9... done. $ concrete/bin/concrete5 c5:package-update letsencrypt Looking for package 'letsencrypt'... found (My Let's Encrypt). Checking preconditions... the package is already up-to-date (v0.9.9) $ concrete/bin/concrete5 c5:package-update letsencrypt --force Looking for package 'letsencrypt'... found (My Let's Encrypt). Checking preconditions... good. Forcing upgrade at v0.9.9... done.

concrete5 のパッケージをアンインストールする c5:package-uninstall {#c5-package-uninstall}

(concrete5 5.7.5 以降で利用可能)

パッケージのアンインストールのコマンドは次のようにシンプルです:

$ concrete/bin/concrete5 c5:package-uninstall letsencrypt Looking for package 'letsencrypt'... found (My Let's Encrypt). Checking preconditions... good. Uninstalling package... done.

パッケージディレクトリを concrete5 のゴミ箱(通常は application/files/trash )に入れるには、 --trash オプションを指定します。

5.6 または 5.7 パッケージの翻訳を管理する c5:package-translate {#c5-package-translate}

(concrete5 5.7.5.4 以降で利用可能)

このコマンドについての詳細はドキュメントの ローカライズ ページを参照してください。

5.6 または 5.7 のパッケージを管理する c5:package-pack {#c5-package-pack}

(concrete5 5.7.5.4 以降で利用可能)

開発者にぜひ使って欲しい便利なコマンドです。 下記のような操作を行うことができます:

  • 短縮形 PHP 開始/echo タグを展開する
    --short-tags (または短縮形で -s)オプションは、短縮形の PHP タグ <? または <?=<?php または <?php echo に展開できます。 このオプションは下記の値をサポートします:
    • all (デフォルト)<? または <?= の両方(PHP バージョン 5.4 未満用に)
    • keep-echo このオプションは <? は展開しますが <?= は残します(PHP 5.4 以降では <?= が常に有効なので)
    • no ショートタグを残し展開しません(最大のポータビリティのため)
  • SVG ファイルから PNG アイコンを作成する
    --compile-icons (短縮形で -i)オプションは、SVG ファイルを PNG アイコンに変換するかどうかを選択できます。 現時点では、下記のファイルが変換されます:

    • <package-root>/icon.svg => <package-root>/icon.png
    • <package-root>/blocks/<block-handle>/icon.svg => <package-root>/blocks/<block-handle>/icon.png

    --compile-icons オプションは下記の値をサポートします:

    • yes 常に SVG ファイルを PNG アイコンに変換します
    • no この操作を行いません
    • auto (デフォルト)PNG アイコンが存在しない、または SVG ファイルが PNG アイコンより新しい場合に変換します
  • 翻訳ファイルをコンパイルする
    (言語ファイルについての解説はヘルプの ローカライズ ページを参照ください)
    --compile-translations オプション(短縮形で -t )は翻訳ソースの .po ファイルを .mo フォーマット(concrete5 で使用されます)にコンパイルするかどうかを指定します。 .po ファイルは .mo ファイルと同じディレクトリに設置され値得る必要があります( <package-root>/languages/<language_code>/LC_MESSAGES )。 --compile-translations オプションは下記の値をサポートします:
    • yes 常に .po テキストファイルを .mo バイナリファイルにコンパイルします
    • no この操作を行いません
    • auto (デフォルト).mo ファイルが存在しないか、 .po ファイルが .mo ファイルより新しい場合にコンパイルします

オーケー、 c5:package-pack は上記の操作が行えるんだね。では、結果はどこに保存されるんだい?その決定は、あなたに任されています:

  • --update-source-directory (短縮形 -u)パッケージディレクトリ自身をアップデートすることができます。
  • --zip (短縮形 -z)更新されたファイルで ZIP アーカイブを作ることができます。concrete5 の PRB にあなたのパッケージを提出するときや、他の人に渡すときに便利です。
    このオプションでは、どのディレクトリに ZIP アーカイブが作成されるかのパスを指定することができます。
    デフォルトでは、ZIP ファイルはパッケージが格納されているフォルダに作成されます。
    ZIP の名前は、パッケージバージョンをパッケージハンドルに孵化する形で、自動的に決められます。
  • -u-z オプションは同時に指定できます。

デフォルトでは、 c5:package-pack.(ドット)で始まるファイルやディレクトリを自動的に除外します。また、SVG アイコンや .po などの 言語ソースファイルも除外されます。
これらのファイルを ZIP アーカイブに残したい場合は、--keep オプション(短縮形で -k )を使うことができます:

  • --keep=dot(または -k dot)で . で始まるファイルを残すことができます
  • --keep=sources(または -k sources)で SVG や .po ファイルを残すことができます
  • --keep=dot --keep=sources(または -k sources -k sources)で両方のタイプのファイルを残すことができます。

    注意: SVG ファイルから PNG ファイコンを生成するには、Inkscape がインストールされている必要があります。
    Windows ユーザーは Inkscape の実行可能フォルダに現在の PATH の値を追加してください(mlocati による My development environment for concrete5 under Windowsを参考にしてください)。

要するにどういうことよ:

  • パッケージのソースディレクトリを更新するには concrete/bin/concrete5 c5:package-pack PACKAGE_HANDLE -u
  • パッケージの ZIP ファイルを作成するには concrete/bin/concrete5 c5:package-pack PACKAGE_HANDLE -z

PHPスクリプトを実行する c5:exec {#c5-exec}

(concrete5 8.0.0 以降で利用可能)

concrete5 の実行環境内で PHP スクリプトを実行するには、 c5:exec コマンドが使えます。

例えば、100人の新規ユーザーを追加したいとしましょう。あなたは create-users.php ファイルをこのように作成したとします:

<?php $userRegistration = Core::make('user/registration'); for ($i = 1; $i <= 100; ++$i) { $userRegistration->create([ 'uName' => 'user'.$i, 'uPassword' => 'password'.$i, 'uEmail' => 'email'.$i.'@my.domain', 'uIsValidated' => true, ]); }

あなたはこのスクリプトを concrete/bin/concrete5 c5:exec create-users.php のようにコマンドラインから実行できます。

ウェブサーバーの設定をコントロールする c5:service {#c5-service}

(concrete5 8.0.0 以降で利用可能)

今のところ、このコマンドは Apache ウェブサーバーにおいて .htaccess ファイルをコントロールするものになっています。つまり、プリティURLの設定に関連するものです。 CLI インターフェースからはウェブサイトを動かしているウェブサイトについてわからないので、お使いのウェブサーバーを指定する必要があります(現在利用可能な値は apachenginx です)。 さらに、プリティURLはお使いの concrete5 サイトがどの相対パスにあるのかを知る必要があります。そのため、このパスを dir_rel で指定します。

例えば、CLI からプリティURLを有効にしたい場合は、次のようにできます:

最初に、concrete5の設定を変更します:

$ concrete/bin/concrete5 c5:config set -g concrete.seo.url_rewriting true

次に、.htaccess ファイルを更新します(concrete5 がウェブルートディレクトリにあり、Apacheを使用している場合):

$ concrete/bin/concrete5 c5:service apache update dir_rel= Checking presence of rule pretty_urls... not found. Adding it... done. Persisting new configuration... done.

ウェブサーバーの設定が更新されたかどうか、check 引数でチェックできます:

$ concrete/bin/concrete5 c5:service apache check dir_rel= Checking presence of rule pretty_urls... found (ok).

そして、プリティURLのサポートをやめる場合:

$ concrete/bin/concrete5 c5:config set -g concrete.seo.url_rewriting false $ concrete/bin/concrete5 c5:service apache update dir_rel= Checking absence of rule pretty_urls... found. Removing it... done. Persisting new configuration... done.

情報を取得する c5:info {#c5-info}

(concrete5 8.0.0 以降で利用可能)

CLI インターフェースはsymlinkで接続した多数のconcrete5インスタンスでも動作します。
コマンドラインから検出された環境をチェックし、PHPの設定も取得するには、c5:info コマンドを利用できます。

こちらはサンプル出力です:

``` $ concrete/bin/concrete5 c5:info

concrete5 Version

Installed - No Core Version - 8.0.0a4 Database Version - 20160420000000

Paths

Web root - /var/www/mysite Core root - /var/www/mysite/concrete ... ```

concrete5 をアップデートする c5:update {#c5-update}

(concrete5 8.0.0 以降で利用可能)

バージョン 8 以降、concrete5 のバージョンのアップグレードを c5:update コマンドで実行できるようになりました。
アップグレードについての詳細は こちらのヘルプページをごらんください

原文:Command line interface (CLI) commands