開発者エリア/Maharaアーキテクチャイントロダクション/コアサブシステム: Difference between revisions
From Mahara Wiki
< 開発者エリア/Maharaアーキテクチャイントロダクション
Line 33: | Line 33: | ||
===フォームビルディング Form Building: Pieforms=== | ===フォームビルディング Form Building: Pieforms=== | ||
MaharaはPieformsフォームビルディングライブラリを同梱しています。これはフォームを生成および処理するための非常にシンプルな方法を提供します。これはHTML記述の大変な作業、さらに退屈な検証作業も取り除きます。It | MaharaはPieformsフォームビルディングライブラリを同梱しています。これはフォームを生成および処理するための非常にシンプルな方法を提供します。これはHTML記述の大変な作業、さらに退屈な検証作業も取り除きます。It also handles session key checking for you, so you'll never generate a form vulnerable to XSS unless your try really hard to work around it. And if necessary, it provides the capability to lay out a form with widgets anywhere you choose - though most of the time you'll be happy enough with the forms generated by default. | ||
</div><div id="section_6"> | </div><div id="section_6"> |
Revision as of 00:10, 23 October 2019
コア開発者およびプラグイン開発者の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は補足できなかった例外を取得して「エラーが発生しました」ページを表示します。これは潜在的な侵入者に何が問題であるのかという情報を与えないことを目的としています。
フォームビルディング Form Building: Pieforms
MaharaはPieformsフォームビルディングライブラリを同梱しています。これはフォームを生成および処理するための非常にシンプルな方法を提供します。これはHTML記述の大変な作業、さらに退屈な検証作業も取り除きます。It also handles session key checking for you, so you'll never generate a form vulnerable to XSS unless your try really hard to work around it. And if necessary, it provides the capability to lay out a form with widgets anywhere you choose - though most of the time you'll be happy enough with the forms generated by default.
HTMLフィルタリング HTML Filtering: HTMLPurifier
In plenty of places in Mahara, user content is displayed. We bundle HTMLPurifier and provide wrapper functions for it, so you never have to worry about users inserting malicious tags. This filter is so good, we've previously had people complain that they can't embed anything at all! Mahara now ships with filters for allowing embedded code from select websites that most people trust, such as Youtube and Slideshare, and the filters are naturally pluggable.
テンプレーティング Templating: Dwoo
Mahara uses Dwoo for its templating needs since Mahara 1.2, and previous to 1.2 used Smarty. PHP developers familiar with Smarty's abilities will find Dwoo quite similar, and we use it extensively throughout Mahara.
Previous: Core Components 前へ: コアコンポーネント |