Actions

開発者エリア/Maharaアーキテクチャイントロダクション/コアサブシステム

From Mahara Wiki

< 開発者エリア/Maharaアーキテクチャイントロダクション

作成中です - mits (talk)

コア開発者およびプラグイン開発者のMaharaコード記述作業を容易にするため、Maharaには特定機能を提供するためのいくつかのサブシステムがあります。あなたはMaharaコードの多くの場所で使われているサブシステムを確認できます。

活動システム

活動システムによりMaharaはシステムで発生していることをユーザに通知できます。これはコアおよびプラグインで提供されるプラグイン可能な活動タイプをサポートします。ここで接続された通知プラグインタイプではどのようにこれらのメッセージを受信するかユーザが選択できます。

データベースレイヤ: ADODB/XMLDB

Maharaはデータベース抽象にADODBの使用によりMySQLおよびPostgreSQLの両方をサポートします。また、スキーマおよびアップデートのためXMLDBを使用します。また、スキーマおよびアップグレードの処理にXMLDBを使用します。Maharaにはレコードの取得、行の挿入および削除のようなシンプルな処理を簡単に実行するためADODBのトップにライブラリがあります。しかし、Maharaの多くの場所では必要なデータを取得するため生のSQLが使用されます。

Maharaのデータベースには外部キーがあります。また、PostgreSQLを使用する場合、さらにデータ整合性機能があります。

Cron

Maharaは内部的にcronを実装しています。この主な理由は常にcronジョブを設定および繰り返し編集する手間を省くことにあります。cronは内部的に実装されるため、新しいプラグインをどのcronジョブをMaharaで動作させるか簡単に登録できます。登録したcronジョブは確実に適切な時間に動作します (メモ: Maharan内部ジョブとして実行させるため、あなたはcronジョブの設置が必要ですが、Maharaのセットアップ時のみ設定して後は忘れてください)。

エラー処理およびロギング

PHPアプリケーションとして、Maharaはほとんどのエラー処理に例外処理を提供および使用します。Maharaには問題が発生した時のために詳細エラーメッセージおよびバックトレースを提供する素晴らしいログ機能 (Apacheエラーログに記録) もあります。また、Maharaは補足できなかった例外を取得して「エラーが発生しました」ページを表示します。これは潜在的な侵入者に何が問題であるのかという情報を与えないことを目的としています。

フォームビルディング: Pieforms

MaharaはPieformsフォームビルディングライブラリを同梱しています。これはフォームを生成および処理するための非常にシンプルな方法を提供します。これはHTML記述の大変な作業、さらに退屈な検証作業も取り除きます。また、あなたのためにセッションキーをチェックするため、あなたが脆弱性対策に力を入れている場合を除いて、XSSに脆弱性のあるフォームを生成する必要はありません。 必要であれば、あなたが選択する場所にウィジェットのフォームを配置できる機能を提供できます (多くの場合、デフォルトで生成されるフォームで十分です)。

HTMLフィルタリング: HTMLPurifier

Mahara内の多くの場所でユーザコンテンツが表示されます。私たちはHTMLPurifierを実装してラッパ関数を提供しますので、あなたはユーザから悪意のあるタグを埋め込まれることを心配する必要はありません。このフィルタは大変素晴らしいため、私たちは過去に全く何も埋め込めませんと苦情を受けたことがあります! Maharaには選択したYouTube、Slideshare等の信頼できるウェブサイトからコードを埋め込めるフィルタが実装されています。もちろん、フィルタは着脱可能です。

テンプレーティング Templating: Dwoo

MaharaはMahara 1.2以降、テンプレーティングにDwooを使用します。1.2以前のバージョンではSmartyを使用していました。Smartyの機能に精通しているPHP開発者はDwooが非常に類似していることに気付くことでしょう。私たちは広範囲にわたりDwooをMaharaで使用しています。PHP developers familiar with Smarty's abilities will find Dwoo quite similar, and we use it extensively throughout Mahara.

Previous: Core Components

前へ: コアコンポーネント