その他

設定

concrete5.7 では、異なる設定のローダー、セーバーによって、設定値は複数の場所に保存されます。ほとんどの設定値は FileLoader と FileSaver によってファイルシステム上に保存され、ファイルシステムから読み込まれますが、データベースローダーとセーバーも使うことができます。ConfigRepository オブジェクトによって、汎用の Config ファサードクラスを通して、値を取得したり保存したりすることができます。

アセット

アセットは、concrete5 が JavaScript や CSS ファイルを取り扱う際の仕組みです。アセットには名前をつけることができ、アセットグループによって分類できます。JavaScript や CSS ファイルをそのパスで参照する代わりにアセットを使うことで、グループ名で呼び出すことができますし、より安全に取り扱うことができます。アセットは、それぞれにバージョンを登録することができ、アセットのサブシステムは同じページで同じアセットの競合するバージョンを読み込まないようにします。アセットサブシステムはファイルの結合や圧縮を行うこともできます。

イベント

concrete5 の開発者はアプリケーションのイベントに様々な方法でアクセスします。concrete5 のイベントは異なるポイントで実行され、イベントのサブシステムはこれらのイベントが実行された際に、開発者にカスタムコードを登録させることを可能にします。開発者は独自のコード内で独自のイベントを作成することも可能です。

ビューとコントローラー

concrete5 は基本的にモデル・ビュー・コントローラーの考え方で開発されています。例えば、多くのアイテムはそれぞれのコントローラービューに関連付けられています。汎用コントローラーとビュー(アプリケーションのインターフェースに使われます)、ブロック(controller.php と view.php ファイルを持ちます)、属性、シングルページ、ページタイプなどが該当します。

サービスプロバイダーとコアクラス

サービスプロバイダーは、concrete5 自体のオブジェクトには属さない PHP のクラスです。これらはアプリケーションの起動時に登録され、concrete5の Core::make() 関数で簡単に取得することができます。この仕組みは、カスタムコードを再登録することを可能にします。サービスプロバイダーの例としては "\Concrete\Core\Mail\Service" (メールを送るのに使われます)があり、 Core::make('helper/mail'); というコードでインスタンス化することができます。

ツール

tools ディレクトリ内のコードですが、5.7 から非推奨となりました。これらのファイルはウェブブラウザーから http://www.yoursite.com/index.php/tools/required/whatever  のようなURLでアクセス可能です。このアドレスの場合、 concrete/tools/whatever.php が読み込まれます。ツールは非推奨であり、ルーティングで同じことがより柔軟に出来ますので、そちらを使用するようにしてください。

ルーティング

concrete5 5.7 では、Symfony 2 の Routing コンポーネントを、ユーザーインターフェースのシステムのルーティングに広汎に使っています。ルーティングはカスタムコードで登録することができ、ウェブブラウザーから見えるようになります。ルーティングはPHPのクロージャーか、特定のコントローラーのメソッドを実行することができます。

データベースとデータベースマネージャー

concrete5 の DatabaseManager(データベースマネージャー)クラスは、複数のデータベースの Connection(コネクション)オブジェクトを保持することができます。これらは設定で定義でき、自動的に接続されます。グローバルの Database ファサードは \Database::get(); を使って自動的に現在のコネクションを取得します。

ファサード

ファサード(Facade)は、隠された実装に対してアクセスできる静的(Static)なクラスです。これらの隠された実装は、差し替え可能です。concrete5 のファサードの例としては、"Image", "Config", "Database", などがあります。

原文:Advanced