Drupal
Drupal( [ˈdruːpəl])は、プログラミング言語PHPで記述されたフリーでオープンソースのモジュラー式フレームワークであり、コンテンツ管理システム (CMS) である。昨今の多くのCMSと同様に、Drupalはシステム管理者にコンテンツの作成と整理、提示方法のカスタマイズ、管理作業の自動化、ウェブサイトへの訪問者や寄稿者の管理を可能にする。 その性能が、コンテンツ管理から幅広いサービスや商取引を可能にすることにまで及ぶことから、Drupalは時々「ウェブアプリケーションフレームワーク」であると評される。Drupalは洗練されたプログラミングインタフェースを提供するものの、基本的なウェブサイトの設置と管理はプログラミングなしに成し遂げることができる。Drupalは一般に、最も優れたWeb 2.0フレームワークの一つであると考えられている[3]。 DrupalはWindows、macOS、Linux、FreeBSD、OpenBSD、Solaris 10、 OpenSolarisを始め、WebサーバApache(1.3以上)またはIIS(IIS5以上)、及びPHP(4.3.3以上)をサポートするあらゆる環境で動作する。Drupalはコンテンツや設定を格納するために、MySQL、PostgreSQL、SQLite、MongoDBのようなデータベース管理システムを必要とする。 歴史DrupalはもともとDries BuytaertがBBSシステムとして書いたもので、2001年にオープンソース・プロジェクトとなった。Drupalの綴りは、"drop"(滴)を意味するオランダ語の単語 "Druppel" を、英語に翻字したものである。この名称は、現在は閉鎖されたウェブサイトDrop.orgから取られたもので、ここで使われていたコードがゆっくりとDrupalに発展した。Buytaertはこのサイトを "dorp"(そのコミュニティの様相を指す「村」のオランダ語)と呼びたかったが、ドメイン名をチェックするときにタイプミスをし、それがより良いと考え "drop" を採用した[4]。 2006年5月から2007年4月まで、Drupalは公式サイトから600,000回以上ダウンロードされた[5]。現在では大きなコミュニティがDrupalの開発を支えている[6]。 バージョン8から、開発スピード・コード品質・セキュリティ・保守拡張性の向上を目的として、Symfony を開発フレームワークとして採用している。[7]
Drupalコア"Drupal core" として知られるDrupalの公式リリースは、ほとんどのCMSに共通する基本的な機能を備えている。これらには個々のユーザ・アカウントの登録と維持、管理メニュー、RSSフィード、カスタマイズ可能なレイアウト、柔軟なアカウント権限、ログ機能、ブログ作成システム、フォーラムなどを含み、典型的な企業サイト(brochureware)でも、インタラクティブなコミュニティサイトでも構築することができる。 ウェブサイトのコンテンツは、管理者の裁量で登録・匿名ユーザが寄稿することができ、様々な基準(日付、カテゴリー、検索など)で訪問者に対してアクセスさせることができる。Drupalコアはさらに、コンテンツの分類や、アクセスしやすいキーワードで「タグ付け」することができる、階層的なタクソノミー (taxonomy) システムを備えている。 Drupalはバージョン単位のコア機能のアップデートについて、詳細な変更履歴を保持している[8]。 コア・モジュールDrupalコアはさらに、コアのみで作成したウェブサイトの標準の機能性を、管理者が拡張することのできる「コア・モジュール」を備えている。 コアのDrupalディストリビューションは、以下を含む多くの機能を提供している。
コア・テーマDrupalコアは審美的なルック・アンド・フィールをカスタマイズできる、いくつかの「コア・テーマ」を備え、管理者はこれらのテーマを専用メニューから選ぶことができる。 Drupalコア5.0から導入された "Color" モジュールは、ウェブブラウザのインタフェースを通じて特定テーマの配色を変更できるようにする。この機能はプログラミングの知識を持たない普通のユーザでも、より高度なカスタマイズができるように追加された。 翻訳2008年2月の時点で、Drupalインタフェース用の翻訳はデフォルトの英語に加え、44カ国語が利用可能となっている[9]。いくつかの言語は右から左へと読まれる(例えばアラビア語やヘブライ語)。Drupal 6は多言語におけるコンテンツおよびコンテンツ管理に対し、より一層のサポートを提供する。 自動アップデート通知バージョン6.0から、寄贈されたモジュールやテーマ、あるいはDrupalコア自体の新しいバージョンが利用可能になるとき、Drupalは自動的に管理者へ通知できるようになった。これはインストール済みのDrupalを、最新の機能やセキュリティ修正で最新式の状態に保つのを補助する機能である。 コア・リリースには含まれていないが、バージョン5.x用にも同等の機能を提供するモジュールがある。 Drupalコアの拡張Drupalコアは、APIを通じて内部的にアクセスされる「フック」と「コールバック」システムを備えた、モジュール式であるように設計されている。[10]。この設計は、サードパーティーによる「寄贈された」(しばしば "contrib" と省略される)モジュールやテーマが、Drupalコアのコードを変更せずにDrupalのデフォルト動作を拡張したり、置き換えられるようにする。 コントリビュート・モジュールやテーマからDrupalコアのファイルを隔離するDrupalのモジュラー式設計は、柔軟性と安全性を増大し、Drupalの管理者がサイトのカスタマイズを上書きすることなく、Drupalコアの新しいリリースにきれいにアップグレードできるようにする[要出典]。この分離を維持するため、Drupalの管理者はDrupalコアのソフトウェアを変更することは避けるよう指示されている。 コントリビュート・モジュールDrupalのコントリビュート・モジュールは、イメージ・ギャラリー、カスタムのコンテンツ・タイプやコンテンツ・リスト、WYSIWYGエディタ、プライベート・メッセージング、サードパーティー統合ツール等々、様々な機能を提供する。Drupalウェブサイトには、Drupalのコミュニティによって開発・寄贈された2147[11](2008年6月1日現在)のフリーなモジュールがリストされている。 典型的なDrupalの設置では、以下の2つのモジュールが特に重要となる:[要出典]。
CCK APIはDrupal 7でコア・モジュールに統合され、Views(ユーザインタフェース以外の部分)はDrupal 8でコアに統合された。 コントリビュート・テーマコントリビュート・テーマは、Drupalで構築されたサイトのデフォルトのルック・アンド・フィールの適応や交換を行う。 Drupalのテーマは、一般的なサードパーティー製テーマデザイン・エンジンによってもたらされる、標準フォーマットを使用する。多くのDrupal用テーマは、PHPTemplateエンジン[14]や、それほどでもないがXTemplateエンジン[15]で書かれている。いくつかのテンプレートではハードコードされたPHPを使用する。 Drupalのテーマ・システムの初期バージョンは、MamboやJoomla!、あるいはPloneのテーマ・システムより設計指向型でなく、より複雑であるために批判[16]されたが、PHPTemplateとXTemplateエンジンのDrupalへの統合ではこれらの懸案事項のいくつかに取り組まれた。[要出典]新しいDrupal 6のテーマ・システムは、PHPからHTML / CSSをさらに分離しようとする試みでテンプレートエンジンを活用する。新しいDrupal開発モジュール "Devel" は、Drupal 6を使用するテーマ作成者へ支援を提供する。 批評オブジェクト指向の欠如とその後の改善Drupalはもっぱら、オブジェクト指向プログラミング (OOP) ではなく、手続き型プログラミングが用いられる。DrupalはいくつかのOOPの特徴に近づけてはいるが[17]、OOP自体の欠如は以下のことをもたらす。
Drupalの擁護論者は、PHPのOOP言語機能は直接実装されていない(PHPバージョン4.xとの互換性を保証するため)にもかかわらず、OOPとアスペクト指向プログラミング(AOP)の原則がDrupalの設計には存在すると反証する[17]。これはDrupalコアの将来のバージョンに移行するのに役立つが、それはバージョン7を皮切りに、PHP5によって提供されるOOPを活用し始めるであろう。Drupal 7は以前のPHPリリースと後方互換ではなくなるであろう。[20] セキュリティ対策の記録2008年1月から5月まで、Drupalコアで5つのセキュリティ脆弱性が報告され、修正された[21]。また、ユーザから寄贈された2147のモジュールのうち、25のモジュールでセキュリティホールが発見され、修正された[21]。 セキュリティホールが発見されるとともに、Drupalコアは規則的に新しいバージョンへと更新される。Drupalサイトの管理者は、“Update Status”モジュールによってこれらの新しいリリースを自動的に通知される[22]。さらに、Drupal.orgは、セキュリティ告知メーリングリスト、全セキュリティ勧告の履歴[23]、セキュリティ・マニュアル[24]、最新のセキュリティ勧告のRSSフィード[25]を保持する。 ディストリビューション(配布パッケージ)カスタマイズされたDrupalのディストリビューションには、いくつかの再パッケージ化されたサードパーティー製モジュールが含まれ、DrupalとvBulletinが統合されたvbDrupalを含むいくつかのディストリビューションでは、徹底的な変更が加えられている。 ハワード・ディーンの2004年のアメリカ大統領選挙戦を支援する、多くの独立したウェブサイトのホストとして機能したDeanSpaceには、Drupal 4.2[26]が使用された。ディーンの選挙運動終了後、DeanSpaceは成長してCivicSpace(コミュニティの内部で集団行動をできるようにし、結束的に遠隔地の後援者グループを結ぶ、Drupalに基づく草の根組織化プラットフォーム)となった。このようにCivicSpaceは、もとはDrupal 4.2に基づいた派生ディストリビューションである。 CivicSpaceにおける多くの新機軸が、逆にDrupalプロジェクト自体に組み込まれた[27]。非営利団体や政治運動に特に有用な機能は、Drupal 5.0以上で動作するCiviCRMモジュールで提供されている。 ディストリビューションは、サードパーティー製モジュールであらかじめカスタマイズされ、特定タイプのウェブサイト(例えば、オンライン・ストア、音楽レビューサイト、ブログサイトなど)向けに設定済みの、「あらかじめ作られた」Drupalインストレーションを頒布するために提案された。Drupal 5.xでは、特定の目的に合わせてある「インストール・プロフィール」のセットを提供し、この方向を目指している[28]。
コミュニティDrupalはユーザと開発者の大規模なコミュニティを所有する。Drupal.orgでは300,000を超えるユーザ・アカウントが作成され、2000人以上が開発者アカウントに登録した。[29]。最近の大きなカンファレンスDrupalcon Boston 2008では800人以上を集めた[30]。 多くの活動的なフォーラム[31]、メーリングリスト[32]、ディスカッション・グループ[33]があり、さらに、Freenodeネットワーク上でいくつかのIRCチャネルを運営している[34]。 関連項目脚注
より詳しい文献
外部リンク |