Actions

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

From Mahara Wiki

< 開発者エリア/Maharaアーキテクチャインストラクション
Revision as of 04:26, 16 January 2013 by Mits (talk | contribs)

作成中です - mits

コア開発者およびプラグイン作成者両者にとってMaharaの開発が簡単になるよう、Maharaには特定の機能を提供する複数のサブシステムがあります。あなたはMaharaコードベースの多くの場所でこれらサブシステムに遭遇することになるでしょう。

活動システム

活動システムはMaharaに対して、システム内で何が起こっているのか、ユーザに通知を送信できるようにします。It supports pluggable activity types, which are provided by the core and plugins, and the notification plugin type hooks in here to allow users to choose how they receive these messages.

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

Mahara supports both MySQL and PostgreSQL by using ADODB for database abstraction, and XMLDB for handling the schema and upgrades. Mahara has a library on top of ADODB to make simple operations easier to perform - such as getting records, inserting/deleting rows. In many places in Mahara however, raw SQL is used to grab the data required.

Mahara's database has foreign keys, and in the case of PostgreSQL, some more data integrity features.

Cron

Mahara implements cron internally. The main reason for this is to prevent the need for people to set up and edit cron jobs constantly. As cron is implemented internally, new plugins can simply register what cron jobs they want to run with Mahara, which will ensure they are run at the appropriate times (note: you still need one cron job set up to trigger Mahara's internal cron, but you set it up when setting up Mahara and then forget about it).

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

Being a PHP5 application, Mahara provides and uses exceptions for much of the error handling. Mahara also provides excellent logging facilities (to apache error logs) that give detailed error messages and backtraces when a problem occurs. Mahara also catches uncaught exceptions and displays generic "an error occured" pages, that don't give away any information to potential hackers about what went wrong.

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

Mahara bundles the Pieforms form building library. It provides a very simple way to generate and process forms. It takes away the hard work of writing HTML and even much of the tedious validation work. 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フィルタリング: 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.

テンプレーティング: 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.

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