ディレクトリ構造

標準的なconcrete5は次のルールに従ってセットアップされます。

application/

これはアプリケーションディレクトリです。この中には、特定の1サイトに関するファイルが含まれています。一般的には、この application/ ディレクトリ内のアイテムは concrete ディレクトリを上書きするために設置されます。

concrete/

これはconcrete5のソースコードのためのディレクトリで、コアファイルが格納されています。

packages/

このディレクトリはパッケージフォーマットのサブディレクトリを格納します。独自開発したパッケージや、多くの場合はconcrete5.orgのマーケットプレイスからダウンロードしたパッケージが格納されています。

updates/

このディレクトリには追加のconcrete5のコアディレクトリが格納されます。これらは管理画面内のアップデート機能によってダウンロードされるか、手動でこのディレクトリにアップロードされたものになります。application/config ディレクトリ内に update.php というファイルが設置されている場合、そのファイルには updates/ ディレクトリ内のどのディレクトリのコアファイルでウェブサイトが動作しているかを判断するために使われています。

concrete5ソースディレクトリ

concrete/attributes/

このディレクトリにはconcrete5の標準の属性タイプが格納されています。属性タイプはインストール時、またはアップグレード時に有効化されます。

concrete/authentication/

このディレクトリにはconcrete5の標準の認証タイプが格納されています。認証タイプはインストール時、またはアップグレード時に同時にインストールされます。

concrete/blocks/

このディレクトリにはconcrete5の標準のブロックタイプが格納されています。ブロックタイプはインストール時、またはアップグレード時に同時にインストールされます。

concrete/bootstrap/

このディレクトリにはconcrete5の起動時に実行されるPHPの処理が格納されています。bootstrap/autoload.php(PHPのオートローダーの読み込み)、bootstrap/helpers.php(array_to_object()やh()、t()などのグローバル関数の作成)、bootstrap/start.php が含まれています。

concrete/config/

このディレクトリにはコアの設定値が格納されています。このデータはConfigライブラリーによって読み書きされます。ここに格納されているファイルは様々なキーのデフォルト値を格納したものです。これらのファイルは連想配列の形式になっています。

concrete/config/doctrine/

このディレクトリにはビルトインDoctrineORMライブラリーによって生成されたPHPプロキシクラスが格納されています。ほとんどの開発者は気にかける必要はありません。

concrete/config/install/

このディレクトリには、インストール時に選択できるサンプルコンテンツとして使われるスターティング・ポイント・パッケージが格納されています。

concrete/controllers/

このディレクトリにはコントローラーが格納されています。concrete5では、コントローラーは次の3つの場合に使われます。

  1. 特定のURLで指定されたルートで指定された時
  2. シングルページが表示された時
  3. ページタイプが表示された時

concrete/controllers/single_page

ここにあるコントローラーはシングルページが表示される際に読み込まれます。

concrete/controllers/page_types/

ここにあるコントローラーはページが表示される際に、そのページタイプに応じて読み込まれます。

その他

controllers/ ディレクトリにあるコントローラーは、concrete5の管理機能のルートで使われています。これらのルートとコントローラーの対応は、concrete/config/app.php を見ると調べることができます。

concrete/css

このディレクトリには、concrete5が使用するミニファイ・圧縮されたCSSが格納されています。

concrete/css/build/

このディレクトリには、concrete5のビルド前のLESSファイルが格納されています。エンドユーザーはこのディレクトリについて気にかける必要はありません。

dispatcher.php

これはconcrete5のメインのディスパッチャーファイルです。Webルートのindex.phpファイルから読み込まれています。

concrete/elements

concrete5内で再利用されるPHPコードのスニペットが格納されているディレクトリです。

concrete/images

concrete5内で使用されている画像が格納されているディレクトリです。

concrete/jobs

concrete5の自動実行ジョブのPHPクラスが格納されているディレクトリです。それぞれのジョブは特定の必須メソッドを実装したPHPクラスになっています。

concrete/js

concrete5内で使用されているミニファイ・圧縮されたJavaScriptファイルが格納されているディレクトリです。

concrete/js/build/

このディレクトリにはミニファイ前のJavaScriptファイルが格納されています。concrete5のコンパイル時にGruntを使ってコンパイルされます。

concrete/mail

このディレクトリはメールテンプレートが格納されています。

concrete/single_pages

このディレクトリはconcrete5のシングルページが格納されています。これらはインストール時に有効化されます。

concrete/src/

このディレクトリはconcrete5で使用される全てののPHPクラスが格納されていて、機能によってディレクトリが分けられています。重要:このディレクトリより上の階層はconcrete5の小文字のハンドルネームフォーマットに従っていますが、src/ ディレクトリ以下は異なり、ディレクトリとクラスはキャメルケース(先頭が大文字)になります。

concrete/themes/

このディレクトリはconcrete5で使われている全てのテーマが格納されています。インストール時に有効化されたテーマのみが、管理画面のインストール済みテーマの一覧に表示されます。

concrete/tools

このディレクトリにはconcrete5の特定のユーザーインターフェース要素で使われるスクリプトが格納されています。toolsは公式に非推奨となり、controllerとviewを使うようになりましたが、段階的にまだ使用が残っている状態です。

concrete/vendor

このディレクトリにはconcrete5が使用しているサードパーティ製のライブラリーが格納されています。これらのライブラリはconcrete5のビルド時にComposerを用いてインストールされています。

concrete/views

このディレクトリにはconcrete5のMVCレイヤーにおけるViewが格納されています。これらのビューはcontrollersディレクトリ内のコントローラーで指定されています。

アプリケーションディレクトリ

application/attributes

このディレクトリには、このconcrete5サイトでのみ使用されている属性タイプか、もしくはconcrete5のコアの属性タイプのファイルをオーバーライドしたものが格納されています。

application/authentication

このディレクトリには、このconcrete5サイトでのみ使用されている認証タイプか、もしくはconcrete5のコアの認証タイプのファイルをオーバーライドしたものが格納されています。

application/blocks

このディレクトリには、このconcrete5サイトでのみ使用されているブロックタイプか、もしくはconcrete5のコアのブロックタイプのファイルをオーバーライドしたものが格納されています。

application/bootstrap/app.php

このファイルは開発者がイベントを登録したり、PHPクラスをリバインドしたりするためのオプションファイルです。このファイルはconcrete5のbootstrapルーティンで自動的に読み込まれます。

application/bootstrap/autoload.php

このファイルはconcrete5のbootstrapルーティンで読み込まれます。このファイルは concrete/vendor/ ディレクトリのComposerでインストールされたクラスを読み込んだり、その他のこのアプリケーションでのみ必要なカスタムオートロードを追記するのに使います。

application/bootstrap/start.php

このファイルはconcrete5のbootstrapルーティンで読み込まれます。このファイルは環境の判別やカスタマイズを可能にします。

application/controllers

このディレクトリには、このconcrete5サイトでのみ使用されているコントローラーか、もしくはconcrete5のコアのコントローラーのファイルをオーバーライドしたものが格納されています。

application/elements

このディレクトリには、このconcrete5サイトでのみ使用されているエレメントか、もしくはconcrete5のコアのエレメントのファイルをオーバーライドしたものが格納されています。

application/files

このディレクトリには、このconcrete5サイトでアップロードされたファイルが格納されています。concrete5のファイルインポータークラスがこのディレクトリを管理します。

application/files/thumbnails

このディレクトリにはconcrete5にアップロードされたファイルのサムネイルが自動的に生成されて格納されます。ファイルマネージャーはこれらのサムネイルを使用しますが、新しい画像サムネイルタイプは自動的にこのディレクトリにサムネイルを生成して格納します。

application/files/incoming

このディレクトリにアップロードされたファイルは、管理画面のファイルマネージャーにインポートすることができます。この機能は、ブラウザからアップロードできない容量の大きなファイルを取り込むのに使えます。

application/files/cache

concrete5の内部キャッシュファイルはここに書き出されます。一般的に、このディレクトリごと削除しても安全です。

application/jobs

このディレクトリには、このconcrete5サイトでのみ使用されているジョブか、もしくはconcrete5のコアのジョブのファイルをオーバーライドしたものが格納されています。

application/languages

このディレクトリはconcrete5によって使用されている言語ファイルが格納されています。これらのファイルは基本的にconcrete5のビルド時に生成されますが、上書きして翻訳を更新することも可能です。最新の翻訳ファイルはGitHubからダウンロードすることができます。

application/mail

このディレクトリには、このconcrete5サイトでのみ使用されているメールテンプレートか、もしくはconcrete5のコアのメールテンプレートのファイルをオーバーライドしたものが格納されています。

application/single_pages

このディレクトリには、このconcrete5サイトでのみ使用されているシングルページのビューファイルか、もしくはconcrete5のコアのシングルページのビューファイルをオーバーライドしたものが格納されています。

application/src

このディレクトリには、このconcrete5サイトでのみ使用されているカスタムPHPクラスか、もしくは限定的なケースですが、concrete5のコアのPHPクラスをオーバーライドしたものが格納されています。注意:このディレクトリ内のファイルは concrete/src/ ディレクトリと同じ命名規則に従います。

application/themes

このディレクトリには、このconcrete5サイトでのみ使用されているテーマか、もしくはconcrete5のコアのテーマやコンポーネントをオーバーライドしたものが格納されています。

application/tools

このディレクトリには、このconcrete5サイトでのみ使用されているtoolsが格納されています。toolsは公式に非推奨となり、controllerとviewを使うようになりました

application/views

このディレクトリには、このconcrete5サイトでのみ使用されているビューファイルか、もしくはconcrete5のコアのビューをオーバーライドしたものが格納されています。

原文:Directory Structure