復習
23日間において、私たちはsymfonyとPHP 5でweb 2.0アプリケーションを構築してきました。昨日はaskeet開発の最後の段階で、完全な国際化対応しました。www.askeet.comをブラウザで訪れれば、symfonyによるおよそ3日(24時間)の仕事の結果を見ることができます。ご覧の通り、アプリケーションはあなたのチョコレート、sex、天文学、PHPプログラミングの質問を回答する準備ができています。
しかし、それよりもaskeetはオープンソースのプロジェクトであり、次に来る内容は、長い話になります。
使う
askeetのWebサイトは一般公開されています。askeetを宣伝しあなたの友人と身内にこのサイトの話ができます。いくつかのテスト投稿は削除されますが、既存の多くの質問とユーザーアカウントはそのままです。askeetは回答を見つけるためのすばらしいツールです。多くのユーザーが訪問してくれたらですが。そういうわけで噂を広めましょう。
アカウントの公開作業は速くて簡単で、ニックネームとパスワードとEメール以外は要求されません。質問に対する興味を明らかにすることができ、新しい質問し回答を評価することができます。Eメールアドレスはいかなる広告目的にも使われることはありません。
RSSフィードを購読して、最新の質問もしくはあなたの質問に対する最新の質問の情報が通知されるようにしてください。
Paypalアカウントにユーザープロファイルがリンクされているのであれば、askeetはお金儲けの手段にもなります。
全般的に、askeetを毎日使わない理由はありません。あなたがサイトをブックマークして日常的に訪問し、回答と質問を投稿してくださるのであれば、私たち開発者はとても喜びます。
インストールする
askeetはWebサイトというよりもオープンソースのプロジェクトです。今日の時点で、すでにaskeetはダウンロード可能で、どこにでもインストールできます。今日のバージョンは1.0とタグづけされ、利用すること、改造すること、カスタマイズすること、およびサードパーティのアプリケーションに統合することは自由にできます。
技術的に可能な理由はaskeetはPHP 5とsymfonyによって構築されているからであり、法律的に可能な理由はaskeetはオープンソースのプロジェクトでありMITライセンスの元で公開されているからです。
ダウンロードする
askeetをインストールする方法には2つの選択肢があります:
- 公式サイトのsymfony-project.orgから.tgz形式のアーカイブをダウンロードする
- SVNリポジトリにある1.0リリースからあなた自身のaskeetフォルダにチェックアウトする
symfonyプロジェクトを用意しましたら、Webサーバーを構成すると同時に動かす準備をしてください。
note
全ソースはaskeetのtracサイトで閲覧できます。
ドキュメント
24回に渡るアドベントカレンダーチュートリアルはsymfonyの公式サイトで読めます。
askeetを外国語に翻訳したいのであれば、symfonyのSubversionリポジトリでチュートリルのMarkdownバージョンが見つかります。開発者はaskeetチュートリアルの翻訳をリポジトリで喜んでホストします。symfonyのサイトはメディアを含めてシンタックスハイライトを行うMarkdownコンバーターを使用しています。そしてMarkdownバージョンのファイルはUTF-8で保存して送信してください。そして開発者はそれを公開します。
note
翻訳する前に、二人の人間が同時に翻訳を始めないようにaskeetフォーラムに投稿してください。すぐに公開できるように、翻訳した章を1つずつコミットしてください。
ファイル構造
askeetプロジェクトのアーカイブを解凍したあとで、symfonyプロジェクトの古典的なファイルのツリー構造ディレクトリのりストを入手できます。symfony bookのファイル構造の章で詳細が解説されています。
1.0のリリースにおいて、askeetプロジェクトは1つのアプリケーション('frontend
'と呼びます)と11のモジュールを保有します:
modules/ administrator answer api content feed mail moderator question sidebar tag user
データモデル
askeetはMySQL、PostgreSQL、Oracle、MSSQLおよびCreoleのドライバーが存在するすべてのデータベースと互換性があります。1.0のリリースにおけるaskeetのアプリケーションデータモデルは次の通りです:
askeet/data/sql/lib.model.schema.sql
に存在するSQLクエリはデータベースにテーブルを追加できます。
askeet/data/fixtures/
にテストデータの一式があります。データベースに投入するためにこれらを使いたいのであれば、次のコマンドを実行します:
$ php batch/load_data.php
...プロジェクトのrootディレクトリからです。
貢献する
askeetアプリケーションは生きているオープンソースのプロジェクトです。そういうものとして、私たちは改善を続けることを望みますし、そのためにみなさんの助けを必要とします。
askeetはsymfonyプロジェクトの開発リーダーでもあるFabien Potencierによって開発されました。フレームワークがすでに重要な仕事の量を象徴するようになったので、プロジェクトを活動的にするためには熱狂的なaskeetの利用者の方からの貢献が必要です。たくさんやることがあります!askeetへの貢献に興味がある開発者でしたら、次のTODOリストをご覧ください:
- 追加された機能:
- 複数のプレゼンテーション用の代替デザイン。ほとんどがグラフィカルデザインとCSSコーディングの仕事です。
- ユーザー投稿のCaptcha。単純な質問(たとえば"一つの手には指は何本ありますか?"投稿に対して自動化スパムを避けるためです。
- 大きな誤植を避けるために投稿する前の質問のプレビュー機能
- Eメールによるユーザー投稿のお知らせ(オプション)
- 自動ログイン(cookieよる)
- モデレータ用のRSSフィードのレポート
- ユーザープロファイルページでの投稿/興味のAjaxページ分割
- 質問のフロントページが経時変化する人気抽出アルゴリズム
- ...
- プロジェクトの強化:
- ユニットテスト
- PHPdoc形式のコードドキュメント
- インストールマニュアル
加えて、検知・追跡・修正するためのがあります。
強化とバグ修正の提案には、askeetのチケットシステムを使用します。プロジェクトの定期的なタイムラインから、askeetのすべての変更を追跡できます。
すべての貢献を歓迎します。プロジェクトをよく理解している定期的な貢献者にはすぐにSVNリポジトリにコミットする権限を与えます。
最後に、askeetに関して討論をしたい場合は、symfony公式サイトのaskeetのフォーラムセクションか、 trac.askeet.com/trac/wiki上の専用のwikiかを選ぶことができます。
謝辞
Fabien Potencier (ファビアン・プゥトンシェ - askeetとsymfonyの開発リーダー)
François Zaninotto(フランソワ・ザニノット - チュートリアルの筆者)は英文の校正をするためにチュートリアルの再読したときに助けてくださったJohn Christopher(ジョン・クリストファ)氏に感謝します。Bruno Klein(ブルーノ・クライン)氏にはaskeetのデザインについて、また24日間ブルーノ氏の奥様がすばらしい忍耐と寛容を示して下さったことに感謝いたします...
またお会いしましょう
チュートリアルはこんなところです。みなさんのために開発して書いたことは楽しかったです。私たち開発者はaskeetが継続し、多くの人がWebプロジェクトにsymfonyを使い始めることを望んでおります。
みなさんにメリークリスマス。
This work is licensed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License license.