ダウンロード サンプルソース (2.9 KB)
PHP Rulesのインストール方法と使用方法を学びましょう。PHP Rulesを使用すると、条件ロジック文をソースコードから分離し、独立して管理できます。本記事では、PHP Rulesのインストールおよび独自のルール作成方法や、データの評価方法を説明します。
はじめに
HP Rulesは、条件ロジック文をソースコードとデータベースから分離することを可能とするルールエンジンで、条件ロジックを再利用可能なファイルに配置することにより、それらを独立して定義および管理できるようにします。
本記事では、以下の方法について説明します。
- PHP Rulesをインストールし、テキストファイルまたはデータベースに格納されたルールを実行する
- 特定のケースから始めて、独自のルールを作成する
- テキストファイルに格納されたルールを評価する
- データベースに格納されたルールを評価する
PHP Rulesのダウンロードとインストール
PHP Rulesは、ここからダウンロードできます。そのページの一番下に[Download and install PHP Rules](PHP Rulesのダウンロードとインストール)というタイトルのセクションがあります。以下の手順に従って、PHP Rulesをインストールします。
- アーカイブrules.zipをダウンロードします。
- アーカイブを
htdocsディレクトリにunzipします。 - パス
htdocs/rules/system/application/configにおいて、ローカルなパラメータに基づいてデータベースを設定します。 - ホスト名、ユーザー名、パスワードなどを設定します。
- MySQLに「rules」という名前の新しいデータベースを作成します。
- パス
rules/index.phpで、スクリプトindex.phpを実行します。 - 2つの例をインストールするには、[install wizard]リンクを選択します(図1参照)。
- 最後に、[Install the Demo Database](デモデータベースのインストール)ボタンをクリックします(図2参照)。
![図1 PHP Rulesのインストール:[install wizard]リンクをクリックして、PHP Rulesをインストールする](http://cz-cdn.shoeisha.jp/static/images/article/4382/01s.gif)
http://localhost/rules/index.php/rules/install/dbのページには、図3に示すように2つの例へのリンクがあります。

PHP Rulesの使用
2つの例が示すように、命題結果を得るには、まずRuleファイルとRuleContextファイルを作成する必要があります。Ruleファイルは、命題、演算子、変数によって記述された、事実を表す簡単な文で構成されます。RuleContextファイルには、プレーンテキストとして保存されているか、またはデータベース内に格納されたルールに対して、テストしたいデータが含まれます。Ruleファイルは、RuleContextファイルを評価し、RuleContextファイル内の情報がRuleを満たすかどうかを示すBoolean値を返します。
本記事では、ルールファイルが例に対応しています。本記事のサンプルコードはすべてダウンロードすることができます。2つのテキストファイルSuitableForScholarship.rulおよびSuitableForScholarship.txt.conと、リレーショナルデータベースファイルSuitableForScholarship.sql.conは、rules/dataディレクトリに格納されています。これらのルール例では、学生が奨学金の受給に適しているかどうかを判断するために、テキストファイルとデータベースの両方に格納されたRuleContextデータに対するテストを行います。奨学金を得るために学生が満たすべきルールは、以下のとおりです。
- 学生の年間平均成績が9.5
- または、学生が全国コンテストに出場し、かつ、優勝した経験がある
- 学生が高校に在籍している
- 学生の両親が、学生が奨学金を申請することに同意している
上記のルールを構成するRuleファイルは、以下のSuitableForScholarShip.rulのようになります。
# SuitableForScholarShip.rul # Rule establishing when a student can # gets an international scholarship studentAnnualAverage EQUALS 9.5 studentIsParticipatingToContest IS true studentIsGettingFirstPrize IS true AND OR studentIsInHighschool IS true studentParentsAreAgree IS true AND AND
ルールでは、大文字と小文字が区別されます。「is TRUE」、「Is True」、「equals」など、ルールのキーワードやフレーズの大文字と小文字を間違えると、エラーが生じます。
SuitableForScholarShip.rulファイルは、「.rul」という拡張子が付いたプレーンのテキストファイルであることに注意してください。ルール自体は、逆ポーランド記法(RPN)で記述します。RPNについては、ここを参照してください。
これらのルールをボトムアップに「変換」すると、次のようになります。
(studentParentsAreAgree AND studentIsInHighschool) AND
((studentIsGettingFirstPrize AND studentIsParticipatingToContest) OR
studentAnnualAverage)
本記事の2つの例では、同一のSuitableForScholarShip.rulファイルを使用しますが、RuleContextファイルが異なります。
この記事は参考になりましたか?
- japan.internet.com翻訳記事連載記事一覧
- この記事の著者
-
japan.internet.com(ジャパンインターネットコム)
japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.com や EarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
Octavia Andreea Anghel(Octavia Andreea Anghel)
経験豊富なPHP開発者。現在は、国内外のソフトウェア開発コンテストに参加するプログラミングチームの主任トレーナーを務める。国レベルの教育プロジェクト開発のコンサルティングも担当している。共著書に『XML technologies?XML in Java』があり、XML部分の執筆を担当。PHPやXML...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア

