はじめに

目次
このマニュアルについて
このマニュアルの構成
著者・訳者について

PEAR は、the PHP Extension and Application Repository を意味します。

このマニュアルについて

このマニュアルは、DocBook XML DTD を用いて XML で書かれ、 DSSSL (Document Style and Semantics Specification Language) をフォーマットに 使用しています。HTML バージョンのフォーマットに 使用されたツールは、James Clark により書かれた Jade と Norman Walsh により書かれた The Modular DocBook Stylesheets です。

このマニュアルの基本的な構成は、過去に行われた PHP ドキュメント作成グループの 偉大な成果に基づいています。詳細については、 PHP マニュアルについて を参照してください。

前のページ | ホーム | 次のページ
PEAR マニュアル |  | このマニュアルの構成

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists

General Mailing List

CVS Commits Mailing List

PHP Manual

Google

AllTheWeb

Print

Refresh


このマニュアルの構成

ここでは、PEAR マニュアルの構成やレイアウト・表記について説明します。 このマニュアルは主に以下の 6 つの部分から構成されています。

  • PEAR について

    PEAR とその機能に関する導入を示します。 たとえば、PEAR のインストールと使用方法、 サポートに関する一般的な情報、PEAR 関連して頻出する質問の回答などがあります。

  • デベロッパーズガイド

    PEAR パッケージの開発／リリースについての一般的な情報を示します。

  • PEAR コア コンポーネンツ

    コア PEAR クラスに関する文書を示します。 このコアなコンポーネントは、すべての PEAR クラスのベースとなっており、 PEAR ライブラリを汎用的に使用するには、その基本的理解が必要となります。 ここでは、PEAR 基底クラス、PEAR 管理、PEAR_Error オブジェクト、 システムコマンドについて記述します。 これらのクラスは、通常、すべての PHP ソース配布ファイルに付属しています。

  • パッケージ

    PEAR パッケージは数多くあり、さらに、その数は日々増え続けています。 そのほとんどは、デフォルトではインストールされません。 また、ほぼすべてのパッケージについて〔その概要や関連情報が〕文書化されています。 PEAR クラスをシステムへインストールする方法に関する情報については、 インストール に関するセクションを 参照してください。

    パッケージの各クラスについての文書には、パブリックに利用可能な関数に関する 基本的な情報が示されています。さらに、導入、利用可能な定数の一覧、 パッケージの使用方法といった付加的な情報が含まれていることもあります。 パッケージのソースファイル自体にも、付加的な情報が含まれている場合があります。

    各関数の説明には以下の要素のいずれかが含まれています。

    • 概要

      関数の構造とプロトタイプ。

    • 説明

      関数の動作に関する説明。

    • パラメータ

      関数の各パラメータの型と名前。 必須なパラメータおよびオプションのパラメータを列挙します。

    • 返り値

      関数の処理が失敗せずに完了した場合の返り値。

    • 例外・エラー

      関数の処理が失敗した場合に返される PEAR_Error オブジェクト。

    • 注意

      この関数に関する追加情報。たとえば、この関数をスタティックにコールすることが できるかどうかについて。

    • 参照

      関連する関数やマニュアルのエントリへのリンク。

    • 例

      関数またはクラスの使用例。

  • PECL パッケージ

    PECL パッケージは、C 言語で書かれた通常の PHP 拡張モジュールです。 ドキュメント構造は上記の PECL パッケージのセクションに基づきます。

  • PEAR への貢献

    PEAR パッケージを作成するための情報が記述されています。

前のページ | ホーム | 次のページ
はじめに | 上に戻る | 著者・訳者について

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists

General Mailing List

CVS Commits Mailing List


著者・訳者について

以下の方々に、本マニュアルのメンテナンスに協力いただいております。 この内のだれかに連絡を取りたい場合には、pear-doc@lists.php.netにメールを 書いてください。

  • Lorenzo Alberton

  • Gregory Beaver

  • Daniel Convissor

  • David Costa

  • Thomas V.V. Cox

  • Christophe Gesch?

  • Martin Jansen

  • Alan Knowles

  • Clay Loveless

  • Alexander Merz

  • Stefan Neufeind

  • Jon Parise

  • Tobias Schlitt

  • Stephan Schmidt

  • Mika Tuupola

  • Michael Wallner

  • Christian Weiske

(アルファベット順)

日本語への翻訳は、PEAR マニュアル翻訳プロジェクトにより行われています。 主な翻訳者を以下に示します。誤訳の指摘など、 訳者に連絡を取りたい場合には、日本 PHP ユーザ会の PHP-doc メーリングリスト を購読ください。

  • Rui Hirokawa

  • Tadashi Jokagi

  • Soshi Kido

  • Haruki Setoyama

  • Shoma Suzuki

  • Masahiro Takagi

  • Hideyuki Shimooka

  • Yusuke Hata

前のページ | ホーム | 次のページ
このマニュアルの構成 | 上に戻る | PEAR について

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR について

PEAR マニュアル
前のページ 次のページ

IPEAR について

目次
1 章 はじめに
2 章 インストール
3 章 サポート
4 章 標準コーディング規約
5 章 貢献
6 章 FAQ - 頻出する質問
前のページ | ホーム | 次のページ
著者・訳者について |  | はじめに

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


はじめに

PEAR マニュアル
前のページ 次のページ

第 1 章 はじめに

目次
PEAR とは?
PEAR マニフェスト

1999/11/21 に産声をあげた Malin Bakken に捧ぐ。

PEAR とは?

PEAR は、"PHP Extension and Application Repository" を省略したもので、 果物の梨と同じように（「ペア」と）発音します。PEAR の目的は、次のものを提供することにあります。

  • PHP ユーザを対象とする、オープンソースなコードの構造化されたライブラリ

  • コード配布およびパッケージ管理のためのシステム

  • PHP のコード作成に関する標準スタイル （こちらを参照）

  • PHP 拡張モジュール・コミュニティライブラリ (PHP Extension Community Library: PECL) （詳細はこちらを参照）

  • PHP/PEAR コミュニティをサポートするための Web サイト、 メーリングリスト、ダウンロードミラー

PEAR は、コミュニティーにより運営されるプロジェクトです。 管理機関は、PEAR Group です。 1999 年に Stig S. Bakken によって創設され、これまでに たくさんの方々 が参加しています。

PHP コードの構造化されたライブラリ

PEAR に含まれるコードは、「パッケージ」に分けられています。 各パッケージは、個有の開発チームを有する個別のプロジェクトで、 バージョン番号・開発サイクル・ドキュメント・他のパッケージとの関連 （依存性等）などは、それぞれ異なります。 各パッケージは、説明用のファイルを含め、gzip 圧縮された tar アーカイブ として配布されており、PEAR インストーラを用いてローカルシステムに インストールします。

パッケージには、ソースパッケージ（ソースファイルのみを含むパッケージ）と バイナリパッケージ（プラットフォーム依存のバイナリ、 ある場合はソースファイルも含むパッケージ）の 2 種類があります。 C コードを含むソースパッケージをインストールするには、 当然 C の開発環境が必要です。

PEAR では、（パッケージの分類・整理のために）パッケージツリーを定義しています。 パッケージ名の各パートが、ツリーの各「ノード」を表しています。 それぞれのノードは、分類が簡潔に記述されたもので、 パート間はアンダースコアで区切られます。 パッケージ名の例をあげると、"MP3_Id"、"Archive_Tar"、 "HTTP_Post" のようになります。

パッケージによっては、他のパッケージに依存性があり、そのことが明示的に示されているものもあります。 しかし、パッケージとそのパッケージツリーの「親」の間には 依存関係が存在するわけではありません （たとえば、"HTTP_Post" は、通常、"HTTP" とは独立です）。

パッケージツリー最上位にあるいくつかのノードは、「サブレポジトリ」と呼ばれ、 特別な機能を有しています。現在のところ、 PECL、Gtk がそれです。これらに関しては、上記とは別の規則が適用されます。 詳細については、各サブレポジトリに関する説明を参照してください。

さらに、スタイルガイド、すなわち PEAR 標準コーディング規約 (PEAR Coding Standards: PCS) が作成されています。 この規約により、複数の PEAR 開発者による共同開発が容易になり、 品質および移植性の向上、統一感のあるルックアンドフィールの API の提供に役立ちます。

コード配布およびパッケージ管理

PEAR パッケージはすべて pear.php.net のデータベースに登録された上で、アップロードされています。 オープンソースのサードパーティのパッケージについても登録およびアップロードが可能です。 クローズドソースのパッケージについては、PEAR インストーラによりインストールすることは可能ですが、 PEAR データベースは、オープンソースコード専用です。

pear.php.net は、ヒューマンフレンドリ (HTML) な形式、およびマシンフレンドリ (現在は、XML-RPC) な形式の双方で、PEAR データベースへのインターフェイスを提供しています。 パッケージのダウンロードは、プレーンな HTTP で行われます。 pear.php.net サイトが提供するその他の機能には、以下のものがあります。

  • ユーザアカウント管理 (CVS サーバに統合)

  • パッケージ管理

  • リリース管理

パッケージは、gzip 圧縮された tar ファイルで配布されます。 XML で書かれた定義ファイルが含まれていますが、この定義ファイルには、 パッケージ、ファイルのリストと役割、依存性といった情報が記述されています。

PHP 拡張モジュール・コミュニティライブラリ (PECL)

PECL

PECL（"pickle" と読みます）は、かつては PEAR のサブレポジトリで、 PHP 4 と一緒に配布する C 言語による PHP 拡張モジュールのためのものでした。 もっとはっきり言えば、PHP 本体からどこか別の場所に拡張モジュールを移したいということもあって、 PECL が作成されました。 PECL 拡張モジュールは、PEAR パッケージとして配布・インストールされますが、PEAR ではなく、 コーディング規約は PHP のものに従います。

PHP 本体から PECL に拡張モジュールを移動する手続きは、"pickling" と呼ばれます。

2003年10月より PECL は独立のプロジェクトとなり、PEAR 傘下では無くなりました （インフラは、まだ PEAR より借用しています）。 PECL についての情報は、PECL ホームページ を参照してください。 PEAR からの分離に伴って、その名称が、"PHP Extension Code Library" から、"PHP Extension Community Library" へ変更されました。

Gtk パッケージ

Gtk

Gtk パッケージは、 PHP-GTK プロジェクトの技術を 使用するソフトウエアを提供します。このサブレポジトリにあるコードは、 標準コーディング規約 に従っています。

前のページ | ホーム | 次のページ
PEAR について | 上に戻る | インストール

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


インストール

PEAR マニュアル
前のページ 次のページ

第 2 章 インストール

目次
はじめに
パッケージマネージャの取得
コマンドライン インストーラ
共有ホストでの PEAR のローカルコピーのインストール
手動インストール
CVS インストーラ
PECL パッケージのインストール

本章では、PEAR パッケージをインストールする方法について説明します。

はじめに

本章は、PEAR の 基本的構成 に関する知識を前堤としています。

PHP を標準インストールすると、PEAR インストールツールおよびそれに必要なものもすべてインストールされます。 PHP の最近のバージョンをインストールしているなら特に問題はないでしょう。 ./configure に --without-pear フラグを指定してコンパイルしない限り、 PEAR の基本部分は既にインストールされています。

PHP とは別に配布されているパッケージは、 PEAR パッケージマネージャを使ってインストールします。 このマネージャは、Debian の "apt-get" と似ています。 最近のバージョン (> 4.3.0) の PHP を使用している場合は、次節を読み飛ばしてもかまいません。 ただ、PHP 4.2.* 以前のバージョンを使用している場合は、 (次節に従い) パッケージマネージャを別途インストールする必要があります。

PEAR パッケージマネージャは、パッケージのインストール以外の仕事も行います。 新規パッケージの作成、インストール済みパッケージのレジストリ管理、依存性のチェックなどです。 そして、pear.php.net 上の XML-RPC サービスと通信してその他の作業を行うこともできるようになっています。

前のページ | ホーム | 次のページ
はじめに | 上に戻る | パッケージマネージャの取得

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


サポート

PEAR マニュアル
前のページ 次のページ

第 3 章 サポート

目次
メーリングリスト
WEB リソース
IRC の #PEAR

本章は、PEAR に関する質問がある場合にサポートを受ける方法を説明するものです。

メーリングリスト

概要

他の多くのオープンソースプロジェクトと同様に、サポートは メーリングリストを通じて行われます。 現在 PEAR に関しては、以下の 7 つのメーリングリストがあります（いずれも英語）。

  • 総合メーリングリスト (general list)

  • 開発者メーリングリスト (developers list)

  • 文書関連メーリングリスト (documentation list)

  • WEB 関連メーリングリスト (webmaster list)

  • CVS メーリングリスト (CVS list)

  • コア開発メーリングリスト (Core development list)

  • 品質保証メーリングリスト (QA list)

最初の4つのリストは、質問がある場合に助けとなるためのものです。 以下を読むと、どのリストが自分のニーズに合致するかがわかるでしょう。 CVS リストは、PEARにコードを寄与する人向けです。 リビジョン管理システム (CVS) へのすべてのコミットは、 このリストに内容が送信されます。 コア開発および品質保証リストは、PEAR の開発に参加したい方々のためのものです。

PEAR の各メーリングリストには、 こちらの WEB サイトで 登録できます。

総合メーリングリスト

PEAR 総合メーリングリストは、 PEAR のインストールや PEAR パッケージの使用に関する質問がある場合に使われる メーリングリストです。

PHP 自体の使用についての質問に対するサポートフォーラムではありません。 それには php-general@lists.php.net を利用ください。

開発者メーリングリスト

名前から判るとおり、このリストは PEAR の開発者が集まり、 決定を下したり、コードについての議論を行ったり、 関連する事項を扱ったりするためのものです。

あなたが PEAR の開発者ではない場合でも、以下の場合には 役にたつかも知れません。

  • PEAR の舞台裏で起こっていることを知りたい時

  • PEAR にコードを寄与したい時

  • ある PEAR パッケージにバグを見つけ、パッチを投稿したい時

このリストのアドレスは、 pear-dev@lists.php.net です。

文書関連メーリングリスト

このリストは、 PEAR のドキュメントやマニュアルに関するすべての事項を議論する場所です。

PEAR パッケージのドキュメントに関して何か援助をしたい場合、 御気楽にメールを投稿してください。

品質保証メーリングリスト

PEAR の全体的な品質の向上に興味のある者が 品質保証リストに参加しています。

品質保証チームは、常時、援助してくれる方を探しています。 興味のある方は、サインアップして、 本メーリングリストでそれを表明してください。

WEB 関連メーリングリスト

PEAR の WEB サイトに問題を見つけたり、サイトに関する質問がある場合は、 pear-webmaster@lists.php.net にメールしてください。

コア開発メーリングリスト

このリストは、 PEAR の各種インフラについて議論する場です。PECL や PHP 品質保証など PHP の他のプロジェクトの面々もメンバーとして参加しています。 というのも、 （PEAR インストーラや PEAR WEB サイトなどの）PEAR のインフラは、 他のプロジェクトにも関連しているからです。

特に以下のトピックを扱います。

  • PEAR WEB サイトの新機能について

  • PEAR インストーラの開発について

  • 各種の PEAR 標準の定義について

前のページ | ホーム | 次のページ
PECL パッケージのインストール | 上に戻る | WEB リソース

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


標準コーディング規約

PEAR マニュアル
前のページ 次のページ

第 4 章 標準コーディング規約

目次
インデント
制御構造
関数コール
関数定義
コメント
コードの読み込み
PHP コードタグ
ヘッダコメントブロック
CVS の使用
URL の例
命名規約
ファイルフォーマット
ベストプラクティス
サンプルファイル (標準の Docblock コメントを含む)

注意 PEAR 標準コーディング規約は、 PEAR の公式ディストリビューションに含まれるコードに適用されます。 コーディング規約 (Coding standards) は、開発者たちの間ではよく CS と略されます。この規約の狙いは、コードの一貫性を保つことと PEAR の開発者たちがコードを保守しやすくすることにあります。

インデント

空白 4 つのインデントを使用します。タブは使いません。 これにより、diff や patch、CVS history や annotations の際に問題が発生するのを避けることができます。

Emacs を使用する場合、indent-tabs-mode を nil に設定する必要があります。 Emacs を設定するモードフックの例を次に示します (PHP ファイルを編集する際に これがコールされるようにする必要があります)。
(defun php-mode-hook ()
  (setq tab-width 4
        c-basic-offset 4
        c-hanging-comment-ender-p nil
    indent-tabs-mode
    (not
     (and (string-match "/\\(PEAR\\|pear\\)/" (buffer-file-name))
          (string-match "\.php$" (buffer-file-name))))))

次に、同様なことを行う Vim ルールを示します。
set expandtab
  set shiftwidth=4
  set softtabstop=4
  set tabstop=4

およそ半角 75-85 文字ごとに改行して、可読性を確保することを勧めます。

前のページ | ホーム | 次のページ
IRC の #PEAR | 上に戻る | 制御構造

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


貢献

PEAR マニュアル
前のページ 次のページ

第 5 章 貢献

目次
はじめに
新しいパッケージを作成する
パッチの投稿
バグの報告
ドキュメントの記述と翻訳
ウイッシュリスト

この章では、PEAR に貢献する方法について説明します。

はじめに

PEAR はオープンソースプロジェクトであり、どんな人でも PEAR の改良に参加することができます。改良とは、コードを書くことだけを 意味するわけではありません。改良は、バグを報告したり、フィードバックを提供したり、 機能のリクエストをしたりすることも意味し、 金銭的なサポートを行うことまでも含まれます。

前のページ | ホーム | 次のページ
サンプルファイル (標準の Docblock コメントを含む) | 上に戻る | 新しいパッケージを作成する

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


FAQ - 頻出する質問

PEAR マニュアル
前のページ 次のページ

第 6 章 FAQ - 頻出する質問

目次
PEAR って何ですか？
古い版の PEAR はインストールされているが、 新しい版をインストールする権限がない時はどうすれば良いですか？
"No release with state equal to: 'stable' found for 'Packagename'" というエラーメッセージがパッケージのインストールの際に出るのですが？
PEAR に協力したいのですが、どうすれば良いですか？また、CVS へのアクセス方法は？
拡張モジュールを C 言語で書いたのですが、 それを PEAR に採用してもらうにはどうすれば良いですか？
なぜ PEAR は pear/ と pear-core/ に分かれているのですか？
どうして pear/ と pear-core/ でディレクトリ構造が違うの？
どうしてフラットなディレクトリ構造をとっているの？
実験的または不安定なものをコミットしてよいですか？
パッケージに、そのサンプルやテスト用のファイルは必要ですか？
似たような機能を持つ別のパッケージやクラスは認められますか？
PEAR について疑問があります。どこで質問すればいいですか？
require したパッケージが別のパッケージを読み込んでいます。 後者のパッケージが直接必要となった場合は、再び読み込むべきですか？
PEAR は Windows で動作しますか？
PEAR/PECL で使用できるライセンスは？
PEAR 標準コーディング規約で、なぜインデントはスペースのみなのですか？
windows 版 PHP 4.3.x にバンドルされている go-pear.php やパッケージが古いようですか？
PEAR マニュアルの翻訳にあたって、元の英語版の変更点の 追跡を楽にするツールはありませんか？
PEAR のサイトにログインすると変なエラーメッセージがでるのですが？
パッケージをインストールしようとすると "No handlers for package.xml version 2.0" と言われるのですが？
Windows で、カスタマイズしたフォルダにインストールできない

PEAR って何ですか？

こちら を参照してください。

前のページ | ホーム | 次のページ
ウイッシュリスト | 上に戻る | 古い版の PEAR はインストールされているが、 新しい版をインストールする権限がない時はどうすれば良いですか？

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


メンテナ入門

PEAR マニュアル
前のページ 次のページ

IIメンテナ入門

目次
7 章 はじめに
8 章 パッケージを提供するに値する場合
9 章 コミュニティーについて
10 章 公式投稿採択プロセス
11 章 メンテナンスされていないパッケージを引き継ぐ
前のページ | ホーム | 次のページ
Windows で、カスタマイズしたフォルダにインストールできない |  | はじめに

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


はじめに

PEAR マニュアル
前のページ 次のページ

第 7 章 はじめに

PEAR プロジェクトに新しいパッケージを提供しようと考えておられるならば、 このガイドを読むと、「正道を行く方法」で事を行うために必要な情報を得られるでしょう。

このガイドでは、まず、パッケージを提供するに値する場合とそうでない場合について説明します。 ついで、提供しようとしているパッケージが PEAR にフィットしているかどうか確認した後、 PEAR コミュニティーに参画する方法について記述します。 PAER の開発者コミュニティー内部での作業について理解いただいた後、 新パッケージを投稿し採択されるまでの公式のプロセスについて解説します。 パッケージに成功をもたらすコツについても可能な限り述べて行きます。

前のページ | ホーム | 次のページ
メンテナ入門 | 上に戻る | パッケージを提供するに値する場合

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


パッケージを提供するに値する場合

PEAR マニュアル
前のページ 次のページ

第 8 章 パッケージを提供するに値する場合

目次
提供するに値する場合
提供するに値 しない 場合

この章では、PEAR にパッケージを提供するに値する場合と、そうでない場合について述べます。 しかし、完全な記述ではないですので、よく判らない場合や、実際に PEAR へパッケージ提供を行う場合は、開発者メーリングリスト に参加してください。

提供するに値する場合

既存パッケージ のリストをご覧になるとわかるように、PEAR パッケージは、一般的な問題に対する （抽象的な）ソリューションを提供しています。ですから、特定のアプリケーションにだけ関連する問題を 解決するコードではなく、多くの (WEB) アプリケーションに共通する問題を 解決するようなコードが最も PEAR にフィットします。たとえば、

  • ネットワークプロトコルのサポート

  • 直感的でなかったり複雑であったりする PHP 拡張のオブジェクト指向ラッパ

  • XML の種々の方言をパースする

    XML をパースする機能をもつ PEAR パッケージについては、 カテゴリブラウザを参照してください。

パッケージがカバーする領域に係わらず、その API は できるだけ抽象化し（その一方、複雑になり過ぎないようにし）、 多くの場面で苦痛なく利用できるようにするべきです。

前のページ | ホーム | 次のページ
はじめに | 上に戻る | 提供するに値 しない 場合

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コミュニティーについて

PEAR マニュアル
前のページ 次のページ

第 9 章 コミュニティーについて

目次
他の PEAR 開発者とコミュニケートする
他の情報源

自身のコードを PEAR にフィットさせようと決めたら、PEAR コミュニティーに ぜひ参加してください。この章では、他の PEAR 開発者とコンタクトを取り、 将来にはオープンソースの仲間となれるよう、いくつかの方法を示します。 加えて、PEAR 内部での作業やルールについての詳細な情報源を紹介します。

他の PEAR 開発者とコミュニケートする

メーリングリスト は、PEAR のようなプロジェクトでは、 最も重要なコミュニケーションの手段です。 PEAR WEB サイト にリストされている通り、 多くの公開メーリングリストが運用されています。 手始めとしては、PEAR 開発者メーリングリスト pear-dev@lists.php.net が重要です。 このメーリングリストには、メンテナ達が集まり、パッケージの様々な点について議論を行っています。 また、新しいパッケージについて議論される場所でもあります。

PEAR のパッケージをメンテナンスしたい場合には、このメーリングリストに 参加することになっています (購読案内)。

注意 PEAR コミュニティーに参加すると、早い段階で、"pear-dev" という用語に出くわすでしょう。これは、PEAR 用語で、開発者メーリングリストの略称です。

IRC でのコミュニケーションを楽しんでいる者もいます。 EFnet のネットワークで #pear チャンネルが運用されています。このチャンネルには、アクティブな PEAR 開発者が定期的に 顔を出しています。しかし、真剣な質問や議論をする場合は、開発者メーリングリストに メールするべきです。

前のページ | ホーム | 次のページ
提供するに値 しない 場合 | 上に戻る | 他の情報源

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


公式投稿採択プロセス

PEAR マニュアル
前のページ 次のページ

第 10 章 公式投稿採択プロセス

目次
Step 1: 要求事項
Step 2: 議論の開始
Step 3: PEPr の使用
投稿内容の変更

PEAR の初期においては、新しいパッケージの投稿は、PEAR 開発者メーリングリストにメールを出すという略式なものでした。 時が経つにつれ、新たなパッケージの投稿の数も劇的に増加し、すべての投稿を把握することが 難しくなって来ました。

そこで、問題を解決するために、WEB ベースの投稿管理システムが構築されました。 そのシステムは、PEPr と呼ばれています。 "PEAR Proposal system" の略称で、スパイス（の胡椒）と同じように発音されます。

この章では、まず、PEPr を用いて投稿を行う際の要求事項とワークフローについて述べます。 ついで、実際に投稿する方法についての情報を提供します。 最後に、投稿が採択された後に行うべき事柄について説明します。

この章を読めば、すぐにパッケージを投稿することができることでしょう。

Step 1: 要求事項

投稿する 前 に行っておく必要のある事項は、以下の通りです。

  • パッケージの名称を決める

    各パッケージは、当然、それぞれ異なる名前である必要があります。 適切なパッケージ名はどうのようなものか"感じる"ために、 既存パッケージ一覧を 参照してください。

    パッケージ名の選択は、ある種の反復プロセスで、 投稿採択プロセス中に名前を変更することになるかも知れません。

  • パッケージの所属カテゴリを決める

    パッケージの名称がそれぞれ異なるということに関連していますが、 パッケージはカテゴリに所属する必要があります。 カテゴリは、パッケージブラウザに リストされています。

  • パッケージの説明を書く

    投稿するには、パッケージの説明が必要です。 この説明には、パッケージについて細部まで細かく記述する必要は無いですが、 少なくとも、基本的なコンセプトと機能の一覧については記しておくべきです。 パッケージが受け入れられたら、1行にまとめた概要と、全文の説明を 書くこととなります。

  • パッケージのライセンスを選択する

    各パッケージは、認定済みのオープンソースライセンスの基で利用許諾される 必要があります。オープンソースライセンスについて良く知らないのならば、 PHP ライセンスを選ぶと良いでしょう。 PEAR グループは、この件に関連して、 ライセンスについてのアナウンスメント (License Announcement) を発表しています。

  • サンプルと文書を書く

    サンプルや文書なしでは、PEAR 開発者がパッケージを評価することができませんし、 ユーザがパッケージを利用することもできません。

  • 依存性を示す

    他の PEAR パッケージや特定の OS や外部アプリケーションなど、 パッケージの実行に必要な外部要素を列挙し、依存性のリストを作成します。

    例 10-1依存性リストの例

    パッケージは、Linux でのみ動作し、DB パッケージ、および バージョン 1.8.4 以降の Log パッケージを必要とし、 PHP 4.3.0 以降でのみ動く場合、依存性リストは以下のようになります。

    Linux
DB
Log >= 1.8.4
PHP >= 4.3.0
前のページ | ホーム | 次のページ
他の情報源 | 上に戻る | Step 2: 議論の開始

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


メンテナンスされていないパッケージを引き継ぐ

PEAR マニュアル
前のページ 次のページ

第 11 章 メンテナンスされていないパッケージを引き継ぐ

PEAR のウェブサイト において 「メンテナンスされていない (unmaintained)」とされている パッケージの新しいメンテナになりたい場合、どのような 手続きが必要になるのかを以下の節で説明します。

  1. まず最初に、PEAR 品質管理 (QA) メーリングリスト で意思を表明します。 それまでに PEAR の活動に参加したことがない場合、あなた自身のことや なぜメンテナを引き継ごうと思ったのかについて簡単に 説明しておくとよいでしょう。

  2. QA チームは、あなたがメンテナを引き継ぐことが可能かどうかを判断し、 拒否する場合はその理由を説明します。許可された場合、もしあなたが まだ PEAR ウェブサイトのアカウントを持っていなければ、 アカウントを申請します。 PEAR グループがこのアカウントを承認した後に、QA チームは あなたをそのパッケージの主メンテナとして任命します。

  3. パッケージのソースが PHP の CVS リポジトリ内にある場合、CVS のアカウントも必要となります。CVS のアカウントは、 PHP ウェブサイト から申請します。申請フォームの purpose 欄には、 PEAR QA チームからアカウントを取得するように言われたということを 記入してください。そうすることによって申請が迅速に 処理されるようになります。CVS アカウントは PHP グループによって管理されているので、残念ながら PEAR 側にはこの手続きに対する権限があまりないのです。

    注意 もしすでに cvs.php.net の CVS アカウントを 保持している場合、必要な作業は、該当パッケージが存在する モジュールに対する "カルマ" を追加してもらうだけです。 カルマを申請するには、PEAR グループ宛てにメールを送ります (このメールの中でも、 あなたが QA チームとの間で事前に調整済みであることを 説明するようにしましょう)。

  4. すべてが順調に進めば、あなたはこれで、メンテナンスされていなかった パッケージの新しい主メンテナとなります。何か問題がある場合は、 QA メーリングリスト に問い合わせてください。

前のページ | ホーム | 次のページ
投稿内容の変更 | 上に戻る | デベロッパーズガイド

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


デベロッパーズガイド

PEAR マニュアル
前のページ 次のページ

IIIデベロッパーズガイド

目次
12 章 はじめに
13 章 開発者にとって PEAR が持つ意味
14 章 コードの提供
15 章 パッケージ定義ファイル package.xml
16 章 パッケージ定義ファイル package.xml、バージョン 2.0
17 章 パッケージのリリース
18 章 PEAR 開発のサポート
19 章 推奨事項
20 章 ドキュメントの作成
前のページ | ホーム | 次のページ
メンテナンスされていないパッケージを引き継ぐ |  | はじめに

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


はじめに

PEAR マニュアル
前のページ 次のページ

第 12 章 はじめに

目次
このテキストの目的
開発者による開発者のための PEAR ガイド

このテキストの目的

このガイドの目的は、 PEAR に何らかの貢献をしたいと考えている開発者に対して、 効率的に仕事を開始するための情報を提供することにあります。

ガイドの初めのパートでは、PEAR のコードを毎日の仕事で使用することで 開発者が得ることのできる利点について述べます。 次に、コードを PEAR に寄与する方法について示します。 最後に、開発者が PEAR プロジェクトをサポートする手段を示します。

前のページ | ホーム | 次のページ
デベロッパーズガイド | 上に戻る | 開発者にとって PEAR が持つ意味

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


開発者にとって PEAR が持つ意味

PEAR マニュアル
前のページ 次のページ

第 13 章 開発者にとって PEAR が持つ意味

目次
高品質なコード
コードをリリースする機会

高品質なコード

品質が高く、また PEAR 標準コーディング規約 に合致した コードの寄与だけを PEAR は受け入れています。 皆さんにとってこれは、 ほぼ首尾一貫した API を持ち、 同じ標準コンポーネントに基づいており、 共通のエラー報告メカニズムが利用可能であるようなコードを利用できる、 ということを意味しています。

上記は PECL に寄与されたコードには 当てはまりません。 PECL では、全コードは PHP の標準コーディング規約に従っています。

前のページ | ホーム | 次のページ
はじめに | 上に戻る | コードをリリースする機会

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コードの提供

PEAR マニュアル
前のページ 次のページ

第 14 章 コードの提供

目次
コードの提供にあたっての要求事項
コードの提供方法の実際
ドキュメントの書き方の実際

PEAR は、オープンソース 志向の開発者コミュニティーによって運営されています。 ですから、誰でも、本プロジェクトにコードを提供することができます。 それは、まったく新しいパッケージの作成でも、 既存のパッケージに対する改良であってもかまいません。 PEAR ではさらに、パッケージの品質を非常に高いレベルに保持することも目標としています。 そのため、コードの提供にあたっては、次に示す要求事項があります。

コードの提供にあたっての要求事項

コード自体およびパッケージの作者に対して、 いくつかの要求事項があります。

  1. 標準コーディング規約への合致

    新しいパッケージの作成か、既存のパッケージへの付加かに係わらず、 PEAR にコードを提供する場合は、 標準コーディング規約 に合致している必要があります。 標準コーディング規約というものが良いものかどうかについては 多くの議論がありましたが、絶対に必要なものであるとの決定に達しました。 さらに議論する意義はありません。

  2. 適切なライセンス

    各パッケージのライセンスは、認められているオープンソースライセンスの いずれかでなければなりません。ライセンスについてよくわからない場合は PHP ライセンス を選択しましょう。PEAR Group では ライセンスに関するお知らせ を公開しており、この件についての詳細を説明しています。

  3. 公開されているリポジトリからコードが取得できること

    パッケージの最新版のソースコードが、公開されている SCM (Source Code Management: ソースコード管理) システムから取得できなければなりません。そのようなシステムには、 例えば cvs.php.net にある CVS サーバ、Google Code の Subversion リポジトリや SourceForge のサイトなどがあります。 Google Code や SourceForge は、利用規約に従う限りは自由に使用できます。 cvs.php.net への書き込みアクセス権は、そのパッケージが PEAR パッケージとして承認されてから与えられます。

    この条件を指定する理由は、利用者や PEAR 開発者たちが 最新の (おそらくまだリリースされていない) コードにアクセスできる必要があることです。 それにより、バグの調査やパッチの提供が可能となります。

  4. 拡張可能で、"前方互換な" コード

    コードは、 拡張が可能で、新しい機能を将来に容易に追加できるものであるべきだ、 と言うことを常に意識に留めておいてください。 現在のコードとの後方互換性を破壊すること無しに 機能を拡張することが容易でないとしたら、 そのパッケージを PEAR へ投稿する前に、 より良い設計と実装について考えてみるべきです。

    それに関連しては、 オブジェクト指向プログラミングの基礎をよく理解することが有用でしょう。 PHP は、完全なオブジェクト指向のサポートには至っていませんが、 その知識はパッケージのコードを将来の拡張が可能な状態に保つ助けとなるでしょう。 オブジェクト指向プログラミングについては、 WEB 上にたいへん多くのリソースがありますし、 読書の楽しみを満たしてくれる多くの本も見つけられるでしょう。 お勧めとしては、 サンによる JAVA のホームページ で読むことのできる「 オブジェクト指向プログラミングの概念 （Object-Oriented Programming Concepts） 」 があります。

  5. 適切な形式でのドキュメント (プレインテキスト、docbook)

    コードには、次の形式の内のいずれかの適切なドキュメントが付属している 必要 があります。

    • Docbook XML

    • プレインテキスト

    ドキュメントを Docbook XML で書き、マークアップが適切なら、 そのドキュメントは、あなたが今読まれている 公式 PEAR マニュアル に 簡単に付け加えることが出来ます。

    注意 2003年8月以降、 phpDocumentor は、 コード中に書かれた API のドキュメントや 外部チュートリアル文書を、 PEAR で使用する XML DocBookに変換すること出来ます。 PhpDocumentor バージョン 1.2.2以降が必要です。 PhpDocumentor をインストールするには、 pear install phpDocumentor とします。 ソースコードから DocBook 出力を作成するには XML:DocBook/peardoc2:default コンバータを使ってください。 出力は、直接peardoc/lang/package ディレクトリ（ここで lang は en や fr 等）に生成されます。

    注意して欲しいのは、API ドキュメントだけでは十分ではないということです。 使用例や使用方法についてのチュートリアルも必要です。 ドキュメントの書き方 についての章に、さらに情報があります。

  6. .phpt もしくは PHPUnit 形式による回帰テスト

    バグによるフラストレーションを経験していない開発者はいません。 それはプログラミングにおける紛れも無い真実ですが、 幸運にも、バグを捕まえ消滅させ復活を防ぐためのシステムが存在します。 すなわち、回帰テストをすべての安定版リリースに含めるべきです。 というのも、 もしバグが発生した場合に、パッケージのデバグの助けとなるよう、 ユーザ自身が回帰テストを実行できるようにするためです。 .phpt 形式の回帰テストの例としては、 PFC DB パッケージがあります。 PHPUnit のテストの例としては、 Auth パッケージを ご覧ください。

  7. 提供者（つまり"あなた"）は、 パッケージのサポートを行っていく意思があり、 ほんの少しのバグ修正でも次バージョンを リリースすることを厭わない

    もし長期にわたるメンテナンスを行うつもりが無ければ、 コードを提供しても意義はほとんどありません。 PEAR は、PHP のパッケージの標準リポジトリであって、多くの責任が伴います。 メンテナンスとは、 メーリングリスト においてサポートを提供する以上のことを意味します。

    バグ修正を行うだけでなく、パッケージの設計スペックにあうならば、 ユーザからパッケージに対して提案・提供された有用な拡張を 取り入れることも必要です。 また、バグ修正が行われた新バージョンを 定期的にリリースすることも期待されます。 もし、パッケージのメンテナンスが長期間に渡って出来なくなる場合には、 PEAR 開発者メーリングリストにアナウンスし、 別の仮リードメンテナを任命するか、 パッケージが一時的にメンテナンスされない旨を皆に文書で知らせるかして、 さらに可能ならば、サポートとバグ修正を再び開始する大まかな時期についても 知らせることが求められます。

    警告

    リードメンテナが以後メンテナンスする意思がなく、 リードメンテナを引き継ぐ人もいない場合は、 コードが PEAR から削除されることがあります。

前のページ | ホーム | 次のページ
コードをリリースする機会 | 上に戻る | コードの提供方法の実際

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


パッケージ定義ファイル package.xml

PEAR マニュアル
前のページ 次のページ

第 15 章 パッケージ定義ファイル package.xml

目次
パッケージ定義ファイル package.xml の解説

パッケージ定義ファイル package.xml の解説

package.xml バージョン 1.0 は非推奨です

package.xml 1.0 は非推奨です。package.xml バージョン 2.0 を使用してください。 ドキュメントは package.xml 2.0 ドキュメント にあります。

パッケージ定義ファイル package.xml は、 その名が示す通り、ある PEAR パッケージについての情報が記載された 整形式の XML ファイルです。

このセクションでは、パッケージ定義に使用可能な要素について述べ、 自作のパッケージに対して定義ファイルを作成する方法について解説します。

PEAR_PackageFileManager パッケージを使えば、package.xml の作成が容易になります。 通常と同様、次のコマンドで PEAR_PackageFileManager をインストールできます。

$ pear install PEAR_PackageFileManager

使用可能な要素

package.xml のトップレベル要素は <package version="1.0"> です。 副要素として使用可能なものは次の通り。

  • <name>: パッケージの名称

  • <summary>: パッケージについての解説の短い要約

  • <description>: パッケージについての完全な解説

  • <license>: パッケージのライセンス (LGPL, PHP License など).

  • <maintainers>: パッケージのメンテナに関する情報

    • <maintainer>: メンテナ各人に関する情報 (複数回記述可能)

      • <user>: メンテナのユーザアカウント名

      • <role>: メンテナのパッケージ開発における役割 (lead, developer, helper のいずれか)

      • <name>: メンテナの本名

      • <email>: メンテナのメールアドレス

  • <release>: 現リリースに関する情報

    • <version>: リリースのバージョン番号

    • <state>: リリースの状態 (stable, beta, alpha, devel もしくは snapshot のいずれか)

    • <date>: リリースされた日時

    • <license>: コードに適用された ライセンス

    • <notes>: リリースノート

    • <filelist>

      • <file name="xxx" role="xxx" />: ファイル名

      • <dir name="xxx" [role="xxx"]>: サブディレクトリ名。このサブディレクトリには <file role="xxx"> 要素を再度含むことができます。

  • <deps>: パッケージの依存性のリスト

    • <dep type="xxx" rel="yyy" optional="yes">name</dep> : 依存性に関するより詳細な情報については 下記 を参照してください。

  • <changelog>: パッケージに関する更新履歴的情報

    • <release>

      • <version>: 対象リリースのバージョン

      • <state>: 対象リリースの状態

      • <date>: 対象リリースの日付

      • <notes>: 更新履歴の情報

使用可能な文字

要素内で使用可能な文字は A-Z および a-z です。 他の文字、たとえば ? など、 を使用するには、エンティティを用います（この場合は &eacute;）。

package.xml ファイルを PEAR_PackageFileManager を使って作成する場合には、 インストールされた PEAR をバージョン 1.4.0a2 以降にしておくと良いでしょう。 FileManager が自動的に処理しますので、使用可能な文字について心配しなくてすみます。

package.xml ファイルを手動で作成する場合は、使用するエンティティを 自ら入力する必要があります。 一般的に良く使われるエンティティについては、 http://www.evolt.org/article/A_Simple_Character_Entity_Chart/17/21234/ を参照してください。 必要な文字が無い場合は、 http://www.oasis-open.org/docbook/xmlcharent/0.1/index.shtml や他のリストも参照してください。

検証

package.xml の検証には、 libxml2 に同梱されているツール xmllint を使用します。

xmllint --dtdvalid http://pear.php.net/dtd/package-1.0 --noout package.xml

パッケージ定義ファイルの作成

例 15-1基本的な package.xml

<?xml version="1.0" encoding="ISO-8859-1" ?>
<package version="1.0">
 <name>Money_Fast</name>
 <summary>Make money fast.</summary>
 <description>
  This package helps you to make money pretty fast.
 </description>
 <license>PHP License</license>
 <maintainers>
  <maintainer>
   <user>foo</user>
   <name>Joe Foo</name>
   <email>foo@example.com</email>
   <role>lead</role>
  </maintainer>
 </maintainers>

 <release>
  <version>1.0</version>
  <date>2002-05-27</date>
  <state>stable</state>
  <notes>
   This is the first release.
  </notes>
  <filelist>
   <dir name="/" baseinstalldir="Money">
    <file role="php" name="Fast.php" />
   </dir>
  </filelist>
 </release>
</package>

この package.xml は、必要な要素をすべて含んでおり、 テンプレートとして使用できます。 多くの場合、タグ間の文字データを変更するだけで、この例を自作のパッケージに適用できます。

例 15-2ネストしたディレクトリの例

<?xml version="1.0" encoding="ISO-8859-1" ?>

[...]

 <release>
  <version>1.0</version>
  <date>2002-07-23</date>
  <state>stable</state>
  <notes>
   This is the first release.
  </notes>
  <filelist>
   <dir name="/" baseinstalldir="Money">
    <file role="php" name="Fast.php" />
    <dir name="Calculator">
     <file name="Calculator.php" role="php" />
     <file name="Currency.php" role="php" />
     <file name="Stocks.php" role="php" />
    </dir>
    <dir name="docs">
     <file name="README.txt" role="doc" />
     <file name="tutorial.txt" role="doc" />
     <dir name="examples">
      <file name="NASDAQ.php" role="php" />
      <file name="DAX.php" role="php" />
     </dir>
    </dir>
   </dir>
  </filelist>
 </release>
</package>

この例では、便利な機能が使われています。パッケージ中に 同じタイプのファイルだけを含むディレクトリがある場合、 role 属性を <dir> タグに記述することで、 個別の <file> タグにいちいち記述しないですみます。

このセクションで得た知識に基づいて、 パッケージ定義ファイルを作成可能になったことでしょう。 この話題について、さらに疑問がある場合は、 メーリングリストで 質問してください。

ファイルの役割

<file> タグ中の type 属性により ファイルのタイプを指定します。これにより、ファイルがインストール される場所が決まります。

表 15-1指定可能な値

値 |  | インストール ディレクトリ
php | PHP ソースファイル | パッケージ名によって決定されます
ext | 拡張モジュール。ダイナミックライブラリ | PHP 拡張モジュールのディレクトリ、または PHP_PEAR_EXTENSION_DIR で定義されたディレクトリ
doc | ドキュメントファイル | {PEAR_documentation_dir}/パッケージ名/
data | パッケージ関連データファイル群(画像やデータ表など) | {PEAR_data_dir}/パッケージ名/
test | パッケージ関連テストファイル(ユニットテストなど) | {PEAR_test_dir}/パッケージ名/
script | パッケージ関連シェルスクリプト群 | PHP バイナリディレクトリ、または PHP_PEAR_BIN_DIR で指定されたディレクトリ
src and extsrc | C または C++ のソースコード | 直接はコピーされません - 拡張モジュールのビルドの際に使用されます

依存性の定義

PEAR パッケージのインストールの際に、PEAR パッケージマネージャに インストール先のシステム特性をチェックさせることが可能です。 インストールに当たって必要な（もしくは推奨される）システム特性を <dep> タグで定義します。

例 15-3依存性を明示した package.xml

次の例は、PHP 4.3.0 以降および XML_Parser 1.0 に対する 依存性を記述する方法を示しています。

<?xml version="1.0" encoding="ISO-8859-1" ?>

[...]
 </release>
 <deps>
  <dep type="php" rel="ge" version="4.3.0" />
  <dep type="pkg" rel="has" version="1.0">XML_Parser</dep>
 </deps>
</package>

type 属性

type 属性には、次が指定できます。

表 15-2type に指定可能な値

値 |  | 意味 | 例
pkg | パッケージ | 特定のパッケージに依存 | "HTML_Flexy"
ext | 拡張モジュール | 特定の PHP 拡張モジュールに依存 | "curl"
php | PHP | 特定の PHP バージョンに依存 | "4.2"
prog | プログラム | システムパス中にある特定のプログラムに依存（PEAR インストーラでは未サポート） | "latex"
os | オペレーティングシステム | 特定の（バージョンの）OS に依存 | "Linux"
sapi | サーバ API | 特定のサーバ API に依存（PEAR インストーラでは未サポート） | "Apache"
zend | Zend | 特定の Zend API バージョンに依存（PEAR インストーラでは未サポート） | "2"

警告

パッケージ定義ファイルの DTD では他のタイプもサポートするようになっていますが、 まだ実際に実装されるにいたっていません。

rel 属性

rel 属性には、インストール先のシステム特性との関連を指定します。

表 15-3rel に指定可能な値

値 |  | 意味 | 使用可能な type 属性
has | 保持 | インストール先のシステムが要求された特性を保持している。version 属性は無視されます。 | pkg, ext, php, prog, os, sapi, zend
eq | 合致 | インストール先のシステム特性が version 属性値と合致している。 | pkg, ext, php, prog, os, sapi, zend
lt | 未満 | インストール先のシステム特性が version 属性値より小さい。 | pkg, ext, php, zend
le | 以下 | インストール先のシステム特性が version 属性値以下である。 | pkg, ext, php, zend
gt | より大きい | インストール先のシステム特性が version 属性値より大きい。 | pkg, ext, php, zend
ge | 以上 | インストール先のシステム特性が version 属性値以上である。 | pkg, ext, php, zend
not | 衝突 | 依存性が本パッケージと衝突しており、共存できない。 version 属性は無視されます。 | ext, php

値を指定しない場合、 has が指定されたことになります。 rel 属性を用いるには PEAR 1.4.0 かそれ以降が必要です。

version 属性

version は、 rel 属性で比較されるバージョン値を指定します。

optional 属性

optional 属性は、 あるパッケージが絶対に必要なのではなく、 そのパッケージをインストールすることで機能が拡張される場合に使用します。 指定可能な値は、"yes" および "no" です。 optional 属性が指定されない場合は、 そのパッケージが絶対に必要であると看做されます。 optional="yes" を使用した場合、次のような インストールメッセージが出力されます。

$ pear install <package>
Optional dependencies:
Package `XML_Tree' is recommended to utilize some features.
Package `MDB' is recommended to utilize some features.

前のページ | ホーム | 次のページ
ドキュメントの書き方の実際 | 上に戻る | パッケージ定義ファイル package.xml、バージョン 2.0

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


パッケージ定義ファイル package.xml、バージョン 2.0

PEAR マニュアル
前のページ 次のページ

第 16 章 パッケージ定義ファイル package.xml、バージョン 2.0

目次
パッケージ定義ファイル package.xml の手っ取り早い解説
PECL 開発者向けの特別な情報
package.xml バージョン 2.0 のタグの詳細リファレンス

パッケージ定義ファイル package.xml の手っ取り早い解説

パッケージ定義ファイル package.xml は、 その名前からもわかるように、PEAR パッケージの情報を含む 整形式 XML ファイルです。バージョン 2.0 では、バージョン 1.0 に対して以下のような重要な拡張が施されています。

  • チャネルのサポート

  • バイナリ PECL パッケージのサポート (PEAR 1.4.0 では完全には実装されていません)

  • より具体的な依存性解決

既存のバージョン 1.0 の package.xml については、以下のコマンドにより ほぼ等価なパッケージを作成することが可能です。

$ pear convert

PEAR_PackageFileManager は、バージョン 1.6.0a1 以降で PEAR_PackageFileManager2 クラスによって package.xml 2.0 をサポートしていることに注意しましょう。

PECL 開発者向け: PECL 固有の機能についての詳細な情報は こちらをご覧ください。

すべての要素を含むファイルの例

<?xml version="1.0"?>
<package version="2.0" xmlns="http://pear.php.net/dtd/package-2.0"
    xmlns:tasks="http://pear.php.net/dtd/tasks-1.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
http://pear.php.net/dtd/tasks-1.0.xsd
http://pear.php.net/dtd/package-2.0
http://pear.php.net/dtd/package-2.0.xsd">
 <name>PEAR</name>
 <channel>pear.php.net</channel>
 <summary>1 行での概要説明</summary>
 <description>長めの説明文。
 この文は、リリース間で変わることはあまりありません。リリースノートには
 "notes" タグを使用します。
 </description>
 <lead>
  <name>Greg Beaver</name>
  <user>cellog</user>
  <email>cellog@php.net</email>
  <active>yes</active>
 </lead>
 <date>2005-02-26</date>
 <time>20:30:13</time> <-- 注意: <time> はオプションです -->
 <version>
  <release>1.4.0a2</release>
  <api>1.4.0</api>
 </version>
 <stability>
  <release>alpha</release>
  <api>alpha</api>
 </stability>
 <license uri="http://www.php.net/license">PHP License</license>
 <notes>
 リリースノートをここに記述します。
 複数行にまたがることも可能です。
 </notes>
 <contents>
  <dir name="/">
   <dir name="PEAR">
    <dir name="ChannelFile">
     <file name="Parser.php" role="php" />
    </dir> <!-- /PEAR/ChannelFile -->
    <file name="Dependency2.php" role="php">
     <tasks:replace from="@PEAR-VER@" to="version" type="package-info"/>
    </file>
   </dir> <!-- /PEAR -->
   <dir name="scripts" baseinstalldir="/">
    <file name="pear.bat" role="script">
     <tasks:replace from="@bin_dir@" to="bin_dir" type="pear-config" />
     <tasks:replace from="@php_bin@" to="php_bin" type="pear-config" />
     <tasks:replace from="@include_path@" to="php_dir" type="pear-config" />
     <tasks:windowseol/>
    </file>
    <file name="pecl.bat" role="script">
     <tasks:replace from="@bin_dir@" to="bin_dir" type="pear-config" />
     <tasks:replace from="@php_bin@" to="php_bin" type="pear-config" />
     <tasks:replace from="@include_path@" to="php_dir" type="pear-config" />
     <tasks:windowseol/>
    </file>
    <file name="pear.sh" role="script">
     <tasks:replace from="@php_bin@" to="php_bin" type="pear-config" />
     <tasks:replace from="@php_dir@" to="php_dir" type="pear-config" />
     <tasks:replace from="@pear_version@" to="version" type="package-info" />
     <tasks:replace from="@include_path@" to="php_dir" type="pear-config" />
     <tasks:unixeol/>
    </file>
    <file name="pecl.sh" role="script">
     <tasks:replace from="@php_bin@" to="php_bin" type="pear-config" />
     <tasks:replace from="@php_dir@" to="php_dir" type="pear-config" />
     <tasks:replace from="@pear_version@" to="version" type="package-info" />
     <tasks:replace from="@include_path@" to="php_dir" type="pear-config" />
     <tasks:unixeol/>
    </file>
    <file name="pearcmd.php" role="php">
     <tasks:replace from="@php_bin@" to="php_bin" type="pear-config" />
     <tasks:replace from="@php_dir@" to="php_dir" type="pear-config" />
     <tasks:replace from="@pear_version@" to="version" type="package-info" />
     <tasks:replace from="@include_path@" to="php_dir" type="pear-config" />
    </file>
    <file name="peclcmd.php" role="php">
     <tasks:replace from="@php_bin@" to="php_bin" type="pear-config" />
     <tasks:replace from="@php_dir@" to="php_dir" type="pear-config" />
     <tasks:replace from="@pear_version@" to="version" type="package-info" />
     <tasks:replace from="@include_path@" to="php_dir" type="pear-config" />
     <tasks:footask/>
    </file>
   </dir> <!-- /scripts -->
   <file name="package.dtd" role="data" />
   <file name="postinstall.php" role="php">
    <tasks:postinstallscript/>
   </file>
   <file name="template.spec" role="foo" />
  </dir> <!-- / -->
 </contents>
 <compatible>
  <name>FooPackage</name>
  <channel>pear.php.net</channel>
  <min>1.3.0</min>
  <max>1.5.0</max>
 </compatible>
 <dependencies>
  <required>
   <php>
    <min>4.2</min>
    <max>6.0.0</max>
   </php>
   <pearinstaller>
    <min>1.4.0dev13</min>
   </pearinstaller>
   <package>
    <name>Archive_Tar</name>
    <channel>pear.php.net</channel>
    <min>1.1</min>
    <recommended>1.2</recommended>
   </package>
   <package>
    <name>Foo</name>
    <uri>http://www.example.com/Foo-1.2.0.tgz</uri>
   </package>
   <extension>
    <name>xml</name>
   </extension>
   <os>
    <name>windows</name>
    <conflicts/>
   </os>
   <arch>
    <pattern>*-i?86-*-*</pattern>
   </arch>
  </required>
  <optional>
   <package>
    <name>PEAR_Frontend_Web</name>
    <channel>pear.php.net</channel>
    <min>0.5.0</min>
   </package>
   <package>
    <name>PEAR_Frontend_Gtk</name>
    <channel>pear.php.net</channel>
    <min>0.4.0</min>
   </package>
  </optional>
  <group name="remoteinstall" hint="パッケージをリモートの ftp サーバにインストールする機能を追加します">
   <package>
    <name>Net_FTP</name>
    <channel>pear.php.net</channel>
    <min>1.3.0RC1</min>
    <recommended>1.3.0</recommended>
   </package>
  </group>
  <group name="webinstaller" hint="Web ベースの PEAR インストーラ">
   <package>
    <name>PEAR_Frontend_Web</name>
    <channel>pear.php.net</channel>
    <min>0.5.0</min>
   </package>
  </group>
  <group name="gtkinstaller" hint="PHP-GTK ベースの PEAR インストーラ">
   <package>
    <name>PEAR_Frontend_Gtk</name>
    <channel>pear.php.net</channel>
    <min>0.4.0</min>
   </package>
  </group>
 </dependencies>
 <usesrole>
  <role>foo</role>
  <package>Foo</package>
  <channel>pear.example.com</channel>
 </usesrole>
 <usestask>
  <task>footask</task>
  <package>Footask</package>
  <channel>pear.example.com</channel>
 </usestask>
 <phprelease>
  <installconditions>
   <os>
    <name>windows</name>
   </os>
  </installconditions>
  <filelist>
   <install as="pear.bat" name="scripts/pear.bat" />
   <install as="pecl.bat" name="scripts/pecl.bat" />
   <install as="pearcmd.php" name="scripts/pearcmd.php" />
   <install as="peclcmd.php" name="scripts/peclcmd.php" />
   <ignore name="scripts/pear.sh" />
   <ignore name="scripts/pecl.sh" />
  </filelist>
 </phprelease>
 <phprelease>
  <filelist>
   <install as="pear" name="scripts/pear.sh" />
   <install as="pecl" name="scripts/pecl.sh" />
   <install as="pearcmd.php" name="scripts/pearcmd.php" />
   <install as="peclcmd.php" name="scripts/peclcmd.php" />
   <ignore name="scripts/pear.bat" />
   <ignore name="scripts/pecl.bat" />
  </filelist>
 </phprelease>
 <changelog>
  <release>
   <version>
    <release>1.3.5</release>
    <api>1.3.0</api>
   </version>
   <stability>
    <release>stable</release>
    <api>stable</api>
   </stability>
   <date>2005-02-26</date>
   <license uri="http://www.php.net/license/3_0.txt">PHP License</license>
   <notes>
 * fix Bug #3505: pecl can't install PDO
 * enhance pear run-tests dramatically
 * fix Bug #3506: pear install should export the pear version into the environment

   </notes>
  </release>
  <release>
   <version>
    <release>1.4.0a1</release>
    <api>1.4.0</api>
   </version>
   <stability>
    <release>alpha</release>
    <api>alpha</api>
   </stability>
   <date>2005-02-26</date>
   <license uri="http://www.php.net/license/3_0.txt">PHP License</license>
   <notes>
  This is a major milestone release for PEAR.  In addition to several killer features,
  every single element of PEAR has a regression test, and so stability is much higher
  than any previous PEAR release, even with the alpha label.

  New features in a nutshell:
  * full support for channels
  * pre-download dependency validation
  * new package.xml 2.0 format allows tremendous flexibility while maintaining BC
  * support for optional dependency groups and limited support for sub-packaging
  * robust dependency support
  * full dependency validation on uninstall
  * support for binary PECL packages
  * remote install for hosts with only ftp access - no more problems with
    restricted host installation
  * full support for mirroring
  * support for bundling several packages into a single tarball
  * support for static dependencies on a url-based package

  Specific changes from 1.3.5:
  * Implement request #1789: SSL support for xml-rpc and download
  * Everything above here that you just read
   </notes>
  </release>
 </changelog>
</package>

前のページ | ホーム | 次のページ
パッケージ定義ファイル package.xml | 上に戻る | PECL 開発者向けの特別な情報

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


パッケージのリリース

PEAR マニュアル
前のページ 次のページ

第 17 章 パッケージのリリース

目次
必要条件
パッケージ定義ファイルの検証
リリースの Tarball をパッケージする
Web インターフェイスを利用してパッケージをリリース
パッケージをリリースするために必要なステップ

必要条件

新しいリリースを行うためには、そのリリースが所属するパッケージが PEAR 開発者によって承認されており、 また、有効な PEAR ウェブサイトアカウントを所持していることが必要です。 この 2 つの条件についての情報は、 コードの寄与の章に 記載されています。

また、 PEAR グループの規則にも目を通しておいてください。 ここには、バージョン番号のつけかたやファイルの配置など、 このマニュアルで説明されていない重要な内容が含まれています。 さらに、この規則のほかにも数多くの RFC が存在します。 これらは、 終了した PEPr プロポーザル一覧の中の 'R' の欄にあります。'R' は RFC の 'R' です。 残念ながら、これらの文書はまだこのマニュアルに統合されていません。 これらの文書の内容について疑問のある方は、ぜひご質問ください。

前のページ | ホーム | 次のページ
<phprelease>、<extbinrelease>、<extsrcrelease>、<bundle> | 上に戻る | パッケージ定義ファイルの検証

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR 開発のサポート

PEAR マニュアル
前のページ 次のページ

第 18 章 PEAR 開発のサポート

目次
PEAR コミュニティーをサポートする方法

PEAR コミュニティーをサポートする方法

PEAR プロジェクトをサポートするには様々な手段があります。

バグの報告や修正

本マニュアルの "バグの報告" セクションに バグの報告と修正ついて述べられています。 「こちら」を参照してください。

パッケージの新機能

あるパッケージに対して、ほしい機能があれば、パッケージのメンテナに 連絡を取ってください。 PEAR の WEB サイトで、 パッケージリストを ブラウズし対象のパッケージを選択すれば、 メンテナが誰であるか分かります。 メンテナはパッケージ情報のページにリストされています。

メンテナンスされていないパッケージの新メンテナ

開発者がパッケージのメンテナンスをやめた場合は、 その仕事を引き継ぐことができます。 サポートの質問に答えたり、バグ修正やリリースサイクルの管理などを 行ったりする気が十分にあれば、前メンテナか 開発者メーリングリスト (developers list)へ 連絡を取り、パッケージをメンテナンスする意思を表明してください。

ウイッシュリストから物品を購入

すべての PEAR 開発者にとって、PEAR は自由時間に作業を行うプロジェクトです。 つまり、PEAR の開発から直接にお金を得ないということを意味しています。 あなた、もしくはあなたが勤める会社が、自らの製品に PEAR パッケージを使う場合でも、 もちろん無料で使用できます。 しかし、使用したパッケージの作者に何か称賛の意を表したいと思った場合に、 その作者が Amazon や他のインターネットストアで 公開しているウイッシュリストから何か購入するのは良いことです。 PEAR 開発者が、ウイッシュリストを公開しているかを調べるには、 アカウント情報ページに行き、 リストから対象の開発者を選択してください。 ウイッシュリストを公開している場合、詳細ページに表示されます。

前のページ | ホーム | 次のページ
Web インターフェイスを利用してパッケージをリリース | 上に戻る | 推奨事項

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


推奨事項

PEAR マニュアル
前のページ 次のページ

第 19 章 推奨事項

目次
なぜ推奨事項か？
PEAR パッケージ内での色表現

なぜ推奨事項か？

以下の推奨事項は、 開発者メーリングリストで 議論され同意された事項について記したものです。 これらは、標準コーディング規約のように必ず従うべき厳密なルールではありません。 共通の API スキームのガイドラインとなり、 相互運用性を高めることを意図するものです。 可能ならば、あなたのパッケージに於いても、以下に示す事項を考慮してください。

前のページ | ホーム | 次のページ
PEAR 開発のサポート | 上に戻る | PEAR パッケージ内での色表現

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


ドキュメントの作成

PEAR マニュアル
前のページ 次のページ

第 20 章 ドキュメントの作成

目次
DocBook XML 形式
良いドキュメントを書くコツ

ここでは、PEAR がサポートする形式でドキュメントを作成する方法について詳細に説明します。 読者としては、パッケージをメンテナンスしている PEAR 開発者および、 これから新しくパッケージを投稿しようと考えている方々を想定しています。

DocBook XML 形式

DocBook は XML の方言で、 様々なプロジェクトでドキュメントの管理に使用されています。 オープンソースのプロジェクトでの DocBook の使用例としては、 KDE や PHP のドキュメントがあります。 PEAR においても DocBook を使うこととしました。それにより、 PEAR パッケージの技術文書を作成するための強固な基礎が得られるものと 考えたからです。

DocBook を使うことのトレードオフとして、その使用が若干難しいということが挙げられます。 ドキュメントをテストするために、ツールをいくつかインストールする必要がありますし、 （それほど複雑でないにしても）XML の方言を覚える必要があります。 しかし、いったん DocBook の働きに慣れると、 DocBook によるドキュメント作成を楽しめるようになります。

Norman Walsh, Leonard Muellner 著、O'Reilly & Associates, Inc. 出版の書籍、 [DocBook: The Definitive Guide] は、DocBook を学ぼうとする人々にとって貴重な情報源です。 オンラインで 読むことができます。

是非、この書籍の "DocBook Element Reference" の章を読んでください。 すべての 要素について、 どの要素の親になれ、またどの要素の子になることが可能であるかなど、 詳細な情報が記載されています。

必要なソフトウエア

DocBook XML は（他の XML ファイルと同様に）通常のテキストエディタで編集できますが、 作成したドキュメントの妥当性を検証するためにソフトを幾つかインストールすると良いでしょう。 必要なソフトウエアとそのインストール方法については、 PHP Documentation HOWTO を参照してください。 ソフトウエアについて以外にも、この文書以上に役に立つ情報が数多く記されています （第 2 章は PHP 特有の事項についての情報を扱っているので、 読み飛ばすことができます）。

残念ながら、特定の環境では、ソフトウエアのインストールが難しい場合もありえます。 しかし、ソフトウエアを適切に動作させることが出来ないからといって、 ドキュメントを書かないことの言い訳にはなりません。 自動で peardoc を CVS からダウンロードしビルドする、 2 機のテストサーバがあります。 あなたの変更によって発生したパースエラーは、 ビルド後のログにて見ることができます。

Mika Tuupola によるビルド (log) (タイムゾーン: EET = UTC+2, EEST = UTC+3, 二時間おきに更新されます)
TAKAGI Masahiro によるビルド (log) (毎日 06:00 JST = 21:00 UTC に更新されます)

この自動ビルドによって、 加えた変更が実際のマニュアルでどのように見えるかをチェックすると良いでしょう。 PEAR の WEB サイトにアップされるマニュアルは、 週に一度だけ（日曜の ~12:00 UTC）ビルドされます。

警告

PEAR の WEB サイトにアップされるマニュアルは、週に一回ビルドされます。 この時、XML の妥当性チェック時にエラーが起きると、ビルドが失敗します。 ビルドが失敗すると、マニュアルが古いバージョンのままとなってしまいます。 ですから、常に テストビルドのログをチェックし、 変更が妥当であることを確認するようにしてください。 また、メインビルドが行われる (日曜 ~12:00 UTC) 直前のコミットは 控えてください。

必要なソフトが揃ったら、次に、PEAR の CVS リポジトリから マニュアルの XML ソースを取得します。

$ cvs -d :pserver:<user>@cvs.php.net:/repository login

[password]

$ cvs -d :pserver:<user>@cvs.php.net:/repository co peardoc

cvs.php.net のアカウントを持っていない場合は、ユーザ名として cvsread を使用します。 パスワードを聞かれたら、phpfi と入力してください。

上記を実行すると、./peardoc ディレクトリ内に 最新のソースのローカルコピー ("sandbox") が得られます。 あなたが、CVS に詳しく無いのならば、オンラインブック "Open Source Development with CVS" を参照すると、必要な情報が得られるでしょう。

ディレクトリ構造

作成されたディレクトリ peardoc を見れば概要が判ると思いますので、 ここでは、ディレクトリ構造の完全な詳細については述べません。 パッケージに関する文書を作成する場合には、はじめに peardoc/en/package/ ディレクトリを見ると良いでしょう。 ディレクトリ構造について、その他の質問がある場合は、 文書関連メーリングリスト (documentation list) でたずねてください。

ドキュメントの作成

DocBook によるドキュメントの作成について、くどくどと述べる代わりに、 すばやい理解ができるように "参考文献" を幾つか示します。

  • peardoc/authoring

    PEAR の CVS ツリーには DocBook XML のテンプレートが含まれており、 標準的な PEAR ドキュメントの記述構成を示しています。

    このテンプレートの簡単な利用法は次のようになります。 まず、ワーキングディレクトリにコピーして適切にリネームします。 パッケージのプログラムの実装に沿って編集し、 最後に、リポジトリのパッケージのディレクトリにアップロードします。

  • HTTP Request

    HTTP_Request は比較的小さいパッケージで、そのドキュメントは、 エンドユーザ向けにパッケージの基本的機能を解説する複数の文書で構成されています。 各機能の説明にあたっては、少なくとも 1 つのサンプルが示されています。 数個のメソッドしかない小さなパッケージは、 このようなタイプのドキュメントを作成すれば十分です。

  • XML Beautifier

    XML_Beautifier も比較的小さいパッケージですが、 さまざまなオプションを設定することが可能です。 これらのオプションについては、そのドキュメント中で解説されています。 加えて、(HTTP_Request と異なり) メソッドの API ドキュメントの他にも、いくつものサンプルが示されています。

  • DB

    DB は大規模なパッケージで、 そのドキュメントは、サンプルも含め良くできています。 DB のドキュメントは、peardoc/authoring に示された形式に適切に従っています。上のリンクは、CVS リポジトリ内の XML ソースへのものです。 HTML 変換後のもの を調べて見るのも有用でしょう。

上記の例の他にも、ローカルの CVS ツリーの peardoc ディレクトリには、ドキュメントが数多く詰まっています。 特に、peardoc/en/packages/ ディレクトリが参考になるでしょう。 また、CVS モジュールを web で見る こともできます。あなたが、今読んでいるこのファイルの生 XML は こちら です。

ドキュメントのテスト

GNU make を使用

DocBook のソースから人が可読な形式を生成するには、 上記ソフトが必要です。PEAR ドキュメンテーションシステムでは、 Unix スタイルの makefile を用います。

peardoc$ autoconf
peardoc$ ./configure --with-lang=en
peardoc$ make html

英語以外の言語をビルドする場合は、上記の en のところを対応する言語コードに 変更してください。

上記により、マニュアル全体の "生の" HTML が生成されます。 その結果は、html/ サブディレクトリに置かれます。

make test コマンドは、 XML が、構文的に正確でビルドが上手く実行されるか確認を行います。 可読形式の結果は生成しません。 make html ほどの実行時間は必要としません。

xmllint を使用

libxml2 ツールキット に含まれている xmllint プログラムを使用してテストを行うこともできます。 システム上で、 DSSSL/make のセットアップが 正しく動作しない場合に特に有用です。

DocBook ソースが正しく整形式であるかどうかの確認に加えて、 xmllint は、意味論的な正しさの確認も RELAX NG スキーマを用いて行うことができます。 DocBook 用のスキーマファイルは、docbook.org から ZIP 形式のパッケージで提供されています。 パッケージを peardoc ソースのディレクトリ下の relaxng/ ディレクトリに展開したら、 PEAR ドキュメントのルートディレクトリで次のように xmllint を実行します。

xmllint --valid --noout --relaxng relaxng/ manual.xml

部分的ビルド

ビルド処理にはかなりの時間が掛かります（ビルドのテストは十分高速です）。 そのため、デバックやテストの作業がたいへん面倒です。 ビルドの効率を高めるには、ドキュメントのルートディレクトリにある make-partial.php スクリプトを使用します。 このスクリプトは、対話的なコマンドラインスクリプトで、 マニュアルの必要な部分を選択的にインクルードすることができます。 次に示す例は、デベロッパーズガイドと HTTP パッケージの ドキュメントだけからなるマニュアルを生成するものです。 部分的なビルドにより、ビルドにかかる時間が劇的に減少します。

peardoc$ ./make-partial.php
Include about-pear? [NO]
Include guide-newmaint? [NO]
Include guide-developers? [NO] y
Include guide.developers.intro? [NO]
Include guide.developers.meaning? [NO]
Include guide.developers.contributing? [NO]
Include guide.developers.packagedef? [NO]
Include guide.developers.release? [NO]
Include guide.developers.supporting? [NO]
Include guide.developers.recommendations? [NO]
Include guide.developers.documentation? [NO] y
Include core? [NO]
Include packages? [NO] y
Include package.authentication? [NO]
Include package.benchmarking? [NO]
Include package.caching? [NO]
Include package.configuration? [NO]
Include package.console? [NO]
Include package.database? [NO]
Include package.datetime? [NO]
Include package.encryption? [NO]
Include package.fileformats? [NO]
Include package.filesystem? [NO]
Include package.gtk? [NO]
Include package.html? [NO]
Include package.http? [NO] y
Include package.images? [NO]
Include package.internationalization? [NO]
Include package.logging? [NO]
Include package.mail? [NO]
Include package.math? [NO]
Include package.networking? [NO]
Include package.numbers? [NO]
Include package.payment? [NO]
Include package.pear? [NO]
Include package.php? [NO]
Include package.science? [NO]
Include package.streams? [NO]
Include package.structures? [NO]
Include package.system? [NO]
Include package.text? [NO]
Include package.tools? [NO]
Include package.xml? [NO]
Include package.webservices? [NO]
Include pecl? [NO]
CONFIG_FILES=manual.xml CONFIG_HEADERS= ./config.status
creating manual.xml
/usr/bin/jade -wno-idref  -d html.dsl -V use-output-dir -t sgml ./phpdocxml.dcl manual.xml

ドキュメントの翻訳

ドキュメントの翻訳も重要な仕事です。 未翻訳な言語への翻訳を新たに行うことも歓迎ですし、 新しいドキュメントが作成された際には、それの翻訳が必要となります。 また、翻訳済みのドキュメントについても、英語版に変更が加えられると、 アップデートが必要となります。 翻訳を行う流れは、このマニュアルのリビジョンの追跡 のセクションを参照してください。

表 20-1 各国語版の翻訳用のテストビルド環境 (TAKAGI Masahiro によるもの)

言語 | ビルド | ログ | リビジョンチェック
フランス語 | Build | Log | Revcheck
ドイツ語 | Build | Log | Revcheck
日本語 | Build | Log | Revcheck

他に質問がありますか?

本章で、DocBook ドキュメントの作成についてのすべての疑問に答えられては いないかも知れません。 質問や何か問題がある場合は、pear-doc@lists.php.net にて、 PEAR ドキュメントチームに気軽に連絡を取ってください。 文書関連メーリングリスト (documentation list) に参加するには、 pear-doc-subscribe@lists.php.net へメールを送ってください。

前のページ | ホーム | 次のページ
PEAR パッケージ内での色表現 | 上に戻る | 良いドキュメントを書くコツ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR 1.4 の新機能

PEAR マニュアル
前のページ 次のページ

IVPEAR 1.4 の新機能

目次
21 章 Introduction
22 章 チャネル
23 章 Custom File Roles
24 章 Custom File Tasks
25 章 Post-installation Scripts
前のページ | ホーム | 次のページ
良いドキュメントを書くコツ |  | Introduction

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction

PEAR マニュアル
前のページ 次のページ

第 21 章 Introduction

The debut of PEAR 1.4.0 is very exciting. This chapter documents all of the differences between PEAR 1.3.x and the new features introduced in PEAR 1.4.

The most significant change in PEAR 1.4 is the addition of channels, a simple and effective method of distributing application development. This change has driven most of the other changes to PEAR, and in fact full application support is a major goal of this release.

In addition to channels, support for customization of the install process has been seriously enhanced with the addition of three essential features for application development:

  • Custom file installation roles in package.xml

  • Custom file tasks in package.xml

  • Post-installation scripts

前のページ | ホーム | 次のページ
PEAR 1.4 の新機能 | 上に戻る | チャネル

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


チャネル

PEAR マニュアル
前のページ 次のページ

第 22 章 チャネル

目次
channel.xml -- チャネル定義ファイル
XML-RPC 関数 -- XML-RPC 関数の API ドキュメント

PEAR チャネルは、開発したものを配布するための堅牢で効率的な仕組みを 提供します。 バージョン 1.4.0 で PEAR インストーラにチャネルのサポートが 追加されたことにより、PHP コードによるプロジェクトを PEAR インストーラで 配布することが以前に比べて簡単になりました。 PEAR チャネルにより、アプリケーションの開発者は pear.php.net あるいは その他のチャネルサーバを提供する場所から、パッケージを効率的に 使用できるようになります。 一方アプリケーションを利用する立場の人たちにとっては、インストールや 設定の手間を省くことになります。 あとは単に pear install channel/Packagename コマンドを 実行すればよいのです。

PEAR 1.4.0 より前のバージョンにおいては、複数のソースファイルからなるコードの 依存性を解決する唯一の方法は、それらを同梱してしまうことだけです。 これにはいくつかの問題がありますが、もっとも問題なのはコードのサイズが 膨れ上がってしまうことです。ちょっとしたバグ対応のためだけに、 利用者に面倒なダウンロード作業を強いてしまいます。

チャネルにより、アプリケーションの開発者は pear.php.net のパッケージ群 あるいは pear.example.com のパッケージその他を使用できるようになります。 ユーザは、pear インストーラを使用して必要なソースファイルだけを インストール/アップグレードします。 現状では、pear インストーラが本当に有用なのは PEAR パッケージを インストールするときのみです。 この問題 (およびその他の問題) のため、これまでは PEAR インストーラでインストールできる PEAR パッケージは ほんの少ししか公開されていませんでした。

PEAR 1.4.0+ は、アプリケーションを開発する上でのこれらの障壁をなくすことを 目的としています。

不完全なドキュメント

このドキュメントは未完成です。

前のページ | ホーム | 次のページ
Introduction | 上に戻る | channel.xml

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Custom File Roles

PEAR マニュアル
前のページ 次のページ

第 23 章 Custom File Roles

目次
Using a customized role in a package.xml
Defining a customized role for use in a package.xml

警告

As of PEAR version 1.4.3, the required format for custom file roles has been changed due to a minor security vulnerability. All custom file roles must now define a Role.xml file in order to properly declare a custom file role. See the example below for more information.

One of the programming features that the PEAR installer enforces is the separation of files into separate categories, and the important idea that files of a similar category are always installed into the same location, or at least handled the same way, as in the case of role="src" for PECL packages.

This has been quite successful for smaller library-style packages, but complete applications cannot function without customized installation locations. For instance, some files may be intended for use in a public web frontend, others for library location. PEAR 1.4 introduces the possibility of defining custom installation roles to fill this void.

Using a customized role in a package.xml

To use a custom installation role that another programmer has written, there are three steps that are necessary. First, the <usesrole> tag should be used to define each custom role that is used in the package.xml. Next, the role should simply be used for the files it pertains to. Finally, a dependency on the package that provides the custom role should be added to the package.xml, just for completeness.

Pretty simple!

前のページ | ホーム | 次のページ
XML-RPC 関数 | 上に戻る | Defining a customized role for use in a package.xml

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Custom File Tasks

PEAR マニュアル
前のページ 次のページ

第 24 章 Custom File Tasks

目次
Using a customized task in a package.xml
Creating customized tasks in PHP

For many small library packages, very little customization is needed. Just install and go. package.xml 1.0 is very good at this task. As packages grow in size and complexity, it is often necessary to make slight changes to the contents of files, and occasionally to external components such as databases.

package.xml 1.0 provides a single undocumented system of customizing file contents through the <replace> tag, like so:

<file name="blah.php" role="php">
 <replace from="@token@" to="version" type="package-info"/>
 <replace from="@anothertoken@" to="php_dir" type="pear-config"/>
</file>

This example above would scan the blah.php file at installation, and then use str_replace() to replace all occurences of the string @token@ with the package's version number. Then, it would replace all occurences of the string @anothertoken@ with the value of the user's php_dir configuration variable.

Although powerful, the replace tag is the only customization tag available in package.xml version 1.0. When developing package.xml version 2.0, the replace tag and innovative work of other projects such as Phing became the inspiration for an expanded kind customization called a "task".

Tasks are defined by xml children of a <file> tag. Tasks are implemented by extending the PEAR_Task_Common task.

Using a customized task in a package.xml

Tasks are defined in package.xml through the tasks namespace, which is currently http://pear.php.net/dtd/tasks-1.0. The current tasks namespace is defined by http://pear.php.net/dtd/tasks-1.0.xsd. Custom tasks bundled with PEAR include:

  • <tasks:replace>

  • <tasks:unixeol>

  • <tasks:windowseol>

  • <tasks:postinstallscript>

The xml for each of these tasks is documented here.

前のページ | ホーム | 次のページ
Defining a customized role for use in a package.xml | 上に戻る | Creating customized tasks in PHP

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Post-installation Scripts

PEAR マニュアル
前のページ 次のページ

第 25 章 Post-installation Scripts

目次
Naming requirements for a post-install script PHP file
Structure of a post-install script

Incomplete documentation

Documentation is not yet complete

The XML format for defining a post-install script in package.xml is documented here. This document describes the required elements for the PHP post-install script itself.

Naming requirements for a post-install script PHP file

Post-install script files can be named anything one desires, but the class within the file must be the same name as the file with all path separators replaced by underscores. In other words, this postinstall script:

Path/To/Script.php

Must contain a class named Path_To_Script. Due to casing differences between operating systems, it is recommended to always use lowercased file names.

前のページ | ホーム | 次のページ
Creating customized tasks in PHP | 上に戻る | Structure of a post-install script

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR コア コンポーネンツ

PEAR マニュアル
前のページ 次のページ

VPEAR コア コンポーネンツ

目次
26 章 PEAR 基底クラス
27 章 PEAR インストーラクラス
前のページ | ホーム | 次のページ
Structure of a post-install script |  | PEAR 基底クラス

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR 基底クラス

PEAR マニュアル
前のページ 次のページ

第 26 章 PEAR 基底クラス

目次
PEAR
PEAR_Exception - PHP 5+
PEAR_ErrorStack
PEAR_Error [非推奨]
System

このコアに関するセクションでは、PEAR 基底クラスについての情報を提供します。

PEAR

目次
はじめに -- PEAR 基底クラス（デストラクタ、エラー処理）の取り扱い方法
定数 -- 定義済みの定数
PEAR::PEAR() -- コンストラクタ （パッケージ開発者用）
PEAR::_PEAR() -- デストラクタ （パッケージ開発者用）
PEAR::getStaticProperty() -- スタティックプロパティを扱う （パッケージ開発者用）
PEAR::registerShutdownFunc() -- スタティッククラスのシャットダウン関数を設定する （パッケージ開発者用）
PEAR::isError() -- PEAR_Error オブジェクトかどうかチェックする
PEAR::raiseError() -- 新規に PEAR_Error オブジェクトを生成し、 オプションでエラー処理手順を指定する
PEAR::setErrorHandling() -- PEAR パッケージにより生成されるエラーの処理方法を指定する
PEAR::expectError() -- 一時的なエラー処理の通常化を行うエラーコードを指定する
PEAR::popExpect() -- 直近に指定したエラーコードに対して、一時的なエラー処理の通常化を解除する
PEAR::loadExtension() -- OS に非依存で PHP 拡張モジュールをロードする

PEAR は、エラー処理のための機能を提供し、 さらに、エラー発生時の動作の設定も行います。 また、パッケージ開発者を支援する一連の機能も提供します。

前のページ | ホーム | 次のページ
PEAR コア コンポーネンツ | 上に戻る | はじめに

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR インストーラクラス

PEAR マニュアル
前のページ 次のページ

第 27 章 PEAR インストーラクラス

目次
PEAR_Autoload
PEAR_Builder
PEAR_ChannelFile
PEAR_Command
PEAR_Common
PEAR_Config
PEAR_Dependency
PEAR_Dependency2
PEAR_DependencyDB
PEAR_Frontend
PEAR_Installer
PEAR
PEAR_Packager
PEAR_Registry
PEAR_Remote
PEAR_REST
PEAR
PEAR_Validate
PEAR

PEAR インストーラクラスは、PEAR パッケージ管理用の API を提供します。

警告

次のドキュメントは、 PEAR バージョン 1.4.0 に完全に対応できていません。

PEAR_Autoload

目次
PEAR_Autoloader::addAggregateObject() -- 集約オブジェクトを追加する
PEAR_Autoloader::addAutoload() -- 自動ロードエントリを追加する
PEAR_Autoloader::removeAggregateObject() -- 集約オブジェクトを削除する
PEAR_Autoloader::removeAutoload() -- 自動ロードエントリを削除する
PEAR_Autoloader::__call() -- オーバーロードされたオブジェクトコールハンドラ

このクラスは、オブジェクトのいくつかのメソッドに関するコードを 別のクラスに分割したい場合に使用するクラスです。 あまり使用しないメソッドに大量のコードが含まれており、 これを常にパースすることを避けたい場合に、このクラスは有用です。

PEAR_Autoloader のクラスツリー

  • PEAR

    • PEAR_Autoloader

前のページ | ホーム | 次のページ
System::which | 上に戻る | PEAR_Autoloader::addAggregateObject()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR パッケージ

PEAR マニュアル
前のページ 次のページ

VIPEAR パッケージ

目次
28 章 認証 (Authentication)
29 章 ベンチマーク処理
30 章 キャッシュ
31 章 設定 (Configuration)
32 章 コンソール
33 章 データベース
34 章 日付と時間 (Date and Time)
35 章 暗号化 (Encryption)
36 章 イベント
37 章 ファイル形式
38 章 ファイルシステム
39 章 Gtk
40 章 Gtk2
41 章 HTML
42 章 HTTP
43 章 画像 (Images)
44 章 国際化対応 (Internationalization)
45 章 ログ記録
46 章 メール
47 章 数値計算 (Math)
48 章 ネットワーク処理
49 章 数 (Numbers)
50 章 支払い (Payment)
51 章 PEAR
52 章 PHP
53 章 QA (品質保証) ツール
54 章 科学 (Science)
55 章 ストリーム
56 章 構造 (Structures)
57 章 システム
58 章 テキスト
59 章 ツール・ユーティリティ
60 章 Validate
61 章 Web サービス
62 章 XML
前のページ | ホーム | 次のページ
PEAR_XMLParser::preProcessStupidSaxon() |  | 認証 (Authentication)

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


認証 (Authentication)

PEAR マニュアル
前のページ 次のページ

第 28 章 認証 (Authentication)

目次
Auth
Auth_HTTP
Auth_PrefManager
Auth_RADIUS
LiveUser
LiveUser_Admin

認証管理のためのパッケージ群です。

前のページ | ホーム | 次のページ
PEAR パッケージ | 上に戻る | Auth

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


ベンチマーク処理

PEAR マニュアル
前のページ 次のページ

第 29 章 ベンチマーク処理

目次

ベンチマークおよびプロファイリングに関するパッケージ群です。

前のページ | ホーム | 次のページ
LiveUser_Admin | 上に戻る | キャッシュ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


キャッシュ

PEAR マニュアル
前のページ 次のページ

第 30 章 キャッシュ

目次
Cache_Lite

キャッシュ生成のためのパッケージ群です。

前のページ | ホーム | 次のページ
ベンチマーク処理 | 上に戻る | Cache_Lite

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


設定 (Configuration)

PEAR マニュアル
前のページ 次のページ

第 31 章 設定 (Configuration)

目次
Config

設定管理のためのパッケージ群です。

前のページ | ホーム | 次のページ
Cache_Lite_File::get() | 上に戻る | Config

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンソール

PEAR マニュアル
前のページ 次のページ

第 32 章 コンソール

目次
Console_Color
Console_Getopt
Console_ProgressBar
Console_Table

pear インストーラのような PHP を使用したコマンドラインアプリケーションに関するパッケージ群です。

前のページ | ホーム | 次のページ
Config_Container::writeDatasrc() | 上に戻る | Console_Color

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


データベース

PEAR マニュアル
前のページ 次のページ

第 33 章 データベース

目次
DB
DB_DataObject
DB_DataObject_FormBuilder
DB_Pager
DB_QueryTool
DB_Table
MDB
MDB2
MDB_QueryTool

データベースに関連するパッケージ群です。

前のページ | ホーム | 次のページ
Console_Table::setHeaders() | 上に戻る | DB

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


日付と時間 (Date and Time)

PEAR マニュアル
前のページ 次のページ

第 34 章 日付と時間 (Date and Time)

目次
Calendar
Date_Holidays

日付と時間の処理のためのパッケージ群です。

前のページ | ホーム | 次のページ
API クイックリファレンス | 上に戻る | Calendar

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


暗号化 (Encryption)

PEAR マニュアル
前のページ 次のページ

第 35 章 暗号化 (Encryption)

目次
Crypt_CHAP

暗号化および復号に関するパッケージ群です。

前のページ | ホーム | 次のページ
例 | 上に戻る | Crypt_CHAP

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


イベント

PEAR マニュアル
前のページ 次のページ

第 36 章 イベント

目次
Event_Dispatcher

イベントベースの開発のためのパッケージを提供します。

前のページ | ホーム | 次のページ
Crypt_CHAP_MSCHAPv2::ntPasswordHashHash() | 上に戻る | Event_Dispatcher

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


ファイル形式

PEAR マニュアル
前のページ 次のページ

第 37 章 ファイル形式

目次
Contact_Vcard
Contact_Vcard_Build
Contact_Vcard_Parse
File_Archive
File_DICOM
File_Fstab
File_Passwd
MP3_Id
Spreadsheet_Excel_Writer

いろいろな形式のファイルに対する処理のためのパッケージ群です。

前のページ | ホーム | 次のページ
Event_Notification::isNotificationCancelled() | 上に戻る | Contact_Vcard

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


ファイルシステム

PEAR マニュアル
前のページ 次のページ

第 38 章 ファイルシステム

目次
Archive-Tar
File
File_Find
File_SMBPasswd
File_SearchReplace
File_HtAccess

ファイルおよびファイルシステムの処理のためのパッケージ群です。

前のページ | ホーム | 次のページ
Format::setFontFamily | 上に戻る | Archive-Tar

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk

PEAR マニュアル
前のページ 次のページ

第 39 章 Gtk

目次
FileDrop
Gtk_ScrollingLabel
Gtk_VarDump

PHP-Gtk 拡張の使いやすいパッケージを提供します。

前のページ | ホーム | 次のページ
File_HtAccess::setAuthDigestFile | 上に戻る | FileDrop

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk2

PEAR マニュアル
前のページ 次のページ

第 40 章 Gtk2

目次
Gtk2_EntryDialog
Gtk2_ExceptionDump
Gtk2_FileDrop
Gtk2_IndexedComboBox
Gtk2_PHPConfig
Gtk2_ScrollingLabel
Gtk2_VarDump

PHP-Gtk2 拡張の使いやすいパッケージを提供します。

前のページ | ホーム | 次のページ
Gtk_VarDump | 上に戻る | Gtk2_EntryDialog

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML

PEAR マニュアル
前のページ 次のページ

第 41 章 HTML

目次
HTML_Crypt
HTML_Form
HTML_Menu
HTML_Page2
HTML_QuickForm
HTML_QuickForm_Controller
HTML_QuickForm_Renderer_Tableless
HTML_QuickForm_DHTMLRulesTableless
HTML_Table
HTML_TagCloud
HTML_Template_Flexy
HTML_Template_IT
HTML_Template_PHPLIB
HTML_Template_Sigma
HTML_Template_Xipe
HTML_TreeMenu
Pager
Pager_Sliding

HTMLの処理および作成のためのパッケージ群です。

前のページ | ホーム | 次のページ
Re-using Gtk2_VarDump | 上に戻る | HTML_Crypt

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP

PEAR マニュアル
前のページ 次のページ

第 42 章 HTTP

目次
HTTP
HTTP_Client
HTTP_Download
HTTP_Request
HTTP_Session
HTTP_Upload

Hyper-Text-Transfer-Protocol の処理のためのパッケージ群です。

前のページ | ホーム | 次のページ
Pager_Sliding::Sliding() | 上に戻る | HTTP

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


画像 (Images)

PEAR マニュアル
前のページ 次のページ

第 43 章 画像 (Images)

目次
Image_Canvas
Image_Graph
Image_Text

画像処理のためのパッケージ群です。

前のページ | ホーム | 次のページ
HTTP_Upload | 上に戻る | Image_Canvas

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


国際化対応 (Internationalization)

PEAR マニュアル
前のページ 次のページ

第 44 章 国際化対応 (Internationalization)

目次
I18Nv2
Translation2

国際化対応および地域化に関するパッケージ群です。

前のページ | ホーム | 次のページ
Package Image_Text Constants | 上に戻る | I18Nv2

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


ログ記録

PEAR マニュアル
前のページ 次のページ

第 45 章 ログ記録

目次
Log

ログ記録の目的のパッケージ群です。

前のページ | ホーム | 次のページ
Translation2 パッケージの定数 | 上に戻る | Log

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


メール

PEAR マニュアル
前のページ 次のページ

第 46 章 メール

目次
Mail
Mail_IMAP
Mail_Mbox
Mail_Mime
Mail_Queue

電子メールの作成および処理のためのパッケージ群です。

前のページ | ホーム | 次のページ
Log | 上に戻る | Mail

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


数値計算 (Math)

PEAR マニュアル
前のページ 次のページ

第 47 章 数値計算 (Math)

目次

数値計算用のパッケージ群です。

前のページ | ホーム | 次のページ
Mail_Queue::sendMailsInQueue() | 上に戻る | ネットワーク処理

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


ネットワーク処理

PEAR マニュアル
前のページ 次のページ

第 48 章 ネットワーク処理

目次
Net_CheckIP
Net_DNS
Net_DNSBL
Net_Finger
Net_FTP
Net_GameServerQuery
Net_Geo
Net_GeoIP
Net_IPv4
Net_IPv6
Net_NNTP
Net_Ping
Net_POP3
Net_Portscan
Net_Server
Net_SmartIrc
Net_SMTP
Net_Socket
Net_Traceroute
Net_Whois
Net_Wifi

ネットワーク関係の用途のためのパッケージ群です。

前のページ | ホーム | 次のページ
数値計算 (Math) | 上に戻る | Net_CheckIP

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


数 (Numbers)

PEAR マニュアル
前のページ 次のページ

第 49 章 数 (Numbers)

目次

数の処理のためのパッケージ群です。

前のページ | ホーム | 次のページ
スキャン | 上に戻る | 支払い (Payment)

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


支払い (Payment)

PEAR マニュアル
前のページ 次のページ

第 50 章 支払い (Payment)

目次

支払い関連の標準およびオファーに関するパッケージ群です。

前のページ | ホーム | 次のページ
数 (Numbers) | 上に戻る | PEAR

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR

PEAR マニュアル
前のページ 次のページ

第 51 章 PEAR

目次
PEAR_Frontend_Gtk2
PEAR_Info
PEAR_PackageFileManager
PEAR_PackageUpdate

PEAR コアに関する情報を処理／取得するためのパッケージ群です。

前のページ | ホーム | 次のページ
支払い (Payment) | 上に戻る | PEAR_Frontend_Gtk2

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PHP

PEAR マニュアル
前のページ 次のページ

第 52 章 PHP

目次
phpDocumentor
PHP_Compat
PHPUnit
PHPUnit2

開発プロセスを補助するためのツール群です。

前のページ | ホーム | 次のページ
PEAR_PackageUpdate::setDontAskUntilNextRelease | 上に戻る | phpDocumentor

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


QA (品質保証) ツール

PEAR マニュアル
前のページ 次のページ

第 53 章 QA (品質保証) ツール

目次
QA_Peardoc_Coverage

何かの品質を保証するためのツールです。

前のページ | ホーム | 次のページ
概要 | 上に戻る | QA_Peardoc_Coverage

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


科学 (Science)

PEAR マニュアル
前のページ 次のページ

第 54 章 科学 (Science)

目次

科学的な用途のためのパッケージ群です。

前のページ | ホーム | 次のページ
網羅状況の生成 | 上に戻る | ストリーム

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


ストリーム

PEAR マニュアル
前のページ 次のページ

第 55 章 ストリーム

目次
Stream_Var

ストリーム API に関するパッケージ群です。 ストリームラッパーについての詳細な情報は、PHP マニュアル を参照してください。

前のページ | ホーム | 次のページ
科学 (Science) | 上に戻る | Stream_Var

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


構造 (Structures)

PEAR マニュアル
前のページ 次のページ

第 56 章 構造 (Structures)

目次
Structures_BibTex
Structures_DataGrid
Games_Chess
Structures_Graph
Structures_Tree

データ構造に関連するパッケージです。

前のページ | ホーム | 次のページ
例 | 上に戻る | Structures_BibTex

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


システム

PEAR マニュアル
前のページ 次のページ

第 57 章 システム

目次
System_Folders
System_ProcWatch
System_WinDrives

システムユーティリティです。

前のページ | ホーム | 次のページ
Introduction | 上に戻る | System_Folders

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


テキスト

PEAR マニュアル
前のページ 次のページ

第 58 章 テキスト

目次
Text_CAPTCHA
Text_CAPTCHA_Numeral
Text_Highlighter
Text_Password
Text_Statistics
Text_Wiki

テキストの処理および解析のためのパッケージ群です。

前のページ | ホーム | 次のページ
System_WinDrives::setReadName() | 上に戻る | Text_CAPTCHA

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


ツール・ユーティリティ

PEAR マニュアル
前のページ 次のページ

第 59 章 ツール・ユーティリティ

目次
VersionControl_SVN

前のページ | ホーム | 次のページ
概要 | 上に戻る | VersionControl_SVN

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate

PEAR マニュアル
前のページ 次のページ

第 60 章 Validate

目次
Validate (main package)
Validate features
Validate_AR
Validate_AT
Validate_AU
Validate_BE
Validate_CA
Validate_CH
Validate_DE
Validate_DK
Validate_ES
Validate_esMX
Validate_FR
Validate_IN
Validate_IS
Validate_NL
Validate_NZ
Validate_PL
Validate_ptBR
Validate_UK
Validate_US
Validate_ZA
Validate_Finance
Validate_Finance_CreditCard
Validate_ISPN

Validate は、一般的なデータあるいは固有のデータの検証を行います。 本体のパッケージが一般的なデータの検証を行います。 各地域やテーマに固有なデータについては別のパッケージで行います。

各地域ごとの検証クラス

  • アルゼンチン: Validate_AR

  • オーストリア: Validate_AT

  • オーストラリア: Validate_AU

  • ベルギー: Validate_BE

  • ブラジル: Validate_PTBR

  • カナダ: Validate_CA

  • デンマーク: Validate_DK

  • フランス: Validate_FR

  • ドイツ: Validate_DE

  • アイスランド: Validate_IS

  • オランダ: Validate_NL

  • ニュージーランド: Validate_NZ

  • ポーランド: Validate_PL

  • インド: Validate_IN

  • 南アフリカ: Validate_ZA

  • スペイン: Validate_ES

  • スイス: Validate_CH

  • イギリス: Validate_UK

  • アメリカ: Validate_US

特定のテーマについての検証クラス

  • 金融: Validate_Finance

  • クレジットカード: Validate_Finance_CreditCard

  • International Standard Product Numbers : Validate_ISPN

Validate (main package)

The main package provides methods to validate various data. It includes :

  • numbers (min/max, decimal or not)

  • email (syntax, domain check)

  • string (predifined type alpha upper and/or lowercase, numeric,...)

  • date (min, max)

  • uri (RFC2396)

  • possibility valid multiple data with a single method call (::multiple)

See also :

  • the api documentation

  • The page on pear.php.net

前のページ | ホーム | 次のページ
VersionControl_SVN | 上に戻る | Validate features

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Web サービス

PEAR マニュアル
前のページ 次のページ

第 61 章 Web サービス

目次
Services_Delicious
Services_Ebay
Services_Technorati
Services_Yahoo
Services_YouTube
UDDI
XML_RPC
XML_RPC2

前のページ | ホーム | 次のページ
Validate_ISPN | 上に戻る | Services_Delicious

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML

PEAR マニュアル
前のページ 次のページ

第 62 章 XML

目次
XML_Beautifier
XML_DTD
XML_Feed_Parser
XML_Parser
XML_Query2XML
XML_RDDL
XML_RSS
XML_Serializer
XML_sql2xml
XML_Statistics
XML_Transformer
XML_Tree
XML_Util

XML の作成および処理のためのパッケージ群です。

前のページ | ホーム | 次のページ
Server Side with cache | 上に戻る | XML_Beautifier

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PECL パッケージ

PEAR マニュアル
前のページ 次のページ

VIIPECL パッケージ

目次
IImagick
IIKADM5
IIIRadius
IVNet_Gopher
VPostScript document creation
VISatellite CORBA client extension
VIIPostgreSQLセッション保存ハンドラ
VIIISPPLUS Payment System
IXNet_Gopher
Xoggvorbis
前のページ | ホーム | 次のページ
XML_Util::splitQualifiedName() |  | Imagick

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Imagick

PEAR マニュアル
前のページ 次のページ

IImagick

警告

このドキュメントは古くなっており、18 か月以上も前のバージョンについて書かれています。 このパッケージのメンテナに連絡して、ドキュメントを更新してもらうようにしてください。

警告

このモジュールは、 実験的 なものです。 これらの関数の動作・関数名を含めここに書かれていることすべてが このパッケージの将来のリリースで予告なく変更される可能性があります。 注意を喚起するとともに、使用者のリスクでこのモジュールを使用してください。

導入

ImageMagick　について

ImageMagick は、多くのイメージ形式 (68 を越える主要な形式) のイメージを読み書き、操作できる一連のロバストなツールおよびライブラリです。 サポートされるイメージ形式には、TIFF、JPEG、PNG、PDF、 PhotoCD、GIF のようなものがあります。ImageMagick により、 ウェブアプリケーションで使用可能なイメージを動的に作成することができます。 また、イメージのサイズ変更、回転、シャープ度調整、減色、 特殊効果の付加を行い、完成したものを元のイメージ形式または 異なるイメージ形式で保存することが可能です。

注意 上記の文章は ImageMagick のウェブサイト (http://www.imagemagick.org/) から引用したものです。 現在、この拡張モジュールに全てが適用されるわけではありませんが、 希望的観測では将来的にサポートされる予定です。 また、上記のリンクは、全てを理解できないとしても、優れた情報源です。

重要な注意

imagick はバージョン 0.9 で大幅なアップグレードを行い、 過去のバージョンとの互換性がなくなりました。 新しい API についてのドキュメントは、 パッケージに含まれるサンプルを参考にしてください。

インストール

パッケージに含まれる INSTALL ファイルを読んでください。 あるいは、単純に PEAR インストーラで "pear install imagick" としてください。

連絡先

この拡張モジュールに対する質問がある場合は PEAR メーリングリスト で質問してください。

目次
--
前のページ | ホーム | 次のページ
PECL パッケージ | 上に戻る |

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


KADM5

PEAR マニュアル
前のページ 次のページ

IIKADM5

目次
Documentation --
前のページ | ホーム | 次のページ
 | 上に戻る | Documentation

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Radius

PEAR マニュアル
前のページ 次のページ

IIIRadius

目次
Documentation --
前のページ | ホーム | 次のページ
Documentation | 上に戻る | Documentation

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Gopher

PEAR マニュアル
前のページ 次のページ

IVNet_Gopher

目次
Documentation --
前のページ | ホーム | 次のページ
Documentation | 上に戻る | Documentation

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PostScript document creation

PEAR マニュアル
前のページ 次のページ

VPostScript document creation

目次
Documentation --
前のページ | ホーム | 次のページ
Documentation | 上に戻る | Documentation

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Satellite CORBA client extension

PEAR マニュアル
前のページ 次のページ

VISatellite CORBA client extension

警告

このモジュールは、 実験的 なものです。 これらの関数の動作・関数名を含めここに書かれていることすべてが このパッケージの将来のリリースで予告なく変更される可能性があります。 注意を喚起するとともに、使用者のリスクでこのモジュールを使用してください。

Satellite is deprecated. It is suggested that you use Universe (http://universe-phpext.sourceforge.net/) and not Satellite.

The Satellite extension is used for accessing CORBA objects. You will need to set the idl_directory= entry in php.ini to a path where you store all IDL files you use.

See the Satellite README file for details about installing Satellite.

目次
OrbitObject -- Access CORBA objects
OrbitEnum -- Use CORBA enums
OrbitStruct -- Use CORBA structs
satellite_caught_exception -- See if an exception was caught from the previous function
satellite_exception_id -- Get the repository id for the latest exception.
satellite_exception_value -- Get the exception struct for the latest exception
satellite_object_to_string -- Convert an object to its string representation
satellite_load_idl -- Instruct the type manager to load an IDL file
satellite_get_repository_id -- NOT IMPLEMENTED
前のページ | ホーム | 次のページ
Documentation | 上に戻る | OrbitObject

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PostgreSQLセッション保存ハンドラ

PEAR マニュアル
前のページ 次のページ

VIIPostgreSQLセッション保存ハンドラ

警告

このモジュールは、 実験的 なものです。 これらの関数の動作・関数名を含めここに書かれていることすべてが このパッケージの将来のリリースで予告なく変更される可能性があります。 注意を喚起するとともに、使用者のリスクでこのモジュールを使用してください。

導入

PostgreSQLセッション保存ハンドラについて

このモジュールは、PostgreSQLをストレージとして使用するセッション モジュール用セッション保存ハンドラを提供するものです。 セッション保存ハンドラuserを使用することも可 能ですが、このモジュールはC言語で書かれており、PHPスクリプトで書 かれた保存ハンドラよりも概ね2倍程度高速です。

フェイルオーバー及びロードバランスは実装予定ですが、現時点では、 まだ使用できません。

注意 このモジュール用の関数が利用可能と予定ですが、現時点では利用で きません。

このモジュールは、UNIX互換のOSでのみ動作します。

インストール

以下にインストール手順を簡単に示します。

  • 少なくともPHP 4.1、PostgreSQL 7.1、MM 1.1.3が必要です。

  • tar.gzアーカイブをphp4/extに展開します。 (最新の正式なリリース版は、0.1にあります。)

  • 新しいディレクトリをpecl_session_pgsqlのよ うに呼ぶとすると、これをsession_pgsqlに名 前を変更する必要があります。(PHPモジュールとして構築する場合 を除きます)

  • php4以下で./buildconfを実行します。

  • --with-session-pgsql(及びその他のオプショ ン)を付けてconfigureを実行します。

  • make; make install

  • これで終わりです。

設定

PostgreSQLセッション保存ハンドラは、まだ開発中です。設定の詳細に ついては、配布ファイルに含まれるREADMEファイルを参照して下さい。

質問先

現時点で、この拡張モジュールの開発者は、開発を継続する時間の余裕 はありません。将来的により多くの機能を実装する予定です。

コメント、バグ修整、拡張、または、このモジュールの開発を援助した い場合には、yohgaki@php.netにメールを下 さい。いかなる援助も歓迎します。

目次
session_pgsql_status -- カレントの保存ハンドラのステータスを取得する
前のページ | ホーム | 次のページ
satellite_get_repository_id | 上に戻る | session_pgsql_status

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


SPPLUS Payment System

PEAR マニュアル
前のページ 次のページ

VIIISPPLUS Payment System

Introduction

About SPPLUS Payment System

This module allows use of the SPPLUS Payment System of the Caisse d'Epargne (a French Bank).

注意 You will need to get the new kit_php for spplus. Feel free to contact us if you can't get it.

This module only works under *nix type operating systems (for now).

Installation

A short installation note:

  • You need at least PHP 4.1.0 and SPPLUS v.3

  • Just type 'pear install spplus' in your console.

Configuration

Refer to the README files in kit_php's source distribution for configuration details.

Contact Information

More features will be implemented in the near future.

If you have comments, bug fixes, enhancements or want to help develop this module, you can drop nicos an email at nicos@php.net.

目次
calcul_hmac -- Obtain a hmac key (needs 8 arguments)
calculhmac -- Obtain a hmac key (needs 2 arguments)
nthmac -- Obtain a nthmac key (needs 2 arguments)
signeurlpaiement -- Obtain the payment url (needs 2 arguments)
前のページ | ホーム | 次のページ
session_pgsql_status | 上に戻る | calcul_hmac

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Gopher

PEAR マニュアル
前のページ 次のページ

IXNet_Gopher

目次
Documentation --
前のページ | ホーム | 次のページ
signeurlpaiement | 上に戻る | Documentation

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


oggvorbis

PEAR マニュアル
前のページ 次のページ

Xoggvorbis

目次
Documentation --
前のページ | ホーム | 次のページ
Documentation | 上に戻る | Documentation

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


バグの報告

PEAR パッケージにバグがあると思ったら、まず、パッケージの最新版を使用しているか、 システムがパッケージの要求事項に合っているか確認してください。

バグがパッケージの最新版にも存在する場合は、 http://bugs.php.net/ のバグ報告を記述してください。 報告のカテゴリには "PEAR related" を選択してください。 PEAR development メーリングリストを通じて、開発者が報告に目を通します。

バグを正しく報告するための方法についてのより詳しい情報は http://bugs.php.net/how-to-report.php を参照してください。

もし見つけたバグを修正した場合は、こちら を参照してください。

前のページ | ホーム | 次のページ
パッチの投稿 | 上に戻る | ドキュメントの記述と翻訳

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


ドキュメントの記述と翻訳

あるソフトウエアをユーザが理解するためには、良いドキュメントが必須です。 ドキュメントが無かったり、改良が必要な PEAR パッケージもあります。 ドキュメントの作成 の章に、 さらに役にたつ情報が記載されています。

ドキュメントの翻訳も重要な仕事です。 新しいドキュメントがあれば、それの翻訳が必要となります。 （日本語など）すでに翻訳版が存在する言語への訳出も当然ですが、 まだ翻訳版のない言語への翻訳も歓迎されます。 また、いったん翻訳されたものであっても、 英語の元ドキュメントには変更が加えられていくので、 更新作業が必要となります。 翻訳プロセスの実行方法については、本マニュアルのリビジョン追跡 の章を 参照してください。

前のページ | ホーム | 次のページ
バグの報告 | 上に戻る | ウイッシュリスト

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


新しいパッケージを作成する

新規パッケージの投稿に関する説明は、 デベロッパーズガイド にあります。

前のページ | ホーム | 次のページ
貢献 | 上に戻る | パッチの投稿

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


パッチの投稿

機能の拡張やバグ修正のためにパッケージを変更した場合は、 その変更をコミュニティに寄贈するべきです （ライセンスによってはそれが強制されることもあります。また、一般的に、 そうしないことはモラルに悖るものとみなされています）。

パッチを作成する前に、パッチを当てるべき最新のソースを次のようにして CVS から取得してください（この例では、パッケージ名は Foo_Bar とします）。
cvs -d:pserver:cvsread@cvs.php.net:/repository login
パスワードは "phpfi" です

cvs -z3 -d:pserver:cvsread@cvs.php.net:/repository co Foo_Bar
最新のソースが取得できたので、対応するファイルを編集します。 PEAR 標準コーディング規約 に合致するようにしてください。

コードに追加・変更を行ったら、テストしてください。注意深くテストが行われていない コードは受け入れられません。新しいコードにバグが無いことを確信したら、 次のコマンドで unified 形式の diff を作成します。
cd pear/Foo_Bar
cvs diff -u >Foo_Bar.diff
作成された .diff ファイルが、あなたのパッチです。 この diff を見ると変更点を簡単に確認することができるのです。

次のステップは、パッチの送付です。パッケージのメンテナに CC をつけて、 pear-dev@lists.php.net にメールを書いてください。メールの件名は、 '[Patch]' からはじめて、パッチの投稿であることを判りやすくすると良いでしょう。 また、パッチの内容の詳しい説明も書いてください。 .diff ファイルをメールに添付するのを忘れないように。 パッケージのメンテナ名は、通常、ソースファイルのヘッダに記載されています。 メールアドレス以外の情報は、http://pear.php.net/ のパッケージ情報のページで見られます。

注意 Outlook や Outlook Express を使っている場合は、diff ファイルの拡張子を .txt へ変更してください。Outlook の MIME 形式の検出は、ファイルの拡張子を 見ており、MIME 形式が text/plain でない添付ファイルは メーリングリストのソフトにより拒否されるためです。

注意 変更がすばらしいものであっても、パッチに後方互換性が無ければ、メンテナは 困ってしまうでしょう。バグ修正は、パブリックな API を大幅に変更することの無いように 行うべきです。後方互換性を保つことがまったく不可能な場合や、 著しい機能向上をもたらす場合だけは、API を変更しても認められるでしょう。

前のページ | ホーム | 次のページ
新しいパッケージを作成する | 上に戻る | バグの報告

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


ウイッシュリスト

PEAR 開発者の中には、Amazon 等でウイッシュリストを公開している人もいます。 ある開発者の仕事に対して感謝の意を表したい場合、ウイッシュリストから 遠慮なく何かを買って贈ってあげてください。 開発者がウイッシュリストを公開しているかどうか調べるには、 アカウントブラウザで開発者の詳細情報を 参照します。 ウイッシュリストから何か贈ると、悩ましいバグが修正される期間が短くなるかも しれませんよ (^-^)。

前のページ | ホーム | 次のページ
ドキュメントの記述と翻訳 | 上に戻る | FAQ - 頻出する質問

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR マニュアル

著作権

Copyright ? 2001 - 2006 by the PEAR Documentation Group. This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.0 or later (the latest version is presently available at http://www.opencontent.org/openpub/).

Distribution of substantively modified versions of this document is prohibited without the explicit permission of the copyright holder.

Distribution of the work or derivative of the work in any standard (paper) book form is prohibited unless prior permission is obtained from the copyright holder.

The PEAR Documentation Group consists of all the people that have contributed documentation to the PEAR manual. Representatives are listed on the front page of this manual. In case you would like to contact the group, please write to pear-doc@lists.php.net.

以下の日本語訳は参考のために添付したものです。 英語版が正式であることに注意してください。

Copyright ? 2001 - 2006 by the PEAR Documentation Group. この作品は オープン・パブリケーション・ライセンス (v1.0 かそれ以降)で指定された条件と制約に従う限り配布することができます (ライセンスの最新版は現在のところ http://www.opencontent.org/openpub/ で入手可能です)。

この文書を実質的に変更した場合、 その配布を著作権保有者の明確な許可なしに行うことを禁止します。

この著作物かその派生物の一般的な(紙媒体の)書籍形式での配布は、 著作権所有者から前もって許可を得ない限り禁止します。

The PEAR Documentation Group は、 PEAR マニュアルにコントリビュートを行った すべての人から構成されています。 その代表者のリストが、本マニュアルの先頭ページにあります。 本グループに連絡を取りたい場合は、 pear-doc@lists.php.net 宛にメールを書いてください。

XML_RPC ドキュメントの著作権

XML_RPC パッケージの ドキュメントは、 Edd Dumbill によって 彼のホームページに独立な文章として独自に書かれ、 以下のライセンスに従って PEAR マニュアルの一部として掲載されています。

Copyright ? 1999,2000,2001 by Edd Dumbill, Useful Information Company

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  • Neither the name of the "XML-RPC for PHP" nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

以下の日本語訳は参考のために添付したものです。 英語版が正式であることに注意してください。

Copyright ? 1999,2000,2001 by Edd Dumbill, Useful Information Company

All rights reserved.

ソースコード形式であれバイナリ形式であれ、変更の有無に関わらず、 以下の条件を満たす限りにおいて、再配布および使用を許可します

  • ソースコード形式で再配布する場合、上記著作権表示、 本条件書および下記責任限定規定を必ず含めてください。

  • バイナリ形式で再配布する場合、上記著作権表示、 本条件書および下記責任限定規定を、 配布物とともに提供される文書 および/または 他の資料に 必ず含めてください。

  • 書類による事前の明確な許諾を得ずに、 「XML-RPC for PHP」の名前およびその寄与者の名前を、 このソフトウェアに由来する製品の宣伝 あるいは推奨に利用してはいけません。

本ソフトウェアは著作権保持者および寄与者によって、 「現状のまま」 提供されるものとします。 本ソフトウェアについては、明示黙示を問わず、 商用品として通常そなえるべき品質をそなえているとの保証も、 特定の目的に適合するとの保証を含め、何の保証もなされません。 事由のいかんを問わず、 損害発生の原因いかんを問わず、且つ、 責任の根拠が契約であるか厳格責任であるか (過失その他) 不法行為であるかを問わず、著作権保持者も寄与者も、 仮にそのような損害が発生する可能性を知らされていたとしても、 本ソフトウェアの使用から発生した直接損害、間接損害、偶発的な損害、 特別損害、懲罰的損害または結果損害のいずれに対しても (代替品または サービスの提供; 使用機会、データまたは利益の損失の補償; または、業務の中断に対する補償を含め) 責任をいっさい負いません。

ホーム

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Error [非推奨]

目次
PEAR_Error::addUserInfo() -- ユーザー定義の情報を設定する
PEAR_Error::getCallback() -- コールバック関数の名前を取得する
PEAR_Error::getCode() -- エラーコードを取得する
PEAR_Error::getMessage() -- エラーメッセージを取得する
PEAR_Error::getMode() -- エラーモードを取得する
PEAR_Error::getDebugInfo() -- デバッグ情報を取得する
PEAR_Error::getType() -- エラータイプを取得する
PEAR_Error::getUserInfo() -- ユーザーにより設定された追加情報を取得する
PEAR_Error::PEAR_Error() -- コンストラクタ
PEAR_Error::toString() -- オブジェクトの文字列表現を生成する

PEAR_Errorは、エラー時に PEAR の各関数により生成されるオブジェクトです。 このオブジェクトは、エラー原因に関する情報を提供します。

このオブジェクトを取得する方法は、 PEAR::SetErrorHandling() の設定に依存します。

前のページ | ホーム | 次のページ
PEAR_ErrorStack パッケージの定数 | 上に戻る | PEAR_Error::addUserInfo()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Error::addUserInfo()

PEAR_Error::addUserInfo() -- ユーザー定義の情報を設定する

概要

require_once 'PEAR.php';

void PEAR_Error::addUserInfo (string $info)

説明

エラーオブジェクトにユーザー定義の情報を設定します。

パラメータ

  • string - ユーザー定義の情報

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Error [非推奨] | 上に戻る | PEAR_Error::getCallback()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Error::getCallback()

PEAR_Error::getCallback() -- コールバック関数の名前を取得する

概要

require_once 'PEAR.php';

string PEAR_Error::getCallback ()

説明

PEAR_Error オブジェクトのスローの際に用いられるコールバック関数の名前を返します。

返り値

string - 関数名

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Error::addUserInfo() | 上に戻る | PEAR_Error::getCode()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Error::getCode()

PEAR_Error::getCode() -- エラーコードを取得する

概要

require_once 'PEAR.php';

integer PEAR_Error::getCode ()

説明

エラーオブジェクトに関連付けられたエラーコードを返します。

返り値

integer - エラー番号

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Error::getCallback() | 上に戻る | PEAR_Error::getMessage()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Error::getDebugInfo()

PEAR_Error::getDebugInfo() -- デバッグ情報を取得する

概要

require_once 'PEAR.php';

string PEAR_Error::getDebugInfo ()

説明

エラーに関するデバッグ情報を返します。

返り値

string - エラーに関するデバッグ情報

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Error::getMode() | 上に戻る | PEAR_Error::getType()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Error::getMessage()

PEAR_Error::getMessage() -- エラーメッセージを取得する

概要

require_once 'PEAR.php';

string PEAR_Error::getMessage ()

説明

エラーオブジェクトが保持するエラーメッセージを返します。

返り値

string - エラーメッセージ

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Error::getCode() | 上に戻る | PEAR_Error::getMode()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Error::getMode()

PEAR_Error::getMode() -- エラーモードを取得する

概要

require_once 'PEAR.php';

integer PEAR_Error::getMode ()

説明

エラーオブジェクトで使用されるエラーモードを返します。

返り値

integer - エラーモード

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Error::getMessage() | 上に戻る | PEAR_Error::getDebugInfo()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Error::getType()

PEAR_Error::getType() -- エラータイプを取得する

概要

require_once 'PEAR.php';

integer PEAR_Error::getType ()

説明

オブジェクトのエラークラス名を返します。

返り値

string - エラークラス名

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Error::getDebugInfo() | 上に戻る | PEAR_Error::getUserInfo()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Error::getUserInfo()

PEAR_Error::getUserInfo() -- ユーザーにより設定された追加情報を取得する

概要

require_once 'PEAR.php';

string PEAR_Error::getUserInfo ()

説明

エラーに関する追加情報を返します。

返り値

string - エラーに関する情報

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Error::getType() | 上に戻る | PEAR_Error::PEAR_Error()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Error::PEAR_Error()

PEAR_Error::PEAR_Error() -- コンストラクタ

概要

require_once 'PEAR.php';

void PEAR_Error::PEAR_Error (string [$message = 'unknown error'], integer [$code = NULL], integer [$mode = NULL], mixed [$options = NULL], string [$userinfo = NULL])

説明

コンストラクタ

パラメータ

  • string $message - エラーメッセージ。発生した問題や失敗の内容が簡潔に記してあります。

  • string $code - エラーコード。エラーを特定する番号です。

  • integer $mode - エラーモード。

  • mixed $options - エラーモード依存のオプション。

  • string $userinfo - ユーザー定義もしくはデバッグ関連の追加情報を記した文字列。

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
PEAR_Error::getUserInfo() | 上に戻る | PEAR_Error::toString()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Error::toString()

PEAR_Error::toString() -- オブジェクトの文字列表現を生成する

概要

require_once 'PEAR.php';

string PEAR_Error::toString ()

説明

エラーオブジェクト（が保持する情報）についての文字列表現を生成します。

返り値

string - オブジェクトの文字列表現

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Error::PEAR_Error() | 上に戻る | System

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ErrorStack

目次
より進んだエラー処理のための PEAR_ErrorStack の利用方法 -- シンプルで、かつ進んだエラー処理を行うための PEAR_ErrorStack の利用
コンストラクタ PEAR_ErrorStack::PEAR_ErrorStack() -- 新しいエラースタックのインスタンスを設定する
PEAR_ErrorStack::getErrorMessage() -- 標準のエラーメッセージ生成コールバック
PEAR_ErrorStack::getErrorMessageTemplate() -- 標準のエラーメッセージテンプレート生成ルーチン
PEAR_ErrorStack::getErrors() -- 最後にクリアした後に発生したすべてのエラーを取得する
PEAR_ErrorStack::getFileLine() -- ファイル名 / 行番号 / 関数名 / クラス名 を取得する、 標準のコンテキストコールバック
PEAR_ErrorStack::getMessageCallback() -- エラーコードとエラーメッセージの対応表を取得する
PEAR_ErrorStack::hasErrors() -- スタックにエラーが格納されているかどうかを調べる
PEAR_ErrorStack::pop() -- スタックからエラーを取り出す
PEAR_ErrorStack::popCallback() -- エラーコールバックのスタックからコールバックを取り除く
PEAR_ErrorStack::push() -- エラーをスタックに追加する
PEAR_ErrorStack::pushCallback() -- エラーコールバックを設定する。有効なコールバックが設定されると、 エラーがスタックに格納されるたびにこれがコールされる。返り値によって エラーをスタックに格納するかどうか・ログに記録するかどうかを判断する。
PEAR_ErrorStack::raiseError() -- PEAR::raiseError() をエミュレートする
PEAR_ErrorStack::setContextCallback() -- エラースタックのためにコンテキスト情報（エラーの場所など）を 生成するコールバックを設定する
PEAR_ErrorStack::setDefaultCallback() -- 全エラースタックで利用されるデフォルトのコールバックを設定する
PEAR_ErrorStack::setDefaultLogger() -- PEAR::Log オブジェクトを生成し、すべてのエラースタックに適用する
PEAR_ErrorStack::setErrorMessageTemplate() -- エラーメッセージテンプレートの配列を設定する
PEAR_ErrorStack::setLogger() -- エラースタックに対して PEAR::Log オブジェクトを生成する
PEAR_ErrorStack::setMessageCallback() -- エラーコードとメッセージを関連付けたコールバックを設定する
PEAR_ErrorStack::singleton() -- このパッケージの唯一のエラースタックを返す
PEAR_ErrorStack::staticGetErrors() -- 最後にクリアした後に発生したすべてのエラーを取得する
PEAR_ErrorStack::staticHasErrors() -- スタックにエラーが格納されているかどうかを調べる
PEAR_ErrorStack::staticPop() -- pop() の静的バージョン
PEAR_ErrorStack::staticPopCallback() -- エラーコールバックのスタックからコールバックを取り除く
PEAR_ErrorStack::staticPush() -- push() の静的バージョン
PEAR_ErrorStack::staticPushCallback() -- 全パッケージのエラースタックのためのエラーコールバックを設定する
PEAR_ErrorStack::_log() -- PEAR::Log を用いてエラーをログに記録する
PEAR_ErrorStack パッケージの定数 -- PEAR_ErrorStack で定義され、用いられる定数

PEAR_ErrorStack は、PEAR でエラーの生成と処理を行う実験的な実装です。 安定した時点で PEAR_Error を置き換えることを念頭に設計されています。 PEAR_ErrorStack は、PEAR_Error との後方互換性・PHP 5 の PEAR_Exception クラスとの前方互換性の両方を保っています。それ以外にも多くの機能を持っており、 それらの機能については次のセクションで説明します。

利用方法
1      // グローバル エラースタック
2      $global_stack = &PEAR_ErrorStack::singleton('MyPackage');
3      // ローカル エラースタック
4      $local_stack = new PEAR_ErrorStack('MyPackage');

前のページ | ホーム | 次のページ
PEAR_Exception を使用した、PHP 5+ における高度なエラー処理 | 上に戻る | より進んだエラー処理のための PEAR_ErrorStack の利用方法

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ErrorStack::_log

PEAR マニュアル
前のページ 次のページ

PEAR_ErrorStack::_log()

PEAR_ErrorStack::_log() -- PEAR::Log を用いてエラーをログに記録する

概要

require_once 'PEAR/ErrorStack.php';

void PEAR_ErrorStack::_log (array $err [, array $levels = array( 'exception' => PEAR_LOG_CRIT, 'alert' => PEAR_LOG_ALERT, 'critical' => PEAR_LOG_CRIT, 'error' => PEAR_LOG_ERR, 'warning' => PEAR_LOG_WARNING, 'notice' => PEAR_LOG_NOTICE, 'info' => PEAR_LOG_INFO, 'debug' => PEAR_LOG_DEBUG)])

説明

これは protected 関数です。PEAR_ErrorStack を継承したクラスからのみコールされます。

パラメータ

array $err

エラーの配列。

array $levels

エラーレベルとログ定数を関連付けた配列。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ErrorStack::staticPushCallback() | 上に戻る | PEAR_ErrorStack パッケージの定数

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ErrorStack パッケージの定数

PEAR_ErrorStack パッケージの定数 -- PEAR_ErrorStack で定義され、用いられる定数

すべての定数

ErrorStack.php で定義されている定数

表 26-1ErrorStack.php で定義されている定数

名前 | 値 | 行番号
PEAR_ERRORSTACK_ERR_NONCLASS | 1 | 110
PEAR_ERRORSTACK_ERR_OBJTOSTRING | 2 | 116
PEAR_ERRORSTACK_IGNORE | 4 | 103
PEAR_ERRORSTACK_LOG | 3 | 99
PEAR_ERRORSTACK_PUSH | 2 | 94
PEAR_ERRORSTACK_PUSHANDLOG | 1 | 89

前のページ | ホーム | 次のページ
PEAR_ErrorStack::_log() | 上に戻る | PEAR_Error [非推奨]

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ErrorStack::getErrorMessage

PEAR マニュアル
前のページ 次のページ

PEAR_ErrorStack::getErrorMessage()

PEAR_ErrorStack::getErrorMessage() -- 標準のエラーメッセージ生成コールバック

概要

require_once 'PEAR/ErrorStack.php';

string PEAR_ErrorStack::getErrorMessage (PEAR_ErrorStack &$stack, array $err [, string|false$template = FALSE])

説明

このメソッドは、独自のエラーメッセージ生成メソッドからもコールされ、 配列のパラメータの内容をテンプレートに当てはめたエラーメッセージを 生成します。3 番目のパラメータにテンプレート文字列を指定します。

変数 %__msg% は特別に予約されています。ユーザが設定したメッセージを テンプレート中のどの場所で表示するかを示すためにのみ、この変数を利用します。 たとえば以下のように利用します。

Error message: %msg% - internal error

このテンプレートに対して以下のようなメッセージが渡された場合、

<?php
$stack->push(ERROR_CODE, 'error', array(), 'server error 500');
?>

返されるエラーメッセージは "Error message: server error 500 - internal error" となります。

パラメータ

PEAR_ErrorStack &$stack

array $err

string|false $template

事前に作成されたエラーメッセージテンプレート。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
コンストラクタ PEAR_ErrorStack::PEAR_ErrorStack() | 上に戻る | PEAR_ErrorStack::getErrorMessageTemplate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ErrorStack::getErrorMessageTemplate

PEAR マニュアル
前のページ 次のページ

PEAR_ErrorStack::getErrorMessageTemplate()

PEAR_ErrorStack::getErrorMessageTemplate() -- 標準のエラーメッセージテンプレート生成ルーチン

概要

require_once 'PEAR/ErrorStack.php';

string PEAR_ErrorStack::getErrorMessageTemplate (mixed $code)

説明

エラーコードからエラーメッセージテンプレートを生成する標準のルーチンです。

パラメータ

mixed $code

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ErrorStack::getErrorMessage() | 上に戻る | PEAR_ErrorStack::getErrors()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ErrorStack::getErrors

PEAR マニュアル
前のページ 次のページ

PEAR_ErrorStack::getErrors()

PEAR_ErrorStack::getErrors() -- 最後にクリアした後に発生したすべてのエラーを取得する

概要

require_once 'PEAR/ErrorStack.php';

array PEAR_ErrorStack::getErrors ([boolean $purge = FALSE [, string|false $level = FALSE]])

説明

最後にクリアした後に発生したすべてのエラーを取得します。あるいは、 特定のエラーレベルのものだけを取得し、残りのエラーはスタックに残しておきます。

パラメータ

boolean $purge

取得後にエラースタックをクリアする場合に設定します。

string $level

調べたい深刻度を表すレベル名を指定します。特定のレベルのエラーのみを 利用する場合にこのパラメータを利用します。たとえば警告のみを取得する （その他のエラーは無視する）などの場合です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ErrorStack::getErrorMessageTemplate() | 上に戻る | PEAR_ErrorStack::getFileLine()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ErrorStack::getFileLine

PEAR マニュアル
前のページ 次のページ

PEAR_ErrorStack::getFileLine()

PEAR_ErrorStack::getFileLine() -- ファイル名 / 行番号 / 関数名 / クラス名 を取得する、 標準のコンテキストコールバック

概要

require_once 'PEAR/ErrorStack.php';

array|false PEAR_ErrorStack::getFileLine (array $code, unused $params [, integer $backtrace = NULL])

説明

この関数は、 debug_backtrace の出力を利用するため、PHP < 4.3.0 では動作しません。frame は、エラーの発生元を含むものを 参照しなければなりません。

パラメータ

array $code

debug_backtrace() の出力結果。

unused $params

integer $backtrace

バックトレースのフレーム。

返り値

成功した場合に array('file' => ファイル名, 'line' => 行番号, 'function' => 関数名, 'class' => クラス名) を、 失敗した場合に false を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
PEAR_ErrorStack::getErrors() | 上に戻る | PEAR_ErrorStack::getMessageCallback()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ErrorStack::getMessageCallback

PEAR マニュアル
前のページ 次のページ

PEAR_ErrorStack::getMessageCallback()

PEAR_ErrorStack::getMessageCallback() -- エラーコードとエラーメッセージの対応表を取得する

概要

require_once 'PEAR/ErrorStack.php';

array|string|false PEAR_ErrorStack::getMessageCallback ()

説明

このメソッドは、エラーメッセージの生成に用いられる カレントのコールバックを返します。

返り値

コールバック関数/メソッドを返します。存在しない場合には false を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ErrorStack::getFileLine() | 上に戻る | PEAR_ErrorStack::hasErrors()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ErrorStack::hasErrors

PEAR マニュアル
前のページ 次のページ

PEAR_ErrorStack::hasErrors()

PEAR_ErrorStack::hasErrors() -- スタックにエラーが格納されているかどうかを調べる

概要

require_once 'PEAR/ErrorStack.php';

boolean PEAR_ErrorStack::hasErrors ([string $level = false])

説明

スタックにエラーが格納されているかどうかを調べます。

パラメータ

string $level

特定の深刻度のエラーだけを調べたい場合にレベルの名前を指定します。 これを利用することで、特定のレベル（たとえば警告のみなど）が 存在するかどうかを調べられます。この場合はエラーは無視されます。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ErrorStack::getMessageCallback() | 上に戻る | PEAR_ErrorStack::pop()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


より進んだエラー処理のための PEAR_ErrorStack の利用方法

より進んだエラー処理のための PEAR_ErrorStack の利用方法 -- シンプルで、かつ進んだエラー処理を行うための PEAR_ErrorStack の利用

概要

PEAR_ErrorStack の利用方法の紹介

導入

このクラスは、PEAR パッケージ の一部として提供されており、以下のような特徴があります。

  • 単体テストが十分に行なわれており、ドキュメントもきちんと作成されている

  • 動作が機敏 - PEAR_Error をはるかに上回る

  • パッケージ固有のエラー処理

  • エラーレベル（notice/warning/error/exception）の指定

  • エラーに関連するデータがエラーメッセージとは別に保存される

  • エラーの階層化 - 親エラーを指定可能

  • エラーメッセージの動的な生成機能により、 同一のエラーオブジェクトに対して異なるエラーメッセージを 生成することが可能

  • エラーメッセージの生成・エラーコンテキストの生成・ エラー処理機能において、洗練されたコールバック機能が利用可能。 エラーコンテキストの表示, カスタムエラーメッセージの生成, および エラー生成の制御 も参照ください。

PEAR_ErrorStack では、スタック形式でのエラーの生成と処理を実装しています。 この形式は、PEAR_Error の実装形式に比べてはるかに優れています。 PEAR_Error では、エラーの生成やエラーハンドリングを PEAR_Error オブジェクトのコンストラクタで集中管理しています。 ひとたびオブジェクトが生成されたら、ひき続いて、 メソッドの返り値をチェックするか、単一のグローバルなコールバックを用いるかして、 すべてのエラー処理を完了させてやる必要があります。 さらに、PEAR_Error ではエラーの発生元をたどることがほぼ不可能ですし、 エラーの生成の際には、PEAR の基底クラスの大きくて重い一連のメソッドがコールされる ことになります。

<?php
// 昔ながらの PEAR_Error の使用法
require_once 'PEAR.php';
class myobj
{
    // $err がどこで発生したのかがわからない
    function errorCallback($err)
    {
        $this->display($err->getMessage());
        $this->log($err->getMessage());
    }

    function log($msg)
    {
        error_log($msg, 3, 'somefile.log')
    }

    function display($msg)
    {
        echo $msg . '<br />';
    }
}

$myobj = new myobj;

// コールバックを利用する
PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, array(&$myobj, 'errorCallback'));

$ret = SomePackage::doSomething();
if (PEAR::isError($ret)) {
    // 何かの処理をする - このエラーは画面に表示され、ログにも記録される
}
PEAR::pushErrorHandling(PEAR_ERROR_RETURN);

$ret = SomePackage::doSomething();
if (PEAR::isError($ret)) {
    // 何かの処理をする - このエラーは画面にはあらわれないし、ログにも記録されない
}
PEAR::popErrorHandling();
?>

PEAR_ErrorStack クラスは Log パッケージを参考に作られており、 エラーの識別や、さらにはエラーの自動再パッケージも容易に行うことができます。

<?php
// PEAR_ErrorStack を用いたエラー処理
require_once 'PEAR/ErrorStack.php';
require_once 'Log.php';
define('MYPACKAGE_ERROR_DBERROR', 1);
class myobj
{
    var $_stack;
    function myobj()
    {
        $this->_stack = &PEAR_ErrorStack::singleton('MyPackage');
    }

    function errorCallback($err)
    {
        switch($err['package']){
            case 'MyPackage':
                // エラースタックに、エラーのログを残すことだけを
                // 指定する。スタックには積み込まない。
                return PEAR_ERRORSTACK_LOG;
                break;
            case 'InternalDbPackage':
                // エンドユーザにわかりやすいように、これらのエラーを
                // mypackagefor のエラーとしてパッケージしなおす。
                $this->_stack->push(MYPACKAGE_ERROR_DBERROR, 'error',
                    array('dbmessage' => $err['message'],
                          'dbcode' => $err['code'],
                          'We are having Connection problems, please' .
                          'try again in a few moments'),
                    '', $err); // エラーを再パッケージする
                // 内部の DB エラースタックに、エラーを無視して
                // 何事もなかったように振舞うように伝える。
                return PEAR_ERRORSTACK_IGNORE;
                break;
        } // switch
    }
}

$myobj = &new myobj;
// 自分のパッケージ用と内部 DB パッケージ用にエラースタックを分ける
$dbstack = &PEAR_ErrorStack::singleton('InternalDbPackage');
$mystack = &PEAR_ErrorStack::singleton('MyPackage');
// PEAR::Log を用いたログ出力を設定する
$log = &Log::Factory('file', 'somefile.log', 'MyPackage error log');
$mystack->setLogger($log);
// デフォルトログとして指定し、すべてのエラースタックに利用させる
PEAR_ErrorStack::setDefaultLogger($log);

// MyPackage で発生したエラーはすべてログに記録される
$ret = SomePackage::doSomething();

// どんなエラーであっても $ret をチェックする必要はない -
// エラーは完全にコードと分離されている
if ($dbstack->hasErrors()) {
    var_dump($dbstack->getErrors();
}

// すべてのエラーに対してのデフォルトのコールバックを設定する
PEAR_ErrorStack::setDefaultCallback(array(&$myobj, 'errorCallback'));

// これで、すべての DB エラーが透過的に
// わかりやすい MyPackage エラーに変換される。
$ret = SomePackage::doSomething();

?>

PEAR_Error があるのに、なぜまた新しいエラー処理ルーチンを作ったのでしょうか? PEAR_Error にはいくつかの問題があります。 エラーメッセージがエラークラスに保持されているにもかかわらず、コンピュータに エラーメッセージを自動的に処理させることは困難です。 さらに、 いったん PEAR_Error に保持されてしまったエラーメッセージを 翻訳することも容易ではありません。 また、エラー関連情報をエラークラスに 格納するための標準機能も存在しません。 そのうえ、エラーメッセージ関連の 問題として、PEAR_Error オブジェクト がどのパッケージで 作成されたのかもわかりません。またそのエラーの深刻度もわかりません。 致命的なエラーもそうでないエラーもまったく同じように見えてしまいます。

PEAR_Error オブジェクト の最大の欠陥は、 エラーをすべて同一のものとしてしまう設計です。 すべての PEAR_Error オブジェクト は、ただ単に PEAR_Error オブジェクト であるだけです。 エラーの深刻度や発生元を区別する方法がありません。 深刻度を定義する唯一の方法は、PEAR_ERROR_TRIGGER を指定して、 PHP の trigger_error 関数の 定数 PEAR_ERROR_TRIGGER および E_USER_NOTICE/E_USER_WARNING/E_USER_ERROR を用いることです。 しかし、この機能のために 900 行ものコードを使うのは馬鹿げています。 なぜなら trigger_error() は PHP に組み込まれているからです!

では、新しいエラーオブジェクトを使うために、まずはすべての PEAR::raiseError() や PEAR::throwError() の呼び出しを書き換えましょう。こういうのを、

<?php
require_once 'PEAR.php';
// 古いやりかた
$error_specific_info = 'bad';
$e = PEAR::raiseError("error message - very " . $error_specific_info .
    " way to do things", MYPACKAGE_ERROR_FOO);
// 別の古いやりかた
$e = PEAR::throwError("error message - very " . $error_specific_info .
    " way to do things", MYPACKAGE_ERROR_FOO);
?>

こんな風にします。

<?php
require_once 'PEAR/ErrorStack.php';
// 新しいやりかた
// バージョン 1: スタックインスタンスへのアクセス
$stack = &PEAR_ErrorStack::singleton('MyPackage');
$stack->push(MYPACKAGE_ERROR_DBERROR, 'error',
    array('query' => $query, 'dsn' => $dsn),
    'Critical Database Error: Contact Administrator immediately');
// バージョン 2: 静的なシングルトンへのアクセス（若干遅い）
PEAR_ErrorStack::staticPush('MyPackage', MYPACKAGE_ERROR_DBERROR, 'error',
    array('query' => $query, 'dsn' => $dsn),
    'Critical Database Error: Contact Administrator immediately');
?>

PEAR_Error のかわりに PEAR_ErrorStack パッケージを利用するために 最低限必要なのはこれだけです。

高度な機能

エラーに関連する情報の表示

エラーの生成方法をカスタマイズしたいこともあるでしょう。たとえば、 エラーを追跡するためには、 エラーが発生したファイル名・行番号およびクラス名／関数名を含めると 便利です。 デフォルトのオプションは、ほとんどの場合に十分要件を 満たします。これは PEAR_ErrorStack::getFileLine() で得られます。

すべてのエラーが PHP のソースファイル中で発生するとは限りません。 たとえばテンプレートエンジンでのコンパイルエラーはテンプレートの ソースファイル中で発生します。 データベースのエラーは、クエリーの テキストやデータベースの内部で起こることもあります。 インターネットパッケージでは、エラーは別のサーバ上で発生するかも知れません。 これらのすべてのエラー関連情報は、コンテキスト指定コールバック (context grabbing callback) を用いてエラーメッセージに含めることが可能です。

<?php
require_once 'PEAR/ErrorStack.php';
class DatabaseClass
{
    var $_dbError;
    var $_dbErrorMsg;
    var $_dbQuery;
    var $_dbPos;
    /**
     * データベースパッケージのコンテキスト情報を取得する
     * @param integer エラーコード
     * @param array   エラーパラメータ情報 {@link PEAR_ErrorStack::push()}
     * @param array   debug_backtrace() の出力（このコールバックでは利用されません）
     */
    function getErrorContext($code, $params, $backtrace)
    {
        $context = array(
            'errorcode' => $this->_dbError,
            'errormsg' => $this->_dbErrorMsg,
            'query' => $this->_dbQuery,
            'pos' => $this->_dbPos,
        );
        return $context;
    }
}
$db = new DatabaseClass;
PEAR_ErrorStack::staticSetContextCallback('Database', array(&$db, 'getErrorContext'));
?>

コンテキスト情報は、外部のアプリケーションからも操作しやすいような 書式となっています。 もしコンテキスト情報をエラーメッセージに 含めたければ、エラーメッセージコールバックを用いて情報を可読形式の エラーメッセージに変換します。この方法については次のセクションで説明します。

独自のエラーメッセージの作成

エラーメッセージを効率的に生成するために、PEAR_ErrorStack では 3 つの 方法があります。 利用するためには、3 つのうちひとつを実行する必要があります。

  • PEAR_ErrorStack::setErrorMessageTemplate() をコールし、エラーコードとエラーメッセージテンプレートを関連付けた 配列を設定します。このように。

    <?php
define('ERROR_ONE', 1);
define('ERROR_TWO', 2);
define('ERROR_THREE', 3);
define('ERROR_FOUR', 4);
require_once 'PEAR/ErrorStack.php';
$stack = &PEAR_ErrorStack::singleton('mypackage');
$messages = array(
    ERROR_ONE => 'The gronk number %num% dropped a %thing%',
    ERROR_TWO => 'The %list% items were missing',
    ERROR_THREE => 'I like chocolate, how about %you%?',
    ERROR_FOUR => 'and a %partridge% in a pear %tree%',
);
$stack->setErrorMessageTemplate($messages);
?>

    置換は str_replace を用いて行われ、非常にシンプルです。 基本的に、もしパーセント記号（%） で囲まれた変数名があれば、連想配列で渡された値で置き換えられます。
    array('varname' => 'value');
    のような配列がメソッドに渡されれば、%varname% はすべて value に 置き換えられます。

    さらに、もし値がオブジェクトだった場合は、そのオブジェクトについて "__toString()" という名前のメソッドが あるかどうかを探し、見つかればそれを用いてオブジェクトを文字列に 変換します。 もし文字列の配列だった場合は、それらがカンマ区切りで 連結されます。
    <?php
array('varname' => array('first', 'second', 'third'));
// これは 'first, second, third' となります
?>

  • PEAR_ErrorStack::setMessageCallback() をコールし、独自のエラーメッセージを生成するための関数やメソッドを 設定します。 複雑な状況においては、おそらくこれが一番の方法でしょう。 これを利用すると、ユーザは PEAR_ErrorStack::getMessageCallback() でエラーメッセージの上書きや拡張が可能となります。 例。
    <?php
require_once 'PEAR/ErrorStack.php';
class foo
{
    var $_oldcallback;
    function callback(&$stack, $err)
    {
        $message = call_user_func_array($this->_oldcallback, array(&$stack, $err));
        $message .= "File " . $err['context']['file'];
        return $message;
    }
}
$a = new foo;
$stack = &PEAR_ErrorStack::singleton('otherpackage');
$a->_oldcallback = $stack->getMessageCallback('otherpackage');
$stack->setMessageCallback(array(&$a, 'callback'));
?>

  • PEAR_ErrorStack を継承したクラスを作成し、 PEAR_ErrorStack::getErrorMessageTemplate() あるいは PEAR_ErrorStack::getErrorMessage() をオーバーライドします。 このクラスが別のパッケージ／アプリケーションからも 利用できることを保証するため、このコードをクラス宣言の直後に入れてください。

    <?php
PEAR_ErrorStack::singleton('mypackage', false, null, 'MyPEAR_ErrorStack');
?>

エラーの発生を制御する

エラー生成のきめこまやかな制御が必要になる状況は多々あります。 一般的なエラー処理コールバック (generic error handling callback) では、 発生するエラーはすべてひとつのコールバックで処理されるようになっています。 PEAR_ErrorStack では個々のパッケージについて別々のコールバックを 利用できますが、 PEAR_ErrorStack::staticPushCallback() メソッドを用いて一般的なエラー処理コールバックを行うことも可能です。 これは、PEAR_Error の PEAR_ERROR_CALLBACK モードと同じです。

PEAR_ErrorStack の真の強みは、このコールバックにあります。 PEAR_Error のコールバックではエラーメッセージに対して変更を加えることができません。 すべてのエラー処理はコールバック関数あるいはメソッドの中で完結する 必要があります。 PEAR_ErrorStack のコールバックでは、3 つの定数を用いて エラー処理を変更することができます。

  • PEAR_ERRORSTACK_IGNORE

  • PEAR_ERRORSTACK_PUSH

  • PEAR_ERRORSTACK_LOG

PEAR_ERRORSTACK_IGNORE はスタックに対し、エラーを無視して 何事も起こらなかったように振る舞わせます。エラーはログに記録されず、 スタックにも保存されません。しかし、 PEAR_ErrorStack::push() からは返されます。

PEAR_ERRORSTACK_PUSH はスタックに対し、エラーを保存するが ログには記録しないことを指示します。

PEAR_ERRORSTACK_LOG はスタックに対し、エラーを保存せずに ログにだけ記録することを指示します。

<?php
define('ERROR_CODE_ONE',1);
define('ERROR_CODE_TWO',2);
define('ERROR_CODE_THREE',3);
require_once 'PEAR/ErrorStack.php';
require_once 'Log.php';
function somecallback($err)
{
    switch($err['code']){
        case ERROR_CODE_ONE:
                return PEAR_ERRORSTACK_IGNORE;
                break;
        case ERROR_CODE_TWO:
                return PEAR_ERRORSTACK_PUSH;
                break;
        case ERROR_CODE_THREE:
                return PEAR_ERRORSTACK_LOG;
                break;
    } // switch
}
$log = &Log::factory('display');
$stack = &PEAR_ErrorStack::singleton('mypackage');
$stack->setLogger($log);
$stack->pushCallback('somecallback');
$stack->push(ERROR_CODE_ONE);
$stack->push(ERROR_CODE_TWO);
$stack->push(ERROR_CODE_THREE);
var_dump(PEAR_ErrorStack::staticGetErrors());

// simulate PEAR_ERROR_CALLBACK, with specific callback for mypackage
// every other package will only log errors, only mypackage's errors
// are pushed on the stack, conditionally
class myclass {
    function acallback($err)
    {
        return PEAR_ERRORSTACK_LOG;
    }
}
$stack2 = PEAR_ErrorStack::singleton('anotherpackage');
$stack3 = &PEAR_ErrorStack::singleton('thirdpackage');
PEAR_ErrorStack::setDefaultCallback(array('myclass', 'acallback'));
?>

エラーを別のパッケージに移す

エラーコールバックの最も解りやすい使用法としては、いくつもの ユーザレベルのアプリケーションがシステムレベルのパッケージを利用する場合に よく行われる方法が挙げられます。 たとえば、PEAR DB パッケージを用いたコンテンツ管理システム （CMS）を書いているとしましょう。ユーザがフォーラムへの投稿のために リンクをクリックしたときに、データベースのエラーが表示されるのは あまりよくありません。 このような場合にデータベースエラーを MyPackage のエラーに再パッケージするために PEAR_ErrorStack が用いられます。

<?php
define('MYPACKAGE_ERROR_DBDOWN',1);
require_once 'PEAR/ErrorStack.php';
function repackage($err)
{
    if ($err['package'] == 'DB') {
        $mystack = &PEAR_ErrorStack::singleton('mypackage');
        $mystack->push(MYPACKAGE_ERROR_DBDOWN, 'error', array('olderror' => $err));
        // DB エラーを無視し、mypackage のエラーとして記録する
        return PEAR_ERRORSTACK_IGNORE;
    }
}
?>

@ 演算子をエミュレートする

PEAR_Error の PEAR::expectError() メソッドは、強力ですが 使いにくい面もあります。 通常の PHP のエラーであれば、@ 演算子を以下のように用いることで 出力を抑制することができます。

<?php
@file_get_contents();
?>

PEAR_ErrorStack でこの動作を再現するのは簡単です。

<?php
define('ERROR_CODE_SOMETHING', 1);
require_once 'PEAR/ErrorStack.php';
function silence($err)
{
    // すべてのエラーを無視する
    return PEAR_ERRORSTACK_IGNORE;
}
$stack = &PEAR_ErrorStack::singleton('mypackage');
$stack->pushCallback('silence');
$stack->push(ERROR_CODE_SOMETHING);
?>

PEAR_ErrorStack はこれを一歩進め、さらに 2 つの定数を用いることで 「ログにのみ記録する」「スタックにのみ記録する」といった制御が可能です。 最後に、特定のエラーだけを選び出してそれ以外を無視する例を示します。

<?php
define('SOMEPACKAGE_ERROR_THING', 1);
require_once 'PEAR/ErrorStack.php';
function silenceSome($err)
{
    if ($err['package'] != 'somepackage') {
        // 他のすべてのパッケージのエラーを無視する
        return PEAR_ERROR_IGNORE;
    }
    if ($err['code'] != SOMEPACKAGE_ERROR_THING) {
        // 他のすべてのエラーコードを無視する
        return PEAR_ERRORSTACK_IGNORE;
    }
}
$stack = &PEAR_ErrorStack::singleton('mypackage');
$stack->pushCallback('silenceSome');
$stack->push(ERROR_CODE_SOMETHING);
?>

PEAR_Error との後方互換性、PHP 5 の例外および PEAR_Exception との前方互換性

PEAR_ErrorStack は、 PEAR::raiseError() を用いて自動的に PEAR_Error を生成するようにプログラムすることもできます。そのためには 以下のように PEAR_Error compatibility に true を設定します。

<?php
require_once 'PEAR/ErrorStack.php';
$stack = &PEAR_ErrorStack::singleton('mypackage', false, false, true);
?>

PEAR_ErrorStack は新しい PEAR_Exception クラスとともに使用することが可能です。 このようなコードで、例外を変換します。 以下のコードで、返される例外クラス名を設定することができます。

<?php
require_once 'PEAR/ErrorStack.php';
require_once 'PEAR/Exception.php';
$stack = &PEAR_ErrorStack::singleton('mypackage');
$stack->push(1, 'test error');
throw new PEAR_Exception('did not work', $stack->pop());
?>

前のページ | ホーム | 次のページ
PEAR_ErrorStack | 上に戻る | コンストラクタ PEAR_ErrorStack::PEAR_ErrorStack()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ PEAR_ErrorStack::PEAR_ErrorStack

PEAR マニュアル
前のページ 次のページ

コンストラクタ PEAR_ErrorStack::PEAR_ErrorStack()

コンストラクタ PEAR_ErrorStack::PEAR_ErrorStack() -- 新しいエラースタックのインスタンスを設定する

概要

require_once 'PEAR/ErrorStack.php';

void constructor PEAR_ErrorStack::PEAR_ErrorStack (string $package [, callback $msgCallback = FALSE [, callback $contextCallback = FALSE [, boolean $throwPEAR_Error = FALSE]]])

後方互換性のための警告

警告

PEAR 1.3.2 では、PEAR_ErrorStack は PHP 5 の例外オブジェクトを 生成しませんし、それを返すこともありません。最後のパラメータは 削除されます。この挙動に依存しているコードはうまく動作しません。

説明

新しい private の PEAR_ErrorStack を生成します。 グローバルスタックにアクセスするには PEAR_ErrorStack::singleton() を利用してください。

パラメータ

string $package

エラースタックのパッケージ名。

callback $msgCallback

エラーメッセージの生成に用いられるコールバック。

callback $contextCallback

コンテキスト情報の生成に用いられるコールバック。デフォルトは getFileLine() 。

boolean $throwPEAR_Error

string $exceptionClass

PHP 5 の場合に生成される例外クラス。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
より進んだエラー処理のための PEAR_ErrorStack の利用方法 | 上に戻る | PEAR_ErrorStack::getErrorMessage()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ErrorStack::pop

PEAR マニュアル
前のページ 次のページ

PEAR_ErrorStack::pop()

PEAR_ErrorStack::pop() -- スタックからエラーを取り出す

概要

require_once 'PEAR/ErrorStack.php';

false|array PEAR_ErrorStack::pop ()

説明

スタックからエラーを取り出します。

例外・エラー

例外はスローされません。

注意

0.4alpha 以降、返り値のエラーレベルを指定することはできなくなりました。 スタックに格納された際のエラーレベルがそのまま返されます。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ErrorStack::hasErrors() | 上に戻る | PEAR_ErrorStack::popCallback()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ErrorStack::popCallback

PEAR マニュアル
前のページ 次のページ

PEAR_ErrorStack::popCallback()

PEAR_ErrorStack::popCallback() -- エラーコールバックのスタックからコールバックを取り除く

概要

require_once 'PEAR/ErrorStack.php';

array|string|false PEAR_ErrorStack::popCallback ()

説明

エラーコールバックのスタックからコールバックを取り除きます。

例外・エラー

例外はスローされません。

参照

PEAR_ErrorStack::pushCallback() も参照ください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ErrorStack::pop() | 上に戻る | PEAR_ErrorStack::push()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ErrorStack::push

PEAR マニュアル
前のページ 次のページ

PEAR_ErrorStack::push()

PEAR_ErrorStack::push() -- エラーをスタックに追加する

概要

require_once 'PEAR/ErrorStack.php';

PEAR_Error|array PEAR_ErrorStack::push (integer
     $code [, string
     $level = 'error' [, array
     $params = array() [, string
     $msg = FALSE [, array
     $repackage = FALSE [, array
     $backtrace = FALSE]]]]])

後方互換性のための警告

警告

PEAR 1.3.2 では、PEAR_ErrorStack は PHP 5 の例外オブジェクトを 生成しませんし、それを返すこともありません。 この挙動に依存しているコードはうまく動作しません。

説明

もしメッセージジェネレータが存在する場合、2 つのパラメータを用いて それがコールされます。

  • カレントのエラースタックオブジェクト

  • エラーと同じフォーマットの配列。 有効なインデックスは 'code', 'package', 'time', 'params', 'level', そして 'context'

次に、もしエラーがコンテキスト情報を含んでいた場合は コンテキスト処理メソッドによって処理されます。 最後に、エラーが適切なスタックに格納されます。

パラメータ

integer $code

パッケージ固有のエラーコード。

string $level

エラーレベル。スペルはチェックされません。

array $params

エラーパラメータの連想配列。

string $msg

エラーメッセージ、またはエラーメッセージの一部。

array $repackage

他のパッケージから渡されたエラーを再パッケージする場合、 このパラメータに pop() から返された配列を設定します。

array $backtrace

Protected パラメータ。エラーコンテキスト情報を取得するため、 debug_backtrace にこのパラメータを渡します。

返り値

互換性モードが on の場合には PEAR_Error もスローされます。 例外クラスが存在する場合、以下のようなコードで利用できる形式で返されます:
<?php
1      throw ($stack->push(MY_ERROR_CODE, 'error', array('username' => 'grob')));
?>

通常は、例外クラスの errorData プロパティの内容が配列に設定されます。 PEAR_Error が返される場合には、userinfo プロパティが配列に設定されます。

それ以外の場合は、このようなフォーマットの配列が返されます:
<?php
1      array(
2         'code' => $code,
3         'params' => $params,
4         'package' => $this->_package,
5         'level' => $level,
6         'time' => time(),
7         'context' => $context,
8         'message' => $msg,
9      //['repackage' => $err] repackaged error array
10     );
?>

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ErrorStack::popCallback() | 上に戻る | PEAR_ErrorStack::pushCallback()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ErrorStack::pushCallback

PEAR マニュアル
前のページ 次のページ

PEAR_ErrorStack::pushCallback()

PEAR_ErrorStack::pushCallback() -- エラーコールバックを設定する。有効なコールバックが設定されると、 エラーがスタックに格納されるたびにこれがコールされる。返り値によって エラーをスタックに格納するかどうか・ログに記録するかどうかを判断する。

概要

require_once 'PEAR/ErrorStack.php';

void PEAR_ErrorStack::pushCallback (string|array $cb)

説明

返り値は、PEAR_ERRORSTACK_* 定数のうちのひとつでなければなりません。

この機能は PEAR の pushErrorHandling と PEAR_ERROR_CALLBACK モードを エミュレートするもので、ログの記録やエラースタックには影響を及ぼしません。

パラメータ

string|array $cb

例外・エラー

例外はスローされません。

参照

PEAR_ErrorStack::popCallback()

PEAR_ERRORSTACK_PUSHANDLOG, PEAR_ERRORSTACK_PUSH, PEAR_ERRORSTACK_LOG も参照ください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ErrorStack::push() | 上に戻る | PEAR_ErrorStack::raiseError()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ErrorStack::raiseError

PEAR マニュアル
前のページ 次のページ

PEAR_ErrorStack::raiseError()

PEAR_ErrorStack::raiseError() -- PEAR::raiseError() をエミュレートする

概要

require_once 'PEAR/ErrorStack.php';

PEAR_Error PEAR_ErrorStack::raiseError ()

説明

PEAR::raiseError() も参照ください。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
PEAR_ErrorStack::pushCallback() | 上に戻る | PEAR_ErrorStack::setContextCallback()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ErrorStack::setContextCallback

PEAR マニュアル
前のページ 次のページ

PEAR_ErrorStack::setContextCallback()

PEAR_ErrorStack::setContextCallback() -- エラースタックのためにコンテキスト情報（エラーの場所など）を 生成するコールバックを設定する

概要

require_once 'PEAR/ErrorStack.php';

void PEAR_ErrorStack::setContextCallback (array|string|null $contextCallback)

説明

このメソッドは、エラーのコンテキスト情報を生成するために用いられる コールバックを設定します。 NULL を渡すとコンテキストの生成を無効にすることができます。 これにより、コストの高い debug_backtrace() のコールを削除できます。

パラメータ

mixed $contextCallback

is_callable() で定義される、有効なコールバック。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ErrorStack::raiseError() | 上に戻る | PEAR_ErrorStack::setDefaultCallback()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ErrorStack::setDefaultCallback

PEAR マニュアル
前のページ 次のページ

PEAR_ErrorStack::setDefaultCallback()

PEAR_ErrorStack::setDefaultCallback() -- 全エラースタックで利用されるデフォルトのコールバックを設定する

概要

require_once 'PEAR/ErrorStack.php';

void PEAR_ErrorStack::setDefaultCallback ([array|string $callback = FALSE])

説明

このメソッドは、シングルトンのためのエラーメッセージを生成する コールバックを設定します。

パラメータ

array|string $callback

コールバック関数 / メソッド。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
PEAR_ErrorStack::setContextCallback() | 上に戻る | PEAR_ErrorStack::setDefaultLogger()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ErrorStack::setDefaultLogger

PEAR マニュアル
前のページ 次のページ

PEAR_ErrorStack::setDefaultLogger()

PEAR_ErrorStack::setDefaultLogger() -- PEAR::Log オブジェクトを生成し、すべてのエラースタックに適用する

概要

require_once 'PEAR/ErrorStack.php';

void PEAR_ErrorStack::setDefaultLogger (Log &$log)

説明

PEAR::Log オブジェクトを生成し、独自の PEAR::Log オブジェクトを 持っていないすべてのエラースタックに適用します。

パラメータ

Log &$log

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
PEAR_ErrorStack::setDefaultCallback() | 上に戻る | PEAR_ErrorStack::setErrorMessageTemplate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ErrorStack::setErrorMessageTemplate

PEAR マニュアル
前のページ 次のページ

PEAR_ErrorStack::setErrorMessageTemplate()

PEAR_ErrorStack::setErrorMessageTemplate() -- エラーメッセージテンプレートの配列を設定する

概要

require_once 'PEAR/ErrorStack.php';

string PEAR_ErrorStack::setErrorMessageTemplate (mixed $template)

説明

配列はこのような形式でなければなりません: array(エラーコード => 'メッセージテンプレート',...)

push() に渡されたエラーメッセージパラメータが、エラーメッセージの元として 使われます。 テンプレートが 'message %foo% was %bar%', パラメータが array('foo' => 'one', 'bar' => 'six') であった場合、返されるエラーメッセージは 'message one was six' となります。

パラメータ

mixed $template

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ErrorStack::setDefaultLogger() | 上に戻る | PEAR_ErrorStack::setLogger()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ErrorStack::setLogger

PEAR マニュアル
前のページ 次のページ

PEAR_ErrorStack::setLogger()

PEAR_ErrorStack::setLogger() -- エラースタックに対して PEAR::Log オブジェクトを生成する

概要

require_once 'PEAR/ErrorStack.php';

void PEAR_ErrorStack::setLogger (Log &$log)

説明

指定したエラースタックのインスタンスで用いるため PEAR::Log オブジェクトを設定します。

パラメータ

Log &$log

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ErrorStack::setErrorMessageTemplate() | 上に戻る | PEAR_ErrorStack::setMessageCallback()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ErrorStack::setMessageCallback

PEAR マニュアル
前のページ 次のページ

PEAR_ErrorStack::setMessageCallback()

PEAR_ErrorStack::setMessageCallback() -- エラーコードとメッセージを関連付けたコールバックを設定する

概要

require_once 'PEAR/ErrorStack.php';

void PEAR_ErrorStack::setMessageCallback (mixed $msgCallback)

説明

このメソッドは、PEAR_ErrorStack インスタンスがエラーメッセージを 生成するために用いられるコールバックを設定します。

パラメータ

mixed $msgCallback

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ErrorStack::setLogger() | 上に戻る | PEAR_ErrorStack::singleton()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ErrorStack::singleton

PEAR マニュアル
前のページ 次のページ

PEAR_ErrorStack::singleton()

PEAR_ErrorStack::singleton() -- このパッケージの唯一のエラースタックを返す

概要

require_once 'PEAR/ErrorStack.php';

PEAR_ErrorStack & PEAR_ErrorStack::singleton (string $package [, callback $msgCallback = FALSE [, callback $contextCallback = FALSE [, boolean $throwPEAR_Error = FALSE, string [$stackClass = 'PEAR_ErrorStack']]]])

後方互換性のための警告

警告

PEAR 1.3.2 では、PEAR_ErrorStack は PHP 5 の例外オブジェクトを 生成しませんし、それを返すこともありません。2 番目以降のパラメータは 削除されます。この挙動に依存しているコードはうまく動作しません。

説明

$package パッケージのスタックがすでに生成されている場合は、 すべてのパラメータが無視されることに注意しましょう。

パラメータ

string $package

このエラースタックが表しているパッケージの名称。

callback $msgCallback

エラーメッセージの生成に利用されるコールバック。

callback $contextCallback

コンテキスト情報の生成に利用されるコールバック。 デフォルトは getFileLine()

boolean $throwPEAR_Error

TRUE を指定すると、 PEAR_ErrorStack::push() がコールされた際には PEAR::raiseError() がコールされ、 PEAR_Error オブジェクトが返されます。

string $stackClass

生成するクラス。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
PEAR_ErrorStack::setMessageCallback() | 上に戻る | PEAR_ErrorStack::staticGetErrors()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ErrorStack::staticGetErrors

PEAR マニュアル
前のページ 次のページ

PEAR_ErrorStack::staticGetErrors()

PEAR_ErrorStack::staticGetErrors() -- 最後にクリアした後に発生したすべてのエラーを取得する

概要

require_once 'PEAR/ErrorStack.php';

array
     PEAR_ErrorStack::staticGetErrors
     ([boolean
    $purge = FALSE [, string|false
     $level = FALSE [, boolean
     $merge = FALSE, array
     [$sortfunc = array('PEAR_ErrorStack', '_sortErrors')]]]])

後方互換性のための警告

警告

PEAR 1.3.2 では、第 2 パラメータが新しく $level にかわっています。 第 2 パラメータが $merge であることを想定しているコードはうまく動作しません。

説明

Static version of PEAR_ErrorStack::getErrors() , シングルトンのスタックに格納されているすべてのエラーを返します。

パラメータ

boolean $purge

取得後に既存のエラーをクリアする場合に設定します。

string $level

調べたい深刻度を表すレベル名を指定します。特定のレベルのエラーのみを 利用する場合にこのパラメータを利用します。たとえば警告のみを取得する （その他のエラーは無視する）などの場合です。

boolean $merge

パッケージが指定した方法ではなく単純な配列形式で結果を得たい場合に 設定します。

array $sortfunc

単純な配列形式で結果を返す場合の並び順。 デフォルトは発生時刻順で、たいていの場合はこれでよいでしょう。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
PEAR_ErrorStack::singleton() | 上に戻る | PEAR_ErrorStack::staticHasErrors()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ErrorStack::staticHasErrors

PEAR マニュアル
前のページ 次のページ

PEAR_ErrorStack::staticHasErrors()

PEAR_ErrorStack::staticHasErrors() -- スタックにエラーが格納されているかどうかを調べる

概要

require_once 'PEAR/ErrorStack.php';

boolean PEAR_ErrorStack::staticHasErrors ([string|false $package = false [, string $level = false]])

説明

PEAR_ErrorStack::hasErrors() の静的関数版です。 シングルトンのスタック中に未処理のエラーがある場合に TRUE を返します。 PEAR 1.3.2 以降では、$package が指定された場合にはそのパッケージ名のシングルトンに対して PEAR_ErrorStack::hasErrors をコールします。 level が指定された場合は、hasErrors は該当レベル以外のレベルの エラーをすべて無視します。 例えば、error_reporting(E_NOTICE) 相当の機能を実現するためにこれを 利用します。

パラメータ

string|FALSE $package

エラー情報を取得したいパッケージの名前。すべてのスタックから 情報を取得したい場合には false を設定します。

string $level

調べたい深刻度を表すレベル名を指定します。特定のレベルのエラーのみを 利用する場合にこのパラメータを利用します。たとえば警告のみを取得する （その他のエラーは無視する）などの場合です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
PEAR_ErrorStack::staticGetErrors() | 上に戻る | PEAR_ErrorStack::staticPop()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ErrorStack::staticPop

PEAR マニュアル
前のページ 次のページ

PEAR_ErrorStack::staticPop()

PEAR_ErrorStack::staticPop() -- pop() の静的バージョン

概要

require_once 'PEAR/ErrorStack.php';

false|array PEAR_ErrorStack::staticPop (string $package)

説明

エラースタックからエラーを取り出します。静的メソッドです。

パラメータ

string $package

エラーメッセージを取得するパッケージ名。

返り値

互換性モードが on の場合には PEAR_Error もスローされます。

注意

PEAR 1.5.0a1 以降で使用可能です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
PEAR_ErrorStack::staticHasErrors() | 上に戻る | PEAR_ErrorStack::staticPopCallback()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ErrorStack::staticPopCallback

PEAR マニュアル
前のページ 次のページ

PEAR_ErrorStack::staticPopCallback()

PEAR_ErrorStack::staticPopCallback() -- エラーコールバックのスタックからコールバックを取り除く

概要

require_once 'PEAR/ErrorStack.php';

array|string|false PEAR_ErrorStack::staticPopCallback ()

説明

全エラースタックからコールバックを取り除きます。 それが妥当なことなのかどうかは一切チェックされませんので、 慎重に利用してください。

例外・エラー

例外はスローされません。

参照

PEAR_ErrorStack::staticPushCallback() も参照ください。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
PEAR_ErrorStack::staticPop() | 上に戻る | PEAR_ErrorStack::staticPush()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ErrorStack::staticPush

PEAR マニュアル
前のページ 次のページ

PEAR_ErrorStack::staticPush()

PEAR_ErrorStack::staticPush() -- push() の静的バージョン

概要

require_once 'PEAR/ErrorStack.php';

PEAR_Error|array
PEAR_ErrorStack::staticPush
(string
$package, integer
$code [, string
$level = 'error' [, array
$params = array() [, string
$msg = FALSE [, array
$repackage = FALSE [, array
$backtrace = FALSE]]]]])

説明

パラメータ

string $package

このエラーが所属するパッケージ名。

integer $code

パッケージ固有のエラーコード。

string $level

エラーレベル。スペルチェックはされません。

array $params

エラーパラメータの連想配列。

string $msg

エラーメッセージ、またはエラーメッセージの一部。

array $repackage

他のパッケージから渡されたエラーを再パッケージする場合、 このパラメータに pop() から返された配列を設定します。

array $backtrace

Protected パラメータ。エラーコンテキスト情報を取得するため、 debug_backtrace にこのパラメータを渡します。

返り値

互換性モードが on の場合には PEAR_Error もスローされます。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
PEAR_ErrorStack::staticPopCallback() | 上に戻る | PEAR_ErrorStack::staticPushCallback()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ErrorStack::staticPushCallback

PEAR マニュアル
前のページ 次のページ

PEAR_ErrorStack::staticPushCallback()

PEAR_ErrorStack::staticPushCallback() -- 全パッケージのエラースタックのためのエラーコールバックを設定する

概要

require_once 'PEAR/ErrorStack.php';

void PEAR_ErrorStack::staticPushCallback (string|array $cb)

説明

全パッケージのエラースタックのシングルトンのための エラーコールバックを設定します。

パラメータ

string|array $cb

例外・エラー

例外はスローされません。

参照

PEAR_ErrorStack::staticPopCallback() , PEAR_ErrorStack::pushCallback()

PEAR_ERRORSTACK_PUSHANDLOG , PEAR_ERRORSTACK_PUSH , PEAR_ERRORSTACK_LOG も参照ください。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
PEAR_ErrorStack::staticPush() | 上に戻る | PEAR_ErrorStack::_log()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Exception - PHP 5+

目次
PEAR_Exception を使用した、PHP 5+ における高度なエラー処理 -- PEAR_Exception の使用法

PEAR_Exception は、PHP 5 対応の PEAR パッケージで推奨されるエラー処理方法です。 PEAR_Exception は、PHP 5 に組み込まれている Exception クラスの軽量なラッパーです。エラーの原因を指定したり オブザーバを登録したり、その他多くの機能を持っています。

使用例 (使用法を示すためだけのもので、推奨される方法ではありません)
<?php
require_once 'PEAR/Exception.php';
class MyPackage_Exception extends PEAR_Exception {}
try {
    throw new PEAR_Exception('exception 1');
} catch (MyPackage_Exception $e) {
    echo 'これは実行されません';
} catch (PEAR_Exception $e) {
    echo 'こちらが実行されます';
}
try {
    throw new MyPackage_Exception('exception 2');
} catch (MyPackage_Exception $e) {
    echo 'これが実行されます';
} catch (PEAR_Exception $e) {
    echo 'こちらは実行されません';
}
?>

一般に、例外は例外的な場合にのみ使用するものです。 例えば、実行を停止しなければならないようなエラーです。 PEAR_Exception の主な使用目的はエラーの情報を既存のパッケージの外部に提供することで、 一般的なフロー制御は行いません。 制御構造 を使用して例外の処理をしてください。

前のページ | ホーム | 次のページ
PEAR 基底クラス | 上に戻る | PEAR_Exception を使用した、PHP 5+ における高度なエラー処理

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Exception を使用した、PHP 5+ における高度なエラー処理

PEAR_Exception を使用した、PHP 5+ における高度なエラー処理 -- PEAR_Exception の使用法

概要

PEAR_Exception の使用法の概要

導入

このクラスは PEAR パッケージ の一部であり、以下のような機能があります。

  • 例外を入れ子状にできる (
    <?php throw new PEAR_Exception($msg, $prev_exception); ?>
    )。

  • Subject/Observer パターン。これは例外のインスタンスが作成された際に発動します。

  • すっきりしており、詳しくて見栄えがいいエラーメッセージ。

  • 組み込みの例外クラスに比べて、より多くの情報を使用可能。 例えば、例外が発生した原因 (PEAR_Error/PEAR_ErrorStack/その他の例外) など。

  • 例外の原因としては、PEAR_Error オブジェクトあるいは PEAR_Exception オブジェクト、そして PEAR_Exceptions/PEAR_ErrorStack などの配列が設定できます。

  • 指定した例外クラスおよびその子クラスに対するコールバック。

使用例です。
<?php
require_once 'PEAR/Exception.php';

class Test {
    function foo() {
        throw new PEAR_Exception('エラーメッセージ', ERROR_CODE);
    }
}

function myLogger($pear_exception) {
    echo $pear_exception->getMessage();
}
// 例外がスローされるたびに 'myLogger' がコールされます
// (これを使用するかどうかは任意です)
PEAR_Exception::addObserver('myLogger');
$test = new Test;
try {
    $test->foo();
} catch (PEAR_Exception $e) {
    print $e;
}
?>

API ドキュメントは、phpDocumentor で作成した PEAR パッケージのドキュメントに含まれます。このクラスは非常にシンプルなので、 PEAR パッケージのソースを読めばよりよい使用法を見つけられるでしょう。

前のページ | ホーム | 次のページ
PEAR_Exception - PHP 5+ | 上に戻る | PEAR_ErrorStack

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR::_PEAR()

PEAR::_PEAR() -- デストラクタ （パッケージ開発者用）

概要

require_once 'PEAR.php';

void PEAR::_PEAR ()

説明

現在は何もしませんが、上位互換性のために含まれています。このため、 サブクラスのデストラクタはこのデストラクタを常にコールするべきです。

前のページ | ホーム | 次のページ
PEAR::PEAR() | 上に戻る | PEAR::getStaticProperty()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


定数

定数 -- 定義済みの定数

PEAR_ERROR_CALLBACK

PEAR エラー処理に関連します。

PEAR_Error, setErrorHandling() を参照してください。

PEAR_ERROR_DIE

PEAR エラー処理に関連します。

PEAR_Error, setErrorHandling() を参照してください。

PEAR_ERROR_PRINT

PEAR エラー処理に関連します。

PEAR_Error, setErrorHandling() を参照してください。

PEAR_ERROR_RETURN

PEAR エラー処理に関連します。

PEAR_Error, setErrorHandling() を参照してください。

PEAR_ERROR_TRIGGER

PEAR エラー処理に関連します。

PEAR_Error, setErrorHandling() を参照してください。

前のページ | ホーム | 次のページ
はじめに | 上に戻る | PEAR::PEAR()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR::expectError()

PEAR::expectError() -- 一時的なエラー処理の通常化を行うエラーコードを指定する

概要

require_once 'PEAR.php';

integer PEAR::expectError ([mixed $errorCode = '*'])

説明

このメソッドは、（コール元で）取得したいエラー（の一覧）の指定に使用します。 指定したエラーは、エラーモードが PEAR_ERROR_RETURN となり、 常に返されるようになります。 取得したいエラーコード一覧はスタックに保持されており、 このメソッドにより、（エラーコード一覧は）そこに新しい要素として追加されます。 popExpect() メソッドでスタックから取り除くまで、 その追加したエラー一覧が有効となります。

パラメータ

  • mixed $errorCode - 取得したい PEAR_Error のエラーコード、 または、その配列。 '*' を指定すると、 すべてのエラーを取得できます。

返り値

integer - エラーコードのスタックの要素の数。

注意

この関数は、スタティックにコールする ことはできません。

参照

popExpect()

前のページ | ホーム | 次のページ
PEAR::setErrorHandling() | 上に戻る | PEAR::popExpect()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR::getStaticProperty()

PEAR::getStaticProperty() -- スタティックプロパティを扱う （パッケージ開発者用）

概要

require_once 'PEAR.php';

mixed &PEAR::getStaticProperty (string $class, string $var)

説明

ほぼ、または完全にスタティックなクラスがあり、 スタティックプロパティが必要な場合、 それを模擬するためにこのメソッドを使用することができます。 例えば、メソッドの中で以下のようにします。
$myVar = &PEAR::getStaticProperty('myVar');
リファレンスを使用する必要があることに注意して下さい。 さもないと、プロパティ値は永続しません!

パラメータ

  • string $class - getStaticProperty() のコール元のクラス名

  • string $var 取得する変数

返り値

mixed - 変数へのリファレンス。変数がセットされていない場合、 自動的に NULL に初期化されます。

例

例 26-1getStaticProperty() の使用

<?php

require_once 'PEAR.php';

class myClass {

function setValue( $set)
{
 $foo = &PEAR::getStaticProperty('myClass', "foo");
 $foo = $set;
}

function view()
{
 print PEAR::getStaticProperty('myClass', "foo");
}

}

myClass::setValue('value = foo');
myClass::view();
?>

出力は以下となります。

value = foo
前のページ | ホーム | 次のページ
PEAR::_PEAR() | 上に戻る | PEAR::registerShutdownFunc()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


はじめに

はじめに -- PEAR 基底クラス（デストラクタ、エラー処理）の取り扱い方法

概要

require_once "PEAR.php";
class classname extends PEAR { ... }

説明

PEAR 基底クラスは、ほとんどの PEAR クラスで使用される 標準的な機能を提供します。 通常、PEAR クラスのインスタンスを直接生成することはなく、 サブクラス化して使用します。

その主な機能を次に示します。

  • シャットダウンリクエストによるオブジェクト 「デストラクタ」

  • エラー処理

PEAR デストラクタ

ClassName というクラス名で PEAR を継承した場合、 _ClassName （クラス名の前にアンダースコアを付けたもの）というメソッドを定義できます。 このメソッドは、リクエストが完了した時点でコールされます。 これは、オブジェクトを 「削除」 できるという意味ではデストラクタでは ありませんが、PHP が実行を完了した時点で、 PHP によりオブジェクトのコールバック関数としてコールされるという意味で デストラクタと呼ぶことができます。次の 例を参照してください。

重要!

デストラクタを正しく動作させるためには、クラスのインスタンス生成を 次のように "=& new" 演算子で行う必要があります。
$obj =& new MyClass();

"= new" を使用した場合、PEAR のシャットダウンリストに登録された オブジェクトは、コンストラクタがコールされた時点でのオブジェクトの コピーとなります。 この場合、このコピーの 「デストラクタ」 がシャットダウン要求時に コールされることになります。

PEAR エラー処理

PEAR 基底クラスは、true/false 値や数値コードといったものに比べ、 より複雑にエラーを渡す手段を提供します。 PEAR エラーはオブジェクトであり、 PEAR_Error クラス、または PEAR_Error を継承したクラスのインスタンスです。

PEAR エラーの設計指針に、ユーザには特定の形式の出力を強制するべきではなく、 場合によっては出力をまったく行わずにエラー処理を可能とするべき、 というものがあります。 これにより、出力形式が HTML 以外（たとえば WML や他の XML 形式）の場合にも、 高度なエラー処理が可能となります。

エラーオブジェクトは、生成時に様々な動作をさせるよう設定することができます。。 たとえば、エラーメッセージを出力する、メッセージを出力して終了する、 PHP の trigger_error() 関数でエラーを発生する、 コールバックを起動する、または、これら何もしない、などです。 これは、通常、PEAR_Error の コンストラクタで指定されます。ただし、すべてのパラメータは任意です。 また、PEAR クラス を基底とする各オブジェクトから生成されるエラーの デフォルト動作を設定することもできます。 エラーオブジェクトの使用法についてはPEAR エラーの例を、詳細については、 PEAR_Error リファレンスを参照してください。

例

次の例は、PEAR の「貧乏人のデストラクタもどき」の使用法を示します。 ファイルの中身を保持する簡単なクラスで、オブジェクトにデータを追加すると、 リクエスト終了時にファイルにデータを書き戻すというコードです。

例 26-1PEAR 擬似デストラクタ

require_once "PEAR.php";

class FileContainer extends PEAR
{
    var $file = '';
    var $contents = '';
    var $modified = 0;

    function FileContainer($file)
    {
        $this->PEAR(); // 親クラスのコンストラクタをコール
        $fp = fopen($file, "r");
        if (!is_resource($fp)) {
            return;
        }
        while ($data = fread($fp, 2048)) {
            $this->contents .= $data;
        }
        fclose($fp);
    }

    function append($str)
    {
        $this->contents .= $str;
        $this->modified++;
    }

    // 「デストラクタ」 はコンストラクタと似た名前でが、
    // 前にアンダースコアが付いています。
    function _FileContainer()
    {
        if ($this->modified) {
            $fp = fopen($this->file, "w");
            if (!is_resource($fp)) {
                return;
            }
            fwrite($fp, $this->contents);
            fclose($fp);
        }
    }
}

$fileobj =& new FileContainer("testfile");
$fileobj->append("this ends up at the end of the file\n");

// リクエストが完了し、PHP がシャットダウンする時、$fileobj の
// 「デストラクタ」 がコールされ、ディスク上のファイルが更新されます。

注意 PEAR 「デストラクタ」 は、PHP のシャットダウン時のコールバック (register_shutdown_function()) を使用します。 そのため、PHP < 4.1 では、PHP が Web サーバで実行されている場合は デストラクタからは何も出力できません。 PHP がコマンドラインモードで使用されている場合を除き、 デストラクタからの出力はすべて失われます。 PHP 4.1 以降では、デストラクタにおいても出力を行うことが可能です。

また、デストラクタを使用する場合は、オブジェクトのインスタンス生成に関する 警告 も参照してください。

次の例は、PEAR のエラー処理機構の別の使用方法を説明するものです。

例 26-2PEAR エラーの例 (1)

function mysockopen($host = "localhost", $port = 8090)
{
    $fp = fsockopen($host, $port, $errno, $errstr);
    if (!is_resource($fp)) {
        return new PEAR_Error($errstr, $errno);
    }
    return $fp;
}

$sock = mysockopen();
if (PEAR::isError($sock)) {
    print "mysockopen error: ".$sock->getMessage()."<BR>\n"
}

この例は、fsockopen() 関数のラッパです。 fsockopen が返すエラーコードおよびメッセージを PEAR エラーオブジェクトで返します。 返された値が PEAR エラーかどうか調べるには PEAR::isError() を使用するということに注目してください。

この例での PEAR_Error の実行モードは、エラーオブジェクトを返し、 ユーザ（プログラマ）にその後の処理を託す、というものです。 これは、デフォルトのエラーモードです。

次の例では、エラーモードのデフォルトを設定する方法を示します。

例 26-3PEAR エラーの例 (2)

class TCP_Socket extends PEAR
{
    var $sock;

    function TCP_Socket()
    {
        $this->PEAR();
    }

    function connect($host, $port)
    {
        $sock = fsockopen($host, $port, $errno, $errstr);
        if (!is_resource($sock)) {
            return $this->raiseError($errstr, $errno);
        }
    }
}

$sock = new TCP_Socket;
$sock->setErrorHandling(PEAR_ERROR_DIE);
$sock->connect("localhost", 8090);
print "still alive<BR>\n";

この例では、エラーモードのデフォルトを PEAR_ERROR_DIE に設定しています。 raiseError のコールにあたって、 （3番目のパラメータに)エラーモードを設定していないため、 raiseError はデフォルトのエラーモードを使用し、 fsockopen が失敗するとスクリプトの実行を終了します。

使用されるグローバル変数

PEAR クラスは、グローバルなデフォルトと 「デストラクタ」で使用されるオブジェクトのリストを登録するために いくつかのグローバル変数を使用します。 PEAR クラスに関連するすべてのグローバル変数は、 接頭辞 _PEAR_ を有します。

$_PEAR_default_error_mode

オブジェクトの中でデフォルトのエラーモードが設定されない場合、 このモードが使用されます。 PEAR_ERROR_RETURN, PEAR_ERROR_PRINT, PEAR_ERROR_TRIGGER, PEAR_ERROR_DIE, PEAR_ERROR_CALLBACK のいずれかに設定できます。

この変数は、直接設定せずに、次のようにスタティックメソッド PEAR::setErrorHandling() をコールして下さい。

PEAR::setErrorHandling(PEAR_ERROR_DIE);

$_PEAR_default_error_options

エラーモードが、PEAR_ERROR_TRIGGER の場合、 エラーレベル（ E_USER_NOTICE, E_USER_WARNING, E_USER_ERROR のどれか）となります。

この変数は、直接設定せずに、次のようにスタティックメソッド PEAR::setErrorHandling() をコールして下さい。

PEAR::setErrorHandling(PEAR_ERROR_TRIGGER, E_USER_ERROR);

$_PEAR_default_error_callback

エラーが発生した際に options パラメータが指定されておらず また、エラーモードが PEAR_ERROR_CALLBACK の場合、 この変数の値がコールバックとして使用されます。 これにより、エラーモードを一時的に変更しても、 コールバック関数を再度設定せずにコールバックモードに戻ることができます。 関数を示す文字列、もしくは、添字 0 にオブジェクト、 添字 1 にメソッドを有する要素数 2 の配列になります。

この場合も、この変数を直接設定せずに、次のようにスタティックメソッド PEAR::setErrorHandling() をコールして下さい。

PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, "my_error_handler");

コールバック関数を再度指定せずに切替える方法の例を示します。

PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, "my_function_handler");
do_some_stuff();
PEAR::setErrorHandling(PEAR_ERROR_DIE);
do_some_critical_stuff();
PEAR::setErrorHandling(PEAR_ERROR_CALLBACK);
// ここで my_function_handler を使用する状態に戻ります

前のページ | ホーム | 次のページ
PEAR 基底クラス | 上に戻る | 定数

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR::isError()

PEAR::isError() -- PEAR_Error オブジェクトかどうかチェックする

概要

require_once 'PEAR.php';

boolean PEAR::isError (mixed $data [, mixed $msgcode])

説明

isError() は、ある変数が PEAR_Error オブジェクトかどうかを調べます。 オプションで、特定のエラーメッセージ またはエラーコードが含まれているかどうかを調べます。

パラメータ

mixed $data

チェックする変数

mixed $msgcode

チェックするエラーメッセージまたはエラーコード（オプション）。

返り値

mixed - 変数が、PEAR_Error の場合に TRUEを返します。 第2引数が設定された場合は、さらに 所与された $msgcode を含む場合のみ TRUEを返します。

前のページ | ホーム | 次のページ
PEAR::registerShutdownFunc() | 上に戻る | PEAR::raiseError()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR::loadExtension()

PEAR::loadExtension() -- OS に非依存で PHP 拡張モジュールをロードする

概要

require_once 'PEAR.php';

boolean PEAR::loadExtension (string $ext)

説明

名称を指定して拡張モジュールをロードする。

パラメータ

string $ext

PHP拡張モジュールの名称。 大文字/小文字は区別 されます。 ファイル名の接尾辞や php_ 接頭辞を 付けずに指定します。

返り値

boolean - 拡張モジュールがロードできた場合に TRUE を返します。

注意

この関数は、スタティックにコールする ことができます。

例

例 26-1domxml 拡張モジュールのロード

if(!PEAR::loadExtension("domxml")) {
 echo 'Could not load DomXML-Extension!';
 exit();
}
前のページ | ホーム | 次のページ
PEAR::popExpect() | 上に戻る | PEAR_Exception - PHP 5+

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR::PEAR()

PEAR::PEAR() -- コンストラクタ （パッケージ開発者用）

概要

require_once 'PEAR.php';

void PEAR::PEAR (string [$errorClass = PEAR_Error])

説明

PEAR が提供するデストラクタ機能を使う場合は、 自分の クラスのコンストラクタ中で $this->PEAR() をコールする必要があります。

パラメータ

  • string $errorClass - 使用するエラークラスの名前。

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
定数 | 上に戻る | PEAR::_PEAR()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR::popExpect()

PEAR::popExpect() -- 直近に指定したエラーコードに対して、一時的なエラー処理の通常化を解除する

概要

require_once 'PEAR.php';

mixed PEAR::popExpect ()

説明

このメソッドは、（コール元で） 取得したいエラーコード一覧を保持するスタックの末尾から 要素を1つ取り除きます。

返り値

mixed - 取り除かれたエラーコード、または、その配列です。

注意

この関数は、スタティックにコールする ことはできません。

参照

expectError()

前のページ | ホーム | 次のページ
PEAR::expectError() | 上に戻る | PEAR::loadExtension()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR::raiseError()

PEAR::raiseError() -- 新規に PEAR_Error オブジェクトを生成し、 オプションでエラー処理手順を指定する

概要

require_once 'PEAR.php';

PEAR_Error PEAR::raiseError (mixed $message [, int $code [, int $mode [, int|array $options [, mixed $userinfo [, string $error_class [, boolean $skipmsg]]]]]])

説明

raiseError()

パラメータ

string $message

エラーメッセージ文字列または PEAR_Error オブジェクト。 値を指定しなかった場合のデフォルトのメッセージは、 unknown error です。

integer $code

エラーコード。エラー処理を容易にするため、 簡単なエラーに対してもエラーコードの使用を推奨します。

integer $mode

エラーモード。これは、PEAR_ERROR_RETURN, PEAR_ERROR_PRINT, PEAR_ERROR_TRIGGER, PEAR_ERROR_DIE, PEAR_ERROR_CALLBACK, PEAR_ERROR_EXCEPTION のいずれかとします。 詳細な情報とこれらの定数の意味については、 setErrorHandling() を参照してください。

mixed $options

エラーオプション。これは、$mode の値に依存します。 詳しくは、 setErrorHandling() に記述されています。

mixed $userinfo

ユーザ情報（オプション）。 特定のエラーに固有の情報を保存するために使用し、 任意のフォーマットを使用できます。

string $error_class

エラーオブジェクトとして使用するエラークラスの名前。デフォルト のエラークラスは PEAR_Error です。 PEAR_Error を拡張したカスタムクラスのような 他のクラスを使用する場合には、このパラメータを使用してください。

boolean $skipmsg

コンストラクタでエラーメッセージを受け付けないカスタムクラスを 使用する場合には、このパラメータを使用してください。 $error_class パラメータを使用しない場合には、 このパラメータを使用しないでください。

返り値

PEAR_Error オブジェクトが返されます。 ただし、 PEAR_ERROR_DIE が実行を終了するか、 PEAR_ERROR_EXCEPTION がハンドルされない場合を除きます。

前のページ | ホーム | 次のページ
PEAR::isError() | 上に戻る | PEAR::setErrorHandling()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR::registerShutdownFunc()

PEAR::registerShutdownFunc() -- スタティッククラスのシャットダウン関数を設定する （パッケージ開発者用）

概要

require_once 'PEAR.php';

void PEAR::registerShutdownFunc (array $func [, array $var = array()])

説明

PHP インタプリタが終了する前に、指定された関数がコールされます。

パラメータ

  • array $func - クラス名とコールする関数

  • array $var - 関数に必要なパラメータ。配列の並びのとおりに関数に渡されます。

例

例 26-1registerShutdownFunc() の使用

<?php

require_once 'PEAR.php';

class myClass {

function myClass()
{
 PEAR::registerShutdownFunc(array('myClass', 'shutdown'),
                            array('param1', 'param2'));
}

function shutdown( $param1, $param2)
{
 // do something before we will die
}

}

?>
前のページ | ホーム | 次のページ
PEAR::getStaticProperty() | 上に戻る | PEAR::isError()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR::setErrorHandling()

PEAR::setErrorHandling() -- PEAR パッケージにより生成されるエラーの処理方法を指定する

概要

require_once 'PEAR.php';

void PEAR::setErrorHandling ([integer $mode = NULL [, mixed $options = NULL]])

説明

setErrorHandling() は、普通のオブジェクトメソッド ($obj->setErrorHandling) としても、スタティックメソッド (PEAR::setErrorHandling) としてもコールできます。 スタティックにコールされた場合、すべての PEAR オブジェクトに対する デフォルトのエラー処理動作を設定します （グローバルなエラー処理動作）。 オブジェクトメソッドとしてコールされた場合、 $obj->setErrorHandling() は、そのオブジェクトだけに対して デフォルトのエラー処理動作を設定します （ローカルなエラー処理動作）。

パラメータ

  • integer $mode - 以下の定数の1つ

    • PEAR_ERROR_RETURN 。 エラーが発生した場合、エラー生成メソッド（通常は raiseError()） から、PEAR_Error が返されます。

    • PEAR_ERROR_PRINT 。 PEAR_ERROR_RETURN と同様の動作に加え、 エラーメッセージが出力されます。

    • PEAR_ERROR_TRIGGER 。 PEAR_ERROR_RETURN と同様の動作に加え、 PEAR_Error のコンストラクタで、 PHP 組み込み関数 trigger_error() が エラーメッセージを添えてコールされます。

    • PEAR_ERROR_DIE 。 PEAR_Error の生成時に、エラーメッセージが出力され、 スクリプトが終了します。

    • PEAR_ERROR_CALLBACK エラーが発生した場合、 $options に指定されたコールバックが コールされます。

    • PEAR_ERROR_EXCEPTION 。 Zend Engine 2 が存在する場合、 PEAR_Error オブジェクトを使って例外がスローされます。

  • mixed $options - $options の値は $mode に依る

    • PEAR_ERROR_PRINT および PEAR_ERROR_DIE は、 エラーメッセージを出力する際に使われる 任意の printf() 形式の文字列をサポートします。 この整形文字列は、1つの %s を含み、 そこにエラーメッセージが挿入されます。 エラーメッセージやそのプレフィックスに示されていない有用な 情報をエラーメッセージに付加するために使用します。

    • PEAR_ERROR_TRIGGER には、 trigger_error() が使用するエラーレベル定数が 必要です（ E_USER_NOTICE, E_USER_WARNING もしくは E_USER_ERRORが使用可能）。 指定されたエラーレベル定数が有効なものでなければ、 PHP の警告 (Warning) が生成されます。

    • PEAR_ERROR_CALLBACK。 コールバックは、PHP マニュアルの 擬似的な型 についてのセクションに記述の形式による関数名とします。 コールバックは、生成された PEAR_Error を引数に取ります。 指定されたコールバックが有効で無い場合、 PHP の警告 (Warning) が生成されます。

setErrorHandling の使用方法の例を示します。
<?php
require_once 'PEAR.php';
// ダミーのエラー定数
define('MYCLASS_ERROR_CODE', 1);

// デフォルトのグローバルなエラー処理いついての実例
// この場合、すべての PEAR エラーはPHP の警告 (Warning) を生成します。
PEAR::setErrorHandling(PEAR_ERROR_TRIGGER, E_USER_WARNING);
// ファイルと行番号が PEAR.php の PEAR_Error のコンストラクタで
// 処理されます。
PEAR::raiseError('test warning', MYCLASS_ERROR_CODE);

// このエラーにはモードが設定されており、グローバルなエラー処理を上書きします。
$e = PEAR::raiseError('return only', MYCLASS_ERROR_CODE, PEAR_ERROR_RETURN);

PEAR::setErrorHandling(PEAR_ERROR_PRINT, "Gronk error: %s<br />\n");

// "Gronk error: test warning<br />\n" を出力します。
PEAR::raiseError('test warning', MYCLASS_ERROR_CODE);

/**
 * Fake class to demonstrate error handling
 * @package myClass
 */
class myClass extends PEAR {
    /**
     * ローカルなエラー処理のデフォルトの実例
     */
    function myClass()
    {
        // オブジェクトメソッドのコールバック
        $this->setErrorHandling(PEAR_ERROR_CALLBACK, array(&$this, 'handleErr'));
        // "custom handler...is working" を出力
        PEAR::raiseError('custom handler', MYCLASS_ERROR_CODE);
        // スタティッククラスメソッドのコールバック
        $this->setErrorHandling(PEAR_ERROR_CALLBACK,
            array('myClass', 'handleErrStatic'));
        PEAR::raiseError('custom handler', MYCLASS_ERROR_CODE);
        // 関数のコールバック
        $this->setErrorHandling(PEAR_ERROR_CALLBACK, 'standardCallback');
        PEAR::raiseError('custom handler', MYCLASS_ERROR_CODE);
    }

    /**
     * コンストラクタにより指定されるコールバック
     * @param PEAR_Error The error object
     */
    function handleErr($error)
    {
        $this->lastError = $error->getMessage();
        print $error->getMessage() . "...is working\n";
    }

    /**
     * コンストラクタにより指定されるスタティックなコールバック
     *
     * Note that in PHP 5, $this is not set if the method is declared with
     * the "static" access modifier.  In PHP 4, $this is set, but is not
     * set to the myClass object, so don't use it!
     * @param PEAR_Error The error object
     * @static
     */
    function handleErrStatic($error)
    {
        print 'static ' . $error->getMessage() . "...is working\n";
    }
}

/**
 * @param PEAR_Error The error object
 */
function standardCallback($error)
{
    print 'normal function callback: ' . $error->getMessage();
}

// エラー用コールバックを通じて以下の3つのメッセージが出力されます。
// "custom handler...is working"
// "static custom handler... is working"
// "normal function callback: custom handler"
$mine = new myClass;

PEAR::setErrorHandling(PEAR_ERROR_DIE);
// "oops" というエラーメッセージを出力し、スクリプトを終了させます。
PEAR::raiseError('oops', MYCLASS_ERROR_CODE);
?>

前のページ | ホーム | 次のページ
PEAR::raiseError() | 上に戻る | PEAR::expectError()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System

目次
導入 -- 一般的な使用法
System::rm -- ファイルを削除する
System::mkDir -- ディレクトリを作成する
System::&cat -- ファイルを連結する
System::mktemp -- 一時ファイルあるいは一時ディレクトリを作成する
System::tmpdir -- 一時ディレクトリのパスを取得する
System::which -- コマンドのフルパスを表示する

コマンドライン関数

System は、クロスプラットフォーム互換の コマンドラインプログラム用 API を提供します。

前のページ | ホーム | 次のページ
PEAR_Error::toString() | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System::&cat

System::&cat -- ファイルを連結する

概要

require_once "System.php";

boolean System::&cat (string $args)

説明

ファイルを連結します。このメソッドは fopen() を使用するので、URL でも動作します。

パラメータ

  • string $args - 引数。

返り値

boolean - 成功した場合に TRUE を返します。

注意

この関数は、スタティックにコールする ことができます。

参照

cat のマニュアル

例

例 26-1&cat() の使用

$var = System::cat('sample.txt test.txt');
       System::cat('sample.txt test.txt > final.txt');
       System::cat('sample.txt test.txt >> final.txt');
前のページ | ホーム | 次のページ
System::mkDir | 上に戻る | System::mktemp

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- 一般的な使用法

コマンドライン形式

System の関数は、 このようにコマンドラインを与えてコールします。
if (!System::rm('-r file1 dir1')) {
    print "すべてのファイルを削除できませんでした";
}
関数の引数は、文字列あるいは配列で渡すことができます。
System::rm(array('-r', 'file1', 'dir1'));
System は、他の PHP 関数と同じように動作し、 操作が完了しなかった場合は FALSE を返します。 System は、エラーが見つかっても処理を停止せず、続行します。例えば、 3 つのファイルを削除する処理で最初のファイルの削除に失敗したとしても、 残りの 2 つは削除されます。しかし、関数の返り値は FALSE となります。

エラーの表示には、PHP の trigger_error()() 関数が使用されます。したがって、関数名の前に '@' をつければ System メソッドの出力を抑えることができます (例: @System::mkdir('-p dir1/dir2/dir3');)。

互換性

System が提供するのはファイルシステム関数です。 その名前は Unix システムのコマンドに似ており、 それらと同様のオプションを使用できます。このオプションは、 OS に依存しません。

現時点では、これらの関数は Linux および Windows でしかテストされていません。 その他のシステムにおける互換性の報告をお待ちしています。

警告

PHP 4 の初期のバージョンでは、Windows 上で unlink() がうまく動作しませんでした。このバグは、最新のバージョンでは修正されています。

マニュアルページ

このマニュアルでは System 関数のパラメータについて説明していますが、 ほとんどは、単に「文字列を引数にとります」というだけの説明です。 個々のコマンドに渡す引数やオプションについては、このマニュアルでは 説明していません。それらの説明は、Unix 系のシステムなら
man コマンド名
でマニュアルページを参照ください。もしマニュアルページが使用できない場合は、 オンラインの UNIX マニュアルページ を参照ください。

前のページ | ホーム | 次のページ
System | 上に戻る | System::rm

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System::mkDir

System::mkDir -- ディレクトリを作成する

概要

require_once "System.php";

bool System::mkDir (string $args)

説明

ディレクトリを作成します。

パラメータ

  • string $args - 作成するディレクトリ名。

返り値

bool - 成功した場合に TRUE を返します。

注意

この関数は、スタティックにコールする ことができます。

参照

mkdir のマニュアル

前のページ | ホーム | 次のページ
System::rm | 上に戻る | System::&cat

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System::mktemp

System::mktemp -- 一時ファイルあるいは一時ディレクトリを作成する

概要

require_once "System.php";

mixed System::mktemp ([string $args = NULL])

説明

一時ファイルあるいは一時ディレクトリを作成します。 この関数で作成したファイルは、スクリプトの実行終了時に削除されます。

パラメータ

  • string $args - 引数。

    • prefix - 一時ファイル名の先頭に付加する文字列 (デフォルトは tmp)。

    • -d - ファイルではなく一時ディレクトリを作成します。

    • -t - 一時ファイルあるいは一時ディレクトリが作成される場所。 省略した場合のデフォルト値は、Windows では環境変数 TMP の場所、Unix では環境変数 TMPDIR の場所となります。 これらの値も省略されている場合は、 c:\windows\temp あるいは /tmp が使用されます。

返り値

mixed - 作成されたファイルあるいはディレクトリのフルパス、あるいは FALSE を返します。

注意

この関数は、スタティックにコールする ことができます。

参照

mktemp のマニュアル

例

例 26-1mktemp() の使用

$tempfile = System::mktemp("prefix");
$tempdir  = System::mktemp("-d prefix");
$tempfile = System::mktemp();
$tempfile = System::mktemp("-t /var/tmp prefix");
前のページ | ホーム | 次のページ
System::&cat | 上に戻る | System::tmpdir

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System::rm

System::rm -- ファイルを削除する

概要

require_once "System.php";

mixed System::rm (string $args)

説明

ファイルを削除するための rm コマンドです。 複数のファイルやディレクトリの削除、再帰的な削除もサポートしています。

パラメータ

  • string $args - rm に渡す引数。

返り値

mixed - 成功した場合に TRUE を返します。

注意

この関数は、スタティックにコールする ことができます。

参照

rm のマニュアル

前のページ | ホーム | 次のページ
導入 | 上に戻る | System::mkDir

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System::which

System::which -- コマンドのフルパスを表示する

概要

require_once "System.php";

mixed System::which (string $program [, boolean $fallback = FALSE])

説明

このコマンドは、コマンドのフルパスを表示します。

パラメータ

  • string $program - 探したいコマンド。

  • boolean $fallback - プログラムが見つからなかった場合に返す値。

返り値

mixed - フルパスを表す文字列、あるいは見つからなかった場合に FALSE を返します。

注意

この関数は、スタティックにコールする ことができます。

参照

which のマニュアル

前のページ | ホーム | 次のページ
System::tmpdir | 上に戻る | PEAR インストーラクラス

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System::tmpdir

System::tmpdir -- 一時ディレクトリのパスを取得する

概要

require_once "System.php";

string System::tmpdir ()

説明

環境変数から、システムの一時ディレクトリへのパスを取得します。

返り値

string - システムの一時ディレクトリを返します。

注意

この関数は、スタティックにコールする ことができます。

php.ini-recommended では、variables_order の設定から E が取り除かれています。そのため、 $_ENV 配列は使用できません。

参照

tmpdir のマニュアル

前のページ | ホーム | 次のページ
System::mktemp | 上に戻る | System::which

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Autoloader::__call

PEAR マニュアル
前のページ 次のページ

PEAR_Autoloader::__call()

PEAR_Autoloader::__call() -- オーバーロードされたオブジェクトコールハンドラ

概要

require_once 'PEAR/autoloader.php';

mixed PEAR_Autoloader::__call (string $method, string $args, mixed &$retval)

説明

オーバーロードされたオブジェクトコールハンドラで、 未定義のメソッドが起動された場合にコールされます。 このメソッドは、正しい集約オブジェクトをコールします。

パラメータ

string $method

コールされるメソッド。

string $args

本来のコールで渡されたパラメータの配列。

mixed &$retval

返り値

mixed - 集約メソッドからの返り値、あるいはコールしたメソッドが見つからない場合に PEAR_Error を返します。

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Autoloader::removeAutoload() | 上に戻る | PEAR_Builder

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Autoloader::addAggregateObject

PEAR マニュアル
前のページ 次のページ

PEAR_Autoloader::addAggregateObject()

PEAR_Autoloader::addAggregateObject() -- 集約オブジェクトを追加する

概要

require_once 'PEAR/autoloader.php';

void PEAR_Autoloader::addAggregateObject (string $classname)

説明

このオブジェクトに集約オブジェクトを追加します。 指定したクラスが定義されていない場合は、PEAR ファイル命名規約にもとづいてファイルの読み込みを試みます。 プライベートメソッド (アンダースコアで始まる名前のメソッド) およびコンストラクタを除く、クラスの全メソッドが集約されます。

パラメータ

string $classname

インスタンスを作成するクラス。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR インストーラクラス | 上に戻る | PEAR_Autoloader::addAutoload()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Autoloader::addAutoload

PEAR マニュアル
前のページ 次のページ

PEAR_Autoloader::addAutoload()

PEAR_Autoloader::addAutoload() -- 自動ロードエントリを追加する

概要

require_once 'PEAR/autoloader.php';

void PEAR_Autoloader::addAutoload (string $method, string ''[$classname = NULL])

説明

自動ロードエントリを追加します。

パラメータ

string $method

自動ロードするメソッド。

string $classname

メソッドを探すクラス。 $method が配列の場合は、 このパラメータは省略でき (指定しても無視されます)、 $method が連想配列 (メソッド名がキー、クラス名が値となる) として扱われます。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Autoloader::addAggregateObject() | 上に戻る | PEAR_Autoloader::removeAggregateObject()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Autoloader::removeAggregateObject

PEAR マニュアル
前のページ 次のページ

PEAR_Autoloader::removeAggregateObject()

PEAR_Autoloader::removeAggregateObject() -- 集約オブジェクトを削除する

概要

require_once 'PEAR/autoloader.php';

bool PEAR_Autoloader::removeAggregateObject (string $classname)

説明

集約オブジェクトを削除します。

パラメータ

string $classname

削除するオブジェクトのクラス。

返り値

bool 成功時には TRUE 、 失敗時には FALSE を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Autoloader::addAutoload() | 上に戻る | PEAR_Autoloader::removeAutoload()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Autoloader::removeAutoload

PEAR マニュアル
前のページ 次のページ

PEAR_Autoloader::removeAutoload()

PEAR_Autoloader::removeAutoload() -- 自動ロードエントリを削除する

概要

require_once 'autoloader.php';

bool PEAR_Autoloader::removeAutoload (string $method)

説明

自動ロードエントリを削除します。

パラメータ

string $method

自動ロードエントリから削除するメソッド。

返り値

bool 成功時には TRUE 、 失敗時には FALSE を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Autoloader::removeAggregateObject() | 上に戻る | PEAR_Autoloader::__call()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Builder

目次
PEAR_Builder::PEAR_Builder() -- コンストラクタ
PEAR_Builder::build() -- 拡張モジュールをソースからビルドする
PEAR_Builder::log() --
PEAR_Builder::phpizeCallback() -- phpize を実行した際のメッセージコールバック関数

拡張モジュールの構築 (コンパイル) 処理を行うクラス

PEAR_Builder 用クラスツリー

  • PEAR_Common

    • PEAR_Builder

前のページ | ホーム | 次のページ
PEAR インストーラクラス | 上に戻る | PEAR_Builder::PEAR_Builder()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Builder::build

PEAR マニュアル
前のページ 次のページ

PEAR_Builder::build()

PEAR_Builder::build() -- 拡張モジュールをソースからビルドする

概要

require_once 'PEAR/builder.php';

array PEAR_Builder::build (string $descfile [, mixed $callback = NULL])

説明

拡張モジュールをソースからビルドします。 ソースディレクトリで phpize を実行し、 一時ディレクトリ (/var/tmp/pear-build-USER/PACKAGE-VERSION) でコンパイルを行います。

パラメータ

string $descfile

XML パッケージ定義ファイルへのパス。

mixed $callback

結果の出力に使用するコールバック関数。

返り値

array - ビルドされたファイルを表す連想配列の配列。以下の書式になります。
array( array( 'file' => '/path/to/ext.so',
                    'php_api' => YYYYMMDD,
                    'zend_mod_api' => YYYYMMDD,
                    'zend_ext_api' =>; YYYYMMDD ),
       ... )

参照

PEAR_Common::infoFromDescriptionFile

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Builder::PEAR_Builder() | 上に戻る | PEAR_Builder::log()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Builder::log

PEAR マニュアル
前のページ 次のページ

PEAR_Builder::log()

PEAR_Builder::log() --

概要

require_once 'PEAR/builder.php';

void PEAR_Builder::log (mixed $level, mixed $msg)

説明

このパッケージに関する文書は、未作成です。

パラメータ

mixed $level

mixed $msg

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Builder::build() | 上に戻る | PEAR_Builder::phpizeCallback()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Builder::PEAR_Builder

PEAR マニュアル
前のページ 次のページ

PEAR_Builder::PEAR_Builder()

PEAR_Builder::PEAR_Builder() -- コンストラクタ

概要

require_once 'PEAR/builder.php';

void PEAR_Builder::PEAR_Builder (object &$ui)

説明

PEAR_Builder のコンストラクタです。

パラメータ

object &$ui

ユーザインターフェイスオブジェクト (PEAR_Frontend_* のインスタンス)。

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
PEAR_Builder | 上に戻る | PEAR_Builder::build()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Builder::phpizeCallback

PEAR マニュアル
前のページ 次のページ

PEAR_Builder::phpizeCallback()

PEAR_Builder::phpizeCallback() -- phpize を実行した際のメッセージコールバック関数

概要

require_once 'PEAR/builder.php';

void PEAR_Builder::phpizeCallback (string $what, mixed $data)

説明

phpize プログラムを実行した際のメッセージコールバック関数です。 使用した API の数を抽出します。"cmdoutput" 以外のメッセージ型は無視します。

パラメータ

string $what

メッセージの型。

mixed $data

メッセージ。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Builder::log() | 上に戻る | PEAR_ChannelFile

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile

目次
PEAR_ChannelFile クラス概要 -- チャネル操作用クラス
constructor PEAR_ChannelFile::PEAR_ChannelFile() -- PEAR_ChannelFile
PEAR_ChannelFile::addFunction() -- provides セクションにプロトコルを追加する
PEAR_ChannelFile::addMirror() -- addMirror
PEAR_ChannelFile::addMirrorFunction() -- ミラーの provides セクションにプロトコルを追加する
PEAR_ChannelFile::fromAny() -- さまざまなソースからチャネル情報を返す
PEAR_ChannelFile::fromArray() -- fromArray
PEAR_ChannelFile::fromXmlFile() -- チャネルの xml ファイルを指定して、channel.xml をパースする
PEAR_ChannelFile::fromXmlString() -- fromXmlString
PEAR_ChannelFile::getAlias() -- ユーザがこのチャネルをコマンドラインで参照できるよう、エイリアスを返す
PEAR_ChannelFile::getBaseURL() -- ベースリソースにアクセスするための URL を取得する
PEAR_ChannelFile::getErrors() -- PEAR_ErrorStack::getErrors() のラッパー
PEAR_ChannelFile::getFunction() -- getFunction
PEAR_ChannelFile::getFunctions() -- すべての xmlrpc/soap 関数の一覧を取得する
PEAR_ChannelFile::getMirror() -- ミラーを表す、シリアライズされていない XML を取得する
PEAR_ChannelFile::getMirrors() -- すべてのミラーとその内容の一覧を取得する
PEAR_ChannelFile::getName() -- チャネル名を取得する
PEAR_ChannelFile::getPath() -- getPath
PEAR_ChannelFile::getPort() -- サーバへの接続に使用するソケットのポートを取得する
PEAR_ChannelFile::getServer() -- チャネルサーバを取得する
PEAR_ChannelFile::getSSL() -- チャネルあるいはミラーの SSL サポート状況を取得する
PEAR_ChannelFile::getSummary() -- チャネルの概要を取得する
PEAR_ChannelFile::getValidationObject() -- 独自の検証に使用するオブジェクトを取得する
PEAR_ChannelFile::getValidationPackage() -- このチャネルの検証パッケージの名前を取得する
PEAR_ChannelFile::isIncludeable() -- ファイルが include_path に存在し、かつ読み込み可能であるかどうかを調べる
PEAR_ChannelFile::lastModified() -- チャネルアップデータによって使用され、レジストリに登録されている値か 現在の時刻を取得する
PEAR_ChannelFile::resetFunctions() -- すべてのプロトコル定義を空にする
PEAR_ChannelFile::resetREST() -- REST は RPC を実装していないので、これは REST の resetFunctions を論理的なラッパーとなる
PEAR_ChannelFile::setAlias() -- チャネルのエイリアスを設定する
PEAR_ChannelFile::setBaseURL() -- REST リソース、あるいは REST リソースのセットのベース URL を設定する
PEAR_ChannelFile::setDefaultPEARProtocols() -- チャネルのプロトコルを、pearweb がサポートするプロトコルに設定する
PEAR_ChannelFile::setName() -- setName
PEAR_ChannelFile::setPath() -- xmlrpc あるいは soap のパスを設定する
PEAR_ChannelFile::setPort() -- このチャネルに接続するためのソケット番号 (ポート) を設定する
PEAR_ChannelFile::setServer() -- チャネルサーバを設定する
PEAR_ChannelFile::setSSL() -- このチャネルへの接続の際に SSL を使用するかどうかを設定する
PEAR_ChannelFile::setSummary() -- チャネルの目的の概要を設定する
PEAR_ChannelFile::setValidationPackage() -- PEAR のデフォルトとは異なる場合に、パッケージ検証オブジェクトを設定する
PEAR_ChannelFile::supports() -- ウェブサービス関数がチャネルでサポートされているかどうかを調べる
PEAR_ChannelFile::supportsREST() -- チャネルが Representational State Transfer (REST) リソースをサポートしているかどうかを調べる
PEAR_ChannelFile::toArray() -- チャネルを配列形式で返す
PEAR_ChannelFile::toXml() -- このチャネルの内部表現にもとづく XML ドキュメントを返す
PEAR_ChannelFile::validate() -- チャネル情報を検証する
PEAR_ChannelFile::validChannelServer() -- 文字列が有効なチャネルサーバであるかどうかを調べる
PEAR パッケージの定数 -- PEAR で定義され、使用されている定数
前のページ | ホーム | 次のページ
PEAR_Builder::phpizeCallback() | 上に戻る | PEAR_ChannelFile クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile クラス概要

PEAR_ChannelFile クラス概要 -- チャネル操作用クラス

チャネル処理クラス

channel.xml を表します。

PEAR_ChannelFile のクラス階層

  • PEAR_ChannelFile

前のページ | ホーム | 次のページ
PEAR_ChannelFile | 上に戻る | constructor PEAR_ChannelFile::PEAR_ChannelFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::addFunction

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::addFunction()

PEAR_ChannelFile::addFunction() -- provides セクションにプロトコルを追加する

概要

require_once '/ChannelFile.php';

bool PEAR_ChannelFile::addFunction (string $type, string $version, string [$name = ''], string [$mirror = false])

説明

チャネル定義ファイルに、サポートされる xml-rpc 関数あるいは SOAP 関数を追加します。型は xmlrpc あるいは soap で、小文字で指定しなければなりません。 追加時に型の検証は行われません。例えば

<?php
require_once 'PEAR/ChannelFile.php';
$chan = new PEAR_ChannelFile;
$chan->setName('foo.example.com');
$chan->setSummary('demonstrate addFunction');
$chan->addFunction('xmlrpc', '1.0', 'people.list');
$chan->addFunction('oops', '1.0', 'bad.type');
?>

oops プロトコルの作成には成功しますが、 検証時には失敗します。

関数をミラーに追加する際には、ミラーが存在するかどうかがチェックされます。

<?php
require_once 'PEAR/ChannelFile.php';
$chan = new PEAR_ChannelFile;
$chan->setName('foo.example.com');
$chan->setSummary('demonstrate addFunction');
// 失敗します: ミラーが見つかりません
$chan->addFunction('soap', '1.0', 'people.list', 'mirror.example.com');
$chan->addMirror('mirror.example.com');
// 成功します
$chan->addFunction('soap', '1.0', 'people.list', 'mirror.example.com');
?>

パラメータ

string $type

プロトコルの型。

string $version

プロトコルのバージョン。

string $name

存在する場合は、プロトコルの名前。

string $mirror

ミラーのプロトコルである場合に、ミラーの名前。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor PEAR_ChannelFile::PEAR_ChannelFile() | 上に戻る | PEAR_ChannelFile::addMirror()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::addMirror

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::addMirror()

PEAR_ChannelFile::addMirror() -- addMirror

概要

require_once '/ChannelFile.php';

boolean PEAR_ChannelFile::addMirror (string $server, int [$port = null])

説明

ミラーサーバを追加します。ユーザがそれを使用するために、 ミラーを必ず channel.xml に追加しなければならないことに注意しましょう。 非公式なミラーは、ユーザが許可しなければ使用することはできません。

パラメータ

string $server

ミラーサーバ。

integer $port

ミラーの http ポート。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::addFunction() | 上に戻る | PEAR_ChannelFile::addMirrorFunction()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::addMirrorFunction

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::addMirrorFunction()

PEAR_ChannelFile::addMirrorFunction() -- ミラーの provides セクションにプロトコルを追加する

概要

require_once '/ChannelFile.php';

bool PEAR_ChannelFile::addMirrorFunction (string $mirror, string $type, string $version, string [$name = ''])

説明

ミラーに xmlrpc 関数あるいは soap 関数を直接追加します。 addFunction() のドキュメントも参照ください。

パラメータ

string $mirror

ミラー (サーバ) の名前。

string $type

プロトコルの型。

string $version

プロトコルのバージョン。

string $name

存在する場合は、プロトコルの名前。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::addMirror() | 上に戻る | PEAR_ChannelFile::fromAny()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR パッケージの定数

PEAR パッケージの定数 -- PEAR で定義され、使用されている定数

すべての定数

ChannelFile.php で定義されている定数

表 27-1ChannelFile.php で定義されているエラー定数

名前 | 値 | 行番号
PEAR_CHANNELFILE_ERROR_CANT_MAKE_PARSER | 4 | 48
PEAR_CHANNELFILE_ERROR_EMPTY_REGEX | 24 | 97
PEAR_CHANNELFILE_ERROR_INVALID | 23 | 93
PEAR_CHANNELFILE_ERROR_INVALID_HOST | 11 | 81
PEAR_CHANNELFILE_ERROR_INVALID_MIRROR | 21 | 85
PEAR_CHANNELFILE_ERROR_INVALID_MIRRORTYPE | 22 | 89
PEAR_CHANNELFILE_ERROR_INVALID_NAME | 7 | 65
PEAR_CHANNELFILE_ERROR_INVALID_PORT | 33 | 122
PEAR_CHANNELFILE_ERROR_INVALID_SSL | 37 | 138
PEAR_CHANNELFILE_ERROR_INVALID_VERSION | 2 | 38
PEAR_CHANNELFILE_ERROR_MIRROR_NOT_FOUND | 32 | 118
PEAR_CHANNELFILE_ERROR_MULTILINE_SUMMARY | 9 | 73
PEAR_CHANNELFILE_ERROR_NOBASEURLTYPE | 35 | 130
PEAR_CHANNELFILE_ERROR_NOVALIDATE_NAME | 27 | 109
PEAR_CHANNELFILE_ERROR_NOVALIDATE_VERSION | 28 | 113
PEAR_CHANNELFILE_ERROR_NO_FUNCTIONNAME | 26 | 105
PEAR_CHANNELFILE_ERROR_NO_FUNCTIONVERSION | 25 | 101
PEAR_CHANNELFILE_ERROR_NO_HOST | 10 | 77
PEAR_CHANNELFILE_ERROR_NO_NAME | 6 | 61
PEAR_CHANNELFILE_ERROR_NO_STATICVERSION | 34 | 126
PEAR_CHANNELFILE_ERROR_NO_SUMMARY | 8 | 69
PEAR_CHANNELFILE_ERROR_NO_VERSION | 1 | 33
PEAR_CHANNELFILE_ERROR_NO_XML_EXT | 3 | 43
PEAR_CHANNELFILE_ERROR_PARSER_ERROR | 5 | 53
PEAR_CHANNELFILE_URI_CANT_MIRROR | 36 | 134

前のページ | ホーム | 次のページ
PEAR_ChannelFile::validChannelServer() | 上に戻る | PEAR_Command

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::fromAny

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::fromAny()

PEAR_ChannelFile::fromAny() -- さまざまなソースからチャネル情報を返す

概要

require_once '/ChannelFile.php';

bool PEAR_ChannelFile::fromAny (string $info)

説明

文字列あるいは channel.xml ファイルからデータをパースします。

パラメータ

string $info

ソースファイル名、あるいはソースそのもの。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::addMirrorFunction() | 上に戻る | PEAR_ChannelFile::fromArray()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::fromArray

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::fromArray()

PEAR_ChannelFile::fromArray() -- fromArray

概要

require_once '/ChannelFile.php';

PEAR_ChannelFile |false PEAR_ChannelFile::fromArray (array $data, mixed [$compatibility = FALSE], mixed [$stackClass = 'PEAR_ErrorStack'])

説明

このメソッドを使用する場合は注意が必要です。 これは、別の PEAR_ChannelFile クラスでパース済みの channel.xml をお手軽にインポートするために用意されたものです。 レジストリに保存された channel.xml の内容も読み込めます。

パラメータ

array $data

パース済みのチャネルデータ。

mixed $compatibility

mixed $stackClass

返り値

無効な場合は false を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::fromAny() | 上に戻る | PEAR_ChannelFile::fromXmlFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::fromXmlFile

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::fromXmlFile()

PEAR_ChannelFile::fromXmlFile() -- チャネルの xml ファイルを指定して、channel.xml をパースする

概要

require_once '/ChannelFile.php';

bool PEAR_ChannelFile::fromXmlFile (string $descfile)

説明

channel.xml の内容をパースし、PEAR_ChannelFile オブジェクトに保存します。

パラメータ

string $descfile

チャネル xml ファイルの名前。

返り値

パースに成功したかどうかを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::fromArray() | 上に戻る | PEAR_ChannelFile::fromXmlString()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::fromXmlString

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::fromXmlString()

PEAR_ChannelFile::fromXmlString() -- fromXmlString

概要

require_once '/ChannelFile.php';

bool PEAR_ChannelFile::fromXmlString (string $data)

説明

channel.xml の内容をパースし、PEAR_ChannelFile オブジェクトに保存します。

パラメータ

string $data

package.xml ファイルの内容。

返り値

パースに成功したかどうかを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::fromXmlFile() | 上に戻る | PEAR_ChannelFile::getAlias()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::getAlias

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::getAlias()

PEAR_ChannelFile::getAlias() -- ユーザがこのチャネルをコマンドラインで参照できるよう、エイリアスを返す

概要

require_once '/ChannelFile.php';

string PEAR_ChannelFile::getAlias ()

説明

これは、チャネルのエイリアスを返します。例えば、チャネル pear.php.net のエイリアスは pear で、チャネル pecl.php.net のエイリアスは pecl です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::fromXmlString() | 上に戻る | PEAR_ChannelFile::getBaseURL()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::getBaseURL

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::getBaseURL()

PEAR_ChannelFile::getBaseURL() -- ベースリソースにアクセスするための URL を取得する

概要

require_once '/ChannelFile.php';

string PEAR_ChannelFile::getBaseURL (string $resourceType, string|false [$mirror = FALSE])

説明

返される xml の中のハイパーリンクを使用して、必要な情報を取得します。 これにより、究極の拡張性と柔軟性をもった実装を行うことができます。

パラメータ

string $resourceType

取得するリソースの型。

mixed $mirror

ミラーの名前。プライマリサーバを使用する場合は false。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::getAlias() | 上に戻る | PEAR_ChannelFile::getErrors()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::getErrors

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::getErrors()

PEAR_ChannelFile::getErrors() -- PEAR_ErrorStack::getErrors() のラッパー

概要

require_once '/ChannelFile.php';

array PEAR_ChannelFile::getErrors (boolean [$purge = FALSE])

説明

直近の検証についてのエラーを取得します。

パラメータ

boolean $purge

取得後にエラースタックをクリアするかどうかを指定します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::getBaseURL() | 上に戻る | PEAR_ChannelFile::getFunction()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::getFunction

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::getFunction()

PEAR_ChannelFile::getFunction() -- getFunction

概要

require_once '/ChannelFile.php';

array PEAR_ChannelFile::getFunction (string $type, string [$name = NULL], string [$mirror = FALSE])

説明

関数の xml 表現を取得します。見つかった場合は、以下のような配列を返します。

<?php
array(
 '_content' => 'functionname',
 'attribs' => array('version' => 'version.number')
);
?>

パラメータ

string $type

プロトコルの型。

string $name

関数名 (NULL の場合は、指定した型の最初のプロトコルを返します)。

string $mirror

ミラーを使用する場合は、ミラーの名前。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::getErrors() | 上に戻る | PEAR_ChannelFile::getFunctions()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::getFunctions

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::getFunctions()

PEAR_ChannelFile::getFunctions() -- すべての xmlrpc/soap 関数の一覧を取得する

概要

require_once '/ChannelFile.php';

array|false PEAR_ChannelFile::getFunctions (string $protocol, string [$mirror = FALSE])

説明

定義済みの、すべての xmlrpc 関数および soap 関数を配列で取得します。rest のベース URL にアクセスするには getBaseURL() を使用します。

各関数のフォーマットは、getFunction() から返されるものと同じです。

パラメータ

string $protocol

プロトコルの型 (xmlrpc、soap)。

string $mirror

ミラーの名前。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::getFunction() | 上に戻る | PEAR_ChannelFile::getMirror()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::getMirror

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::getMirror()

PEAR_ChannelFile::getMirror() -- ミラーを表す、シリアライズされていない XML を取得する

概要

require_once '/ChannelFile.php';

array|false PEAR_ChannelFile::getMirror (mixed $server)

説明

<mirror> タグの中身全体を、パーサによってシリアライズ解除された状態で取得します。

パラメータ

mixed $server

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::getFunctions() | 上に戻る | PEAR_ChannelFile::getMirrors()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::getMirrors

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::getMirrors()

PEAR_ChannelFile::getMirrors() -- すべてのミラーとその内容の一覧を取得する

概要

require_once '/ChannelFile.php';

array PEAR_ChannelFile::getMirrors ()

説明

getMirror() で定義されているのと同じフォーマットのミラー情報を、配列で返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::getMirror() | 上に戻る | PEAR_ChannelFile::getName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::getName

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::getName()

PEAR_ChannelFile::getName() -- チャネル名を取得する

概要

require_once '/ChannelFile.php';

string|false PEAR_ChannelFile::getName ()

説明

チャネル名はチャネルサーバの名前であることに注意しましょう。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::getMirrors() | 上に戻る | PEAR_ChannelFile::getPath()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::getPath

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::getPath()

PEAR_ChannelFile::getPath() -- getPath

概要

require_once '/ChannelFile.php';

string PEAR_ChannelFile::getPath (string $protocol, string|false [$mirror = FALSE])

説明

指定したプロトコルにアクセスするための相対パスを取得します。 チャネル名が foo.example.com、 xmlrpc が foo.example.com/xml/rpc でアクセスできる場合、このパスは xml/rpc となります。

パラメータ

string $protocol

xmlrpc あるいは soap。

string|FALSE $mirror

ミラー名、あるいはプライマリサーバを使用する場合は FALSE。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::getName() | 上に戻る | PEAR_ChannelFile::getPort()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::getPort

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::getPort()

PEAR_ChannelFile::getPort() -- サーバへの接続に使用するソケットのポートを取得する

概要

require_once '/ChannelFile.php';

int|80 PEAR_ChannelFile::getPort (mixed [$mirror = FALSE])

説明

ウェブサービスは http サーバ経由で提供され、たいていのサーバは ポート 80 を使用します。 この関数は、チャネルが標準でないポートを使用しているかどうかを調べるために使用できます。

パラメータ

mixed $mirror

ミラー名、あるいはプライマリサーバの場合は FALSE。

返り値

接続するポート番号を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::getPath() | 上に戻る | PEAR_ChannelFile::getServer()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::getServer

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::getServer()

PEAR_ChannelFile::getServer() -- チャネルサーバを取得する

概要

require_once '/ChannelFile.php';

string|false PEAR_ChannelFile::getServer ()

説明

これは、getName() のエイリアスです。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::getPort() | 上に戻る | PEAR_ChannelFile::getSSL()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::getSSL

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::getSSL()

PEAR_ChannelFile::getSSL() -- チャネルあるいはミラーの SSL サポート状況を取得する

概要

require_once '/ChannelFile.php';

bool PEAR_ChannelFile::getSSL (mixed [$mirror = FALSE])

説明

この関数は、パッケージにアクセスする際に チャネルあるいはミラーが SSL 接続を要求しているかどうかを確かめるために使用されます。

パラメータ

string|FALSE $mirror

ミラー名、あるいはプライマリサーバの場合は false。

返り値

チャネルへの接続に secure sockets layer (SSL) が使用されるのかどうかを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::getServer() | 上に戻る | PEAR_ChannelFile::getSummary()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::getSummary

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::getSummary()

PEAR_ChannelFile::getSummary() -- チャネルの概要を取得する

概要

require_once '/ChannelFile.php';

string|false PEAR_ChannelFile::getSummary ()

説明

チャネルの目的についての短い説明を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::getSSL() | 上に戻る | PEAR_ChannelFile::getValidationObject()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::getValidationObject

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::getValidationObject()

PEAR_ChannelFile::getValidationObject() -- 独自の検証に使用するオブジェクトを取得する

概要

require_once '/ChannelFile.php';

PEAR_Validate|false & PEAR_ChannelFile::getValidationObject (string|false [$package = FALSE])

説明

チャネル検証オブジェクトを取得します。 package パラメータで、検証するパッケージを getValidationObject() に教えます。 そのパッケージがチャネル検証パッケージだった場合は、 PEAR_Validate が検証に使用されます。 これにより、無限ループに陥ることを防ぎます。

パラメータ

string|FALSE $package

検証するパッケージの名前。もしこのパッケージがチャネル検証パッケージだった場合は、 PEAR_Validate が返されます。

返り値

検証パッケージが見つからなかった場合に false を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::getSummary() | 上に戻る | PEAR_ChannelFile::getValidationPackage()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::getValidationPackage

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::getValidationPackage()

PEAR_ChannelFile::getValidationPackage() -- このチャネルの検証パッケージの名前を取得する

概要

require_once '/ChannelFile.php';

string|false PEAR_ChannelFile::getValidationPackage ()

説明

channel.xml で定義されているチャネル検証パッケージの名前を取得します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::getValidationObject() | 上に戻る | PEAR_ChannelFile::isIncludeable()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::isIncludeable

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::isIncludeable()

PEAR_ChannelFile::isIncludeable() -- ファイルが include_path に存在し、かつ読み込み可能であるかどうかを調べる

概要

require_once '/ChannelFile.php';

bool PEAR_ChannelFile::isIncludeable (string $path)

説明

ファイルが include_path に存在し、かつ読み込み可能であるかどうかを調べます。

パラメータ

string $path

ファイルへの相対パス。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::getValidationPackage() | 上に戻る | PEAR_ChannelFile::lastModified()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::lastModified

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::lastModified()

PEAR_ChannelFile::lastModified() -- チャネルアップデータによって使用され、レジストリに登録されている値か 現在の時刻を取得する

概要

require_once '/ChannelFile.php';

string PEAR_ChannelFile::lastModified ()

説明

\ このメソッドは、ローカルの channel.xml が最新であるかどうかを調べるために channel-update コマンドで使用されます。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::isIncludeable() | 上に戻る | PEAR_ChannelFile::resetFunctions()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor PEAR_ChannelFile::PEAR_ChannelFile

PEAR マニュアル
前のページ 次のページ

constructor PEAR_ChannelFile::PEAR_ChannelFile()

constructor PEAR_ChannelFile::PEAR_ChannelFile() -- PEAR_ChannelFile

概要

require_once '/ChannelFile.php';

void constructor PEAR_ChannelFile::PEAR_ChannelFile ()

説明

単純に、PEAR_ChannelFile オブジェクト用のローカルエラースタックを作成します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile クラス概要 | 上に戻る | PEAR_ChannelFile::addFunction()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::resetFunctions

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::resetFunctions()

PEAR_ChannelFile::resetFunctions() -- すべてのプロトコル定義を空にする

概要

require_once '/ChannelFile.php';

void PEAR_ChannelFile::resetFunctions (string $type, string|false [$mirror = FALSE])

説明

channel.xml で定義されているプロトコル定義をすべて消去し、 新しいリストを追加できるようにします。

パラメータ

string $type

プロトコルの型 (xmlrpc、soap)。

string|FALSE $mirror

もし使用する場合は、ミラーの名前。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::lastModified() | 上に戻る | PEAR_ChannelFile::resetREST()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::resetREST

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::resetREST()

PEAR_ChannelFile::resetREST() -- REST は RPC を実装していないので、これは REST の resetFunctions を論理的なラッパーとなる

概要

require_once '/ChannelFile.php';

void PEAR_ChannelFile::resetREST (string|false [$mirror = FALSE])

説明

resetFunctions() と同様、resetREST() はすべての REST ベース URL を削除し、 新しい REST 関数をチャネルに追加できるようにします。

パラメータ

string|FALSE $mirror

もし使用する場合は、ミラー名。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::resetFunctions() | 上に戻る | PEAR_ChannelFile::setAlias()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::setAlias

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::setAlias()

PEAR_ChannelFile::setAlias() -- チャネルのエイリアスを設定する

概要

require_once '/ChannelFile.php';

boolean PEAR_ChannelFile::setAlias (string $alias, boolean [$local = FALSE])

説明

ユーザがこのチャネルにすばやくアクセスできるように、 コマンドラインで使用するためのエイリアスの候補を設定します。例えば、 チャネル pear.php.net のエイリアスは pear です。

パラメータ

string $alias

エイリアス。

boolean $local

エイリアスが channel.xml なのかローカルなのかを指定します。 ローカルの場合は、pear channel-alias コマンドの結果がこれになります。

返り値

成功したかどうかを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::resetREST() | 上に戻る | PEAR_ChannelFile::setBaseURL()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::setBaseURL

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::setBaseURL()

PEAR_ChannelFile::setBaseURL() -- REST リソース、あるいは REST リソースのセットのベース URL を設定する

概要

require_once '/ChannelFile.php';

void PEAR_ChannelFile::setBaseURL (string $resourceType, string $url, string|false [$mirror = FALSE])

説明

REST リソース、あるいは REST リソースのセットにアクセスするためにユーザが使用する、 ベース URL を設定します。

パラメータ

string $resourceType

この URL がリンク先のリソースの型。

string $url

URL

string|FALSE $mirror

プライマリサーバの REST ベース URL でない場合に、ミラーの名前。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::setAlias() | 上に戻る | PEAR_ChannelFile::setDefaultPEARProtocols()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::setDefaultPEARProtocols

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::setDefaultPEARProtocols()

PEAR_ChannelFile::setDefaultPEARProtocols() -- チャネルのプロトコルを、pearweb がサポートするプロトコルに設定する

概要

require_once '/ChannelFile.php';

void PEAR_ChannelFile::setDefaultPEARProtocols (string [$version = '1.0'], string|false [$mirror = FALSE])

説明

このメソッドは、チャネルの xmlrpc プロトコルを pearweb (pear.php.net) にマッチするように設定します。 REST リソースの設定は行わないことに注意しましょう。それは、 setBaseURL() を用いて手動で行う必要があります。

パラメータ

string $version

使用する pearweb プロトコルのバージョン。

string|FALSE $mirror

ミラーの名前、あるいはプライマリサーバの場合は false。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::setBaseURL() | 上に戻る | PEAR_ChannelFile::setName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::setName

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::setName()

PEAR_ChannelFile::setName() -- setName

概要

require_once '/ChannelFile.php';

string|false PEAR_ChannelFile::setName (string $name)

説明

チャネルのプライマリサーバ (およびその名前) を設定します。

パラメータ

string $name

チャネル名。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::setDefaultPEARProtocols() | 上に戻る | PEAR_ChannelFile::setPath()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::setPath

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::setPath()

PEAR_ChannelFile::setPath() -- xmlrpc あるいは soap のパスを設定する

概要

require_once '/ChannelFile.php';

void PEAR_ChannelFile::setPath (string $protocol, string|false $path, string|false [$mirror = FALSE])

説明

選択したプロトコルに接続するために使用するチャネルへの相対パスを設定します。 デフォルトは、xml-rpc の場合は xmlrpc.php そして SOAP の場合は soap.php です。

パラメータ

string $protocol

xmlrpc あるいは soap。

string|FALSE $path

ミラーサーバの名前、あるいはプライマリサーバの場合は FALSE。

string|FALSE $mirror

ミラーの名前、あるいはプライマリサーバの場合は false。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::setName() | 上に戻る | PEAR_ChannelFile::setPort()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::setPort

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::setPort()

PEAR_ChannelFile::setPort() -- このチャネルに接続するためのソケット番号 (ポート) を設定する

概要

require_once '/ChannelFile.php';

void PEAR_ChannelFile::setPort (integer $port, string|false [$mirror = FALSE])

説明

ウェブサービスがウェブサーバを通じてチャネルに接続する際に、 これを使用して接続用のポート番号を設定します。デフォルトは、 通常のウェブサーバの場合は 80、SSL セキュアサーバの場合は 443 です。

パラメータ

integer $port

ポート番号。

string|FALSE $mirror

ミラーサーバの名前、あるいはプライマリサーバの場合は FALSE。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::setPath() | 上に戻る | PEAR_ChannelFile::setServer()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::setServer

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::setServer()

PEAR_ChannelFile::setServer() -- チャネルサーバを設定する

概要

require_once '/ChannelFile.php';

string|false PEAR_ChannelFile::setServer (string $server, string|false [$mirror = FALSE])

説明

これは、setName() のエイリアスです。

パラメータ

string $server

サーバ名。

string|FALSE $mirror

ミラーサーバ名、あるいはプライマリサーバの場合は FALSE。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::setPort() | 上に戻る | PEAR_ChannelFile::setSSL()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::setSSL

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::setSSL()

PEAR_ChannelFile::setSSL() -- このチャネルへの接続の際に SSL を使用するかどうかを設定する

概要

require_once '/ChannelFile.php';

void PEAR_ChannelFile::setSSL (bool [$ssl = TRUE], string|false [$mirror = FALSE])

説明

この関数は、このチャネルサーバに接続する際に SSL を使用するように、PEAR インストーラに通知します。

パラメータ

boolean $ssl

SSL サポートを有効にするか無効にするかを指定します。

string|FALSE $mirror

ミラーサーバの名前、あるいはプライマリサーバの場合は FALSE。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::setServer() | 上に戻る | PEAR_ChannelFile::setSummary()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::setSummary

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::setSummary()

PEAR_ChannelFile::setSummary() -- チャネルの目的の概要を設定する

概要

require_once '/ChannelFile.php';

boolean PEAR_ChannelFile::setSummary (string $summary)

説明

チャネルの目的を、可読形式で設定します。

パラメータ

string $summary

このチャネルの概要。

返り値

成功したかどうかを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::setSSL() | 上に戻る | PEAR_ChannelFile::setValidationPackage()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::setValidationPackage

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::setValidationPackage()

PEAR_ChannelFile::setValidationPackage() -- PEAR のデフォルトとは異なる場合に、パッケージ検証オブジェクトを設定する

概要

require_once '/ChannelFile.php';

boolean PEAR_ChannelFile::setValidationPackage (string|false $validateclass, string $version)

説明

この関数は、メモリに存在する (PEAR_Validate あるいは PEAR_Validate_PECL) か、あるいは 以下の規則を使用して include_once() で発見できなければなりません。 発見する手順は、まずアンダースコア (_) ディレクトリ区切り文字 (/) に変換した後で .php を付加します。

Foo_Bar_Baz という名前の検証クラスは、 以下のコードでインクルードできなければなりません。

<?php
include_once 'Foo/Bar/Baz.php';
?>

さらに、$version パラメータで指定したバージョンの 検証パッケージがチャネルからインストールできなければなりません。

パラメータ

string|FALSE $validateclass

デフォルトのパッケージ名に戻す場合は FALSE を渡します。

string $version

検証を正しく行うには、このバージョンのパッケージがこのチャネルからインストールできる必要があります。

返り値

成功したかどうかを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::setSummary() | 上に戻る | PEAR_ChannelFile::supports()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::supports

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::supports()

PEAR_ChannelFile::supports() -- ウェブサービス関数がチャネルでサポートされているかどうかを調べる

概要

require_once '/ChannelFile.php';

boolean PEAR_ChannelFile::supports (string $type, string [$name = NULL], string|false [$mirror = FALSE], string [$version = '1.0'])

説明

これはインストーラによって使用されます。 リモートサーバに接続して必要な関数を起動する前に、 そのプロトコルがサポートされているかどうかを調べます。

パラメータ

string $type

プロトコルの型 (xmlrpc あるいは soap)。

string $name

関数の名前 (例えば package.info)。

string|FALSE $mirror

ミラーサーバの名前、あるいはプライマリサーバの場合に FALSE。

string $version

関数のバージョン。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::setValidationPackage() | 上に戻る | PEAR_ChannelFile::supportsREST()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::supportsREST

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::supportsREST()

PEAR_ChannelFile::supportsREST() -- チャネルが Representational State Transfer (REST) リソースをサポートしているかどうかを調べる

概要

require_once '/ChannelFile.php';

bool PEAR_ChannelFile::supportsREST (string [$mirror = FALSE])

説明

これは、どの REST リソースがサポートされているかまでは調べません。 特定の REST リソースやリソースグループがサポートされているかどうかを調べるには、 getBaseURL() を使用してください。

パラメータ

string|FALSE $mirror

ミラーサーバの名前、あるいはプライマリサーバの場合は FALSE。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::supports() | 上に戻る | PEAR_ChannelFile::toArray()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::toArray

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::toArray()

PEAR_ChannelFile::toArray() -- チャネルを配列形式で返す

概要

require_once '/ChannelFile.php';

array PEAR_ChannelFile::toArray ()

説明

この関数は、直接データを操作するために使用すべきではありません。 そうではなく、もとの xml に比べて効率的にデータのシリアライズと転送を行うために使用します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::supportsREST() | 上に戻る | PEAR_ChannelFile::toXml()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::toXml

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::toXml()

PEAR_ChannelFile::toXml() -- このチャネルの内部表現にもとづく XML ドキュメントを返す

概要

require_once '/ChannelFile.php';

string PEAR_ChannelFile::toXml ()

説明

これは、PEAR_ChannelFile に保存されたデータにもとづいて channel.xml を作成するために使用します。

返り値

XML データを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::toArray() | 上に戻る | PEAR_ChannelFile::validate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::validate

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::validate()

PEAR_ChannelFile::validate() -- チャネル情報を検証する

概要

require_once '/ChannelFile.php';

boolean PEAR_ChannelFile::validate ()

説明

固有のエラーは、検証後に getErrors() メソッドで取得できます。エラーは PEAR_ErrorStack クラスに保存されます。この配列の書式についての詳細な情報は PEAR_ErrorStack のドキュメントを参照ください。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::toXml() | 上に戻る | PEAR_ChannelFile::validChannelServer()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_ChannelFile::validChannelServer

PEAR マニュアル
前のページ 次のページ

PEAR_ChannelFile::validChannelServer()

PEAR_ChannelFile::validChannelServer() -- 文字列が有効なチャネルサーバであるかどうかを調べる

概要

require_once '/ChannelFile.php';

bool PEAR_ChannelFile::validChannelServer (string $server)

説明

チャネルサーバが有効なサーバ名であるかどうかを調べます。

パラメータ

string $server

サーバ名。foo.example.com/path/to/channel のようにサブパスを含むこともあります。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
PEAR_ChannelFile::validate() | 上に戻る | PEAR パッケージの定数

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Command

目次
PEAR_Command::factory() -- コマンドを実行するためのオブジェクトを取得する
PEAR_Command::getCommands() -- サポートされているコマンドの一覧を取得する
PEAR_Command::getDescription() -- コマンドの説明を取得する
PEAR_Command::getGetoptArgs() -- getopt 用の引数を集める
PEAR_Command::getHelp() -- コマンドのヘルプを取得する
PEAR_Command::getShortcuts() -- コマンドのショートカットの一覧を取得する
PEAR_Command::registerCommands() -- コマンドディレクトリをスキャンする

PEAR command クラス、管理用コマンド用の簡単なファクトリークラス

前のページ | ホーム | 次のページ
PEAR パッケージの定数 | 上に戻る | PEAR_Command::factory()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Command::factory

PEAR マニュアル
前のページ 次のページ

PEAR_Command::factory()

PEAR_Command::factory() -- コマンドを実行するためのオブジェクトを取得する

概要

require_once 'PEAR/command.php';

object PEAR_Command::factory (string $command, object &$config)

説明

コマンドを実行するための、正しいオブジェクトを取得します。

パラメータ

string $command

コマンドの名前。

object &$config

PEAR_Config オブジェクトのインスタンス。

返り値

コマンドオブジェクトを返します。

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
PEAR_Command | 上に戻る | PEAR_Command::getCommands()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Command::getCommands

PEAR マニュアル
前のページ 次のページ

PEAR_Command::getCommands()

PEAR_Command::getCommands() -- サポートされているコマンドの一覧を取得する

概要

require_once 'PEAR/command.php';

array PEAR_Command::getCommands (void)

説明

現在サポートされているコマンド、 そしてそれを実装しているクラスの一覧を取得します。

返り値

コマンド => 実装クラス 形式の配列を返します。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
PEAR_Command::factory() | 上に戻る | PEAR_Command::getDescription()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Command::getDescription

PEAR マニュアル
前のページ 次のページ

PEAR_Command::getDescription()

PEAR_Command::getDescription() -- コマンドの説明を取得する

概要

require_once 'PEAR/command.php';

string PEAR_Command::getDescription (string $command)

説明

コマンドの説明を取得します。

パラメータ

string $command

コマンドの名前。

返り値

コマンドの説明を文字列で返します。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
PEAR_Command::getCommands() | 上に戻る | PEAR_Command::getGetoptArgs()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Command::getGetoptArgs

PEAR マニュアル
前のページ 次のページ

PEAR_Command::getGetoptArgs()

PEAR_Command::getGetoptArgs() -- getopt 用の引数を集める

概要

require_once 'PEAR/command.php';

void PEAR_Command::getGetoptArgs (string $command, string &$short_args, array &$long_args)

説明

getopt 用の引数を集めます。

パラメータ

string $command

オプション文字列を取得するコマンド。

string &$short_args

(参照) 短い形式の getopt フォーマット。

array &$long_args

(参照) 長い形式の getopt フォーマット。

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
PEAR_Command::getDescription() | 上に戻る | PEAR_Command::getHelp()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Command::getHelp

PEAR マニュアル
前のページ 次のページ

PEAR_Command::getHelp()

PEAR_Command::getHelp() -- コマンドのヘルプを取得する

概要

require_once 'PEAR/command.php';

string PEAR_Command::getHelp (string $command)

説明

コマンドのヘルプを取得します。

パラメータ

string $command

ヘルプを取得するコマンドの名前。

返り値

ヘルプテキストを文字列で返します。

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
PEAR_Command::getGetoptArgs() | 上に戻る | PEAR_Command::getShortcuts()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Command::getShortcuts

PEAR マニュアル
前のページ 次のページ

PEAR_Command::getShortcuts()

PEAR_Command::getShortcuts() -- コマンドのショートカットの一覧を取得する

概要

require_once 'PEAR/command.php';

array PEAR_Command::getShortcuts (void)

説明

コマンドのショートカットの一覧を取得します。

返り値

ショートカット => コマンド 形式の配列を返します。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
PEAR_Command::getHelp() | 上に戻る | PEAR_Command::registerCommands()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Command::registerCommands

PEAR マニュアル
前のページ 次のページ

PEAR_Command::registerCommands()

PEAR_Command::registerCommands() -- コマンドディレクトリをスキャンする

概要

require_once 'PEAR/command.php';

bool PEAR_Command::registerCommands ([bool $merge = FALSE [, string $dir = NULL]])

説明

コマンドディレクトリをスキャンし、 クラスとそれが実装するコマンドを探します。

パラメータ

boolean $merge

FALSE の場合 (デフォルト)、新しいコマンドリストで現在の内容を上書きします。 TRUE の場合、新しいエントリが現在の内容に追加されます。

string $dir

クラスを探す場所 (ディレクトリ)。 デフォルトは、このファイルがインクルードされているディレクトリ (__FILE__) の下にある Command サブディレクトリです。

返り値

成功した場合に TRUE を返します。

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
PEAR_Command::getShortcuts() | 上に戻る | PEAR_Common

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Common

目次
PEAR_Common::PEAR_Common() -- PEAR_Common コンストラクタ
PEAR_Common::addTempFile() -- 一時ファイルあるいはディレクトリを登録する
PEAR_Common::analyzeSourceCode() -- 指定した PHP ファイルのソースコードを解析する
PEAR_Common::buildProvidesArray() -- 配列を構築する
PEAR_Common::downloadHttp() -- ファイルを HTTP 経由でダウンロードする
PEAR_Common::infoFromAny() -- さまざまなソースからのパッケージ情報を返す
PEAR_Common::infoFromDescriptionFile() -- パッケージファイルについての情報を返す
PEAR_Common::infoFromString() -- パッケージファイルについての情報を返す
PEAR_Common::infoFromTgzFile() -- パッケージファイルについての情報を返す
PEAR_Common::log() -- ログを出力する
PEAR_Common::mkDirHier() -- 必要なら親ディレクトリも含めて、ディレクトリを作成する
PEAR_Common::mkTempDir() -- 一時ディレクトリを作成し、登録する
PEAR_Common::setFrontendObject() -- 使用するフロントエンドを表すオブジェクトを設定する
PEAR_Common::validatePackageInfo() -- XML パッケージ定義ファイルを検証する
PEAR_Common::validPackageName() -- 文字列がパッケージ名として妥当かどうかを調べる
PEAR_Common::xmlFromInfo() -- パッケージ情報にもとづいて作成した XML ドキュメントを返す

PEAR 管理クラス用の共通機能を提供するクラス。

PEAR_Common() のクラスツリー

  • PEAR

    • PEAR_Common

前のページ | ホーム | 次のページ
PEAR_Command::registerCommands() | 上に戻る | PEAR_Common::PEAR_Common()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Common::addTempFile

PEAR マニュアル
前のページ 次のページ

PEAR_Common::addTempFile()

PEAR_Common::addTempFile() -- 一時ファイルあるいはディレクトリを登録する

概要

require_once 'PEAR/common.php';

void PEAR_Common::addTempFile (string $file)

説明

一時ファイルあるいはディレクトリを登録します。 登録されたファイルやディレクトリは、 デストラクタの実行時に削除されます。

パラメータ

string $file

ファイルあるいはディレクトリの名前。

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
PEAR_Common::PEAR_Common() | 上に戻る | PEAR_Common::analyzeSourceCode()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Common::analyzeSourceCode

PEAR マニュアル
前のページ 次のページ

PEAR_Common::analyzeSourceCode()

PEAR_Common::analyzeSourceCode() -- 指定した PHP ファイルのソースコードを解析する

概要

require_once 'PEAR/common.php';

array PEAR_Common::analyzeSourceCode (string $file)

説明

指定した PHP ファイルのソースコードを解析します。

パラメータ

string $file

PHP ファイルのファイル名。

返り値

array - declared_classes、 declared_methods、 declared_functions および used_classes からなるハッシュリストを返します。

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
PEAR_Common::addTempFile() | 上に戻る | PEAR_Common::buildProvidesArray()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Common::buildProvidesArray

PEAR マニュアル
前のページ 次のページ

PEAR_Common::buildProvidesArray()

PEAR_Common::buildProvidesArray() -- 配列を構築する

概要

require_once 'PEAR/common.php';

void PEAR_Common::buildProvidesArray (array $srcinfo)

説明

analyzeSourceCode() の返すデータを元にして "provides" 配列を構築します。配列の書式は次のようになります。
array(
        'class;MyClass' =>
           array(
           'type' => 'class',
           'name' => 'MyClass'
           ),
           ...
        )

パラメータ

array $srcinfo

analyzeSourceCode() メソッドが返す、 ソースファイルについての情報の配列。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Common::analyzeSourceCode() | 上に戻る | PEAR_Common::downloadHttp()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Common::downloadHttp

PEAR マニュアル
前のページ 次のページ

PEAR_Common::downloadHttp()

PEAR_Common::downloadHttp() -- ファイルを HTTP 経由でダウンロードする

概要

require_once 'PEAR/common.php';

string PEAR_Common::downloadHttp (string $url, object &$ui [, string $save_dir = '.' [, mixed $callback = NULL]])

説明

ファイルを HTTP 経由でダウンロードします。 推奨するファイル名を Content-disposition: ヘッダで指定し、 さまざまなイベントに対応するコールバック関数を実行できるよう考慮します。 コールバック関数には、コールバックの型およびパラメータの 2 つのパラメータが渡されます。次の型のコールバックが実装されています。

  • 'setup' - いちばん最初にコールされます。 すべての出力に使用する UI オブジェクトをパラメータに指定します。

  • 'message' - 情報メッセージを含む文字列をパラメータに指定します。

  • 'saveas' - 異なるファイル名で保存する際に使用されます。 用いようとしているファイル名をパラメータに指定します。 'saveas' コールバックが空ではない文字列を返した場合、 その結果がファイル名として使用されます。 $save_dir はこれとは関係なく、 あくまでもファイルの名前だけが影響を受けることに注意しましょう。

  • 'start' - ダウンロードが始まります。パラメータにはファイルの総バイト数を指定します。 わからない場合は -1 となります。

  • 'bytesread' - パラメータにはこれまでに読み込んだバイト数を指定します。

  • 'done' - ダウンロードが完了しました。パラメータには読み込んだ総バイト数を指定します。

  • 'connfailed' - TCP 接続に失敗した場合に、このコールバックが
    array(host,port,errno,errmsg)
    を指定してコールされます。

  • 'writefailed' - ディスクへの書き込みに失敗した場合に、このコールバックが
    array(destfile,errmsg)
    を指定してコールされます。

HTTP プロキシが設定されている場合は (PEAR_Config の設定項目 http_proxy で)、 プロキシが使用されます。

パラメータ

string $url

ダウンロードする URL。

object &$ui

PEAR_Frontend_* のインスタンス。

string $save_dir

ファイルを保存するディレクトリ。

mixed $callback

状態が更新された際にコールする関数/メソッド。

object $config

PEAR_Config のインスタンス。

返り値

string - ダウンロードされたファイルのフルパス、あるいは失敗した場合に PEAR error を返します。 ソケットに関連するエラーの場合、エラーオブジェクトには fsockopen のエラーコードが記録されます。これは getCode() で取得することができます。

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Common::buildProvidesArray() | 上に戻る | PEAR_Common::infoFromAny()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Common::infoFromAny

PEAR マニュアル
前のページ 次のページ

PEAR_Common::infoFromAny()

PEAR_Common::infoFromAny() -- さまざまなソースからのパッケージ情報を返す

概要

require_once 'PEAR/common.php';

string PEAR_Common::infoFromAny (string $info)

説明

さまざまなソースからのパッケージ情報を返します。 このメソッドは、.tgz アーカイブや XML パッケージ定義ファイルから パッケージに関する情報を抽出することができます。

パラメータ

string $info

ソースのファイル名 ('package.xml' '<package>.tgz')。

返り値

パッケージ情報を文字列で返します。

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Common::downloadHttp() | 上に戻る | PEAR_Common::infoFromDescriptionFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Common::infoFromDescriptionFile

PEAR マニュアル
前のページ 次のページ

PEAR_Common::infoFromDescriptionFile()

PEAR_Common::infoFromDescriptionFile() -- パッケージファイルについての情報を返す

概要

require_once 'PEAR/common.php';

array PEAR_Common::infoFromDescriptionFile (string $descfile)

説明

パッケージファイルについての情報を返します。 パッケージ xml ファイルの名前を入力として受け付けます。

パラメータ

string $descfile

パッケージ xml ファイルの名前。

返り値

パッケージ情報を含む配列を返します。

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Common::infoFromAny() | 上に戻る | PEAR_Common::infoFromString()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Common::infoFromString

PEAR マニュアル
前のページ 次のページ

PEAR_Common::infoFromString()

PEAR_Common::infoFromString() -- パッケージファイルについての情報を返す

概要

require_once 'PEAR/common.php';

array PEAR_Common::infoFromString (string $data)

説明

パッケージファイルについての情報を返します。 パッケージ xml ファイルの内容を入力として受け付けます。

パラメータ

string $data

パッケージ xml ファイルの内容。

返り値

パッケージ情報を含む配列を返します。

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Common::infoFromDescriptionFile() | 上に戻る | PEAR_Common::infoFromTgzFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Common::infoFromTgzFile

PEAR マニュアル
前のページ 次のページ

PEAR_Common::infoFromTgzFile()

PEAR_Common::infoFromTgzFile() -- パッケージファイルについての情報を返す

概要

require_once 'PEAR/common.php';

array PEAR_Common::infoFromTgzFile (string $file)

説明

パッケージファイルについての情報を返します。 指定した tar+gzip ファイルの名前を入力として受け付けます。

パラメータ

string $file

.tgz ファイルの名前。

返り値

パッケージ情報を含む配列を返します。

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Common::infoFromString() | 上に戻る | PEAR_Common::log()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Common::log

PEAR マニュアル
前のページ 次のページ

PEAR_Common::log()

PEAR_Common::log() -- ログを出力する

概要

require_once 'PEAR/common.php';

void PEAR_Common::log (int $level, string $msg)

説明

ログ出力用のメソッドです。

パラメータ

integer $level

ログレベル (0 は何も出力せず、大きくするほどたくさん出力します)。

string $msg

ログに書き込むメッセージ。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Common::infoFromTgzFile() | 上に戻る | PEAR_Common::mkDirHier()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Common::mkDirHier

PEAR マニュアル
前のページ 次のページ

PEAR_Common::mkDirHier()

PEAR_Common::mkDirHier() -- 必要なら親ディレクトリも含めて、ディレクトリを作成する

概要

require_once 'common.php';

bool PEAR_Common::mkDirHier (string $dir)

説明

System::mkDir() のラッパーです。 ディレクトリを作成します。その際、必要なら親ディレクトリも同時に作成します。

パラメータ

string $dir

ディレクトリ名。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Common::log() | 上に戻る | PEAR_Common::mkTempDir()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Common::mkTempDir

PEAR マニュアル
前のページ 次のページ

PEAR_Common::mkTempDir()

PEAR_Common::mkTempDir() -- 一時ディレクトリを作成し、登録する

概要

require_once 'PEAR/common.php';

string PEAR_Common::mkTempDir (string [$tmpdir = ''])

説明

一時ディレクトリを作成し、登録します。

パラメータ

string $tmpdir

一時ディレクトリとして使用するディレクトリ。 指定しなかった場合は、システムのデフォルト (例えば /tmp あるいは c:\windows\temp) を使用します。

返り値

作成したディレクトリの名前を文字列で返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Common::mkDirHier() | 上に戻る | PEAR_Common::setFrontendObject()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Common::PEAR_Common

PEAR マニュアル
前のページ 次のページ

PEAR_Common::PEAR_Common()

PEAR_Common::PEAR_Common() -- PEAR_Common コンストラクタ

概要

require_once 'PEAR/common.php';

void PEAR_Common::PEAR_Common (void)

説明

PEAR_Common のコンストラクタです。

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
PEAR_Common | 上に戻る | PEAR_Common::addTempFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Common::setFrontendObject

PEAR マニュアル
前のページ 次のページ

PEAR_Common::setFrontendObject()

PEAR_Common::setFrontendObject() -- 使用するフロントエンドを表すオブジェクトを設定する

概要

require_once 'common.php';

void PEAR_Common::setFrontendObject (object &$ui)

説明

使用するフロントエンドを表すオブジェクトを設定します。

パラメータ

object $ui

フロントエンドオブジェクトへの参照。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Common::mkTempDir() | 上に戻る | PEAR_Common::validatePackageInfo()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Common::validatePackageInfo

PEAR マニュアル
前のページ 次のページ

PEAR_Common::validatePackageInfo()

PEAR_Common::validatePackageInfo() -- XML パッケージ定義ファイルを検証する

概要

require_once 'common.php';

boolean PEAR_Common::validatePackageInfo (string $info, array &$errors, array &$warnings [, string $dir_prefix = ''])

説明

XML パッケージ定義ファイルを検証します。

パラメータ

string $info

パッケージのアーカイブ、あるいはパッケージ定義ファイルのファイル名。

array $errors

エラーが格納される配列。

array $warnings

警告が格納される配列。

string $dir_prefix

ソースファイルの存在するディレクトリ。 存在しない場合は空の文字列。

返り値

検証に成功した場合に TRUE を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Common::setFrontendObject() | 上に戻る | PEAR_Common::validPackageName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Common::validPackageName

PEAR マニュアル
前のページ 次のページ

PEAR_Common::validPackageName()

PEAR_Common::validPackageName() -- 文字列がパッケージ名として妥当かどうかを調べる

概要

require_once 'PEAR/common.php';

bool PEAR_Common::validPackageName (string $name)

説明

文字列がパッケージ名として妥当かどうかを調べます。

パラメータ

string $name

調べたいパッケージ名。

返り値

bool - 成功時には TRUE 、 失敗時には FALSE を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Common::validatePackageInfo() | 上に戻る | PEAR_Common::xmlFromInfo()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Common::xmlFromInfo

PEAR マニュアル
前のページ 次のページ

PEAR_Common::xmlFromInfo()

PEAR_Common::xmlFromInfo() -- パッケージ情報にもとづいて作成した XML ドキュメントを返す

概要

require_once 'PEAR/common.php';

string PEAR_Common::xmlFromInfo (array $pkginfo)

説明

(PEAR_Common::infoFrom*() メソッドが返す) パッケージ情報にもとづいて作成した XML ドキュメントを返します。

パラメータ

array $pkginfo

パッケージ情報。

返り値

XML データを返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Common::validPackageName() | 上に戻る | PEAR_Config

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config

目次
PEAR_Config::PEAR_Config() -- コンストラクタ
PEAR_Config::apiVersion() -- API のバージョンを返す (PEAR 1.4.0 では 1.1)
PEAR_Config::definedBy() -- キーを定義しているのがどの config レイヤーなのかを通知する
PEAR_Config::deleteChannel() -- deleteChannel
PEAR_Config::get() -- 設定値を返す
PEAR_Config::getConfFile() -- 設定をレイヤーに保存するために使用するファイルを取得する
PEAR_Config::getDefaultChannel() -- デフォルトのチャネルを取得する
PEAR_Config::getDocs() -- 設定値についてのドキュメントを取得する
PEAR_Config::getFTP() -- ftp サーバは readFTPConfigFile() で設定する。これはリモートの設定ファイルが指定された場合にのみ使用する
PEAR_Config::getGroup() -- 設定キーのパラメータグループを取得する
PEAR_Config::getGroupKeys() -- グループ内のパラメータの一覧を取得する
PEAR_Config::getGroups() -- パラメータグループの一覧を取得する
PEAR_Config::getKeys() -- 現在の設定キーのすべて取得する
PEAR_Config::getLayers() -- 定義されているレイヤーを返す
PEAR_Config::getPrompt() -- 設定値についての短い説明を取得する
PEAR_Config::getRegistry() -- getRegistry
PEAR_Config::getRemote() -- getRemote
PEAR_Config::getREST() -- getREST
PEAR_Config::getSetValues() -- 設定項目として設定可能な値の一覧を取得する
PEAR_Config::getType() -- 設定値の型を取得する
PEAR_Config::isDefined() -- 指定したキーが設定値として存在するかどうかを返す
PEAR_Config::isDefinedLayer() -- 設定レイヤーが存在するかどうかを返す
PEAR_Config::mergeConfigFile() -- ファイルのデータを設定レイヤーにマージする
PEAR_Config::noRegistry() -- noRegistry
PEAR_Config::readConfigFile() -- 設定データをファイルから読み込む
PEAR_Config::readFTPConfigFile() -- readFTPConfigFile
PEAR_Config::remove() -- 設定レイヤーから設定キーを削除する
PEAR_Config::removeLayer() -- 設定レイヤー全体を一時的に削除する
PEAR_Config::set() -- 指定したレイヤーの項目に値を設定する
PEAR_Config::setChannels() -- チャネルの一覧を設定する
PEAR_Config::setInstallRoot() -- setInstallRoot
PEAR_Config::setRegistry() -- installroot と同様のカスタマイズを行う
PEAR_Config::singleton() -- PEAR_Config オブジェクトのインスタンスを返す
PEAR_Config::store() -- 設定データをレイヤーに保存する
PEAR_Config::toDefault() -- 設定キーの値をシステムの定義値に戻す
PEAR_Config::validConfiguration() -- 設定ファイルが見つかったかどうか、 そしてこの設定からレジストリオブジェクトを取得できたかどうかを調べる
PEAR_Config::writeConfigFile() -- ファイルからのデータを設定レイヤーに書き込む

PEAR_Config() のクラスツリー

  • PEAR

    • PEAR_Config

前のページ | ホーム | 次のページ
PEAR_Common::xmlFromInfo() | 上に戻る | PEAR_Config::PEAR_Config()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::apiVersion

PEAR マニュアル
前のページ 次のページ

PEAR_Config::apiVersion()

PEAR_Config::apiVersion() -- API のバージョンを返す (PEAR 1.4.0 では 1.1)

概要

require_once '/Config.php'; (since PEAR 1.4.0)

void PEAR_Config::apiVersion ()

説明

API のバージョンを返します (PEAR 1.4.0 の場合は 1.1 です)。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::PEAR_Config() | 上に戻る | PEAR_Config::definedBy()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::definedBy

PEAR マニュアル
前のページ 次のページ

PEAR_Config::definedBy()

PEAR_Config::definedBy() -- キーを定義しているのがどの config レイヤーなのかを通知する

概要

require_once 'PEAR/config.php';

string PEAR_Config::definedBy (string $key)

説明

キーを定義しているのがどの config レイヤーなのかを通知します。

パラメータ

string $key

config キー。

返り値

config のレイヤー、あるいは見つからなかった場合に空の文字列を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::apiVersion() | 上に戻る | PEAR_Config::deleteChannel()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::deleteChannel

PEAR マニュアル
前のページ 次のページ

PEAR_Config::deleteChannel()

PEAR_Config::deleteChannel() -- deleteChannel

概要

require_once '/Config.php'; (since PEAR 1.4.0)

void PEAR_Config::deleteChannel (string $channel)

説明

チャネルの設定を完全に削除します。

パラメータ

string $channel

削除するチャネル (チャネルサーバ) の名前。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::definedBy() | 上に戻る | PEAR_Config::get()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::get

PEAR マニュアル
前のページ 次のページ

PEAR_Config::get()

PEAR_Config::get() -- 設定値を返す

概要

require_once 'PEAR/config.php';

mixed PEAR_Config::get (string $key [, mixed $layer = NULL])

説明

レイヤーのプロパティがある場合はレイヤーを優先し、設定値を返す

パラメータ

string $key

設定項目のキー。

mixed $layer

レイヤーのキー。

返り値

設定値、あるいは見つからない場合に NULL を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::deleteChannel() | 上に戻る | PEAR_Config::getConfFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::getConfFile

PEAR マニュアル
前のページ 次のページ

PEAR_Config::getConfFile()

PEAR_Config::getConfFile() -- 設定をレイヤーに保存するために使用するファイルを取得する

概要

require_once '/Config.php'; (since PEAR 1.4.0)

void PEAR_Config::getConfFile (string $layer)

説明

特定の設定レイヤーの値を提供する設定ファイルの名前を取得します。

パラメータ

string $layer

user、system あるいは ftp。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::get() | 上に戻る | PEAR_Config::getDefaultChannel()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::getDefaultChannel

PEAR マニュアル
前のページ 次のページ

PEAR_Config::getDefaultChannel()

PEAR_Config::getDefaultChannel() -- デフォルトのチャネルを取得する

概要

require_once '/Config.php'; (since PEAR 1.4.0)

string|false PEAR_Config::getDefaultChannel ([string $layer = NULL])

説明

起動時には、チャネルはまだ初期化されていません。 デフォルトのチャネルが pear.php.net でない場合は、設定を初期化します。

パラメータ

string $layer

レジストリの取得元を表すレイヤー。 null の場合は最初に見つかったものが使用されます。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::getConfFile() | 上に戻る | PEAR_Config::getDocs()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::getDocs

PEAR マニュアル
前のページ 次のページ

PEAR_Config::getDocs()

PEAR_Config::getDocs() -- 設定値についてのドキュメントを取得する

概要

require_once 'PEAR/config.php';

string PEAR_Config::getDocs (string $key)

説明

設定値についてのドキュメントを取得します。

パラメータ

string $key

設定項目のキー。

返り値

ドキュメントを文字列で返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::getDefaultChannel() | 上に戻る | PEAR_Config::getFTP()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::getFTP

PEAR マニュアル
前のページ 次のページ

PEAR_Config::getFTP()

PEAR_Config::getFTP() -- ftp サーバは readFTPConfigFile() で設定する。これはリモートの設定ファイルが指定された場合にのみ使用する

概要

require_once '/Config.php'; (since PEAR 1.4.0)

PEAR_FTP|false& PEAR_Config::getFTP ()

説明

リモートの FTP サーバにアクセスするために使用するオブジェクト、 あるいは使用できるオブジェクトがない場合に false を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::getDocs() | 上に戻る | PEAR_Config::getGroup()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::getGroup

PEAR マニュアル
前のページ 次のページ

PEAR_Config::getGroup()

PEAR_Config::getGroup() -- 設定キーのパラメータグループを取得する

概要

require_once 'PEAR/config.php';

string PEAR_Config::getGroup (string $key)

説明

設定キーのパラメータグループを使用します。

パラメータ

string $key

設定項目のキー。

返り値

パラメータグループを文字列で返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::getFTP() | 上に戻る | PEAR_Config::getGroupKeys()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::getGroupKeys

PEAR マニュアル
前のページ 次のページ

PEAR_Config::getGroupKeys()

PEAR_Config::getGroupKeys() -- グループ内のパラメータの一覧を取得する

概要

require_once 'PEAR/config.php';

array PEAR_Config::getGroupKeys (string $group)

説明

グループ内のパラメータの一覧を取得します。

パラメータ

string $group

パラメータグループ。

返り値

$group 内のパラメータの一覧を配列で返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::getGroup() | 上に戻る | PEAR_Config::getGroups()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::getGroups

PEAR マニュアル
前のページ 次のページ

PEAR_Config::getGroups()

PEAR_Config::getGroups() -- パラメータグループの一覧を取得する

概要

require_once 'PEAR/config.php';

array PEAR_Config::getGroups (void)

説明

パラメータグループの一覧を取得します。

返り値

パラメータグループの一覧を配列で返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::getGroupKeys() | 上に戻る | PEAR_Config::getKeys()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::getKeys

PEAR マニュアル
前のページ 次のページ

PEAR_Config::getKeys()

PEAR_Config::getKeys() -- 現在の設定キーのすべて取得する

概要

require_once 'PEAR/config.php';

array PEAR_Config::getKeys (void)

説明

現在の設定キーをすべて取得します。

返り値

設定キーの一覧を配列で返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::getGroups() | 上に戻る | PEAR_Config::getLayers()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::getLayers

PEAR マニュアル
前のページ 次のページ

PEAR_Config::getLayers()

PEAR_Config::getLayers() -- 定義されているレイヤーを返す

概要

require_once 'PEAR/config.php';

array PEAR_Config::getLayers (void)

説明

定義されているレイヤーを返します。ただし 'default' は除きます。

返り値

定義されているレイヤーを配列で返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::getKeys() | 上に戻る | PEAR_Config::getPrompt()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::getPrompt

PEAR マニュアル
前のページ 次のページ

PEAR_Config::getPrompt()

PEAR_Config::getPrompt() -- 設定値についての短い説明を取得する

概要

require_once 'PEAR/config.php';

string PEAR_Config::getPrompt (string $key)

説明

設定値についての短いドキュメントを取得します。

パラメータ

string $key

設定項目のキー。

返り値

短い形式の説明文を文字列で返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::getLayers() | 上に戻る | PEAR_Config::getRegistry()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::getRegistry

PEAR マニュアル
前のページ 次のページ

PEAR_Config::getRegistry()

PEAR_Config::getRegistry() -- getRegistry

概要

require_once '/Config.php'; (since PEAR 1.4.0)

PEAR_Registry|false& PEAR_Config::getRegistry ([string $use = NULL])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $use

このパラメータは、レジストリを取得するためにどのレイヤーを使用するかを、そのレイヤーの php_dir 設定値にもとづいて決定します。デフォルトである null は、有効な php_dir を含む最初のレイヤーを使用します。一方 user、system あるいは ftp を指定すると、対応するレイヤーのレジストリを返そうとします。

レジストリの取得に失敗した場合は、false を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::getPrompt() | 上に戻る | PEAR_Config::getRemote()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::getRemote

PEAR マニュアル
前のページ 次のページ

PEAR_Config::getRemote()

PEAR_Config::getRemote() -- getRemote

概要

require_once '/Config.php'; (since PEAR 1.4.0)

PEAR_Remote& PEAR_Config::getRemote ()

説明

現在の PEAR_Config オブジェクトにもとづく PEAR_Remote を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::getRegistry() | 上に戻る | PEAR_Config::getREST()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::getREST

PEAR マニュアル
前のページ 次のページ

PEAR_Config::getREST()

PEAR_Config::getREST() -- getREST

概要

require_once '/Config.php';

PEAR_REST& PEAR_Config::getREST (string $version [, array $options = array()])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $version

PEAR 1.4.0 では、これは 1.0 にしなければなりません。

array $options

PEAR_REST のコンストラクタ用のオプション。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::getRemote() | 上に戻る | PEAR_Config::getSetValues()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::getSetValues

PEAR マニュアル
前のページ 次のページ

PEAR_Config::getSetValues()

PEAR_Config::getSetValues() -- 設定項目として設定可能な値の一覧を取得する

概要

require_once 'PEAR/config.php';

array PEAR_Config::getSetValues (string $key)

説明

設定項目として設定可能な値の一覧を取得します。 値が設定されていない場合は NULL を返します。

パラメータ

string $key

設定キー。

返り値

設定可能な値の配列、あるいは設定キーがわからなかったり 設定されていなかったりした場合に NULL を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::getREST() | 上に戻る | PEAR_Config::getType()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::getType

PEAR マニュアル
前のページ 次のページ

PEAR_Config::getType()

PEAR_Config::getType() -- 設定値の型を取得する

概要

require_once 'PEAR/config.php';

string PEAR_Config::getType (string $key)

説明

Get the type of a config value.

パラメータ

string $key

設定項目のキー。

返り値

型を返します。 "string"、 "integer"、 "file"、 "directory"、 "set" あるいは "password" のいずれかです。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::getSetValues() | 上に戻る | PEAR_Config::isDefined()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::isDefined

PEAR マニュアル
前のページ 次のページ

PEAR_Config::isDefined()

PEAR_Config::isDefined() -- 指定したキーが設定値として存在するかどうかを返す

概要

require_once 'PEAR/config.php';

bool PEAR_Config::isDefined (string $key)

説明

指定したキーが設定値として存在するかどうかを返します。

パラメータ

string $key

設定項目のキー。

返り値

このオブジェクトに $key が存在するかどうかを返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::getType() | 上に戻る | PEAR_Config::isDefinedLayer()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::isDefinedLayer

PEAR マニュアル
前のページ 次のページ

PEAR_Config::isDefinedLayer()

PEAR_Config::isDefinedLayer() -- 設定レイヤーが存在するかどうかを返す

概要

require_once 'config.php';

bool PEAR_Config::isDefinedLayer (string $layer)

説明

指定した設定レイヤーが存在するかどうかを返します。

パラメータ

string $layer

設定レイヤー。

返り値

オブジェクトに $layer が存在するかどうかを返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::isDefined() | 上に戻る | PEAR_Config::mergeConfigFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::mergeConfigFile

PEAR マニュアル
前のページ 次のページ

PEAR_Config::mergeConfigFile()

PEAR_Config::mergeConfigFile() -- ファイルのデータを設定レイヤーにマージする

概要

require_once 'PEAR/config.php';

bool PEAR_Config::mergeConfigFile (string $file [, bool $override = TRUE [, string $layer = 'user']])

説明

ファイルのデータを、設定レイヤーにマージします。 readConfigFile() 関数と似ていますが、 この関数は設定レイヤーの既存の値をすべて置き換えるわけではありません。

パラメータ

string $file

読み込むファイル。

boolean $override

既存の上書きするかどうか。

string $layer

データを取り込む設定レイヤー ('user' あるいは 'system')。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::isDefinedLayer() | 上に戻る | PEAR_Config::noRegistry()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::noRegistry

PEAR マニュアル
前のページ 次のページ

PEAR_Config::noRegistry()

PEAR_Config::noRegistry() -- noRegistry

概要

require_once '/Config.php'; (since PEAR 1.4.0)

void PEAR_Config::noRegistry ()

説明

設定ファイルからの読み込みや php_dir の設定値を変更した際に、 自動的に PEAR_Registry オブジェクトが作成されるのを無効にします。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::mergeConfigFile() | 上に戻る | PEAR_Config::readConfigFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::PEAR_Config

PEAR マニュアル
前のページ 次のページ

PEAR_Config::PEAR_Config()

PEAR_Config::PEAR_Config() -- コンストラクタ

概要

require_once 'PEAR/config.php';

void PEAR_Config::PEAR_Config ([string $user_file = '' [, string $system_file = '']])

説明

コンストラクタです。

パラメータ

string $user_file

ユーザ定義のオプションを読み込むファイル。

string $system_file

システムのデフォルトを読み込むファイル。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config | 上に戻る | PEAR_Config::apiVersion()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::readConfigFile

PEAR マニュアル
前のページ 次のページ

PEAR_Config::readConfigFile()

PEAR_Config::readConfigFile() -- 設定データをファイルから読み込む

概要

require_once 'PEAR/config.php';

bool PEAR_Config::readConfigFile ([string $file = NULL [, string $layer = 'user']])

説明

設定データをファイルから読み込みます。 その設定レイヤー内の既存の値はすべて破棄され、 ファイルからのデータで置き換えられます。

パラメータ

string $file

読み込むファイル。NULL を指定したり省略したりした場合は、 (2 番目のパラメータで指定する) レイヤーで最後に使用されたファイルを用います。

string $layer

データを読み込む設定レイヤー ('user' あるいは 'system')。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::noRegistry() | 上に戻る | PEAR_Config::readFTPConfigFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::readFTPConfigFile

PEAR マニュアル
前のページ 次のページ

PEAR_Config::readFTPConfigFile()

PEAR_Config::readFTPConfigFile() -- readFTPConfigFile

概要

require_once '/Config.php'; (since PEAR 1.4.0)

true|PEAR_Error PEAR_Config::readFTPConfigFile (string $path)

説明

ftp 上の設定ファイルを取得します。まずサーバに接続し、設定ファイルを取得し、 そして通常通りにパースします。この関数は、PEAR_FTP クラスで Net_FTP を使用しています。

パラメータ

string $path

リモートの設定ファイルへのパスを ftp://www.example.com/pear/config.ini のように指定します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::readConfigFile() | 上に戻る | PEAR_Config::remove()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::remove

PEAR マニュアル
前のページ 次のページ

PEAR_Config::remove()

PEAR_Config::remove() -- 設定レイヤーから設定キーを削除する

概要

require_once 'PEAR/config.php';

bool PEAR_Config::remove (string $key [, string $layer = 'user'])

説明

指定した設定レイヤーから、設定キーを削除します。

パラメータ

string $key

設定項目のキー。

string $layer

設定レイヤー。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::readFTPConfigFile() | 上に戻る | PEAR_Config::removeLayer()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::removeLayer

PEAR マニュアル
前のページ 次のページ

PEAR_Config::removeLayer()

PEAR_Config::removeLayer() -- 設定レイヤー全体を一時的に削除する

概要

require_once 'PEAR/config.php';

bool PEAR_Config::removeLayer (string $layer)

説明

設定レイヤー全体を一時的に削除します。使用時は注意してください!

パラメータ

string $layer

設定項目のキー。

返り値

成功時には TRUE 、 失敗時には FALSE を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::remove() | 上に戻る | PEAR_Config::set()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::set

PEAR マニュアル
前のページ 次のページ

PEAR_Config::set()

PEAR_Config::set() -- 指定したレイヤーの項目に値を設定する

概要

require_once 'PEAR/config.php';

bool PEAR_Config::set (string $key, string $value [, string $layer = 'user'])

説明

指定したレイヤー (デフォルトは 'user') の項目に値を設定します。 configuration_info 配列で定義された型の使用を強制します。 integer 型の値は int にキャストされます。また、設定される値は その妥当性が検証されます。

パラメータ

string $key

設定項目のキー。

string $value

設定値。

string $layer

設定レイヤー。

返り値

成功時には TRUE 、 失敗時には FALSE を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::removeLayer() | 上に戻る | PEAR_Config::setChannels()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::setChannels

PEAR マニュアル
前のページ 次のページ

PEAR_Config::setChannels()

PEAR_Config::setChannels() -- チャネルの一覧を設定する

概要

require_once '/Config.php'; (since PEAR 1.4.0)

bool PEAR_Config::setChannels (array $channels [, bool $merge = FALSE])

説明

これは、PEAR_Registry::listChannels() のコール時に設定されます。 この関数をコールすると、設定内の全チャネルについて空の配列を用意します。

パラメータ

array $channels

チャネル名のリスト。

boolean $merge

true の場合、チャネルのリストが既存のリストにマージされます。 それ以外の場合は既存のリストを上書きします。

返り値

操作が成功したかどうかを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::set() | 上に戻る | PEAR_Config::setInstallRoot()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::setInstallRoot

PEAR マニュアル
前のページ 次のページ

PEAR_Config::setInstallRoot()

PEAR_Config::setInstallRoot() -- setInstallRoot

概要

require_once '/Config.php'; (since PEAR 1.4.0)

void PEAR_Config::setInstallRoot (string|false $root)

説明

インストール時の --installroot オプションを実装する際に使用します。 以前のバージョンの PEAR では、この機能は PEAR_Installer::install() で実装されていました。しかし、これではチャネルに対応することが困難であることから、 よりよいカプセル化を行うために PEAR_Config に移動されました。

パスはフルパスで指定します。ディレクトリを指定するあらゆる設定項目に対して、 このメソッドで指定した installroot が先頭に付加されます。例えば、 php_dir が /usr/lib/php に設定されており、 setInstallRoot() で /hoopla/boo を設定した場合、 get() が返す設定値は /hoopla/boo/usr/lib/php となります。 installroot をリセットするには、空の文字列 '' を使用します。

パラメータ

string|FALSE $root

すべての _dir 変数の先頭に付加するインストールディレクトリ。 無効にするには FALSE を指定します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::setChannels() | 上に戻る | PEAR_Config::setRegistry()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::setRegistry

PEAR マニュアル
前のページ 次のページ

PEAR_Config::setRegistry()

PEAR_Config::setRegistry() -- installroot と同様のカスタマイズを行う

概要

require_once '/Config.php'; (since PEAR 1.4.0)

bool PEAR_Config::setRegistry (PEAR_Registry|false &$reg [, string $layer = 'user'])

説明

php_dir の値が変更されるたびに自動的に行われる レジストリの作成処理を上書きする際に、これを使用します。

noRegistry() がコールされている場合は、これをコールしても無視され、FALSE が返されます。 さらに、ftp レイヤーのレジストリを設定することはできません。

パラメータ

PEAR_Registry|false &$reg

使用する PEAR_Registry。 レジストリをリセットする際には false を設定します。

string $layer

user あるいは system のいずれかでなければなりません。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::setInstallRoot() | 上に戻る | PEAR_Config::singleton()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::singleton

PEAR マニュアル
前のページ 次のページ

PEAR_Config::singleton()

PEAR_Config::singleton() -- PEAR_Config オブジェクトのインスタンスを返す

概要

require_once 'PEAR/config.php';

object &PEAR_Config::singleton ([string $user_file = '' [, string $system_file = '']])

説明

使用するこのクラスのインスタンスをひとつだけにしたい場合に使用します。 このメソッドは、直近に作成された PEAR_Config オブジェクトが存在すればその参照を返し、 存在しない場合は新しいオブジェクトを作成します。

パラメータ

string $user_file

ユーザ定義のオプションを読み込むファイル。

string $system_file

システム全体のデフォルト設定を読み込むファイル。

返り値

既存の、あるいは新しい PEAR_Config インスタンスを返します。

参照

PEAR_Config::PEAR_Config()

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
PEAR_Config::setRegistry() | 上に戻る | PEAR_Config::store()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::store

PEAR マニュアル
前のページ 次のページ

PEAR_Config::store()

PEAR_Config::store() -- 設定データをレイヤーに保存する

概要

require_once 'PEAR/config.php';

bool PEAR_Config::store ([string $layer = 'user'])

説明

設定データをレイヤーに保存します。

パラメータ

string $layer

保存先の設定レイヤー。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::singleton() | 上に戻る | PEAR_Config::toDefault()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::toDefault

PEAR マニュアル
前のページ 次のページ

PEAR_Config::toDefault()

PEAR_Config::toDefault() -- 設定キーの値をシステムの定義値に戻す

概要

require_once 'PEAR/config.php';

bool PEAR_Config::toDefault (string $key)

説明

ユーザが定義した設定キーの値を取り消し、 システムが定義した値に戻します。

パラメータ

string $key

設定項目のキー。

返り値

成功時には TRUE 、 失敗時には FALSE を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::store() | 上に戻る | PEAR_Config::validConfiguration()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::validConfiguration

PEAR マニュアル
前のページ 次のページ

PEAR_Config::validConfiguration()

PEAR_Config::validConfiguration() -- 設定ファイルが見つかったかどうか、 そしてこの設定からレジストリオブジェクトを取得できたかどうかを調べる

概要

require_once '/Config.php'; (since PEAR 1.4.0)

bool PEAR_Config::validConfiguration ()

説明

デフォルトの設定に対して問題が発生しないよう保護するために、 このメソッドを使用します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::toDefault() | 上に戻る | PEAR_Config::writeConfigFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Config::writeConfigFile

PEAR マニュアル
前のページ 次のページ

PEAR_Config::writeConfigFile()

PEAR_Config::writeConfigFile() -- ファイルからのデータを設定レイヤーに書き込む

概要

require_once 'PEAR/config.php';

bool PEAR_Config::writeConfigFile ([string $file = NULL [, bool $layer = 'user']])

説明

ファイルからのデータを設定レイヤーに書き込みます。

パラメータ

string $file

読み込むファイル。

boolean $layer

既存のデータを上書きするかどうか。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Config::validConfiguration() | 上に戻る | PEAR_Dependency

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Dependency

目次
PEAR_Dependency::PEAR_Dependency() -- コンストラクタ
PEAR_Dependency::callCheckMethod() -- xml の依存性定義を対応させる
PEAR_Dependency::checkExtension() -- 拡張モジュールの依存性を調べる
PEAR_Dependency::checkOS() -- オペレーティングシステムの依存性を調べる
PEAR_Dependency::checkPackage() -- パッケージの依存性を調べる
PEAR_Dependency::checkPHP() -- PHP のバージョンを調べる
PEAR_Dependency::checkProgram() -- 外部プログラムを調べる
PEAR_Dependency::checkSAPI() -- SAPI のバックエンドを調べる
PEAR_Dependency::checkZend() -- Zend のバージョンを調べる

このクラスは、PEAR 1.4.0 で PEAR_Dependency2 に置き換えられました。

前のページ | ホーム | 次のページ
PEAR_Config::writeConfigFile() | 上に戻る | PEAR_Dependency::PEAR_Dependency()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Dependency2

目次
PEAR_Dependency2 クラス概要 -- PEAR パッケージの依存性チェック
constructor PEAR_Dependency2::PEAR_Dependency2() -- PEAR_Dependency2
PEAR_Dependency2::normalizeDep() -- 1.0 の依存性を 2.0 の依存性に変換する
PEAR_Dependency2::validateArchDependency() -- OS/プロセッサ/カーネル のバージョンについての複雑な依存性を指定する。 オペレーティングシステムについての単純な依存性には os を使用する
PEAR_Dependency2::validateDependency1() -- package.xml 1.0 の依存性を検証する
PEAR_Dependency2::validateExtensionDependency() -- PHP 拡張モジュールの依存性を検証する
PEAR_Dependency2::validateOsDependency() -- OS についての依存性を指定する。 OS/プロセッサの詳細な情報についての依存性には arch を使用する
PEAR_Dependency2::validatePackage() -- validatePackage
PEAR_Dependency2::validatePackageDependency() -- validatePackageDependency
PEAR_Dependency2::validatePackageUninstall() -- validatePackageUninstall
PEAR_Dependency2::validatePearinstallerDependency() -- validatePearinstallerDependency
PEAR_Dependency2::validatePhpDependency() -- validatePhpDependency
PEAR_Dependency2::validateSubpackageDependency() -- validateSubpackageDependency
前のページ | ホーム | 次のページ
PEAR_Dependency::checkZend() | 上に戻る | PEAR_Dependency2 クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Dependency2 クラス概要

PEAR_Dependency2 クラス概要 -- PEAR パッケージの依存性チェック

PEAR パッケージの依存性チェック

このクラスはバージョン 1.0 および 2.0 の両方の依存性に対応します。 PEAR 1.4.0 以降、PEAR_Dependency に代わって使用されます。

PEAR_Dependency2 クラス階層

  • PEAR_Dependency2

前のページ | ホーム | 次のページ
PEAR_Dependency2 | 上に戻る | constructor PEAR_Dependency2::PEAR_Dependency2()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Dependency2::normalizeDep

PEAR マニュアル
前のページ 次のページ

PEAR_Dependency2::normalizeDep()

PEAR_Dependency2::normalizeDep() -- 1.0 の依存性を 2.0 の依存性に変換する

概要

require_once '/Dependency2.php';

array PEAR_Dependency2::normalizeDep (array $dep)

説明

古い形式である package.xml 1.0 の <dep> タグを、 package.xml 2.0 で使用しているものに変換します。 package.xml 2.0 は、すべての種類の <dep> タグについて新しい構文を使用することができます。

パラメータ

array $dep

xml のパースによって取得した、package.xml 1.0 の <dep>。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor PEAR_Dependency2::PEAR_Dependency2() | 上に戻る | PEAR_Dependency2::validateArchDependency()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor PEAR_Dependency2::PEAR_Dependency2

PEAR マニュアル
前のページ 次のページ

constructor PEAR_Dependency2::PEAR_Dependency2()

constructor PEAR_Dependency2::PEAR_Dependency2() -- PEAR_Dependency2

概要

require_once '/Dependency2.php';

void constructor PEAR_Dependency2::PEAR_Dependency2 (PEAR_Config &$config, array $installoptions, array $package, int [$state = PEAR_VALIDATE_INSTALLING])

説明

このパッケージに関する文書は、未作成です。

パラメータ

PEAR_Config &$config

現在の設定オブジェクト。

array $installoptions

インストールオプション。

array $package

現在のパッケージ。installation 依存性の場合、 これは依存性を含むパッケージとなります。 uninstallation 依存性の場合、 これはアンインストールしようとしているパッケージとなります。

PEAR_Registry::parsedPackageName() の書式

integer $state

インストールの状態 (PEAR_VALIDATE_* のうちのいずれか)。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Dependency2 クラス概要 | 上に戻る | PEAR_Dependency2::normalizeDep()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Dependency2::validateArchDependency

PEAR マニュアル
前のページ 次のページ

PEAR_Dependency2::validateArchDependency()

PEAR_Dependency2::validateArchDependency() -- OS/プロセッサ/カーネル のバージョンについての複雑な依存性を指定する。 オペレーティングシステムについての単純な依存性には os を使用する

概要

require_once '/Dependency2.php';

true|PEAR_Error|array PEAR_Dependency2::validateArchDependency (array $dep)

説明

この依存性は、唯一 ereg() の正規表現パターンが使用できるものです。 OS_Guess がパースした php_uname() の出力に対して、このパターンにマッチするかどうかを調べます。 その他のすべての依存性検証と同様、成功した場合に true、要求された検証に失敗した場合 (そして要求されたのが arch 依存性だった場合) に PEAR_Error を返します。オプション soft、force あるいは ignore-errors が指定された場合は、エラーメッセージを含む配列を返します。

パラメータ

array $dep

xml をパースして取得した依存性。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Dependency2::normalizeDep() | 上に戻る | PEAR_Dependency2::validateDependency1()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Dependency2::validateDependency1

PEAR マニュアル
前のページ 次のページ

PEAR_Dependency2::validateDependency1()

PEAR_Dependency2::validateDependency1() -- package.xml 1.0 の依存性を検証する

概要

require_once '/Dependency2.php';

true|PEAR_Error|array PEAR_Dependency2::validateDependency1 (array $dep, array [$params = array()])

説明

package.xml バージョン 1.0 の <dep> 依存性を検証します。

パラメータ

array $dep

xml からパースした、<dep> タグの内容。

array $params

インストールされた PEAR_Downloader_Package オブジェクトのリスト。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Dependency2::validateArchDependency() | 上に戻る | PEAR_Dependency2::validateExtensionDependency()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Dependency2::validateExtensionDependency

PEAR マニュアル
前のページ 次のページ

PEAR_Dependency2::validateExtensionDependency()

PEAR_Dependency2::validateExtensionDependency() -- PHP 拡張モジュールの依存性を検証する

概要

require_once '/Dependency2.php';

true|PEAR_Error|array PEAR_Dependency2::validateExtensionDependency (array $dep, bool [$required = true])

説明

これは現在メモリに存在する拡張モジュールに対する検証を行います。 ローカルのディスク上の拡張モジュールは検証しません。これを行うには、 package 依存性で <providesextension> タグを使用しなければなりません。

その他のすべての依存性検証と同様、成功した場合に true、 要求された検証に失敗した場合に PEAR_Error を返します。オプション soft、force あるいは ignore-errors が指定された場合は、エラーメッセージを含む配列を返します。

パラメータ

array $dep

xml をパースして取得した依存性。

boolean $required

この依存性が必須か任意か。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Dependency2::validateDependency1() | 上に戻る | PEAR_Dependency2::validateOsDependency()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Dependency2::validateOsDependency

PEAR マニュアル
前のページ 次のページ

PEAR_Dependency2::validateOsDependency()

PEAR_Dependency2::validateOsDependency() -- OS についての依存性を指定する。 OS/プロセッサの詳細な情報についての依存性には arch を使用する

概要

require_once '/Dependency2.php';

true|PEAR_Error|array PEAR_Dependency2::validateOsDependency (array $dep)

説明

最もよく使用される OS 依存性は unix および windows の 2 つです。 その他のオプションとしては linux、freebsd、darwin (OS X)、sunos、irix、hpux、aix があります。 その他のすべての依存性検証と同様、成功した場合に true、要求された検証に失敗した場合 (そして要求されたのが OS 依存性だった場合) に PEAR_Error を返します。オプション soft、force あるいは ignore-errors が指定された場合は、エラーメッセージを含む配列を返します。

パラメータ

array $dep

xml をパースして取得した依存性。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Dependency2::validateExtensionDependency() | 上に戻る | PEAR_Dependency2::validatePackage()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Dependency2::validatePackage

PEAR マニュアル
前のページ 次のページ

PEAR_Dependency2::validatePackage()

PEAR_Dependency2::validatePackage() -- validatePackage

概要

require_once '/Dependency2.php';

true|PEAR_Error|array PEAR_Dependency2::validatePackage (array|PEAR_PackageFile_v2|PEAR_Downloader_Package $pkg, PEAR_Common &$dl)

説明

その他のすべての依存性検証と同様、成功した場合に true、要求された検証に失敗した場合 (そして要求されたのが PEAR インストーラ依存性だった場合) に PEAR_Error を返します。オプション soft、force あるいは ignore-errors が指定された場合は、エラーメッセージを含む配列を返します。

パラメータ

array|PEAR_PackageFile_v2|PEAR_Downloader_Package $pkg

array('channel' => channelname, 'package' => package) 形式の配列、あるいはこれらのオブジェクトのひとつ。

PEAR_Common &$dl

PEAR_Common での定義に一致する log() メソッドを持つ、任意のオブジェクト。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Dependency2::validateOsDependency() | 上に戻る | PEAR_Dependency2::validatePackageDependency()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Dependency2::validatePackageDependency

PEAR マニュアル
前のページ 次のページ

PEAR_Dependency2::validatePackageDependency()

PEAR_Dependency2::validatePackageDependency() -- validatePackageDependency

概要

require_once '/Dependency2.php';

array|true|PEAR_Error PEAR_Dependency2::validatePackageDependency (array $dep, boolean $required, array $params, bool [$depv1 = FALSE])

説明

package 型の依存性を検証します。検証は、このような順で行われます。

  1. 依存パッケージが <providesextension> タグで拡張モジュールを指定している場合、 まずその拡張モジュールの依存性を調べたうえでその結果を返します。

  2. インストールされるパッケージの一覧の中に依存性にあてはまるものが含まれている場合、 それに対して依存性の検証を行い、結果を返します。

  3. 依存パッケージが既にインストールされている場合、 インストールされているバージョンが条件を満たすかどうかを調べます。

  4. ここまで来たということは、依存性の検証は失敗しました。 この依存性が必須のものである場合、エラーメッセージを含む PEAR_Error を返します。そうでない場合はエラーメッセージを含む配列を返します。

パラメータ

array $dep

package.xml 2.0 で定義されている依存性の配列。

boolean $required

この依存性は必須のものかオプションなのか。

array $params

ダウンロードされ、依存性の検証に使用されるパッケージを表す PEAR_Downloader_Package オブジェクトの配列。

boolean $depv1

TRUE の場合、pear.php.net での検証に失敗した際に pecl.php.net パッケージに対しても検証を行います。これにより、 pear.php.net から pecl.php.net に移動したパッケージに対応します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Dependency2::validatePackage() | 上に戻る | PEAR_Dependency2::validatePackageUninstall()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Dependency2::validatePackageUninstall

PEAR マニュアル
前のページ 次のページ

PEAR_Dependency2::validatePackageUninstall()

PEAR_Dependency2::validatePackageUninstall() -- validatePackageUninstall

概要

require_once '/Dependency2.php';

true|PEAR_Error|array PEAR_Dependency2::validatePackageUninstall (PEAR_Installer &$dl)

説明

その他のすべての依存性検証と同様、成功した場合に true、要求された検証に失敗した場合 (そして要求されたのが PEAR インストーラ依存性だった場合) に PEAR_Error を返します。オプション soft、force あるいは ignore-errors が指定された場合は、エラーメッセージを含む配列を返します。

パラメータ

PEAR_Installer &$dl

このメソッドは、アンインストールされるパッケージの一覧を PEAR_Installer オブジェクトから取得し、それらのパッケージがアンインストールされても 既存のパッケージの依存性が損なわれないようにします。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Dependency2::validatePackageDependency() | 上に戻る | PEAR_Dependency2::validatePearinstallerDependency()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Dependency2::validatePearinstallerDependency

PEAR マニュアル
前のページ 次のページ

PEAR_Dependency2::validatePearinstallerDependency()

PEAR_Dependency2::validatePearinstallerDependency() -- validatePearinstallerDependency

概要

require_once '/Dependency2.php';

true|PEAR_Error|array PEAR_Dependency2::validatePearinstallerDependency (array $dep)

説明

実行中の PEAR のバージョンの依存性を検証します。 この依存性は、現在の package.xml と互換性のないバージョンの PEAR の使用を避けるために設計されています。 その他のすべての依存性検証と同様、成功した場合に true、要求された検証に失敗した場合 (そして要求されたのが PEAR インストーラ依存性だった場合) に PEAR_Error を返します。オプション soft、force あるいは ignore-errors が指定された場合は、エラーメッセージを含む配列を返します。

パラメータ

mixed $dep

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Dependency2::validatePackageUninstall() | 上に戻る | PEAR_Dependency2::validatePhpDependency()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Dependency2::validatePhpDependency

PEAR マニュアル
前のページ 次のページ

PEAR_Dependency2::validatePhpDependency()

PEAR_Dependency2::validatePhpDependency() -- validatePhpDependency

概要

require_once '/Dependency2.php';

true|PEAR_Error|array PEAR_Dependency2::validatePhpDependency (array $dep)

説明

実行中の PHP のバージョンの依存性を検証します。 インストーラの使用する PHP のバージョンは、直近に実行されたスクリプトの PHP のバージョンと同じであるものと、暗黙のうちにみなされます。 その他のすべての依存性検証と同様、成功した場合に true、要求された検証に失敗した場合 (そして要求されたのが PHP の依存性だった場合) に PEAR_Error を返します。オプション soft、force あるいは ignore-errors が指定された場合は、エラーメッセージを含む配列を返します。

パラメータ

array $dep

xml をパースして取得した依存性。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Dependency2::validatePearinstallerDependency() | 上に戻る | PEAR_Dependency2::validateSubpackageDependency()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Dependency2::validateSubpackageDependency

PEAR マニュアル
前のページ 次のページ

PEAR_Dependency2::validateSubpackageDependency()

PEAR_Dependency2::validateSubpackageDependency() -- validateSubpackageDependency

概要

require_once '/Dependency2.php';

array|true|PEAR_Error PEAR_Dependency2::validateSubpackageDependency (array $dep, bool $required, array $params)

説明

subpackage 型の依存性を検証します。検証内容の面では、これは package 依存性と同じです。 詳細は、 validatePackageDependency() のドキュメントを参照ください。

パラメータ

array $dep

package.xml 2.0 で定義されている依存性の配列。

boolean $required

この依存性は必須のものかオプションなのか。

array $params

ダウンロードされ、依存性の検証に使用されるパッケージを表す PEAR_Downloader_Package オブジェクトの配列。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Dependency2::validatePhpDependency() | 上に戻る | PEAR_DependencyDB

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Dependency::callCheckMethod

PEAR マニュアル
前のページ 次のページ

PEAR_Dependency::callCheckMethod()

PEAR_Dependency::callCheckMethod() -- xml の依存性定義を対応させる

概要

require_once 'PEAR/Dependency.php';

void PEAR_Dependency::callCheckMethod (mixed &$errmsg, array $opts)

説明

このメソッドは、xml の依存性定義を PEAR_Dependency に対応させます。

パラメータ

mixed &$errmsg

チェックに失敗した場合に、この変数にエラーメッセージが含まれます。

array $opts

XML パッケージ定義のパース結果に含まれるすべての依存性エントリの配列。 以下のような形式です。
$opts => Array
   (
       ['type'] => 'pkg',
       ['rel'] => 'ge',
       ['version'] => '3.4',
       ['name'] => 'HTML_Common'
    );

返り値

すべての依存性が解決できた(!) ときに FALSE、 未解決の依存性がある場合に PEAR_DEPENDENCY_* 定数を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Dependency::PEAR_Dependency() | 上に戻る | PEAR_Dependency::checkExtension()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Dependency::checkExtension

PEAR マニュアル
前のページ 次のページ

PEAR_Dependency::checkExtension()

PEAR_Dependency::checkExtension() -- 拡張モジュールの依存性を調べる

概要

require_once 'PEAR/Dependency.php';

mixed PEAR_Dependency::checkExtension (mixed &$errmsg, string $name [, string $req = NULL [, string $relation = 'has']])

説明

拡張モジュールの依存性を調べるメソッドです。

パラメータ

mixed &$errmsg

チェックに失敗した場合に、この変数にエラーメッセージが含まれます。

string $name

調べる拡張モジュールの名前。

string $req

比較したい拡張モジュールのバージョン。

string $relation

お互いのバージョンを比較する方法。

返り値

依存性が解決できた(!) ときに FALSE、 できなかった場合に PEAR_DEPENDENCY_* 定数を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Dependency::callCheckMethod() | 上に戻る | PEAR_Dependency::checkOS()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Dependency::checkOS

PEAR マニュアル
前のページ 次のページ

PEAR_Dependency::checkOS()

PEAR_Dependency::checkOS() -- オペレーティングシステムの依存性を調べる

概要

require_once 'PEAR/Dependency.php';

mixed PEAR_Dependency::checkOS (string &$errmsg, string $os)

説明

オペレーティングシステムの依存性を調べるメソッドです。

パラメータ

string &$errmsg

チェックに失敗した場合に、この変数にエラーメッセージが含まれます。

string $os

オペレーティングシステムの名前。

返り値

依存性が解決できた(!) ときに FALSE、 できなかった場合に PEAR_DEPENDENCY_* 定数を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Dependency::checkExtension() | 上に戻る | PEAR_Dependency::checkPackage()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Dependency::checkPackage

PEAR マニュアル
前のページ 次のページ

PEAR_Dependency::checkPackage()

PEAR_Dependency::checkPackage() -- パッケージの依存性を調べる

概要

require_once 'PEAR/Dependency.php';

mixed PEAR_Dependency::checkPackage (mixed &$errmsg, string $name [, string $req = NULL [, string $relation = 'has']])

説明

パッケージの依存性を調べるメソッドです。

パラメータ

string &$errmsg

チェックに失敗した場合に、この変数にエラーメッセージが含まれます。

string $name

調べるパッケージの名前。

string $req

比較したいパッケージのバージョン。

string $relation

お互いのバージョンを比較する方法。

返り値

依存性が解決できた(!) ときに FALSE、 できなかった場合に PEAR_DEPENDENCY_* 定数を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Dependency::checkOS() | 上に戻る | PEAR_Dependency::checkPHP()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Dependency::checkPHP

PEAR マニュアル
前のページ 次のページ

PEAR_Dependency::checkPHP()

PEAR_Dependency::checkPHP() -- PHP のバージョンを調べる

概要

require_once 'PEAR/Dependency.php';

mixed PEAR_Dependency::checkPHP (mixed &$errmsg, string $req [, string $relation = 'ge'])

説明

PHP のバージョンを調べるメソッドです。

パラメータ

mixed &$errmsg

チェックに失敗した場合に、この変数にエラーメッセージが含まれます。

string $req

比較したいバージョン。

string $relation

バージョンを比較する方法。

返り値

依存性が解決できた(!) ときに FALSE、 できなかった場合に PEAR_DEPENDENCY_* 定数を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Dependency::checkPackage() | 上に戻る | PEAR_Dependency::checkProgram()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Dependency::checkProgram

PEAR マニュアル
前のページ 次のページ

PEAR_Dependency::checkProgram()

PEAR_Dependency::checkProgram() -- 外部プログラムを調べる

概要

require_once 'PEAR/Dependency.php';

mixed PEAR_Dependency::checkProgram (mixed &$errmsg, string $program)

説明

外部プログラムを調べるメソッドです。 PATH 環境変数に挙げられているディレクトリの中に、 実行可能ファイルが存在するかどうかを調べます。

パラメータ

mixed &$errmsg

チェックに失敗した場合に、この変数にエラーメッセージが含まれます。

string $program

探したいプログラム。

返り値

依存性が解決できた(!) ときに FALSE、 できなかった場合に PEAR_DEPENDENCY_* 定数を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Dependency::checkPHP() | 上に戻る | PEAR_Dependency::checkSAPI()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Dependency::checkSAPI

PEAR マニュアル
前のページ 次のページ

PEAR_Dependency::checkSAPI()

PEAR_Dependency::checkSAPI() -- SAPI のバックエンドを調べる

概要

require_once 'PEAR/Dependency.php';

mixed PEAR_Dependency::checkSAPI (mixed &$errmsg, string $name [, string $req = NULL [, string $relation = 'has']])

説明

SAPI のバックエンドを調べるメソッドです。 バージョンの比較はここではまだできません。

パラメータ

mixed &$errmsg

チェックに失敗した場合に、この変数にエラーメッセージが含まれます。

string $name

SAPI のバックエンドの名前。

string $req

どのバージョンと比較するか (現在は使用されません)。

string $relation

バージョンを比較する方法 (現在は 'has' に固定されています)。

返り値

依存性が解決できた(!) ときに FALSE、 できなかった場合に PEAR_DEPENDENCY_* 定数を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Dependency::checkProgram() | 上に戻る | PEAR_Dependency::checkZend()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Dependency::checkZend

PEAR マニュアル
前のページ 次のページ

PEAR_Dependency::checkZend()

PEAR_Dependency::checkZend() -- Zend のバージョンを調べる

概要

require_once 'PEAR/Dependency.php';

mixed PEAR_Dependency::checkZend (mixed &$errmsg, string $req, string ''}[$relation = 'ge'])

説明

Zend のバージョンを調べるメソッドです。

パラメータ

mixed &$errmsg

チェックに失敗した場合に、この変数にエラーメッセージが含まれます。

string $req

比較するバージョン。

string $relation

バージョンを比較する方法。

返り値

依存性が解決できた(!) ときに FALSE、 できなかった場合に PEAR_DEPENDENCY_* 定数を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Dependency::checkSAPI() | 上に戻る | PEAR_Dependency2

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Dependency::PEAR_Dependency

PEAR マニュアル
前のページ 次のページ

PEAR_Dependency::PEAR_Dependency()

PEAR_Dependency::PEAR_Dependency() -- コンストラクタ

概要

require_once 'PEAR/Dependency.php';

void PEAR_Dependency::PEAR_Dependency (object &$registry)

説明

コンストラクタです。

パラメータ

object &$registry

PEAR_Registry のインスタンス。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Dependency | 上に戻る | PEAR_Dependency::callCheckMethod()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_DependencyDB

目次
PEAR_DependencyDB クラス概要 -- インストール済みパッケージの依存関係を追跡する
PEAR_DependencyDB::assertDepsDB() -- もし存在しない場合は、依存性データベースを作成する。 読み込むコードよりデータベースのほうが新しい場合はエラーとなる
PEAR_DependencyDB::dependsOn() -- $parent が $child に依存しているかどうかを調べる
PEAR_DependencyDB::getDependencies() -- このインストール済みパッケージの依存性の一覧を取得する
PEAR_DependencyDB::getDependentPackageDependencies() -- あるパッケージに依存しているインストール済みパッケージの、 実際の依存性の一覧を取得する
PEAR_DependencyDB::getDependentPackages() -- このパッケージに依存している、インストール済みパッケージの一覧を取得する
PEAR_DependencyDB::hasWriteAccess() -- 依存性 DB が更新可能かどうかを調べる
PEAR_DependencyDB::installPackage() -- インストールあるいは更新されるパッケージの依存性を登録する
PEAR_DependencyDB::rebuildDB() -- レジストリのエントリを読み込み、依存性 DB を再構築する
PEAR_DependencyDB::setConfig() -- レジストリ/依存性 DB の場所を設定する
PEAR_DependencyDB::singleton() -- 生の依存性データベースを取得する。setConfig() および assertDepsDB() をコールする
PEAR_DependencyDB::uninstallPackage() -- アンインストールあるいは更新されるパッケージの依存性を登録する
前のページ | ホーム | 次のページ
PEAR_Dependency2::validateSubpackageDependency() | 上に戻る | PEAR_DependencyDB クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_DependencyDB クラス概要

PEAR_DependencyDB クラス概要 -- インストール済みパッケージの依存関係を追跡する

インストール済みパッケージの依存関係を追跡する

インストール済みパッケージと、ダウンロードしてこれからインストールするパッケージの間の 洗練された依存関係処理を行います。

PEAR_DependencyDB クラス階層

  • PEAR_DependencyDB

前のページ | ホーム | 次のページ
PEAR_DependencyDB | 上に戻る | PEAR_DependencyDB::assertDepsDB()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_DependencyDB::assertDepsDB

PEAR マニュアル
前のページ 次のページ

PEAR_DependencyDB::assertDepsDB()

PEAR_DependencyDB::assertDepsDB() -- もし存在しない場合は、依存性データベースを作成する。 読み込むコードよりデータベースのほうが新しい場合はエラーとなる

概要

require_once '/DependencyDB.php';

void|PEAR_Error PEAR_DependencyDB::assertDepsDB ()

説明

依存性データベースが存在するかどうかを調べ、 存在しない場合は作成を試みます。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_DependencyDB クラス概要 | 上に戻る | PEAR_DependencyDB::dependsOn()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_DependencyDB::dependsOn

PEAR マニュアル
前のページ 次のページ

PEAR_DependencyDB::dependsOn()

PEAR_DependencyDB::dependsOn() -- $parent が $child に依存しているかどうかを調べる

概要

require_once '/DependencyDB.php';

void PEAR_DependencyDB::dependsOn (array|PEAR_PackageFile_v2|PEAR_PackageFile_v2 $parent, array|PEAR_PackageFile_v2|PEAR_PackageFile_v2 $child)

説明

これは、DependencyDB の中核となるメソッドです。依存性データベースにより、 任意の 2 つのパッケージが共有している依存性情報があるかどうかを調べることが可能となります。 これは、その 2 つのパッケージの間の結びつきの強さとは無関係です。言い換えると、 パッケージ A がパッケージ B に依存しており、かつパッケージ B がパッケージ C に依存しているという場合、このメソッドを使用するとパッケージ A が間接的にパッケージ C に依存していることを検出できます。

パラメータ

array|PEAR_PackageFile_v2|PEAR_PackageFile_v2 $parent

親パッケージ (上の例でいうとパッケージ A)。

このパラメータに配列を指定する場合、その書式は次のようになります。

<?php
array(
  'package' => 'パッケージ名',
  'channel' => 'チャネル名'
);
?>

array|PEAR_PackageFile_v2|PEAR_PackageFile_v2 $child

子パッケージ (上の例でいうとパッケージ B あるいはパッケージ C)。

このパラメータに配列を指定する場合、その書式は次のようになります。

<?php
array(
  'package' => 'パッケージ名',
  'channel' => 'チャネル名'
);
?>

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_DependencyDB::assertDepsDB() | 上に戻る | PEAR_DependencyDB::getDependencies()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_DependencyDB::getDependencies

PEAR マニュアル
前のページ 次のページ

PEAR_DependencyDB::getDependencies()

PEAR_DependencyDB::getDependencies() -- このインストール済みパッケージの依存性の一覧を取得する

概要

require_once '/DependencyDB.php';

array|false PEAR_DependencyDB::getDependencies (PEAR_PackageFile_v1|PEAR_PackageFile_v2|array &$pkg)

説明

インストール済みのパッケージについて、 すべての直接パッケージ依存性を配列で取得します。

パラメータ

PEAR_PackageFile_v1|PEAR_PackageFile_v2|array &$pkg

このパラメータに配列を指定する場合、その書式は次のようになります。

<?php
array(
  'package' => 'パッケージ名',
  'channel' => 'チャネル名'
);
?>

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_DependencyDB::dependsOn() | 上に戻る | PEAR_DependencyDB::getDependentPackageDependencies()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_DependencyDB::getDependentPackageDependencies

PEAR マニュアル
前のページ 次のページ

PEAR_DependencyDB::getDependentPackageDependencies()

PEAR_DependencyDB::getDependentPackageDependencies() -- あるパッケージに依存しているインストール済みパッケージの、 実際の依存性の一覧を取得する

概要

require_once '/DependencyDB.php';

array|false PEAR_DependencyDB::getDependentPackageDependencies (PEAR_PackageFile_v1|PEAR_PackageFile_v2|array &$pkg)

説明

あるインストール済みパッケージについて、 拡張された依存性の完全なツリーを返します。

実例を見てみましょう。 パッケージ SOAP は Mail_Mime、HTTP_Request、Net_URL、Net_DIME に依存しています。またパッケージ HTTP_Request は Net_URL、Net_Socket に依存しています。このような場合、このメソッドは次のような配列を返します。

<?php
array(
    'pear.php.net' =>
        array(
            'mail_mime' =>
                array('name' => 'Mail_Mime',
                      'channel' => 'pear.php.net'),
            'http_request' =>
                array('name' => 'HTTP_Request',
                      'channel' => 'pear.php.net'),
            'net_url' =>
                array('name' => 'Net_URL',
                      'channel' => 'pear.php.net',
                      'min' => '1.0.12'),
            'net_dime' =>
                array('name' => 'Net_DIME',
                      'channel' => 'pear.php.net'),
            'net_socket' =>
                array('name' => 'Net_Socket',
                      'channel' => 'pear.php.net'),
        ),
);
?>

これは、実際の依存性の構造に依存していないことに注意しましょう。 上の例でいうと、実際に返されているのは HTTP_Request の Net_URL に対する依存性で、これは SOAP の Net_URL に対する依存性より厳しいものになっています。 言い換えると、同じような依存性が複数あった場合は、 最後に現れたものが返されるということです。

パラメータ

PEAR_PackageFile_v1|PEAR_PackageFile_v2|array &$pkg

このパラメータに配列を指定する場合、その書式は次のようになります。

<?php
array(
  'package' => 'パッケージ名',
  'channel' => 'チャネル名'
);
?>

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_DependencyDB::getDependencies() | 上に戻る | PEAR_DependencyDB::getDependentPackages()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_DependencyDB::hasWriteAccess

PEAR マニュアル
前のページ 次のページ

PEAR_DependencyDB::hasWriteAccess()

PEAR_DependencyDB::hasWriteAccess() -- 依存性 DB が更新可能かどうかを調べる

概要

require_once '/DependencyDB.php';

bool PEAR_DependencyDB::hasWriteAccess ()

説明

レジストリへの書き込み権限のないユーザが依存性 DB を作成/更新しようとする試みを防ぐために、インストーラがこのメソッドを使用します。 このメソッドがなければ、pear info のような読み込みのみの単純なコマンドが動作しなくなります。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_DependencyDB::getDependentPackages() | 上に戻る | PEAR_DependencyDB::installPackage()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_DependencyDB::installPackage

PEAR マニュアル
前のページ 次のページ

PEAR_DependencyDB::installPackage()

PEAR_DependencyDB::installPackage() -- インストールあるいは更新されるパッケージの依存性を登録する

概要

require_once '/DependencyDB.php';

void PEAR_DependencyDB::installPackage (PEAR_PackageFile_v2|PEAR_PackageFile_v2 &$package)

説明

パッケージがインストールあるいは更新される際にレジストリがこのメソッドを使用し、 パッケージの依存性を依存性データベースに登録します。

パラメータ

PEAR_PackageFile_v2|PEAR_PackageFile_v2 &$package

このパラメータに配列を指定する場合、その書式は次のようになります。

<?php
array(
  'package' => 'パッケージ名',
  'channel' => 'チャネル名'
);
?>

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_DependencyDB::hasWriteAccess() | 上に戻る | PEAR_DependencyDB::rebuildDB()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_DependencyDB::rebuildDB

PEAR マニュアル
前のページ 次のページ

PEAR_DependencyDB::rebuildDB()

PEAR_DependencyDB::rebuildDB() -- レジストリのエントリを読み込み、依存性 DB を再構築する

概要

require_once '/DependencyDB.php';

true|PEAR_Error PEAR_DependencyDB::rebuildDB ()

説明

これは、レジストリのエントリを読み込んで依存性データベースを 作成あるいは再作成するために使用されます。インストールされているファイルの エントリから依存性が取り出され、それが依存性データベースに保存されます。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_DependencyDB::installPackage() | 上に戻る | PEAR_DependencyDB::setConfig()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_DependencyDB::setConfig

PEAR マニュアル
前のページ 次のページ

PEAR_DependencyDB::setConfig()

PEAR_DependencyDB::setConfig() -- レジストリ/依存性 DB の場所を設定する

概要

require_once '/DependencyDB.php';

void PEAR_DependencyDB::setConfig (PEAR_Config|false &$config, string|false [$depdb = FALSE])

説明

この重要なメソッドは、 PEAR_Config オブジェクトを設定するために使用されます。このオブジェクトは、 設定情報および (内部操作のための) PEAR_Registry クラスの両方を取得するために使用されます。

パラメータ

PEAR_Config|FALSE &$config

string|FALSE $depdb

依存性データベースへのフルパス、あるいはデフォルト設定を使用する場合に FALSE。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_DependencyDB::rebuildDB() | 上に戻る | PEAR_DependencyDB::singleton()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_DependencyDB::singleton

PEAR マニュアル
前のページ 次のページ

PEAR_DependencyDB::singleton()

PEAR_DependencyDB::singleton() -- 生の依存性データベースを取得する。setConfig() および assertDepsDB() をコールする

概要

require_once '/DependencyDB.php';

PEAR_DependencyDB |PEAR_Error & PEAR_DependencyDB::singleton (PEAR_Config &$config, string|false [$depdb = FALSE])

説明

ディスク上のデータベースの場所にもとづいた、単一の依存性データベースを返します。 言い換えると、各レジストリの場所に対して、ひとつの依存性データベースが作成されます。

パラメータ

PEAR_Config &$config

PEAR_Config オブジェクト。

string|$false; $depdb

依存性データベースへのフルパス、あるいはデフォルト設定を使用する場合に FALSE。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
PEAR_DependencyDB::setConfig() | 上に戻る | PEAR_DependencyDB::uninstallPackage()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_DependencyDB::uninstallPackage

PEAR マニュアル
前のページ 次のページ

PEAR_DependencyDB::uninstallPackage()

PEAR_DependencyDB::uninstallPackage() -- アンインストールあるいは更新されるパッケージの依存性を登録する

概要

require_once '/DependencyDB.php';

void PEAR_DependencyDB::uninstallPackage (PEAR_PackageFile_v1|PEAR_PackageFile_v2|array &$pkg)

説明

パッケージがアンインストールあるいは更新される際にレジストリがこのメソッドを使用し、 パッケージの依存性を依存性データベースから削除します。

更新の場合は、まずアンインストールしてからインストールを行います。

パラメータ

PEAR_PackageFile_v1|PEAR_PackageFile_v2|array &$pkg

このパラメータに配列を指定する場合、その書式は次のようになります。

<?php
array(
  'package' => 'パッケージ名',
  'channel' => 'チャネル名'
);
?>

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_DependencyDB::singleton() | 上に戻る | PEAR_Frontend

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Frontend

目次
PEAR_Frontend クラス概要 -- PEAR でユーザの入出力を扱う、シングルトンベースのフロントエンド
PEAR_Frontend::addTempFile() -- セッションベースの一時ファイル管理のため、これを上書き可能
PEAR_Frontend::isIncludeable() -- isIncludeable
PEAR_Frontend::log() -- log
PEAR_Frontend::setConfig() -- setConfig
PEAR_Frontend::setFrontendClass() -- setFrontendClass
PEAR_Frontend::singleton() -- フロントエンドオブジェクトを取得する
前のページ | ホーム | 次のページ
PEAR_DependencyDB::uninstallPackage() | 上に戻る | PEAR_Frontend クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Frontend クラス概要

PEAR_Frontend クラス概要 -- PEAR でユーザの入出力を扱う、シングルトンベースのフロントエンド

PEAR でユーザの入出力を扱う、シングルトンベースのフロントエンド (PEAR 1.4.0 以降で使用可能)

これは、すべてのフロントエンドの基底クラスでもあります。

PEAR_Frontend クラス概要

  • PEAR

    • PEAR_Frontend

前のページ | ホーム | 次のページ
PEAR_Frontend | 上に戻る | PEAR_Frontend::addTempFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Frontend::addTempFile

PEAR マニュアル
前のページ 次のページ

PEAR_Frontend::addTempFile()

PEAR_Frontend::addTempFile() -- セッションベースの一時ファイル管理のため、これを上書き可能

概要

require_once '/Frontend.php';

void PEAR_Frontend::addTempFile (mixed $file)

説明

デフォルトでは、すべてのファイルはセッション終了時に削除されます。 ウェブインストーラの場合は、インストールスクリプトとユーザの対話のため、 セッションをまたがってリストを管理できる必要があります。

パラメータ

mixed $file

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Frontend クラス概要 | 上に戻る | PEAR_Frontend::isIncludeable()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Frontend::isIncludeable

PEAR マニュアル
前のページ 次のページ

PEAR_Frontend::isIncludeable()

PEAR_Frontend::isIncludeable() -- isIncludeable

概要

require_once '/Frontend.php';

bool PEAR_Frontend::isIncludeable (string $path)

説明

ファイルが include_path からインクルード可能かを調べる、 シンプルなユーティリティクラスです。

パラメータ

string $path

インクルードパス (相対パスあるいは絶対パス)。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
PEAR_Frontend::addTempFile() | 上に戻る | PEAR_Frontend::log()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Frontend::log

PEAR マニュアル
前のページ 次のページ

PEAR_Frontend::log()

PEAR_Frontend::log() -- log

概要

require_once '/Frontend.php';

void PEAR_Frontend::log (int $level, string $msg, bool [$append_crlf = TRUE])

説明

各フロントエンド固有の方法で、メッセージをログに記録します。 デフォルトでは何も行いません。

パラメータ

integer $level

string $msg

boolean $append_crlf

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Frontend::isIncludeable() | 上に戻る | PEAR_Frontend::setConfig()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Installer

目次
PEAR_Installer::PEAR_Installer() -- コンストラクタ
PEAR_Installer::install() -- パッケージファイルをインストールする

PEAR パッケージをインストールする際およびインストールされたパッケージ データベースを維持するために使用される管理用クラス。

PEAR_Installer() のクラスツリー

  • PEAR_Common

    • PEAR_Installer

前のページ | ホーム | 次のページ
PEAR_Frontend::singleton() | 上に戻る | PEAR_Installer::PEAR_Installer()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Installer::install

PEAR マニュアル
前のページ 次のページ

PEAR_Installer::install()

PEAR_Installer::install() -- パッケージファイルをインストールする

概要

require_once 'PEAR/Installer.php';

array PEAR_Installer::install (string $pkgfile [, array $options = array()])

説明

指定したパッケージファイルの中のファイルをインストールします。

パラメータ

string $pkgfile

パッケージファイルへのパス。

array $options

インストールオプション。オプションを有効にするには オプション名を配列のキーにし、対応する値を TRUE あるいは 1 にします。

  • $options['force'] = 1 - 強制的にインストールします。

  • $options['register-only'] = 1 - レジストリの更新のみ行い、ファイルはインストールしません。

  • $options['upgrade'] = 1 - 既存のインストールを更新します。

  • $options['soft'] = 1 - エラーメッセージを出力しません。

返り値

array 成功した場合にパッケージ情報を返します。

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Installer::PEAR_Installer() | 上に戻る | PEAR

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Installer::PEAR_Installer

PEAR マニュアル
前のページ 次のページ

PEAR_Installer::PEAR_Installer()

PEAR_Installer::PEAR_Installer() -- コンストラクタ

概要

require_once 'PEAR/Installer.php';

void constructor PEAR_Installer::constructor PEAR_Installer (object &$ui)

説明

PEAR_Installer のコンストラクタです。

パラメータ

object &$ui

ユーザインターフェイスオブジェクト (PEAR_Frontend_* のインスタンス)。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Installer | 上に戻る | PEAR_Installer::install()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR

目次
PEAR_PackageFile クラス概要 -- パッケージファイル package.xml の抽象化
constructor PEAR_PackageFile::PEAR_PackageFile() -- PEAR_PackageFile
PEAR_PackageFile::factory() -- factory
PEAR_PackageFile::fromAnyFile() -- さまざまなソースからのパッケージ情報を返す
PEAR_PackageFile::fromArray() -- toArray() メソッドから packagefile オブジェクトを返す
PEAR_PackageFile::fromPackageFile() -- package.xml ファイルの名前を入力として受け取り、 パッケージファイルからの情報を返す
PEAR_PackageFile::fromTgzFile() -- fromTgzFile
PEAR_PackageFile::fromXmlString() -- fromXmlString
PEAR_PackageFile::parserFactory() -- parserFactory
PEAR_PackageFile::rawReturn() -- 検証を行わず、パースした package.xml をエラーチェックなしで返す
PEAR_PackageFile::setLogger() -- setLogger
PEAR パッケージの定数 -- PEAR で定義され、使用されている定数
前のページ | ホーム | 次のページ
PEAR_Installer::install() | 上に戻る | PEAR_PackageFile クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFile クラス概要

PEAR_PackageFile クラス概要 -- パッケージファイル package.xml の抽象化

パッケージファイル package.xml の抽象化

さまざまなソースから、package.xml オブジェクトを取得して解析します。

PEAR_PackageFile クラス階層

  • PEAR_PackageFile

前のページ | ホーム | 次のページ
PEAR | 上に戻る | constructor PEAR_PackageFile::PEAR_PackageFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR パッケージの定数

PEAR パッケージの定数 -- PEAR で定義され、使用されている定数

すべての定数

PackageFile.php で定義されている定数

表 27-1PackageFile.php で定義されている定数

名前 | 値 | 行番号
PEAR_PACKAGEFILE_ERROR_INVALID_PACKAGEVERSION | 2 | 35
PEAR_PACKAGEFILE_ERROR_NO_PACKAGEVERSION | 1 | 30

前のページ | ホーム | 次のページ
PEAR_PackageFile::setLogger() | 上に戻る | PEAR_Packager

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFile::factory

PEAR マニュアル
前のページ 次のページ

PEAR_PackageFile::factory()

PEAR_PackageFile::factory() -- factory

概要

require_once '/PackageFile.php';

PEAR_PackageFile_v1|PEAR_PackageFile_v2& PEAR_PackageFile::factory (string $version)

説明

生の PEAR_PackageFile_vX オブジェクトを取得します。 X には 1 あるいは 2 が入ります。

パラメータ

string $version

package.xml のバージョン (1 あるいは 2)。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor PEAR_PackageFile::PEAR_PackageFile() | 上に戻る | PEAR_PackageFile::fromAnyFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFile::fromAnyFile

PEAR マニュアル
前のページ 次のページ

PEAR_PackageFile::fromAnyFile()

PEAR_PackageFile::fromAnyFile() -- さまざまなソースからのパッケージ情報を返す

概要

require_once '/PackageFile.php';

string& PEAR_PackageFile::fromAnyFile (string $info, int $state)

説明

このパッケージは、.tgz アーカイブあるいは XML パッケージ定義ファイルからパッケージ情報を取り出します。

パラメータ

string $info

package.xml を含むファイル (パッケージのアーカイブあるいは package.xml) へのパス。

integer $state

パッケージの状態 (定数 PEAR_VALIDATE_* のいずれか)。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
PEAR_PackageFile::factory() | 上に戻る | PEAR_PackageFile::fromArray()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFile::fromArray

PEAR マニュアル
前のページ 次のページ

PEAR_PackageFile::fromArray()

PEAR_PackageFile::fromArray() -- toArray() メソッドから packagefile オブジェクトを返す

概要

require_once '/PackageFile.php';

PEAR_PackageFile_v1|PEAR_PackageFile_v2& PEAR_PackageFile::fromArray (array $arr)

説明

警告

警告: 内容のチェックは一切行われず、配列の中身が正常なものとみなします。 内容をチェックしたい場合は、常に xml から読み込むようにしてください。

パラメータ

array $arr

package.xml オブジェクトを事前にパースした内容。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_PackageFile::fromAnyFile() | 上に戻る | PEAR_PackageFile::fromPackageFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFile::fromPackageFile

PEAR マニュアル
前のページ 次のページ

PEAR_PackageFile::fromPackageFile()

PEAR_PackageFile::fromPackageFile() -- package.xml ファイルの名前を入力として受け取り、 パッケージファイルからの情報を返す

概要

require_once '/PackageFile.php';

array& PEAR_PackageFile::fromPackageFile (string $descfile, int $state, string|false [$archive = FALSE])

説明

package.xml ファイルをパースし、package.xml オブジェクト、あるいはエラー時に PEAR_Error オブジェクトを返します。

パラメータ

string $descfile

package.xml ファイルの名前。

integer $state

パッケージの状態 (定数 PEAR_VALIDATE_* のいずれか)。

string|FALSE $archive

package.xml を含む .tgz ファイルへのフルパス、あるいは存在しない場合に false。

返り値

パッケージ情報を配列で返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
PEAR_PackageFile::fromArray() | 上に戻る | PEAR_PackageFile::fromTgzFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFile::fromTgzFile

PEAR マニュアル
前のページ 次のページ

PEAR_PackageFile::fromTgzFile()

PEAR_PackageFile::fromTgzFile() -- fromTgzFile

概要

require_once '/PackageFile.php';

PEAR_PackageFile_v1|PEAR_PackageFile_v2|PEAR_Error& PEAR_PackageFile::fromTgzFile (string $file, int $state)

説明

パッケージアーカイブをパースし、package.xml オブジェクトあるいはエラー時に PEAR_Error オブジェクトを返します。

パラメータ

string $file

パッケージの .tgz ファイルあるいは .tar ファイルの名前。ここから package.xml を取り出し、パースします。

integer $state

パッケージの状態 (定数 PEAR_VALIDATE_* のいずれか)。

返り値

パースに成功したかどうかを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_PackageFile::fromPackageFile() | 上に戻る | PEAR_PackageFile::fromXmlString()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFile::fromXmlString

PEAR マニュアル
前のページ 次のページ

PEAR_PackageFile::fromXmlString()

PEAR_PackageFile::fromXmlString() -- fromXmlString

概要

require_once '/PackageFile.php';

PEAR_PackageFile_v1|PEAR_PackageFile_v2|PEAR_Error& PEAR_PackageFile::fromXmlString (string $data, int $state, string $file, string|false [$archive = FALSE])

説明

package.xml オブジェクトをパースし、package.xml オブジェクトあるいはエラー時に PEAR_Error オブジェクトを返します。

パラメータ

string $data

package.xml ファイルの内容。

integer $state

パッケージの状態 (定数 PEAR_VALIDATE_* のいずれか)。

string $file

package.xml ファイル (およびそれが参照しているファイル) へのフルパス。

string|FALSE $archive

package.xml を含む .tgz ファイルへのフルパス、 あるいは存在しない場合に false。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_PackageFile::fromTgzFile() | 上に戻る | PEAR_PackageFile::parserFactory()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFile::parserFactory

PEAR マニュアル
前のページ 次のページ

PEAR_PackageFile::parserFactory()

PEAR_PackageFile::parserFactory() -- parserFactory

概要

require_once '/PackageFile.php';

PEAR_PackageFile_Parser_v1|PEAR_PackageFile_Parser_v2& PEAR_PackageFile::parserFactory (string $version)

説明

選択した package.xml のバージョンに応じた、 適切な package.xml パースオブジェクトを返します。

パラメータ

string $version

package.xml のバージョン (1 あるいは 2)。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_PackageFile::fromXmlString() | 上に戻る | PEAR_PackageFile::rawReturn()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor PEAR_PackageFile::PEAR_PackageFile

PEAR マニュアル
前のページ 次のページ

constructor PEAR_PackageFile::PEAR_PackageFile()

constructor PEAR_PackageFile::PEAR_PackageFile() -- PEAR_PackageFile

概要

require_once '/PackageFile.php';

void constructor PEAR_PackageFile::PEAR_PackageFile (PEAR_Config &$config, bool [$debug = FALSE], string [$tmpdir = FALSE])

説明

ひとつあるいは複数の package.xml ファイルをパースするための準備をします。

パラメータ

PEAR_Config &$config

パース作業およびチャネルレジストリに使用する設定 (チャネル固有の検証のために必要です)。

boolean $debug

デバッグ用ログ出力レベル (通常は、設定項目 verbose の値となります)。

string $tmpdir

ファイルを展開する一時ディレクトリ。デフォルトでは、 System::mktemp() を使用して新しい一時ディレクトリを作成します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_PackageFile クラス概要 | 上に戻る | PEAR_PackageFile::factory()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFile::rawReturn

PEAR マニュアル
前のページ 次のページ

PEAR_PackageFile::rawReturn()

PEAR_PackageFile::rawReturn() -- 検証を行わず、パースした package.xml をエラーチェックなしで返す

概要

require_once '/PackageFile.php';

void PEAR_PackageFile::rawReturn ()

説明

これは、package-validate コマンドが使用します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_PackageFile::parserFactory() | 上に戻る | PEAR_PackageFile::setLogger()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFile::setLogger

PEAR マニュアル
前のページ 次のページ

PEAR_PackageFile::setLogger()

PEAR_PackageFile::setLogger() -- setLogger

概要

require_once '/PackageFile.php';

void PEAR_PackageFile::setLogger (PEAR_Common &$l)

説明

PEAR_Common の log() メソッドと同じシグネチャを持つログ出力クラスを設定します。

パラメータ

PEAR_Common &$l

PEAR_Common オブジェクト。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_PackageFile::rawReturn() | 上に戻る | PEAR パッケージの定数

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Packager

目次
PEAR_Packager::PEAR_Packager() -- コンストラクタ
PEAR_Packager::package() -- パッケージのアーカイブを作成する

PEAR リリース用 tarball を作成するために使用される管理クラス。

PEAR_Packager のクラスツリー

  • PEAR_Common

    • PEAR_Packager

前のページ | ホーム | 次のページ
PEAR パッケージの定数 | 上に戻る | PEAR_Packager::PEAR_Packager()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Packager::package

PEAR マニュアル
前のページ 次のページ

PEAR_Packager::package()

PEAR_Packager::package() -- パッケージのアーカイブを作成する

概要

require_once 'PEAR/Packager.php';

string PEAR_Packager::package ([string $pkgfile = NULL [, boolean $compress = TRUE]])

説明

パッケージ定義ファイルおよびパッケージのファイルから、 パッケージのアーカイブを作成します。

パラメータ

string $pkgfile

パッケージ定義ファイルへのパス。

boolean $compress

TRUE の場合は、gzip を使用してアーカイブが圧縮されます。

返り値

string - 作成されたパッケージアーカイブの名前を返します。

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Packager::PEAR_Packager() | 上に戻る | PEAR_Registry

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Packager::PEAR_Packager

PEAR マニュアル
前のページ 次のページ

PEAR_Packager::PEAR_Packager()

PEAR_Packager::PEAR_Packager() -- コンストラクタ

概要

require_once 'PEAR/Packager.php';

void PEAR_Packager:: PEAR_Packager (void)

説明

コンストラクタです。

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
PEAR_Packager | 上に戻る | PEAR_Packager::package()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Registry

目次
PEAR_Registry::PEAR_Registry() -- コンストラクタ
PEAR_Registry::addPackage() -- パッケージをレジストリに登録する
PEAR_Registry::checkFileMap() -- ファイルがパッケージに所属しているかどうかを調べる
PEAR_Registry::deletePackage() -- パッケージをレジストリから削除する
PEAR_Registry::listPackages() -- 登録済みのすべてのパッケージの一覧を取得する
PEAR_Registry::packageExists() -- パッケージを調べる
PEAR_Registry::packageInfo() -- パッケージの情報を取得する
PEAR_Registry::rebuildDepsFile() -- 依存性ファイルを再構築する
PEAR_Registry::rebuildFileMap() -- ファイルマップを再構築する
PEAR_Registry::removePackageDep() -- パッケージの依存性情報を削除する
PEAR_Registry::setPackageDep() -- パッケージの依存性を更新あるいは追加する
PEAR_Registry::updatePackage() -- パッケージの情報を更新する

インストールされたパッケージデータベースを管理するために使用される 管理用クラス

PEAR_Registry のクラスツリー

  • PEAR

    • PEAR_Registry

前のページ | ホーム | 次のページ
PEAR_Packager::package() | 上に戻る | PEAR_Registry::PEAR_Registry()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Registry::addPackage

PEAR マニュアル
前のページ 次のページ

PEAR_Registry::addPackage()

PEAR_Registry::addPackage() -- パッケージをレジストリに登録する

概要

require_once 'PEAR/Registry.php';

boolean PEAR_Registry::addPackage (string $package, array $info)

説明

パッケージのエントリを、レジストリに追加します。

パラメータ

string $package

パッケージ名。

array $info

パッケージのエントリに関する追加情報。

返り値

パッケージがすでに登録されている場合は FALSE を返します。

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Registry::PEAR_Registry() | 上に戻る | PEAR_Registry::checkFileMap()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Registry::checkFileMap

PEAR マニュアル
前のページ 次のページ

PEAR_Registry::checkFileMap()

PEAR_Registry::checkFileMap() -- ファイルがパッケージに所属しているかどうかを調べる

概要

require_once 'PEAR/Registry.php';

string PEAR_Registry::checkFileMap (string $path)

説明

ファイルがパッケージに所属しているかどうかを調べます。

パラメータ

string $path

ファイルへのパス。絶対パス、あるいは pear インストールディレクトリからの相対パス。

返り値

そのファイルが所属しているパッケージ名を返します。 ファイルがどのインストール済みパッケージにも所属していない場合は空の文字列を返します。

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Registry::addPackage() | 上に戻る | PEAR_Registry::deletePackage()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Registry::deletePackage

PEAR マニュアル
前のページ 次のページ

PEAR_Registry::deletePackage()

PEAR_Registry::deletePackage() -- パッケージをレジストリから削除する

概要

require_once 'PEAR/Registry.php';

boolean PEAR_Registry::deletePackage (string $package)

説明

パッケージのエントリを、レジストリから削除します。

パラメータ

string $package

パッケージ名。

返り値

成功時には TRUE 、 失敗時には FALSE を返します。

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Registry::checkFileMap() | 上に戻る | PEAR_Registry::listPackages()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Registry::listPackages

PEAR マニュアル
前のページ 次のページ

PEAR_Registry::listPackages()

PEAR_Registry::listPackages() -- 登録済みのすべてのパッケージの一覧を取得する

概要

require_once 'PEAR/Registry.php';

array PEAR_Registry::listPackages (void)

説明

レジストリに登録されているすべてのパッケージの一覧を取得します。

返り値

パッケージ名の一覧を返します。

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Registry::deletePackage() | 上に戻る | PEAR_Registry::packageExists()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Registry::packageExists

PEAR マニュアル
前のページ 次のページ

PEAR_Registry::packageExists()

PEAR_Registry::packageExists() -- パッケージを調べる

概要

require_once 'PEAR/Registry.php';

boolean PEAR_Registry::packageExists (string $package)

説明

パッケージがレジストリに登録されているかどうかを調べます。

パラメータ

string $package

パッケージ名。

返り値

パッケージが登録されている場合に TRUE を返します。

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Registry::listPackages() | 上に戻る | PEAR_Registry::packageInfo()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Registry::packageInfo

PEAR マニュアル
前のページ 次のページ

PEAR_Registry::packageInfo()

PEAR_Registry::packageInfo() -- パッケージの情報を取得する

概要

require_once 'PEAR/Registry.php';

mixed PEAR_Registry::packageInfo ([string $package = NULL [, string $key = NULL]])

説明

レジストリに登録されている、パッケージについての情報を返します。

パラメータ

string $package

パッケージ名。

string $key

取得する情報の項目名。

返り値

mixed - パッケージに関するすべての情報の配列、あるいは $key が使用された場合は そのキーに対応する情報を返します。パッケージ、 あるいは指定した項目に関する情報がない場合は NULL を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Registry::packageExists() | 上に戻る | PEAR_Registry::rebuildDepsFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Registry::PEAR_Registry

PEAR マニュアル
前のページ 次のページ

PEAR_Registry::PEAR_Registry()

PEAR_Registry::PEAR_Registry() -- コンストラクタ

概要

require_once 'PEAR/Registry.php';

void PEAR_Registry::PEAR_Registry ([string $pear_install_dir = PEAR_INSTALL_DIR])

説明

コンストラクタです。

パラメータ

string $pear_install_dir

PEAR (の .php ファイル) のインストールディレクトリ。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Registry | 上に戻る | PEAR_Registry::addPackage()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Registry::rebuildDepsFile

PEAR マニュアル
前のページ 次のページ

PEAR_Registry::rebuildDepsFile()

PEAR_Registry::rebuildDepsFile() -- 依存性ファイルを再構築する

概要

require_once 'PEAR/Registry.php';

void PEAR_Registry::rebuildDepsFile (void)

説明

レジストリの依存性ファイルを再構築します。 パッケージのインストール中にトラブルが発生した場合、 あるいはレジストリが壊れたしまった場合にこの関数を使用します。

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Registry::packageInfo() | 上に戻る | PEAR_Registry::rebuildFileMap()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Registry::rebuildFileMap

PEAR マニュアル
前のページ 次のページ

PEAR_Registry::rebuildFileMap()

PEAR_Registry::rebuildFileMap() -- ファイルマップを再構築する

概要

require_once 'PEAR/Registry.php';

void PEAR_Registry::rebuildFileMap (void)

説明

レジストリのファイルマップを再構築します。 パッケージのインストール中にトラブルが発生した場合、 あるいはレジストリが壊れたしまった場合にこの関数を使用します。

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Registry::rebuildDepsFile() | 上に戻る | PEAR_Registry::removePackageDep()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Registry::removePackageDep

PEAR マニュアル
前のページ 次のページ

PEAR_Registry::removePackageDep()

PEAR_Registry::removePackageDep() -- パッケージの依存性情報を削除する

概要

require_once 'PEAR/Registry.php';

mixed PEAR_Registry::removePackageDep (string $package)

説明

パッケージの依存性情報を、レジストリから削除します。

パラメータ

string $package

パッケージ名。

返り値

成功した場合に TRUE、 あるいはこのパッケージに依存するパッケージの一覧を配列で返します。

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Registry::rebuildFileMap() | 上に戻る | PEAR_Registry::setPackageDep()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Registry::setPackageDep

PEAR マニュアル
前のページ 次のページ

PEAR_Registry::setPackageDep()

PEAR_Registry::setPackageDep() -- パッケージの依存性を更新あるいは追加する

概要

require_once 'PEAR/Registry.php';

mixed PEAR_Registry::setPackageDep (string $package, string $new_version [, array $rel_deps = array()])

説明

パッケージの依存性を更新あるいは追加します。 その処理にいおて、パッケージが依存性を破壊することがないかを ('pkg' 型の依存性についてのみ) 事前に調べます。

パラメータ

string $package

パッケージ名。

string $new_version

パッケージのバージョン。

array $rel_deps

パッケージの依存性。

返り値

mixed - 依存性が見つからなかった場合に TRUE、 あるいは存在しないパッケージ、更新されていないパッケージの名前を配列で返します。

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Registry::removePackageDep() | 上に戻る | PEAR_Registry::updatePackage()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Registry::updatePackage

PEAR マニュアル
前のページ 次のページ

PEAR_Registry::updatePackage()

PEAR_Registry::updatePackage() -- パッケージの情報を更新する

概要

require_once 'PEAR/Registry.php';

boolean PEAR_Registry::updatePackage (string $package, array $info [, bool $merge = TRUE])

説明

レジストリ内の、既存のパッケージについての情報を更新します。

パラメータ

string $package

パッケージ名。

array $info

更新する情報。

mixed $merge

FALSE の場合は、古い情報が完全に削除されて新しいものに置き換えられます。 TRUE の場合は更新のみを行います。変更されなかった値はそのまま残ります。

返り値

成功時には TRUE 、 失敗時には FALSE を返します。

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Registry::setPackageDep() | 上に戻る | PEAR_Remote

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Remote

目次
PEAR_Remote::PEAR_Remote() -- コンストラクタ
PEAR_Remote::call() -- サーバ関数を実行する

PEAR パッケージサーバでリモート処理を行うためのクラス。

PEAR_Remote() のクラスツリー

  • PEAR

    • PEAR_Remote

前のページ | ホーム | 次のページ
PEAR_Registry::updatePackage() | 上に戻る | PEAR_Remote::PEAR_Remote()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Remote::call

PEAR マニュアル
前のページ 次のページ

PEAR_Remote::call()

PEAR_Remote::call() -- サーバ関数を実行する

概要

require_once 'PEAR/Remote.php';

mixed PEAR_Remote::call (string $method [, mixed $args,...])

説明

パッケージサーバにリモートプロシージャコールを送信し、結果を返します。

パラメータ

string $method

サーバのメソッド名。

mixed $args,...

サーバのメソッドへのパラメータ。

返り値

mixed - サーバのメソッドの実行結果を返します。

例外・エラー

表 27-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Remote::PEAR_Remote() | 上に戻る | PEAR_REST

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Remote::PEAR_Remote

PEAR マニュアル
前のページ 次のページ

PEAR_Remote::PEAR_Remote()

PEAR_Remote::PEAR_Remote() -- コンストラクタ

概要

require_once 'PEAR/Remote.php';

void PEAR_Remote::PEAR_Remote (object &$config)

説明

コンストラクタです。

パラメータ

object &$config

PEAR_Config のインスタンス。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Remote | 上に戻る | PEAR_Remote::call()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_REST

目次
PEAR_REST クラス概要 -- データを取得し、必要ならハイパーリンクをたどってリダイレクトする
constructor PEAR_REST::PEAR_REST() -- PEAR_REST
PEAR_REST::downloadHttp() -- HTTP を使用して効率的にファイルをダウンロードする。 ダウンロードされたファイルをメモリ中で文字列として保持するので、 小さなファイルで使用するとよい
PEAR_REST::getCache() -- getCache
PEAR_REST::getCacheId() -- getCacheId
PEAR_REST::retrieveCacheFirst() -- REST データを取得する。ただしローカルにキャッシュがある場合はそれを優先する
PEAR_REST::retrieveData() -- リモートの REST リソースを取得する
PEAR_REST::saveCache() -- リモートの REST リソースから取得したデータをローカルキャッシュに保存する
PEAR_REST::useLocalCache() -- useLocalCache
前のページ | ホーム | 次のページ
PEAR_Remote::call() | 上に戻る | PEAR_REST クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_REST::downloadHttp

PEAR マニュアル
前のページ 次のページ

PEAR_REST::downloadHttp()

PEAR_REST::downloadHttp() -- HTTP を使用して効率的にファイルをダウンロードする。 ダウンロードされたファイルをメモリ中で文字列として保持するので、 小さなファイルで使用するとよい

概要

require_once '/REST.php';

string|array PEAR_REST::downloadHttp (string $url, false|string|array [$lastmodified = null], false|array [$accept = false], string $save_dir)

説明

(PEAR_Config の設定 http_proxy で) HTTP プロキシが設定されている場合は、 そのプロキシを使用します。

パラメータ

string $url

ダウンロードする URL。

FALSE|string|array $lastmodified

キャッシングのためにチェックするヘッダの値。 FALSE を使用すると、今回のダウンロード時のヘッダの値を返します。

FALSE|array $accept

送信を許可するヘッダ。これは text/xml や frog/legs などのような MIME タイプのリストとなります。

string $save_dir

ファイルを保存するディレクトリ。

返り値

ダウンロードされたファイルの中身、あるいは 失敗した場合に PEAR_Error を返します。ソケット関連のエラーの場合は、 エラーオブジェクトの getCode() を使用すると fsockopen のエラーコードが取得できます。 キャッシングが要求された場合は、ヘッダの値を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor PEAR_REST::PEAR_REST() | 上に戻る | PEAR_REST::getCache()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_REST::getCache

PEAR マニュアル
前のページ 次のページ

PEAR_REST::getCache()

PEAR_REST::getCache() -- getCache

概要

require_once '/REST.php';

mixed|false PEAR_REST::getCache (string $url)

説明

リモートリソースのキャッシュの内容を取得します。 リソースがキャッシュされていない場合は PEAR_Error を返します。

パラメータ

string $url

REST リソースの URL。

例外・エラー

エラー時に PEAR_Error オブジェクトを返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_REST::downloadHttp() | 上に戻る | PEAR_REST::getCacheId()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_REST::getCacheId

PEAR マニュアル
前のページ 次のページ

PEAR_REST::getCacheId()

PEAR_REST::getCacheId() -- getCacheId

概要

require_once '/REST.php';

array|false PEAR_REST::getCacheId (string $url)

説明

REST リソースの HTTP キャッシュ情報を取得します。 キャッシュが見つからなかった場合は FALSE を返します。

パラメータ

string $url

REST リソースの URL。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_REST::getCache() | 上に戻る | PEAR_REST::retrieveCacheFirst()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor PEAR_REST::PEAR_REST

PEAR マニュアル
前のページ 次のページ

constructor PEAR_REST::PEAR_REST()

constructor PEAR_REST::PEAR_REST() -- PEAR_REST

概要

require_once '/REST.php';

void constructor PEAR_REST::PEAR_REST (PEAR_Config &$config, array [$options = array()])

説明

このパッケージに関する文書は、未作成です。

パラメータ

PEAR_Config &$config

Configuration オブジェクト。

array $options

install/download といったコマンドに渡すオプション。 PEAR_REST で使用できる唯一のオプションは offline で、これはローカルのキャッシュからのみ取得を試み、 リモートリソースを取得しないようにします。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_REST クラス概要 | 上に戻る | PEAR_REST::downloadHttp()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_REST クラス概要

PEAR_REST クラス概要 -- データを取得し、必要ならハイパーリンクをたどってリダイレクトする

データを取得し、必要ならハイパーリンクをたどってリダイレクトする (PEAR 1.4.0 以降で使用可能)

そのままです。

PEAR_REST クラス階層

  • PEAR_REST

前のページ | ホーム | 次のページ
PEAR_REST | 上に戻る | constructor PEAR_REST::PEAR_REST()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_REST::retrieveCacheFirst

PEAR マニュアル
前のページ 次のページ

PEAR_REST::retrieveCacheFirst()

PEAR_REST::retrieveCacheFirst() -- REST データを取得する。ただしローカルにキャッシュがある場合はそれを優先する

概要

require_once '/REST.php';

string|array PEAR_REST::retrieveCacheFirst (string $url, array|false [$accept = false], boolean [$forcestring = false])

説明

これは、特定のリリースに関する情報など決して変わることのない要素に有用です。

パラメータ

string $url

このリソースへの完全な URL。

array|FALSE $accept

accept-encoding ヘッダの内容。

boolean $forcestring

TRUE の場合は xml が文字列として返されます。 それ以外の場合は xml が PEAR_XMLParser でパースされます。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_REST::getCacheId() | 上に戻る | PEAR_REST::retrieveData()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_REST::retrieveData

PEAR マニュアル
前のページ 次のページ

PEAR_REST::retrieveData()

PEAR_REST::retrieveData() -- リモートの REST リソースを取得する

概要

require_once '/REST.php';

string|array PEAR_REST::retrieveData (string $url, array|false [$accept = false], bool [$forcestring = false])

説明

リモートリソースの内容を取得します。

パラメータ

string $url

このリソースへの完全な URL。

array|false $accept

accept-encoding ヘッダの内容。

boolean $forcestring

TRUE の場合は xml が文字列として返されます。 それ以外の場合は xml が PEAR_XMLParser でパースされます。

例外・エラー

エラー時には PEAR_Error オブジェクトが返されます。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_REST::retrieveCacheFirst() | 上に戻る | PEAR_REST::saveCache()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_REST::saveCache

PEAR マニュアル
前のページ 次のページ

PEAR_REST::saveCache()

PEAR_REST::saveCache() -- リモートの REST リソースから取得したデータをローカルキャッシュに保存する

概要

require_once '/REST.php';

void PEAR_REST::saveCache (string $url, mixed $contents, array $lastmodified, bool [$nochange = false])

説明

取得したリソースを保存するためにこれを使用します。 リモートサーバをチェックする際に設定項目 cache_ttl が使用されること、 そして HTTP キャッシングが使用されることから、次のような状況になる可能性もあります。

  1. REST リソースを取得する

  2. リソースをキャッシュする

  3. 数日後、もう一度 REST リソースを取得する

  4. HTTP キャッシュが「304 not modified」を返す

このような場合、リソースの内容を重複して保存することにはあまり意味がありません。 最後のパラメータに true を指定すると、このような場合には最終更新時刻をキャッシュに保存します。

パラメータ

string $url

REST リソースの URL。

mixed $contents

REST リソースから取得した内容 (最後のパラメータが true の場合は無視されます)。

array $lastmodified

ETag および LastModified ヘッダをリモートサーバから取得し、 HTTP キャッシングに使用します。

mixed $nochange

false の場合、キャッシュは通常通り保存されます。true の場合、 $lastmodified パラメータのみがキャッシュ ID ファイルに保存され、HTTP キャッシュに記録されます。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_REST::retrieveData() | 上に戻る | PEAR_REST::useLocalCache()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_REST::useLocalCache

PEAR マニュアル
前のページ 次のページ

PEAR_REST::useLocalCache()

PEAR_REST::useLocalCache() -- useLocalCache

概要

require_once '/REST.php';

mixed PEAR_REST::useLocalCache (bool $url)

説明

リモート URL からローカルにキャッシュされたコピーの内容を取得します。 何らかの問題が発生した場合は FALSE が返されます。その原因としては、 HTTP のオーバーヘッドによるものが考えられます。というのも、REST コンテンツはたいていの場合 単純な論理値より大きくなるからです。

パラメータ

string $url

データを取得する URL。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_REST::saveCache() | 上に戻る | PEAR

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR

目次
PEAR_RunTest クラス概要 -- PHP のテストスイートを簡略化したもの
constructor PEAR_RunTest::PEAR_RunTest() -- PEAR_RunTest オブジェクトのインスタンスを作成する
PEAR_RunTest::generate_diff() -- generate_diff
PEAR_RunTest::run() -- run
前のページ | ホーム | 次のページ
PEAR_REST::useLocalCache() | 上に戻る | PEAR_RunTest クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_RunTest クラス概要

PEAR_RunTest クラス概要 -- PHP のテストスイートを簡略化したもの

PHP のテストスイートを簡略化したもの

このように使用します。

$ php -r 'include "../PEAR/RunTest.php"; $t=new PEAR_RunTest; \
  $o=$t->run("./pear_system.phpt");print_r($o);'

PEAR_RunTest クラス階層

  • PEAR_RunTest

前のページ | ホーム | 次のページ
PEAR | 上に戻る | constructor PEAR_RunTest::PEAR_RunTest()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_RunTest::generate_diff

PEAR マニュアル
前のページ 次のページ

PEAR_RunTest::generate_diff()

PEAR_RunTest::generate_diff() -- generate_diff

概要

require_once '/RunTest.php';

void PEAR_RunTest::generate_diff (string $wanted, string $output, array|false $return_value)

説明

予期する出力 ($wanted) と実際の出力 ($output) の間の行単位の差分を返します。さらに、スクリプトから返された値を調べることもできます。 テストは generate_diff() の外部で行わなければなりません。 返り値が期待通りなら FALSE が渡され、そうでない場合は配列が渡されます。 配列の最初の要素が予期していた返り値、2 番目の要素が実際の返り値となります。

パラメータ

string $wanted

予期する出力。

string $output

実際の出力。

array|FALSE $return_value

返り値が正しかった場合は False、そうでない場合は以下の書式の配列。

<?php
array(
    1, // 予期していた返り値
    2, // 実際の返り値
);
?>

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor PEAR_RunTest::PEAR_RunTest() | 上に戻る | PEAR_RunTest::run()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor PEAR_RunTest::PEAR_RunTest

PEAR マニュアル
前のページ 次のページ

constructor PEAR_RunTest::PEAR_RunTest()

constructor PEAR_RunTest::PEAR_RunTest() -- PEAR_RunTest オブジェクトのインスタンスを作成する

概要

require_once '/RunTest.php';

void constructor PEAR_RunTest::PEAR_RunTest (PEAR_Common|null [$logger = NULL], array [$options = array()])

説明

ロガーが指定されていない場合は、新しい PEAR_Common オブジェクトのインスタンスを作成して出力を画面に表示するのに使用します。

パラメータ

PEAR_Common|NULL $logger

PEAR_Common での定義と一致する log() メソッドを含むクラス。

array $options

現在は simple および quiet がサポートされています。simple を指定すると、 テストのタイトルのみを表示し、テストファイルのフルパスは表示しません。 quiet を指定すると、失敗したテストのみ表示します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_RunTest クラス概要 | 上に戻る | PEAR_RunTest::generate_diff()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_RunTest::run

PEAR マニュアル
前のページ 次のページ

PEAR_RunTest::run()

PEAR_RunTest::run() -- run

概要

require_once '/RunTest.php';

string|PEAR_Error PEAR_RunTest::run (string $file, string [$ini_settings = ''])

説明

単体テストを実行します。返り値は以下のいずれかです。

  • PASSED

  • SKIPPED

  • WARNED

  • FAILED

パラメータ

string $file

実行するテストファイルへのフルパス。

string $ini_settings

テスト用の PHP インスタンスにコマンドラインで渡す、 追加の独自設定。例えば、php.ini を使用しないようにしたり、 テスト用の php.ini を指定することができます。 設定可能な項目は、以下をタイプして確認してください。

$ php -h

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_RunTest::generate_diff() | 上に戻る | PEAR_Validate

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate

目次
PEAR_Validate クラス階層 -- package.xml の検証用クラス - チャネルレベルでの高度な検証
PEAR_Validate::_addFailure() -- _addFailure
PEAR_Validate::_addWarning() -- _addWarning
PEAR_Validate::getFailures() -- getFailures
PEAR_Validate::getValidStates() -- 有効な安定性レベルの一覧を取得する
PEAR_Validate::setPackageFile() -- setPackageFile
PEAR_Validate::validate() -- validate
PEAR_Validate::validateChangelog() -- validateChangelog
PEAR_Validate::validateDate() -- validateDate
PEAR_Validate::validateDependencies() -- package.xml 2.0 専用 - チャネルは package.xml 1.0 では使用できない
PEAR_Validate::validateDeps() -- validateDeps
PEAR_Validate::validateDescription() -- validateDescription
PEAR_Validate::validateFilelist() -- validateFilelist
PEAR_Validate::validateLicense() -- validateLicense
PEAR_Validate::validateMainFilelist() -- package.xml 2.0 専用
PEAR_Validate::validateMaintainers() -- validateMaintainers
PEAR_Validate::validateNotes() -- validateNotes
PEAR_Validate::validatePackageName() -- validatePackageName
PEAR_Validate::validateReleaseFilelist() -- package.xml 2.0 専用
PEAR_Validate::validateStability() -- validateStability
PEAR_Validate::validateState() -- validateState
PEAR_Validate::validateSummary() -- validateSummary
PEAR_Validate::validateTime() -- validateTime
PEAR_Validate::validateVersion() -- バージョンを検証する protected 関数
PEAR_Validate::validGroupName() -- 依存性グループの名前を検証する。この名前は PEAR の命名規約に従う必要があるため、 このメソッドは final かつ static となる
PEAR_Validate::validPackageName() -- パッケージ名を検証するためのユーティリティメソッド
PEAR_Validate::validState() -- $state が有効な安定性レベルを表しているかどうかを調べる
PEAR_Validate::validVersion() -- バージョンが、version_compare() で使用できる適切な書式かどうかを調べる
PEAR_Validate::_validPackageName() -- このメソッドをオーバーライドし、通常のパッケージ名の検証を操作する
PEAR パッケージの定数 -- PEAR で定義され、使用されている定数
前のページ | ホーム | 次のページ
PEAR_RunTest::run() | 上に戻る | PEAR_Validate クラス階層

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate クラス階層

PEAR_Validate クラス階層 -- package.xml の検証用クラス - チャネルレベルでの高度な検証

package.xml の検証用クラス - チャネルレベルでの高度な検証

このパッケージに関する文書は、未作成です。

PEAR_Validate クラス階層

  • PEAR_Validate

前のページ | ホーム | 次のページ
PEAR_Validate | 上に戻る | PEAR_Validate::_addFailure()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate::_addFailure

PEAR マニュアル
前のページ 次のページ

PEAR_Validate::_addFailure()

PEAR_Validate::_addFailure() -- _addFailure

概要

require_once '/Validate.php';

void PEAR_Validate::_addFailure (string $field, string $reason)

説明

チャネル検証関数から警告を追加します。これは、 問題を起こす可能性のある、致命的ではない警告に対して使用します。

パラメータ

string $field

検証する package.xml のセクション (version あるいは dependencies など)。

string $reason

人間が読める形式の、検証に失敗した理由。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Validate クラス階層 | 上に戻る | PEAR_Validate::_addWarning()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate::_addWarning

PEAR マニュアル
前のページ 次のページ

PEAR_Validate::_addWarning()

PEAR_Validate::_addWarning() -- _addWarning

概要

require_once '/Validate.php';

void PEAR_Validate::_addWarning (string $field, string $reason)

説明

チャネル検証関数から警告を追加します。これは、 問題を起こす可能性のある、致命的ではない警告に対して使用します。

パラメータ

string $field

検証する package.xml のセクション (version あるいは dependencies など)。

string $reason

人間が読める形式の、検証に失敗した理由。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Validate::_addFailure() | 上に戻る | PEAR_Validate::getFailures()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate::_validPackageName

PEAR マニュアル
前のページ 次のページ

PEAR_Validate::_validPackageName()

PEAR_Validate::_validPackageName() -- このメソッドをオーバーライドし、通常のパッケージ名の検証を操作する

概要

require_once '/Validate.php';

bool PEAR_Validate::_validPackageName (string $name)

説明

この protected メソッドは、通常のパッケージ検証の仕組みを変更する際に使用します。 デフォルトでは、すべてのパッケージ名は文字で始まる必要があり、 パッケージ名に文字、数字およびアンダースコア以外は使用できません。 このメソッドを使用すると、この規則を別のものに変更することができます。

例えば、Java のような com.blah.package 形式のパッケージ名を使用するには、 このようにします。

<?php
require_once 'PEAR/Validate.php';
class MyChannel_Validate extends PEAR_Validate
{
    function _validPackageName($name)
    {
        return preg_match('/[a-zA-Z][a-zA-Z0-9_]*(\.[a-zA-Z0-9_]+)*/', $name);
    }
}
?>

その後、 独自のチャネル検証パッケージ を使用することで、あなたのチャネル内でインストーラに Java 形式のパッケージ名を強制させることができます。

パラメータ

string $name

検証するパッケージ名。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Validate::validVersion() | 上に戻る | PEAR パッケージの定数

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR パッケージの定数

PEAR パッケージの定数 -- PEAR で定義され、使用されている定数

All Constants

Validate.php で定義されている定数

表 27-1Validate.php で定義されている定数

名前 | 値 | 行番号
PEAR_VALIDATE_DOWNLOADING | 4 | 28
PEAR_VALIDATE_INSTALLING | 1 | 25
PEAR_VALIDATE_NORMAL | 3 | 27
PEAR_VALIDATE_PACKAGING | 7 | 29
PEAR_VALIDATE_UNINSTALLING | 2 | 26

前のページ | ホーム | 次のページ
PEAR_Validate::_validPackageName() | 上に戻る | PEAR

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate::getFailures

PEAR マニュアル
前のページ 次のページ

PEAR_Validate::getFailures()

PEAR_Validate::getFailures() -- getFailures

概要

require_once '/Validate.php';

void PEAR_Validate::getFailures ()

説明

直近の検証で記録された失敗の一覧を返します。結果は次のような形式になります。

<?php
array(
    'error' =>
        array(
            array('field' => 'name', 'name must contain only letters, numbers or underscore'),
        ),
    'warning' =>
        array(
            array('field' => 'version', 'version should be less than 2.0'),
        )
);
?>

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Validate::_addWarning() | 上に戻る | PEAR_Validate::getValidStates()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate::getValidStates

PEAR マニュアル
前のページ 次のページ

PEAR_Validate::getValidStates()

PEAR_Validate::getValidStates() -- 有効な安定性レベルの一覧を取得する

概要

require_once '/Validate.php';

array PEAR_Validate::getValidStates ()

説明

将来の拡張に備えたユーティリティ関数で、有効な安定性レベルの一覧を返します。

例外・エラー

例外はスローされません。

Final

final - このメソッドは、決してオーバーライドしてはいけません。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
PEAR_Validate::getFailures() | 上に戻る | PEAR_Validate::setPackageFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate::setPackageFile

PEAR マニュアル
前のページ 次のページ

PEAR_Validate::setPackageFile()

PEAR_Validate::setPackageFile() -- setPackageFile

概要

require_once '/Validate.php';

void PEAR_Validate::setPackageFile (PEAR_PackageFile_v1|PEAR_PackageFile_v2 &$pf)

説明

検証用のデータを取得するための packagefile オブジェクトを設定します。

パラメータ

PEAR_PackageFile_v1|PEAR_PackageFile_v2 &$pf

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Validate::getValidStates() | 上に戻る | PEAR_Validate::validate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate::validate

PEAR マニュアル
前のページ 次のページ

PEAR_Validate::validate()

PEAR_Validate::validate() -- validate

概要

require_once '/Validate.php';

void PEAR_Validate::validate (int [$state = NULL])

説明

setPackageFile() で渡された package.xml を検証します。パラメータとして、インストーラの状態を渡します。これは PEAR_VALIDATE_INSTALLING、PEAR_VALIDATE_DOWNLOADING、 PEAR_VALIDATE_NORMAL、PEAR_VALIDATE_UNINSTALLING あるいは PEAR_VALIDATE_PACKAGING のいずれかです。

パラメータ

integer $state

定数 PEAR_VALIDATE_* のいずれか。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Validate::setPackageFile() | 上に戻る | PEAR_Validate::validateChangelog()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate::validateChangelog

PEAR マニュアル
前のページ 次のページ

PEAR_Validate::validateChangelog()

PEAR_Validate::validateChangelog() -- validateChangelog

概要

require_once '/Validate.php';

void PEAR_Validate::validateChangelog ()

説明

チャネル固有のバリデータでこれをオーバーライドし、 <changelog> タグの内容を検証します。

エラーは _addFailure() メソッドで報告され、致命的でないエラー (警告) は _addWarning() メソッドで報告されます。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Validate::validate() | 上に戻る | PEAR_Validate::validateDate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate::validateDate

PEAR マニュアル
前のページ 次のページ

PEAR_Validate::validateDate()

PEAR_Validate::validateDate() -- validateDate

概要

require_once '/Validate.php';

void PEAR_Validate::validateDate ()

説明

チャネル固有のバリデータでこれをオーバーライドし、 <date> タグの内容を検証します。

エラーは _addFailure() メソッドで報告され、致命的でないエラー (警告) は _addWarning() メソッドで報告されます。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Validate::validateChangelog() | 上に戻る | PEAR_Validate::validateDependencies()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate::validateDependencies

PEAR マニュアル
前のページ 次のページ

PEAR_Validate::validateDependencies()

PEAR_Validate::validateDependencies() -- package.xml 2.0 専用 - チャネルは package.xml 1.0 では使用できない

概要

require_once '/Validate.php';

void PEAR_Validate::validateDependencies ()

説明

チャネル固有のバリデータでこれをオーバーライドし、 package.xml 2.0 ベースのリリースの <dependencies> タグの内容を検証します。

エラーは _addFailure() メソッドで報告され、致命的でないエラー (警告) は _addWarning() メソッドで報告されます。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Validate::validateDate() | 上に戻る | PEAR_Validate::validateDeps()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate::validateDeps

PEAR マニュアル
前のページ 次のページ

PEAR_Validate::validateDeps()

PEAR_Validate::validateDeps() -- validateDeps

概要

require_once '/Validate.php';

void PEAR_Validate::validateDeps ()

説明

チャネル固有のバリデータでこれをオーバーライドし、 package.xml 1.0 ベースのリリースの <deps> タグの内容を検証します。

エラーは _addFailure() メソッドで報告され、致命的でないエラー (警告) は _addWarning() メソッドで報告されます。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Validate::validateDependencies() | 上に戻る | PEAR_Validate::validateDescription()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate::validateDescription

PEAR マニュアル
前のページ 次のページ

PEAR_Validate::validateDescription()

PEAR_Validate::validateDescription() -- validateDescription

概要

require_once '/Validate.php';

void PEAR_Validate::validateDescription ()

説明

チャネル固有のバリデータでこれをオーバーライドし、 <description> タグの内容を検証します。

エラーは _addFailure() メソッドで報告され、致命的でないエラー (警告) は _addWarning() メソッドで報告されます。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Validate::validateDeps() | 上に戻る | PEAR_Validate::validateFilelist()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate::validateFilelist

PEAR マニュアル
前のページ 次のページ

PEAR_Validate::validateFilelist()

PEAR_Validate::validateFilelist() -- validateFilelist

概要

require_once '/Validate.php';

void PEAR_Validate::validateFilelist ()

説明

チャネル固有のバリデータでこれをオーバーライドし、 package.xml 1.0 ベースのリリースの <filelist> タグの内容を検証します。

エラーは _addFailure() メソッドで報告され、致命的でないエラー (警告) は _addWarning() メソッドで報告されます。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Validate::validateDescription() | 上に戻る | PEAR_Validate::validateLicense()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate::validateLicense

PEAR マニュアル
前のページ 次のページ

PEAR_Validate::validateLicense()

PEAR_Validate::validateLicense() -- validateLicense

概要

require_once '/Validate.php';

void PEAR_Validate::validateLicense ()

説明

チャネル固有のバリデータでこれをオーバーライドし、 <license> タグの内容を検証します。

エラーは _addFailure() メソッドで報告され、致命的でないエラー (警告) は _addWarning() メソッドで報告されます。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Validate::validateFilelist() | 上に戻る | PEAR_Validate::validateMainFilelist()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate::validateMainFilelist

PEAR マニュアル
前のページ 次のページ

PEAR_Validate::validateMainFilelist()

PEAR_Validate::validateMainFilelist() -- package.xml 2.0 専用

概要

require_once '/Validate.php';

void PEAR_Validate::validateMainFilelist ()

説明

チャネル固有のバリデータでこれをオーバーライドし、 package.xml 2.0 ベースのリリースの <contents> タグの内容を検証します。

エラーは _addFailure() メソッドで報告され、致命的でないエラー (警告) は _addWarning() メソッドで報告されます。

例外・エラー

例外はすろーされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Validate::validateLicense() | 上に戻る | PEAR_Validate::validateMaintainers()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate::validateMaintainers

PEAR マニュアル
前のページ 次のページ

PEAR_Validate::validateMaintainers()

PEAR_Validate::validateMaintainers() -- validateMaintainers

概要

require_once '/Validate.php';

void PEAR_Validate::validateMaintainers ()

説明

チャネル固有のバリデータでこれをオーバーライドし、 package.xml 1.0 ベースのリリースの <maintainers> タグの内容を検証します。

エラーは _addFailure() メソッドで報告され、致命的でないエラー (警告) は _addWarning() メソッドで報告されます。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Validate::validateMainFilelist() | 上に戻る | PEAR_Validate::validateNotes()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate::validateNotes

PEAR マニュアル
前のページ 次のページ

PEAR_Validate::validateNotes()

PEAR_Validate::validateNotes() -- validateNotes

概要

require_once '/Validate.php';

void PEAR_Validate::validateNotes ()

説明

チャネル固有のバリデータでこれをオーバーライドし、 <notes> タグのリリースノートの内容を検証します。

エラーは _addFailure() メソッドで報告され、致命的でないエラー (警告) は _addWarning() メソッドで報告されます。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Validate::validateMaintainers() | 上に戻る | PEAR_Validate::validatePackageName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate::validatePackageName

PEAR マニュアル
前のページ 次のページ

PEAR_Validate::validatePackageName()

PEAR_Validate::validatePackageName() -- validatePackageName

概要

require_once '/Validate.php';

void PEAR_Validate::validatePackageName ()

説明

チャネル固有のバリデータでこれをオーバーライドし、 パッケージ名を検証します。

エラーは _addFailure() メソッドで報告され、致命的でないエラー (警告) は _addWarning() メソッドで報告されます。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Validate::validateNotes() | 上に戻る | PEAR_Validate::validateReleaseFilelist()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate::validateReleaseFilelist

PEAR マニュアル
前のページ 次のページ

PEAR_Validate::validateReleaseFilelist()

PEAR_Validate::validateReleaseFilelist() -- package.xml 2.0 専用

概要

require_once '/Validate.php';

void PEAR_Validate::validateReleaseFilelist ()

説明

チャネル固有のバリデータでこれをオーバーライドし、 package.xml 2.0 ベースのリリースの <filelist> タグの内容を検証します。

エラーは _addFailure() メソッドで報告され、致命的でないエラー (警告) は _addWarning() メソッドで報告されます。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Validate::validatePackageName() | 上に戻る | PEAR_Validate::validateStability()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate::validateStability

PEAR マニュアル
前のページ 次のページ

PEAR_Validate::validateStability()

PEAR_Validate::validateStability() -- validateStability

概要

require_once '/Validate.php';

void PEAR_Validate::validateStability ()

説明

チャネル固有のバリデータでこれをオーバーライドし、 package.xml 2.0 ベースのリリースの <stability> タグの内容を検証します。

エラーは _addFailure() メソッドで報告され、致命的でないエラー (警告) は _addWarning() メソッドで報告されます。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Validate::validateReleaseFilelist() | 上に戻る | PEAR_Validate::validateState()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate::validateState

PEAR マニュアル
前のページ 次のページ

PEAR_Validate::validateState()

PEAR_Validate::validateState() -- validateState

概要

require_once '/Validate.php';

void PEAR_Validate::validateState ()

説明

チャネル固有のバリデータでこれをオーバーライドし、 package.xml 1.0 ベースのリリースの <state> タグの内容を検証します。

エラーは _addFailure() メソッドで報告され、致命的でないエラー (警告) は _addWarning() メソッドで報告されます。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Validate::validateStability() | 上に戻る | PEAR_Validate::validateSummary()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate::validateSummary

PEAR マニュアル
前のページ 次のページ

PEAR_Validate::validateSummary()

PEAR_Validate::validateSummary() -- validateSummary

概要

require_once '/Validate.php';

void PEAR_Validate::validateSummary ()

説明

チャネル固有のバリデータでこれをオーバーライドし、 <summary> タグを検証します。

エラーは _addFailure() メソッドで報告され、致命的でないエラー (警告) は _addWarning() メソッドで報告されます。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Validate::validateState() | 上に戻る | PEAR_Validate::validateTime()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate::validateTime

PEAR マニュアル
前のページ 次のページ

PEAR_Validate::validateTime()

PEAR_Validate::validateTime() -- validateTime

概要

require_once '/Validate.php';

void PEAR_Validate::validateTime ()

説明

チャネル固有のバリデータでこれをオーバーライドし、 <time> タグを検証します。

エラーは _addFailure() メソッドで報告され、致命的でないエラー (警告) は _addWarning() メソッドで報告されます。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Validate::validateSummary() | 上に戻る | PEAR_Validate::validateVersion()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate::validateVersion

PEAR マニュアル
前のページ 次のページ

PEAR_Validate::validateVersion()

PEAR_Validate::validateVersion() -- バージョンを検証する protected 関数

概要

require_once '/Validate.php';

void PEAR_Validate::validateVersion ()

説明

チャネル固有のバリデータでこれをオーバーライドし、 バージョンの検証方法を指定します。これを実際に使用した例が PEAR_Validate_PECL クラスで、ここでは validateVersion() をオーバーライドしてデフォルトの PEAR_Validate::validateVersion() より制限を緩めにしています。

エラーは _addFailure() メソッドで報告され、致命的でないエラー (警告) は _addWarning() メソッドで報告されます。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Validate::validateTime() | 上に戻る | PEAR_Validate::validGroupName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate::validGroupName

PEAR マニュアル
前のページ 次のページ

PEAR_Validate::validGroupName()

PEAR_Validate::validGroupName() -- 依存性グループの名前を検証する。この名前は PEAR の命名規約に従う必要があるため、 このメソッドは final かつ static となる

概要

require_once '/Validate.php';

void PEAR_Validate::validGroupName (string $name)

説明

依存性グループについては ここ で説明されています。

パラメータ

string $name

検証する依存性グループ名。

例外・エラー

例外はスローされません。

Final

final - このメソッドは、決してオーバーライドしてはいけません。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
PEAR_Validate::validateVersion() | 上に戻る | PEAR_Validate::validPackageName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate::validPackageName

PEAR マニュアル
前のページ 次のページ

PEAR_Validate::validPackageName()

PEAR_Validate::validPackageName() -- パッケージ名を検証するためのユーティリティメソッド

概要

require_once '/Validate.php';

void PEAR_Validate::validPackageName (string $name, string [$validatepackagename = FALSE])

説明

パッケージ名を検証します。2 番目のパラメータにはチャネル検証パッケージの名前を指定します。 これは、現在のチャネルについては channel.xml で定義されています。 検証しようとしているパッケージ名が検証パッケージと同じ場合 (大文字小文字を区別しない) は、 PEAR パッケージのデフォルトの規則を使用して検証されます。

パラメータ

string $name

検証するパッケージ名。

string $validatepackagename

チャネル固有の検証パッケージの名前。

例外・エラー

例外はスローされません。

Final

final - このメソッドは、決してオーバーライドしてはいけません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Validate::validGroupName() | 上に戻る | PEAR_Validate::validState()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate::validState

PEAR マニュアル
前のページ 次のページ

PEAR_Validate::validState()

PEAR_Validate::validState() -- $state が有効な安定性レベルを表しているかどうかを調べる

概要

require_once '/Validate.php';

bool PEAR_Validate::validState (string $state)

説明

このユーティリティメソッドを使用すると、文字列が有効な状態を表しているかどうかを調べられます。 現在は、状態は snapshot、devel、 alpha、beta および stable のいずれかでなければなりません。

パラメータ

string $state

検証する状態文字列。

例外・エラー

例外はスローされません。

Final

final - このメソッドは、決してオーバーライドしてはいけません。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
PEAR_Validate::validPackageName() | 上に戻る | PEAR_Validate::validVersion()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Validate::validVersion

PEAR マニュアル
前のページ 次のページ

PEAR_Validate::validVersion()

PEAR_Validate::validVersion() -- バージョンが、version_compare() で使用できる適切な書式かどうかを調べる

概要

require_once '/Validate.php';

bool PEAR_Validate::validVersion (string $ver)

説明

このメソッドを使用して、バージョン番号を表す文字列の妥当性を検証します。 バージョン文字列は、PHP の version_compare() で使用できる形式でなければなりません。

パラメータ

string $ver

バージョン文字列

例外・エラー

例外はスローされません。

Final

final - このメソッドは、決してオーバーライドしてはいけません。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
PEAR_Validate::validState() | 上に戻る | PEAR_Validate::_validPackageName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR

目次
PEAR_XMLParser クラス階層 -- 任意の xml ファイルのパーサ
PEAR_XMLParser::getData() -- getData
PEAR_XMLParser::parse() -- parse
PEAR_XMLParser::preProcessStupidSaxon() -- XML を処理する前に、パースできない文字やエンティティを取り除く
前のページ | ホーム | 次のページ
PEAR パッケージの定数 | 上に戻る | PEAR_XMLParser クラス階層

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_XMLParser クラス階層

PEAR_XMLParser クラス階層 -- 任意の xml ファイルのパーサ

任意の xml ファイルのパーサ

このパッケージに関する文書は、未作成です。

PEAR_XMLParser クラス階層

  • PEAR_XMLParser

前のページ | ホーム | 次のページ
PEAR | 上に戻る | PEAR_XMLParser::getData()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_XMLParser::getData

PEAR マニュアル
前のページ 次のページ

PEAR_XMLParser::getData()

PEAR_XMLParser::getData() -- getData

概要

require_once '/XMLParser.php';

array PEAR_XMLParser::getData ()

説明

parse() がパースした XML を配列で返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_XMLParser クラス階層 | 上に戻る | PEAR_XMLParser::parse()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_XMLParser::parse

PEAR マニュアル
前のページ 次のページ

PEAR_XMLParser::parse()

PEAR_XMLParser::parse() -- parse

概要

require_once '/XMLParser.php';

true|PEAR_Error PEAR_XMLParser::parse (string $data)

説明

パースした XML にマッチする配列を返します。このコードは、 Stephan Schmidt が書いた、XML_Serializer パッケージの XML_Unserializer クラスを利用しています。そのため、タグは連想配列で表されます。 複数のタグは、0 から始まる数値添字の配列として表されます。また、 属性は attribs という名前のインデックスで表されます。 属性が存在する場合、xml タグの内容を保持するためのインデックスとしては _contents が使用されます。

パラメータ

string $data

xml の内容。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_XMLParser::getData() | 上に戻る | PEAR_XMLParser::preProcessStupidSaxon()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_XMLParser::preProcessStupidSaxon

PEAR マニュアル
前のページ 次のページ

PEAR_XMLParser::preProcessStupidSaxon()

PEAR_XMLParser::preProcessStupidSaxon() -- XML を処理する前に、パースできない文字やエンティティを取り除く

概要

require_once '/XMLParser.php';

string PEAR_XMLParser::preProcessStupidSaxon (string $data)

説明

このメソッドは、パース前に XML データを調べ、 &agrave; のようなエンティティをすべて等価なもの (この場合は &#224;) に置き換えます。またファイル中に ? のような非 ascii 文字が含まれている場合は、 等価なエンティティ (&#224) に置き換えます。

これにより、非 ISO-8859-1 文字が含まれていた場合に PHP 4 および PHP 5 で saxon が停止する問題を防ぎます。

パラメータ

string $data

xml データ。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_XMLParser::parse() | 上に戻る | PEAR パッケージ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


ドキュメントの書き方の実際

ドキュメントの書き方については、こちらを 参照してください。

前のページ | ホーム | 次のページ
コードの提供方法の実際 | 上に戻る | パッケージ定義ファイル package.xml

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コードの提供方法の実際

  1. 適切なパッケージ名称の命名

    新規パッケージを PEAR に提供するにあたっての最重要な務めとして、 パッケージに適切な名称をつけることがあります。

    パッケージ名の全体の構文は、 <カテゴリ>_<名前> となります。 <カテゴリ>は、 PEAR における既定義のカテゴリのリストから選ぶべきです （例、"HTTP", "Net", "HTML"）。 2番目の部分は、パッケージの名前です （例、"Upload", "Portscan", "Table"）。

    PEAR で現在利用可能なカテゴリは、 パッケージブラウザ で太字で表示されています。 もし、パッケージが既存のカテゴリに当てはまらない場合は、 メーリングリストで新カテゴリの作成を依頼することも可能です。 （PEAR としては、 新カテゴリの作成は、あまり行いたくはありませんが。）

    上記の構文とは異なりますが、パッケージ名に 複数のカテゴリ名を含むこともできます。 例えば、HTML_Template_PHPLIB を挙げると、 その複数のカテゴリは、パッケージ PHPLIB が、 Template カテゴリに含まれ、 さらにHTML カテゴリにも含まれることを示します。 この命名の仕組みは、 HTML で動作しないが他の技術では動作するテンプレートシステムが PEAR に存在しえるようにするために必要となっています。 （複数の"category"が使われる場合はたいへん稀です。）

    パッケージ名をつけるにあたって、さらに助言や助けが必要な場合は、 開発者メーリングリスト で質問してください。

  2. PEAR 開発者へのアナウンス

    提供に当たっての第 2 のステップは、 開発者メーリングリスト でパッケージを発表することです。 通常、発表に続いて幾許かの論議が行われます （もちろん、あなたもその来るべき論議に加わることが求められます）。 一週間後、あなたは投票を要求し、開発者による投票が開始されます。 もちろんですが、パッケージの発表はその許諾を意味してはいません。 許諾までには、幾分かの時間と労力が必要となるかも知れません。

    注意 続く推移は、行政文書 「 パッケージ投稿の扱い」（英語） に従います。 この文書に、新規パッケージの投稿について詳しく述べられています。 PEAR 初心者の方は、必ずこの文書に目を通してください。

    投票は誰でも出来ますが、 PEAR コミュニティーの（パッケージ投稿者以外の PEAR の WEB アカウントを持つ） アクティブメンバーの投票だけがカウントされます。 投票に際しては、パッケージ名が決定し明示されていることが必要です。

    投票は合計されます。 合計とはつまり、-1 の票が、+1 の票を相殺してしまうことを意味します。 しかし、-1 の票は重大なものとみなされ、 拒否権を保持する PEAR グループが ケースバイケースの決定をすることになるかもしれません （将来的には、そのような状況では PEAR QA チームが PEAR グループを 補助するようになると思われます）。 ですから、-1 の票には、必ずその理由についてのコメントを 付加しなければなりません。 好意的な票（+1) については、 適切だと思った場合には説明を加えることが望ましいとされています。

    票の合計が +5 を超えれば、投票が受諾されます。

    投稿が受諾されない場合には、 そのパッケージについてさらにメーリングリストで議論することも可能です。 投稿者は （道理にかなう理由がある場合のみに期待されることですが、） 「投票要求」を再び行うことができるかもしれません。

  3. 必要なアカウントの取得

    現在、PEAR に関連するアカウントは 2 種類あります。

    1. pear.php.net アカウント

      このアカウントは、 PEAR からパッケージをリリースしたい場合、常に必要となるものです。 このアカウントを使って、 アップロードしたり新リリースを出したりするために必要な pear.php.net のインフラにアクセスします。

    2. PHP CVS アカウント

      CVS でコードを管理したければ、 cvs.php.net 上の PEAR CVS モジュールにアクセスする CVS アカウントを申請できます。これにより、 他のユーザがあなたのコードに対し何らかの協力を行うことが容易になります。 PEAR のパッケージを管理している PHP CVS サーバは、PHP グループ (group@php.net) が管理しています。PHP CVS アカウントすでに保持している場合でも、 対象のパッケージを扱うカルマを PEAR Group に連絡し取得してください。 メールを pear-group@php.net へ送って、コミットが必要なパッケージを 指定してください。その際、何らかの信任（パッケージのリードメンテナによる あなたを認めるメールや、 あなたにアクセス権が与えられたことを示す QA メンバーからのメールなど）を添えるようにしてください。

      もし CVS リポジトリをすでにどこか別のところ （例えば、SourceForge） に持っているか、 CVS でコードを管理したくなければ、 PHP CVS アカウントは必要ありません。 しかし、新リリースを出す前に、 コードに適用したバグ修正をユーザが試してみることができるように、 何らかの公開リポジトリを使うことが強く求められます。

    pear.php.net アカウントにサインアップするには、 PEAR アカウント申請ページ に行き、 書式を埋めてください。 PEAR グループ が申請を受け取り、 申請が適切であれば、アカウントが開かれ、電子メールで通知されます。 単にパッケージをダウンロードするのには pear.php.net アカウントは必要ないことに注意してください。

    PHP CVS アカウントは、「こちら」でサインアップしてください。 PHP CVS アカウントは、PHP グループで承認が行われます。

  4. パッケージの登録

    提供の手続きがうまく進み、 pear.php.net アカウントを取得したら、最後は、パッケージの登録です。 パッケージの登録は、 パッケージの最初のバージョンのリリースを意味するのではなく、 PEAR パッケージのデータベースに基本的な情報を いくらか登録することを意味します。

    登録プロセスは、大変簡単です。 このサイト にある書式を埋め、 その情報を送信します。 その後、PEAR グループ が 送信された内容の承認を行います。 通常、数時間で行われ、電子メールで結果が通知されます。

    パッケージを登録したら、最初のリリースを作成できます。 それについては「こちら」を参照してください。

前のページ | ホーム | 次のページ
コードの提供 | 上に戻る | ドキュメントの書き方の実際

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


良いドキュメントを書くコツ

このセクションでは、 ドキュメントを論理的に記述する方法ついて述べます。 peardoc の標準に従った ドキュメント構成の仕様を扱うものではありません。

  1. パッケージは、ある問題を解決します。 その問題とは、いったい何でしょうか?。 そして、その問題について、 エンドユーザが想定していないかもしれない前提事項は何かを考えてください （エンドユーザは、その問題が解決すべき事だとすら考えていないかもしれません）。 例えば、テンプレートのパッケージは、コードからのデザインの分離、 ビジネスロジックからのディスプレイロジックの分離という問題を解決するものです。 このとき可能ならば、初心のプログラマが理解できるような用語で説明してください。

  2. パッケージは、どのような方法で問題を解決していますか。 多くのドキュメントが記述していないのが、問題解決の方法についてです。 たとえば、数多くのテンプレートエンジンが存在し、 それぞれが同じ問題を解決しようとしていますが、同じ方法では行っていません。 ブロックベースのテンプレートエンジンはロジックをまったく持っていませんが、 Smarty のようなテンプレートはまったく新しいテンプレート言語を定義しています。 テンプレートをコンパイルするものもありますし、しないものもあります。 パッケージの特徴は何でしょうか? コードを読んでいないユーザも、問題解決の方法について良く理解できるでしょうか?

  3. サンプルをいくつか示してください。 基本的な機能を示すシンプルな例から始めてください。 パッケージをユーザがてっとりばやく使ってみる方法を示します。 さらに、より複雑な例を示すことによって、 より高度な使用方法を理解させるようにします。

  4. もし、（よくあることですが） パッケージのインターフェイスが複雑だったり、 多くの定数があったりして、少数のサンプルでは説明が完全にできない場合、 それらインターフェイスや定数を、ドキュメント中ですべて説明してください。 ユーザが必ず使うことになるインターフェイス、例えば、 データベース DSN やアプリケーションのコマンドライン引数、 設定ファイルの定数、その他すべての非コード的な要素について ドキュメントを作成してください。

  5. 最後に、ドキュメントを校正してください。 できるなら、あなたのプロジェクトを良く知らない誰かに ドキュメントを読んでもらってください。 あなたが見落としていた前提事項を捕らえてくれるかもしれません。

前のページ | ホーム | 次のページ
ドキュメントの作成 | 上に戻る | PEAR 1.4 の新機能

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR パッケージ内での色表現

パッケージが色を扱う場合、 開発者は、それら PEAR パッケージ内では、配列による色値の表現を 用いることが推奨されます。 すべての色値は、0 から 255 までの範囲となります。

RGB 表現

以下の短いコードは、公式 PEAR ロゴで使用されている緑色の RGB 定義の 配列を示しています。
$color = array(0x33, 0x99, 0x00);
もしくは、
$color = array(51, 153, 0);
上記例の数値的表現は、双方とも同じものを表しています。 配列に、"r", "g" や "b" という添字は使用しません。 添字無しの配列の方が記述しやすく、すでに広く使われています。

アルファ値によるRGB表現

上記 RGB 表現の拡張として、第4の値にアルファチャンネル表現を 使用することができます。約 80% の不透明度の "PEAR-green" は、以下になります。
$color = array(0x33, 0x99, 0x00, 0xCC);
統一性の面から、アルファ値も 0 から 255 までの値となります。 255 は完全に不透明（RGB 表記と同じ色の鮮やかさ）を、0 は完全に 透明を表します。

このアルファ値は、imagecolorallocate()で使われるものと異なることに 注意してください。PEAR でのアルファ値表現は、RGB との統一性の面から 選択されています。また、（画像処理等の）他のアプリケーションでも よく使われているからでもあります。

RGB以外の色表現

RGB/RGBAがグラフィックの生成に使用される場合は、 色表現がRGB/RGBAであることを示す識別子を省略できることとしました。 他の色表現を用いる場合は、識別子を記述する必要があります。 識別子 "type" は、以下のように色表現の配列に記述します。
$color = array(0x33, 0x99, 0x00, 0xCC, "type" => "RGB");
現在、以下のタイプが定義されています。 タイプの後に示された色名の順でそれぞれの色の強度を指定します。

  • RGB - red, green, blue

  • CYMK - cyan, yellow, magenta, black (key)

RGBA 表現については、タイプ指定は "RGB" とします。

色表現の変換

Image_Color パッケージには、 ある色形式を内部 RGBA 表現に変換したり、異なる色表現へ変換したりするための 関数があります。

現在のところ、色名（たとえば、"green"）や 16 進表現文字列（たとえば、 "#339900"）を PEAR の RGBA 形式に変換できる関数が実装されています。 アルファチャンネルをサポートするべく作業を行っていますし、その後、 CYMK 変換の関数も加える予定です。

前のページ | ホーム | 次のページ
推奨事項 | 上に戻る | ドキュメントの作成

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


リリースの Tarball をパッケージする

妥当なパッケージ定義ファイルを作成したら、リリースの tar パッケージ (tarball) を作成する ことができます。パッケージのトップディレクトリで、 pear package コマンドを実行してください。 リリースの tar パッケージが作成されます。

注意 リリースの tar パッケージを作成するには、ローカルの PHP に zlib 拡張が 必要です。

次に、pear install <ファイル> （ファイルは今作成した tar パッケージ）を実行し、 パッケージをローカルにインストールしてみるべきです。 これにより、パッケージ定義ファイルが、妥当なだけでなく 有効な情報が記述されていることも確認できます。 すべてのファイルが正しい場所にインストールされているか 手動で確認してください。 パッケージにテストスクリプトが含まれているのなら、それらを実行することを 強く推奨します。

本ステージで何か悪いところがあれば修正・再パッケージ・再テストを 行ってください。 すべてが OK ならば、次へ進んでください。

前のページ | ホーム | 次のページ
パッケージ定義ファイルの検証 | 上に戻る | Web インターフェイスを利用してパッケージをリリース

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


パッケージ定義ファイルの検証

次に、パッケージ定義ファイル (package.xml) の妥当性の 検証を行います。 pear package-validate package.xml コマンドを実行すると、 検証が行われます。 エラーや警告があれば修正したうえで、次のステップに進んでください。

注意 パッケージ定義ファイルの記述方法については、 「パッケージ定義ファイルの解説」を 参照してください。

前のページ | ホーム | 次のページ
パッケージのリリース | 上に戻る | リリースの Tarball をパッケージする

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Web インターフェイスを利用してパッケージをリリース

まず、PEAR の web サイトに、与えられたアカウント（第１ステップ参照）を使って ログインしてください。

ついに、パッケージをリリースできます。便利な web インターフェイスを 使用します。 http://pear.php.net/release-upload.php にある フォームを使用してください。

以上です。パッケージがリリースされたら、アナウンスをメーリングリストに 投稿してください。

前のページ | ホーム | 次のページ
リリースの Tarball をパッケージする | 上に戻る | PEAR 開発のサポート

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


パッケージに、そのサンプルやテスト用のファイルは必要ですか？

サンプルを添付するのは良い考えです。クラスの API が複雑な場合には特にそうです。 しかし、サンプルはドキュメントの一部でしかありません。 ドキュメントの代わりにサンプルだけを作るのはやめましょう。 ドキュメントとサンプルは共に 'docs' サブディレクトリに置いてください。

クラスが、コンパイルが必要であったり、 特別な拡張モジュールやプログラムを必要とする場合、さらに （テンプレートや画像などの）追加ファイルが正しくインストールされている 必要がある場合は、テストスクリプトの作成を推奨します。 テストスクリプトは、'tests' サブディレクトリに置いてください。

前のページ | ホーム | 次のページ
実験的または不安定なものをコミットしてよいですか？ | 上に戻る | 似たような機能を持つ別のパッケージやクラスは認められますか？

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


拡張モジュールを C 言語で書いたのですが、 それを PEAR に採用してもらうにはどうすれば良いですか？

PECL プロジェクト （PEAR から分離しました）が PHP 拡張モジュールを公表する場所になります。

前のページ | ホーム | 次のページ
PEAR に協力したいのですが、どうすれば良いですか？また、CVS へのアクセス方法は？ | 上に戻る | なぜ PEAR は pear/ と pear-core/ に分かれているのですか？

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


似たような機能を持つ別のパッケージやクラスは認められますか？

パッケージの機能が互いに競合すること自体には問題はありません。 しかし、10 のテンプレートクラス、7 つものメール処理クラス、 3 つのデータベースレイヤが、関数名が異なるだけで同じ動作をするといった 「公害」は避けたいと思っています。

まず真実に目を向けてください。 なぜ私は新しいパッケージをコミットしたいのか、と。 "PEARで私の名前が表記される" とか、"既存クラスのAPIを理解していないから" というのは、 非常に悪い答えです。

新しいクラスを作る良い理由としては、 既存の実装に特定の機能や動作・速度が欠けているということでしょう。 しかしこの場合も、拡張が可能なら、既存のクラスをなんとかしてみるべきです。 そうできなかった場合だけ、新しいクラスをコミットするための正当な理由があることとなります。 ここで、"そうできなかった" とは、 既存のクラスを基礎から変更せずには必要な機能を付加できない、 ということを意味しています。

新しいクラスを書く際は、 既存のクラスとの API 互換性を維持するよう可能な限り努めてください。 互換性の維持ができない場合は、 互換性を維持するラッパクラスを作成してください。 ラッパクラスは互換性を維持し、移行をより簡単にするためだけのものですから 作動時間・メモリを多く必要としても気にしないでください。

また、競合するクラスをコミットする際には、 PEAR開発者メーリングリスト で告知するべきです。

前のページ | ホーム | 次のページ
パッケージに、そのサンプルやテスト用のファイルは必要ですか？ | 上に戻る | PEAR について疑問があります。どこで質問すればいいですか？

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR に協力したいのですが、どうすれば良いですか？また、CVS へのアクセス方法は？

こちら を参照してください。

前のページ | ホーム | 次のページ
"No release with state equal to: 'stable' found for 'Packagename'" というエラーメッセージがパッケージのインストールの際に出るのですが？ | 上に戻る | 拡張モジュールを C 言語で書いたのですが、 それを PEAR に採用してもらうにはどうすれば良いですか？

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


どうして pear/ と pear-core/ でディレクトリ構造が違うの？

pear-core/ のディレクトリ構造は、 インストールツリー (デフォルトでは/usr/local/lib/php) そのままの構造になっています。 一方、pear/ の構造は、 各ファイルがどのパッケージに属するかを示しています。 それぞれのパッケージごとに作られたディレクトリ中で、 個々のファイルの位置は、インストール後の位置とは完全に独立しています。 インストール後の位置は、パッケージ記述ファイルにより指定されます。

前のページ | ホーム | 次のページ
なぜ PEAR は pear/ と pear-core/ に分かれているのですか？ | 上に戻る | どうしてフラットなディレクトリ構造をとっているの？

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


どうしてフラットなディレクトリ構造をとっているの？

CVS においては、PEAR のコードはパッケージごとにまとめられています。 インストールされた後の最終的な階層構造とは異なっています。 たとえば、XML_RPC クラスを使うときは、"XML/RPC.php" を読み込みます。 単純に想像すると、そのファイルは CVS で pear/XML/RPC.php にありそうですが、そうではありません。 XML_RPC は、独立のパッケージなので CVS では専用のディレクトリがあります。 RPC.php は pear/XML_RPC/RPC.php にあるのです。 パッケージ記述ファイル (package.xml) を使って、ファイルが最終的にどこに インストールされるかが指定されます。

CVS が、なぜこのように構成されるかと言うと、 パッケージ管理がとても簡単になるからです。

前のページ | ホーム | 次のページ
どうして pear/ と pear-core/ でディレクトリ構造が違うの？ | 上に戻る | 実験的または不安定なものをコミットしてよいですか？

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR/PECL で使用できるライセンスは？

現在のところ PEAR では次のライセンスが使用できます。

  • PHP License

  • Apache License

  • LGPL

  • BSD style

  • MIT License

他のライセンスは、ケースバイケースベースでこのリストに追加されます。 追加のためには、PEAR developers mailing list に連絡をしてください。

これらのライセンスは、クローズドソースやオープンソースのアプリケーションと 組み合わせて使用することが許可されています。 また、商用アプリケーションとも組み合わせることができます。 唯一の制約は、原作者のクレジットをソースの中に残しておく必要があるということです。 LGPL については、これに加えて 「ソースコードに改変を加えたものを再配布する際には、 改変部分も LGPL ライセンスにしなければならない」 という制約があります。

PHP にリンクされる PECL 拡張モジュールについては、PHP ライセンスと 矛盾の無いライセンスでなければなりません。つまり、PECL 拡張を GPL とすると GPL に違反してしまうということです。さらに、GPL なライブラリとリンクする 拡張モジュールを書いた場合にも、GPL に違反するということに注意してください。 GPL なライブラリとリンクする必要がある場合には、 矛盾のないライセンスを使用できるよう、 ライブラリの著者に許可を得てください。

PEAR/PECL パッケージのライセンスは、すべてのソースファイルの先頭に記述されています。 また、パッケージ記述ファイル (package.xml) の <license> タグ内、そしてパッケージのホームページにも記述されています。

前のページ | ホーム | 次のページ
PEAR は Windows で動作しますか？ | 上に戻る | PEAR 標準コーディング規約で、なぜインデントはスペースのみなのですか？

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


パッケージをインストールしようとすると "No handlers for package.xml version 2.0" と言われるのですが？

あなたの使用している PEAR のバージョンが 1.4.0 未満です。

そのパッケージをインストールするには、 次のコマンドで PEAR を更新しなければなりません。

$ pear upgrade PEAR

これは、最新バージョンの PEAR をインストールします。 最新バージョンでは、package.xml バージョン 2.0 しか存在しないパッケージをインストールすることができます。

前のページ | ホーム | 次のページ
PEAR のサイトにログインすると変なエラーメッセージがでるのですが？ | 上に戻る | Windows で、カスタマイズしたフォルダにインストールできない

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


"No release with state equal to: 'stable' found for 'Packagename'" というエラーメッセージがパッケージのインストールの際に出るのですが？

Greg Beave による返答。

そのパッケージは、リリースされてはいるのですが、安定版 (stable) では無いためです。対処方法は 2 つあります。

  1. preferred_state を alpha か beta にセットした後、インストール作業を行う

    $ pear config-set preferred_state alpha

    $ pear install Packagename

  2. 開発状況フラグやバージョン番号を直接指定してインストールする

    $ pear install Packagename-alpha

    $ pear install Packagename-1.5.3

前のページ | ホーム | 次のページ
古い版の PEAR はインストールされているが、 新しい版をインストールする権限がない時はどうすれば良いですか？ | 上に戻る | PEAR に協力したいのですが、どうすれば良いですか？また、CVS へのアクセス方法は？

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


古い版の PEAR はインストールされているが、 新しい版をインストールする権限がない時はどうすれば良いですか？

$ which pear とすると /usr/local/bin/pear など出て pear コマンドは使えるのだけれど、 $ pear -v とするとバージョンが古い場合とか、その他の理由で、 違うバージョンの PEAR を使いたい場合は、ホームディレクトリにインストールすると 良いでしょう。

http://go-pear.org を訪れ、gopear.php という名で保存し、 $ php gopear.php とするか、 $ lynx -source http://pear.php.net/go-pear | php -q とするかします。

PEAR のインストールにあたっては、/home/user/pear を prefix に指定してください（ここで user は、あなたのユーザ名）。

インストールが完了したら、PATH 環境変数に、新しい PEAR のディレクトリを 既存の PATH の 前 に追加してください。

たとえば、~/.bashrc や ~/.profile の最後のほうに、export PATH=/home/user/pear/bin:$PATH を追加します。$ echo $PATH として、 /home/user/pear/bin:[...] のように表示されるでしょうか。

$ which pear とすると /home/user/pear/bin/pear と表示され、$ pear -v で "PEAR Version: 1.4.8" （執筆時。これ以降であればよい）と出力されると問題ありません。 最新の安定版については、 http://pear.php.net/package/PEAR の Current Release のところをチェックしてください。

最後に、include_path を正しくセットします。 たとえば、次のようにします。
<？php
 $path = ini_get('include_path');
 ini_set('include_path', '/home/user/pear'.PATH_SEPARATOR.$path);
 ？>

前のページ | ホーム | 次のページ
FAQ - 頻出する質問 | 上に戻る | "No release with state equal to: 'stable' found for 'Packagename'" というエラーメッセージがパッケージのインストールの際に出るのですが？

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR について疑問があります。どこで質問すればいいですか？

  • PEAR コンポーネントの使用法についての一般的な質問は、メーリングリスト pear-general@lists.php.net に投稿してください。

  • PEAR コンポーネントの開発についての技術的な議論は、すべて pear-dev@lists.php.net でお願いします。

  • ウェブサイトに関する質問は、 pear-webmaster@lists.php.net へ送ってください。

これらメーリングリストの購読についての情報は、こちら を参照してください。

上記のすべてのメーリング・リストは、言語として英語が使われております。 また、質問は丁寧にお願いします。;-)

前のページ | ホーム | 次のページ
似たような機能を持つ別のパッケージやクラスは認められますか？ | 上に戻る | require したパッケージが別のパッケージを読み込んでいます。 後者のパッケージが直接必要となった場合は、再び読み込むべきですか？

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Windows で、カスタマイズしたフォルダにインストールできない

そのフォルダの表示方法がカスタマイズされている (訳注: フォルダの右クリック->「プロパティ」->「カスタマイズ」タブで変更されている) かどうか調べるために、 Windows はフォルダの "読み取り専用" 属性を使用します。 この属性は、書き込み権限を管理する際には使用されません。 "読み取り専用" のフォルダにもファイルを作成することができます。詳細は http://support.microsoft.com/default.aspx?scid=kb;ja-jp;326549 を参照ください。

PEAR インストーラは、この読み取り専用属性を検出するとインストールを中止します。 悲しいことに、カスタマイズしたフォルダと本当に読み取り専用のフォルダを Windows では区別できないのです。

対策としては、PEAR パッケージをインストールするフォルダを カスタマイズしないようにしてください。

前のページ | ホーム | 次のページ
パッケージをインストールしようとすると "No handlers for package.xml version 2.0" と言われるのですが？ | 上に戻る | メンテナ入門

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


require したパッケージが別のパッケージを読み込んでいます。 後者のパッケージが直接必要となった場合は、再び読み込むべきですか？

はい。他のパッケージによって、読み込みが行われる場合でも、 必要なパッケージはすべて読み込むべきです。 このとき、require_once() または include_once() を使う必要があります。

前のページ | ホーム | 次のページ
PEAR について疑問があります。どこで質問すればいいですか？ | 上に戻る | PEAR は Windows で動作しますか？

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


なぜ PEAR は pear/ と pear-core/ に分かれているのですか？

PEAR の初期の要素は pear-core (元 php-src/pear) ディレクトリに保存され、 PHP リリースにバンドルされていました。

しかし PEAR は今後、PHP リリースにバンドルできる大きさを超えることが見込まれ、 上記の方法ではうまく行きません。そこで、新しい要素はすべて pear という トップレベルディレクトリにコミットすることにしました。 今のところ php-src/pear にある要素も、まもなくこの新しい トップレベルディレクトリに移されます。 PEAR パッケージマネージャだけが、PHP の新しいリリースに バンドルされるようになります。

前のページ | ホーム | 次のページ
拡張モジュールを C 言語で書いたのですが、 それを PEAR に採用してもらうにはどうすれば良いですか？ | 上に戻る | どうして pear/ と pear-core/ でディレクトリ構造が違うの？

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR のサイトにログインすると変なエラーメッセージがでるのですが？

pear.php.net は CAcert により認証された SSL キーを使っているため、警告が表示されることがあります。 というのも、そのルート証明書が一般的なブラウザには インストールされていないためです。

Mozilla のブラウザを使っているなら、こちらのサイト で "Root Certificate (PEM Format)" のリンクをクリックすると 証明書をインストールできます。 新しい認証局を信頼するかどうか聞かれたら、 "この認証局を web サイトの同定に使用する。" のボックスをチェックし、OK をクリックします。

Internet Explorer を使っている人は、こちら を参照してください。

Mac OS X のユーザは、上記の PEM ファイルをダウンロードし、 "キーチェーンアクセス" ユーティリティーを使って "ファイル" メニューから "読み込み" として証明書をインストールします。

前のページ | ホーム | 次のページ
PEAR マニュアルの翻訳にあたって、元の英語版の変更点の 追跡を楽にするツールはありませんか？ | 上に戻る | パッケージをインストールしようとすると "No handlers for package.xml version 2.0" と言われるのですが？

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR 標準コーディング規約で、なぜインデントはスペースのみなのですか？

コードにタブを使用せずスペースを用いることは、すべてのエディタや ビューワで共通した表示が得られる唯一の方法です。 タブを 4 つのスペースとして扱うエディタが通常ですが、 8 つのスペースとして扱うターミナルやユーティリィティも多くあります。 例を示します。

printf("%s",
$arg);

この例では、7 つのスペースが "$arg" の前にあります。 もしこのコードが 4 スペース-タブのエディタで書かれるとすれば、 1 つのタブおよび 3 つのスペースとして記述されるでしょう。 もし他の開発者が 8 スペース-タブのエディタで 同じファイルを編集すると，次のように見えるでしょう。

printf("%s",
$arg);

おなじように、8 スペース-タブで書かれた次のコードを考えてみます。

if ($foo &&
$bar) {
}

4スペース-タブのエディタでは，次のように見えます。

if ($foo &&
$bar) {
}

PEAR のようなコミュニティでは、 さまざまなシステムやエディタが使用されるので、 タブを使うと上記のような問題が起きるのです。 他人にはうまく表示されないとすれば、 結局、スペースを使って体裁を整えるしかありません。 スペースを使うことだけが、誰が見ても同じように見えるようにする 唯一の方法なのです。

Jamie Zawinski が この問題について 記しています。

また、コードを適切なスタイルに変換する助けとなるツールに、 Astyle があります。

前のページ | ホーム | 次のページ
PEAR/PECL で使用できるライセンスは？ | 上に戻る | windows 版 PHP 4.3.x にバンドルされている go-pear.php やパッケージが古いようですか？

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR マニュアルの翻訳にあたって、元の英語版の変更点の 追跡を楽にするツールはありませんか？

翻訳作業に携わるということは、 単に英語のファイルを翻訳し結果をコミットするだけで終わりません。 英語ファイルの変更にあわせて翻訳済みのファイルを更新するのにも、 たくさんの労力が必要となります。 英語版のファイルに加えられた変更を追っかけるためには、 PEAR ドキュメンテーション メーリングリスト を購読し、コミットメッセージやアーカイブを確認するべきです。 更新が行われなければ、翻訳の利用価値がなくなっていきます。

更新するべき場所がどこなのかに加え、 いつ・だれがそのファイルを翻訳したのかということがわからなければ、 翻訳済みファイルの更新は困難となります。 そこで、PEAR には、 peardoc のファイルの変更日および リビジョンを追跡するシステムがあります。

リビジョンコメント

リビジョンコメントのシステムは、ファイルごとに情報を記録します。 中央の単一ファイルに全情報を記録するシステムではありません。 翻訳者・リビジョン番号およびステータス情報に関する情報を、 各ファイルごと、リビジョンコメントに記述します。 たとえば、ファイル bookinfo.xml のヘッダを見てみましょう。
<!-- EN-Revision: 1.16 Maintainer: jane Status: ready -->

翻訳の更新がなされた最新の英語版ファイルのリビジョン番号 (EN-Revision: 1.16)、および、 翻訳者の CVS アカウント名が記されています。 必要ならば、ステータス情報を追加することができます （例、部分的な翻訳に対しては"partial"）。 このリビジョンコメントのシステムでは、情報を 1 つの場所にまとめて記述するのではなく、各 XML ファイルに記述します。 英語版のファイルは 2400 以上もあるので、このほうが非常に便利です。

現在、3 つのフィールド (英語リビジョン・メンテナ・状態) があり、すべてが必須項目です。メンテナ (Maintainer) は CVS のユーザ名、 あるいは空白文字のないニックネームを用います。 状況 (Status) は空白なしで何でもありです。 このヘッダは、CVS によって 自動的に更新されませんので注意してください。 自分自身で編集し、更新してください ($Revision は自動的に更新されます)。

リビジョンコメントの良さは理解いただけたことと思います。 ただし、リビジョンコメントを使用すると、 （1 つのファイルに情報がまとまっていないので） 翻訳済ファイルのリストをさっと見る、なんて言うことができなくなります。 しかし、心配ありません。 /peardoc/ ディレクトリで次のコマンドを実行すると、 翻訳済ファイルのリストを作成できます。
./scripts/revcheck_pear.php xx > revcheck.html
ここで、xx は言語コードです（日本語なら ja）。 このスクリプトを実行させると、 同じディレクトリに revcheck.html が作成され、 そこには、指定した言語のすべてのファイルのリビジョン比較や diff への リンクがまとめられています。 さらに、メンテナの名前をパラメタとして付加すると、 指定したメンテナが係わったファイルのリストを得ることもできます。

このスクリプトには、オプション拡張がいくつかあり、 生成される HTML ページに対して適用されます。 translation.xml というファイルを使用します。 次に、言語 xx 向けのシンプルな translation.xml の例を示します。
<？xml version="1.0" encoding="iso-8859-1" ？>
<!DOCTYPE translation SYSTEM "../dtds/translation.dtd">

<translation>

 <intro>
  This is some introductory text for the xx language translators
  about who is the manager of the translation, and where to find
  more information. This paragraph is printed on the top of the
  generated revcheck.html page.
 </intro>

 <translators>
  <person name="Joe Doe"     email="joe@hotmail.com"
   nick="joedoe" cvs="yes" editor="yes"/>
  <person name="Jane Smith"  email="jsmith@yahoo.com"
   nick="jane"   cvs="yes"/>
  <person name="Joe Forever" email="joe@forever.net"
   nick="joefo"  cvs="no"/>
 </translators>

 <work-in-progress>
  <file name="appendices/aliases.xml" person="joedoe"
   type="working"/>
  <file name="functions/dbx.xml"      person="joefo"
   type="working"/>
 </work-in-progress>

</translation>
このファイル（の translators 要素）には、 CVS アカウントを持たないユーザも加えることができ、 翻訳済のドキュメント（のリビジョンコメント）にも、 更新中のファイル（work-in-progress 要素）にもアサインできます。 このアドオンを使用する最大の利点は、 revcheck.html のファイル中に、 翻訳者やファイルについての動的なテーブルを生成する際に、 これらの情報が使われるということです。 各ファイルから関連する各翻訳者へのリンクが生成されます。 また、きれいな表で各翻訳者のステータスを表示します。 時間がかかる更新が行われている場合は、 更新中のファイルを（work-in-progress 要素に）アサインすると良いでしょう。

<file> には、date および revision という 2 つのオプションのパラメータが付加できます。 前者は、作業が開始された日付です。後者は、 作業の開始のためにチェックアウトされた英語ファイルのリビジョンです （表中にそのリビジョンが記載されます）。 現在のところ、date パラメータに決まった形式はありません。

さらに、このシステムには、個々のファイルについて、現在のメンテナ以外に作業した すべての人のクレジット（名前表示）をするためのアドオンがあります。 それには、クレジットコメントを付加します。 たとえば、history.xml におけるクレジットコメントは、 次のようになります（この例では、Joe Doe がはじめにファイルを翻訳して、 Jane がメンテナを引き継いでいます）。
<!-- CREDITS: joedoe -->
クレジットコメントには、コンマ区切りで複数の翻訳者のリストを記すことができます。 revcheck.html の翻訳者に関する表の表示のところに、 これらのコメントの内容が反映されます。

前のページ | ホーム | 次のページ
windows 版 PHP 4.3.x にバンドルされている go-pear.php やパッケージが古いようですか？ | 上に戻る | PEAR のサイトにログインすると変なエラーメッセージがでるのですが？

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


実験的または不安定なものをコミットしてよいですか？

はい。ただし、ドキュメントに プロジェクトの実験性・不安性についてのステータスを 確実に書き加えてください。書き加える最良の場所は、 package.xml の <status> タグです。 このタグには、次の値のいずれかを指定します。

alpha

開発の初期段階であって、（APIや動作など） すべてが無断で変わることがあり、バグも多くあることが予想される。

beta

API は、ほとんど変わらず、使用可能なソフトウェアだが、 バグも多くあることが予想される。

devel

テストとフィードバックのために早期に公開する、 開発者のためのリリース。 コード品質は pre-alpha から stable まで様々。

stable

API が固定しており、テストは実施済みで、 ドキュメントも書かれているもの。 プロダクション環境に推奨のリリース。

snapshot

ある時点の CVS スナップショット。

前のページ | ホーム | 次のページ
どうしてフラットなディレクトリ構造をとっているの？ | 上に戻る | パッケージに、そのサンプルやテスト用のファイルは必要ですか？

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR は Windows で動作しますか？

Windows で PEAR を動作させるには、PEAR をインストールしたディレクトリ (例えばc:\php\pear)を php.ini の include_path ディレクティブに追加します。

注：*nix 特有のコマンドを使用するため、 Windows で動作しないクラス （たとえばSchedule/At.php）があります。

前のページ | ホーム | 次のページ
require したパッケージが別のパッケージを読み込んでいます。 後者のパッケージが直接必要となった場合は、再び読み込むべきですか？ | 上に戻る | PEAR/PECL で使用できるライセンスは？

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


windows 版 PHP 4.3.x にバンドルされている go-pear.php やパッケージが古いようですか？

一般的な PEAR の開発と様相が異なり、windows 版 PHP 4.3.x のビルドは、 CVS でトラッキングされていません。windows 版 のスナップショットが ビルドされているマシンで扱われているのです。 ですので、PEAR が更新されても、こちらは更新されないことがよくあります。 PHP 5.x のビルドシステムはこれと異なり、PEAR の最新版に自動的に更新されるように なっています。

PHP 4.3.x のパッケージが古く動かなくなっているのを見つけたら、 その旨を pear-dev@lists.php.net に報告してください。

前のページ | ホーム | 次のページ
PEAR 標準コーディング規約で、なぜインデントはスペースのみなのですか？ | 上に戻る | PEAR マニュアルの翻訳にあたって、元の英語版の変更点の 追跡を楽にするツールはありませんか？

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


<channel>

<channel> -- チャネルとは?

チャネルの簡単な紹介

チャネルは PEAR 1.4.0 の新機能で、別々の場所からダウンロードした パッケージを識別する仕組みです。ダウンロード場所としては pear.php.net や pecl.php.net などがあり、サードパーティのチャネルも徐々に ネット上に現れつつあります。

<channel> タグには完全なチャネル名を含みます。エイリアスでは ありません ("pear" ではなく "pear.php.net" を使用します)。

どのようなチャネル名を使用したらよいのかを決定するための簡単な方法は "このリリースをどこにアップロードするのか?" を考えることです。 もし答えが pear.php.net なら、それがあなたのパッケージのチャネル名です。 もし答えが pecl.php.net なら、それがあなたのチャネル名です。

チャネルサーバを稼動させていない環境でパッケージを公開し、また 他のパッケージがあなたのパッケージに依存することを許可したいのなら、 新しい uri ベースのパッケージ配布方法が最適です。以下のリンクから <uri> タグの説明を参照ください。

参考

<uri>

前のページ | ホーム | 次のページ
package.xml バージョン 2.0 のタグの詳細リファレンス | 上に戻る | <uri>

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


<compatible>

<compatible> -- <compatible> で、バージョンの制限を緩和する

<recommended> 依存バージョンおよび <compatible> を使用する

<compatible> タグは、バージョンタグ <recommended> を含む <package> の依存性とともに使用するように設計されています。 例えば pear.example.com/Bar バージョン 1.3.0 の例を考えてみます。

<package>
 <name>Foo</name>
 <channel>pear.example.com</channel>
 <min>1.0.0</min>
 <recommended>1.5.2</recommended>
</package>

上の依存性を日本語に翻訳すると、次のようになります。 "パッケージ pear.example.com/Foo を使用します。しかし、バージョン 1.0.0 か、それより新しいもののみです。もし pear.example.com/Foo が インストールされていなければ、バージョン 1.5.2 をインストールします。 もしバージョン 1.5.2 以外の pear.example.com/Foo がインストールされていれば、 --force を指定されていない限りインストールは失敗します。 あるいは pear.example.com/Foo は私と互換性があります。"

最後の文 "……あるいは pear.example.com/Foo は私と互換性があります。" は、<compatible> タグによって制御されます。パッケージ Foo バージョン 1.5.3 の package.xml に以下のような <compatible> タグが 含まれていた場合、

<compatible>
 <name>Bar</name>
 <channel>pear.example.com</channel>
 <min>1.2.0</min>
 <max>1.3.0</max>
 <exclude>1.2.9</exclude>
</compatible>

インストーラは「pear.example.com/Foo バージョン 1.5.3 は pear.example.com/Bar バージョン 1.2.0 から 1.3.0 までと互換性がある。 ただし 1.2.9 とは互換性がない」と解釈します。

非常に重要な注意点は、<compatible> に記述するのは テスト済みの 既存の バージョンのみにしておくと いうことです。将来 pear.example.com/Bar の新しいバージョンが出た際には、 単純に <recommended> タグを更新して対応します。

<compatible> には 3 つのバージョン管理タグを含めることが可能です。 <min> および <max> は必須で、テスト済みの互換性がある バージョンの範囲を定義します。 また <exclude> は、範囲内で例外とするバージョンを指定します。 上の例では、1.3.0 および 1.2.0 がそれぞれ指定可能な最大バージョン および最小バージョンとなります。package.xml 内で指定できる <compatible> タグの数には制限がありません。

参考

<package> の依存性

前のページ | ホーム | 次のページ
<file> のタスク | 上に戻る | <dependencies>

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


<contents>

<contents> -- リリースの内容を指定する

リリースの内容を記述する

package.xml 1.0 では、内容を記述するタグは <filelist> と呼ばれていました。 このタグの使用目的は package.xml 2.0 で劇的に変化したので、名前を 変更しました。現在では、<filelist> は package.xml の release セクションに存在します。

<contents> は tar ボールの内容を記述するために使用されます。 それ以上のものではありません。実際に PEAR インストーラでインストール されるか否かにかかわらず、この contents タグの中のファイルが すべて tar ボールの中に配置されます。このことにより、非常に多機能な tar ボール (例えば直接アーカイブを展開するだけでも動作するし PEAR インストーラでインストールしても動作するなど) を作成することが 可能となります。

たいていのリリース形式では contents の配下にひとつの <dir> タグが含まれ、その下に複数の dir タグや <file> タグが ネストして配置されます。

前のページ | ホーム | 次のページ
<license> | 上に戻る | <dir>

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


<dependencies>

<dependencies> -- package.xml 2.0 における依存性の指定

package.xml 2.0 における依存性の概要

プログラミングにおいて、依存性は最も難しい問題のひとつです。 バグや API の変更に対応する簡単な方法がなければ、他人が書いた コードを使用することは悪夢となりかねません。他のさまざまな 機能の中でも、依存性の処理はおそらく PEAR の最大の強みでしょう。 あなたが個人的に依存性の重要性をどう考えているかにかかわらず、 依存性を指定する方法やその他特定のシステム上でのみパッケージを 使用させる方法などを知っておくことは重要です。

package.xml 1.0 では、依存性の記述法は比較的シンプルでしたが、 その代わりに使いやすさが犠牲となっていました。アプリケーションの ためにパッケージの依存性を指定するのは危険なことでした。 もしインストールされているパッケージのバージョンをひとつに 指定したければ、それ以降のアップグレードを妨げることに なってしまいます。package.xml 2.0 では、アップグレードを 面倒にすることなしに、より厳しいバージョン依存性の設定を 可能にする方法を提供します。

package.xml 1.0 では、PECL のような PHP 拡張モジュールへの依存性は非常にやっかいなものでした。 インストール時の検証を成功させるには、その拡張モジュールが php.ini に記述されており、またメモリ上に読み込まれている必要が あったのです。実運用環境の Web サイトで使用している php.ini と PEAR インストーラが使用している php.ini が違うなどの理由で、 これが不可能であることも多いものです。package.xml 2.0 では、 PECL のような拡張モジュールに対する依存性はシンプルでわかりやすい ものになりました。つまり、該当モジュールがメモリに読み込まれている 必要はなく、単にインストールされていればそれでよいのです。 もちろん、古い形式の依存性もサポートされています。

package.xml 1.0 では、必須の依存性およびオプションの依存性という 2 種類をサポートしています。package.xml 2.0 でもこの 2 つをサポート していますが、さらに「オプションの依存性グループ」という新しい概念も サポートしています。依存性グループでは機能の組み合わせを定義します。 "このパッケージはオプションで Net_FTP に依存し、オプションで Log に依存する" と考える代わりに、 "パッケージをリモートインストールするには remoteinstall という 機能が必要で、その機能には Net_FTP および Log パッケージが必要" のように考えることができるのです。グループ化によって、 ある機能を正しく使用するために必要なパッケージおよび拡張モジュールの 組み合わせを定義することが可能となります。

package.xml 1.0 では、依存性として php、package および extension のみをサポートしていました。package.xml 2.0 では php、package、extension、os、architecture および PEAR installer をサポートします。それに加えて package.xml 2.0 では 特定の URL に存在する静的なパッケージに対する依存性や PECL のように PHP の拡張モジュールを提供するパッケージに対する 依存性もサポートします。

PEAR installer に対する依存性とは、PEAR パッケージに対する依存性とは 異なり、現在実行している PEAR インストーラに対する依存性のことです。 これは PHP に対する依存性と似ています。というのも、この依存性は 特定のバージョンが実行されていることを要求するからです。 PEAR インストーラの手の焼けるバグのせいでパッケージをインストール できなくすることを避けるために、これは非常に有用です。

<dependencies> の構造

<dependencies> タグによって依存性の情報を再構成しました。 依存性はグループ化され、属性の情報はタグに展開されました。 また、わかりやすくして可読性を高めるため、単語を省略することを やめました。package.xml バージョン 1.0 の一部を抜粋した

<deps>
 <dep type="pkg" rel="ge" version="1.3.1">Archive_Tar</dep>
 <dep type="php" rel="ge" version="4.2.0"/>
 <dep type="pkg" rel="has" optional="yes">PEAR_Frontend_Web</dep>
</deps>

は、package.xml 2.0 ではこのような形式になります。

<dependencies>
 <required>
  <pearinstaller>
   <min>1.4.0a7</min>
  </pearinstaller>
  <php>
   <min>4.2.0</min>
   <max>6.0.0</max>
  </php>
  <package>
   <name>Archive_Tar</name>
   <channel>pear.php.net</channel>
   <min>1.3.1</min>
  </package>
 </required>
 <optional>
  <package>
   <name>PEAR_Frontend_Web</name>
   <channel>pear.php.net</channel>
  </package>
 </optional>
</dependencies>

これらの変更により、xml の妥当性検証およびパースを単純化しました。 package.xml 1.0 とは異なり、<pearinstaller> および <php> の依存性はすべての package.xml で必須となることに注意しましょう。 さらに、<pearinstaller> および <php> の中では <min> タグが必須となります。

<pearinstaller> 依存性

<pearinstaller> は、package.xml のパースおよびインストールを 適切に行うための PEAR の最小バージョンを定義します。バージョン情報を サポートしている他のすべての依存性タグと同様、以下の 4 つのタグが サポートされており、これでバージョンを定義します。

  • <min> - この package.xml をインストールするために要求される PEAR の最小バージョン。このタグは、package.xml の <pearinstaller> 依存性の中で必須です。

  • <max> - サポートしている PEAR インストーラの最大バージョン。 使用する際には注意してください! このタグを使用すると、PEAR の 新しいバージョンを使用している人がパッケージをインストール できなくなってしまいます!

  • <recommended> - PEAR インストーラの推奨バージョン。 このタグは、バージョンの管理をより厳しくするために使用します。 --force オプションを指定しない限り、推奨バージョンに 一致していないバージョンではインストールできなくなります。 これは、特別なセキュリティのレベルを提供するために使用できます。 パッケージのインストールが正しく動作することを確認済みの バージョンを指定したうえで、さらに将来のアップグレードを 妨げることもなくなります。

  • <exclude> - 互換性のない PEAR インストーラのバージョン。 これは、パッケージを正常にインストールすることができない PEAR のバージョンを避けるために使用します。複数のバージョンを 指定する場合には、<exclude> タグを複数指定します。

<php> 依存性

バージョン情報をサポートしている他のすべての依存性タグと同様、 以下の 4 つのタグがサポートされており、これでバージョンを定義します。

  • <min> - この package.xml をインストールするために要求される PHP の最小バージョン。このタグは、package.xml の <php> 依存性の中で必須です。

  • <max> - サポートしている PHP の最大バージョン。

  • <exclude> - 互換性のない PHP のバージョン。 これは、パッケージを正常にインストールすることができない PHP のバージョンを避けるために使用します。複数のバージョンを 指定する場合には、<exclude> タグを複数指定します。

<subpackage> 依存性

サブパッケージ依存性は、パッケージ依存性と同じ xml 書式となります。 サブパッケージ依存性を使用するのは、パッケージが複数に分割される場合のみです。 言い換えれば、もし子パッケージの中に親パッケージと同名のファイルの 旧バージョンが含まれていた場合、通常は子パッケージが親パッケージと 競合します。というのも親パッケージのファイルを上書きしてしまうことに なるからです。

簡単な例を挙げて考えてみましょう。 パッケージ Foo 1.0.0 には Foo.php および Foo/Bar.php が含まれています。 パッケージ Foo の開発者は、Foo を 2 つのパッケージ Foo および Foo_Bar に分けることにしました。Foo 1.1.0 には foo.php が含まれ、Foo_Bar 0.1.0 には Foo/Bar.php が含まれます。この場合、Foo_Bar 0.1.0 は Foo 1.0.0 と競合します。というのも両方に Foo/Bar.php が含まれているからです。

Foo_Bar に対する subpackage 依存性を Foo に設定しておくと、インストーラは Foo 1.0.0 の Foo.php と Foo 1.1.0 の Foo.php の競合を無視するのと同様に Foo 1.0.0 の Foo/Bar.php と Foo_Bar 0.1.0 の Foo/Bar.php の競合も無視します。

<package> 依存性

ご理解いただけるとおり、<package> 依存性は PEAR の依存性の中でも 最も複雑なものです。PEAR 1.4.0 では 3 種類のパッケージ依存性を サポートしています。

  1. チャネルサーバを基にした、通常のパッケージ依存性 (package.xml 1.0 と同じ考え方)。

  2. PHP 拡張モジュールを提供するパッケージ (PECL など) との依存性 (サーバベースおよび URI ベースの両方)。

  3. 静的な URI を基にしたパッケージ依存性。

チャネルを基にした <package> 依存性

パッケージ依存性のうち、最も一般的なのはチャネルベースの依存性です。 これは、package.xml バージョン 1.0 で使われていたものです。

<deps>
 <dep type="pkg" rel="has">PEAR</dep>
</deps>

これを package.xml バージョン 2.0 用に変換すると、以下のようになります。

<dependencies>
 <required>
<!-- ... -->
  <package>
   <name>PEAR</name>
   <channel>pear.php.net</channel>
  </package>
 </required>
</dependencies>

標準的なパッケージ依存性では <channel> が必須タグであることに 注意しましょう。package.xml 1.0 を使用していたパッケージは、 そのダウンロード元にかかわらず、チャネルとして pear.php.net を使用します。

バージョン情報をサポートしている他のすべての依存性タグと同様、 標準のバージョン情報タグ (min、max、recommended、exclude) をすべてサポートされています。それに加えて <conflicts> タグがサポートされており、これによって 反依存性をサポートします。

  • <min> - 依存性を満たすために必要な最小バージョン。 対象パッケージがインストールされており、そのバージョンが ここで指定されているバージョンより古い場合に インストールは失敗します。

  • <max> - 依存性を満たすために必要な最大バージョン。 対象パッケージがインストールされており、そのバージョンが ここで指定されているバージョンより新しい場合に インストールは失敗します。

  • <recommended> - 依存性を満たす推奨バージョン。 このタグは、バージョンの管理をより厳しくするために使用します。 --force オプションを指定しない限り、推奨バージョンに 一致していないバージョンではインストールできなくなります。 これは、特別なセキュリティのレベルを提供するために使用できます。 パッケージのインストールが正しく動作することを確認済みの バージョンを指定したうえで、さらに将来のアップグレードを 妨げることもなくなります。

    <compatible> タグを依存側の package.xml で使用することにより、インストーラの制限を 回避できることに注意しましょう。本質的には、 <compatible> タグは、たとえそれが推奨バージョンでなくても 依存パッケージが現在のパッケージと互換性があるということを インストーラに知らせます。

  • <exclude> - 互換性のないパッケージのバージョン。 複数のバージョンを依存性から排除するには、 <exclude> タグを複数指定します。

  • <conflicts> - 依存性を否定します。 もしパッケージがインストールされていれば、依存性の要求は 満たされずにインストールが失敗します。

package.xml 1.0 の "rel" 属性を package.xml 2.0 形式に変換するための大まかな方法を以下に示します。

表 16-1package.xml 1.0 のパッケージ依存性を package.xml 2.0 に変換する

1.0 2.0 での同等な形式
<dep type="pkg" rel="has">Foo</dep>

<package>
 <name>Foo</name>
 <channel>pear.php.net</channel>
</package>
<dep type="pkg" rel="ge" version="1.0.0">Foo</dep>

<package>
 <name>Foo</name>
 <channel>pear.php.net</channel>
 <min>1.0.0</min>
</package>
<dep type="pkg" rel="gt" version="1.0.0">Foo</dep>

<package>
 <name>Foo</name>
 <channel>pear.php.net</channel>
 <min>1.0.0</min>
 <exclude>1.0.0</exclude>
</package>
<dep type="pkg" rel="le" version="1.0.0">Foo</dep>

<package>
 <name>Foo</name>
 <channel>pear.php.net</channel>
 <max>1.0.0</max>
</package>
<dep type="pkg" rel="ge" version="1.0.0">Foo</dep>

<package>
 <name>Foo</name>
 <channel>pear.php.net</channel>
 <max>1.0.0</max>
 <exclude>1.0.0</exclude>
</package>
<dep type="pkg" rel="ge" version="1.0.0">Foo</dep>
<dep type="pkg" rel="le" version="1.9.0">Foo</dep>

<package>
 <name>Foo</name>
 <channel>pear.php.net</channel>
 <min>1.0.0</min>
 <max>1.9.0</max>
</package>
<dep type="pkg" rel="not">Foo</dep>

<package>
 <name>Foo</name>
 <channel>pear.php.net</channel>
 <conflicts/>
</package>

URI を基にした <package> 依存性

URI ベースのパッケージ依存性について見てみましょう。 以下に簡単な例を示します。

<package>
 <name>Foo<name>
 <uri>http://www.example.com/Foo-1.3.0</uri>
</package>

この設定により、もしパッケージ Foo がインストールされていない場合に インストーラは http://www.example.com/Foo-1.3.0.tgz あるいは http://www.example.com/Foo-1.3.0.tar (両方が存在する必要があります!) を取得しようとします。URI で表すすべてのパッケージには、 <channel> タグの代わりに <uri> タグが含まれている必要があり、これらは自動的に擬似チャネル "__uri" に属することになります。しかし、このことは URI ベースのパッケージ依存性を表す xml に記述方法を考える上では それほど重要ではありません。

URI ベースのパッケージ依存性では、バージョン管理の情報を指定することが できません。指定しても無意味だからです。静的な URI には、もともとひとつの バージョンしか指定できません。URI ベースの依存性には パッケージと衝突する情報を指定する <conflicts/> タグ、 および該当パッケージが提供する拡張モジュールを指定する <providesextension> タグを含めることができます。

PEAR 形式の <package> 依存性 vs. PECL 形式の <package> 依存性

package.xml 2.0 では リリース型 を識別する機能がサポートされており、また PECL 形式のパッケージで extbinrelease 型や extsrcrelease 型を使用する依存性もサポートしています。

PECL パッケージとして配布することができるけれども PHP にデフォルトでバンドルされている拡張モジュール、例えば PDO 拡張モジュールなどへの依存性を指定するには、この形式を使用します。

<package>
 <name>PDO</name>
 <channel>pecl.php.net</channel>
 <min>0.3.1</min>
 <providesextension>PDO</providesextension>
</package>

<providesextension> タグの中に秘密があります。 このタグにより、依存性の検証時に以下の処理を行うよう インストーラに指示します。

  1. 拡張モジュール "PDO" がメモリ内に存在するか? もし存在するなら、そのバージョンは 0.3.1 以降か?

  2. もし存在しないなら、このパッケージと同時に pecl.php.net/PDO をインストールしようとしているか? しているなら、そのバージョンは 0.3.1 以降か?

  3. していないなら、pecl.php.net/PDO の バージョン 0.3.1 以降がインストールされているか?

上の 3 つの条件のうちひとつでも満たしていれば、依存性は満たされて インストールが続行されます。このシステムにより、 PHP 拡張モジュールをインストールするために別の php.ini を 使用することを可能にし、拡張モジュールに依存した安全装置を 提供します。

警告

<providesextension> は、PHP におけるすべての拡張モジュールに 関する関数と同様、大文字小文字を区別します。"PDO" 拡張モジュールを表すのに "pdo" を使用しないでください。 さもないと、依存性は常に満たされなくなります。

<extension> 依存性

バージョン情報をサポートしている他のすべての依存性タグと同様、 標準のバージョン情報タグ (min、max、recommended、exclude) をすべてサポートされています。それに加えて <conflicts> タグがサポートされており、これによって 反依存性をサポートします。

  • <min> - この package.xml をインストールするために必要な PHP 拡張モジュールの最小バージョン。

  • <max> - サポートされる PHP 拡張モジュールの最大バージョン。

  • <recommended> - 推奨される PHP 拡張モジュールのバージョン。 このタグは、バージョンの管理をより厳しくするために使用します。 --force オプションを指定しない限り、推奨バージョンに 一致していないバージョンではインストールできなくなります。 これは、特別なセキュリティのレベルを提供するために使用できます。 パッケージのインストールが正しく動作することを確認済みの バージョンを指定したうえで、さらに将来のアップグレードを 妨げることもなくなります。

  • <exclude> - 互換性のない PHP 拡張モジュールのバージョン。 複数のバージョンを指定する場合には、<exclude> タグを複数指定します。

  • <conflicts> - 依存性を否定します。 もし拡張モジュールが存在すれば、依存性の要求は 満たされずにインストールが失敗します。

<os> 依存性

OS 依存性は、特定の系統の OS (unix など) や固有の OS (darwin あるいは freebsd など) のみにパッケージを制限するために使用します。 以下に例を示します。

<os>
 <name>linux</name>
</os>

特定の OS 以外のすべての環境でパッケージをインストール できるよう指定するには、<conflicts/> タグを使用します。

<os>
 <name>windows</name>
 <conflicts/>
</os>

使用可能な OS の値は以下のとおりです。

  • windows

  • unix

  • linux

  • freebsd

  • darwin (Mac OS X のことです)

  • sunos

  • irix

  • hpux

  • aix

さらに、 php_uname() 関数がサポートしているものであれば、どんな難しい OS でも 使用可能です。OS として "unix" を指定すると、 linux、freebsd、darwin、sunos、irix、hpux あるいは aix のすべてが対象となります。

<arch> 依存性

arch (アーキテクチャ) 依存性は、特定の OS およびプロセッサのみに パッケージを制限するために使用します。以下に例を示します。

<arch>
 <pattern>linux-*-i386-*</pattern>
</arch>

特定のアーキテクチャ以外のすべての環境でパッケージをインストール できるよう指定するには、<conflicts/> タグを使用します。

<arch>
 <pattern>linux-*-i?86-*</pattern>
 <conflicts/>
</arch>

アーキテクチャのパターンは OS_Guess->matchSignature() メソッドで定義され、sysname[-release[-cpu[-extra]]] のような形式になります。[] で囲まれている部分はオプションです。 また、すべての部分でワイルドカードとして "*" を使用可能です。さらに、1 文字のみを表すワイルドカードとして "?" が使用可能です。たとえば i?86 は i386、i686、i586 などにマッチします。

sysname の意味は OS 依存性と同じですが、unix はサポートされていません。

release は、OS のバージョンです。

cpu は特定の CPU を表します。一般的な値は i?86、sparc、powerpc です。

extra は、php_uname() の最後に付加される その他の項目です。glibc のバージョンなどが含まれます。

前のページ | ホーム | 次のページ
<compatible> | 上に戻る | <usesrole>

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


<lead>、<developer>、<contributor> および <helper>

<lead>、<developer>、<contributor> および <helper> -- リリースの開発者についての文書

誰がパッケージを開発したのかを記述する

package.xml 1.0 では、冗長な <maintainers> コンテナタグの中で <maintainer> タグを使用することによって開発者を記述していました。 これは package.xml 2.0 で単純化され、パース速度を改善するとともに xml の妥当性検証をよりシンプルにしました。今では、<role> タグの中身が 4 つのタグに分割され、パッケージのメンテナを 示すようになっています。

それに加えて、新しい内部タグ <active> が追加されました。 これによって、かつてメンテナであった開発者についても package.xml から削除することなしに敬意を表することが可能となります。

警告 タグの順番が重要です。まず leads、 それに続けて developers、その後に contributors、最後に helpers となります。

前のページ | ホーム | 次のページ
<uri> | 上に戻る | <version>

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


<dir>

<dir> -- <contents> タグ内のディレクトリを記述する

ディレクトリを記述する

<dir> タグの意味は package.xml 1.0 と同じです。 必須属性は name で、オプションの属性として baseinstalldir (すべてのファイルやサブディレクトリがインストールされる 相対位置) が指定可能です。

すべてのファイルは、ひとつのトップレベル <dir> タグの 配下になければならないことに注意しましょう。シンプルな パッケージでは、ディレクトリ名として単に <dir name="/"> を使用します。

前のページ | ホーム | 次のページ
<contents> | 上に戻る | <file>

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


<file>

<file> -- <contents> タグ内のファイルを記述する

ファイルを記述する

<file> タグの意味は package.xml 1.0 とほぼ同じです。 必須属性は name および role です。オプションの属性として baseinstalldir および md5sum を指定可能です。 オプションの属性 platform および install-as は、 release タグ に置き換えられました。特に、install-as を指定するには <install> が用いられ、<ignore> タグを <installconditions> とともに 使用することによって特定のプラットフォームでのみインストール対象外と することが可能です。

platform 属性になじみが深い人のために、例をあげて説明します。

<file name="scripts/foo.bat" role="script" install-as="foo.bat" platform="windows">

この例のような場合は、2 つの release セクションを作成します。 file タグは以下のようになり、

<file name="scripts/foo.bat" role="script">

release セクションは、このようになります。

<phprelease> <installconditions> <os>windows</os> </installconditions> <install name="scripts/foo.bat" as="foo.bat"/> </phprelease> <phprelease> <ignore name="scripts/foo.bat"/> </phprelease>

ふたつめの <phprelease> の中に <installconditions> タグを 設定し、その中で <os>unix</os> を記述することもすぐに できますが、それは必要ではないことに注意しましょう。 というのも、ふたつめの release タグは、windows システム以外の すべての場合に処理されるからです。

前のページ | ホーム | 次のページ
<dir> | 上に戻る | <file> のタスク

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


<license>

<license> -- ソフトウェアのライセンスおよび (オプションで) ライセンス文書への参照を指定する

リリースのライセンスを記述する

package.xml 1.0 では、license タグにはライセンスの名前のみが 含まれていました。package.xml 2.0 では、2 つのオプション属性 "uri" および "filesource" が存在します。 "uri" にはライセンス文書の uri を含めます。これは 例えば PHP ライセンスの場合は "http://www.php.net/license" となります。実際のパッケージの中にライセンス文書が含まれている場合、 そのファイルを指定するために "filesource" を使用します。

前のページ | ホーム | 次のページ
<stability> | 上に戻る | <contents>

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PECL 開発者向けの extsrcrelease および extbinrelease の変更

PECL 開発者向けの extsrcrelease および extbinrelease の変更 -- package.xml 2.0 の、PECL 固有の詳細情報

特別な拡張パッケージタグ

PECL 形式の PHP 拡張モジュールのタグのほとんどは、 PEAR 形式の PHP スクリプトのリリース時のものと同じです。 すべての PECL 開発者が知っておくべき、いくつかの extsrc/extbin 固有のタグは以下のとおりです。

表 16-1package.xml 2.0 における、PECL の extsrc/extbin 固有タグ

タグ 使用方法の説明
<providesextension> <providesextension> タグは <dependencies> の直後に 存在する必要があります。このタグは、このパッケージで提供される 拡張モジュールの名前をインストーラに通知し、パッケージ名と 拡張モジュール名を別にすることを可能とします。 これは、バイナリパッケージにおいて重要です (例えば PDO および PDO_windows やその他など)。
<providesextension>PDO</providesextension>
<srcpackage> あるいは <srcuri> <srcpackage> あるいは <srcuri> は <providesextension> の後に続ける必要があります。 バイナリ拡張パッケージは、<srcpackage> タグ (<channel> を含む package.xml 用) あるいは <srcuri> タグ (<uri> を含む package.xml 用) のいずれかを定義する必要があります。
<name>PDO_windowsbin</name>
<channel>pecl.php.net</channel>
<!-- 省略 -->
<providesextension>PDO</providesextension>
<srcpackage>PDO</srcpackage>
あるいは、
<name>Foo_windowsbin</name>
<uri>http://www.example.com/Foo_windowsbin-1.5.0.tgz</uri>
<!-- 省略 -->
<providesextension>Foo</providesextension>
<srcuri>http://www.example.com/Foo-1.5.0.tgz</srcuri>

前のページ | ホーム | 次のページ
PECL 開発者向けの特別な情報 | 上に戻る | package.xml バージョン 2.0 のタグの詳細リファレンス

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PECL 開発者向けの特別な情報

目次
PECL 開発者向けの extsrcrelease および extbinrelease の変更 -- package.xml 2.0 の、PECL 固有の詳細情報
前のページ | ホーム | 次のページ
パッケージ定義ファイル package.xml、バージョン 2.0 | 上に戻る | PECL 開発者向けの extsrcrelease および extbinrelease の変更

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


<phprelease>、<extbinrelease>、<extsrcrelease>、<bundle>

<phprelease>、<extbinrelease>、<extsrcrelease>、<bundle> -- リリースの型を指定する

リリースの型を記述する

package.xml 1.0 ではリリース型は 1 つだけでした。package.xml 2.0 では、3 つの新しいリリース型 (拡張モジュールのバイナリリリース、 拡張モジュールのソースリリース、パッケージバンドルリリース) を提供することで、リリース形式についてより細かな制御ができるように なっています。

通常のリリースタグ (phprelease、extsrcrelease、extbinrelease) には、 すべて 2 つのオプションのセクション <installconditions> および <filelist> が含まれています。これらのセクションの目的は、 対象 OS やその他の一般的なインストール条件に応じて異なるファイルを インストールさせることです。

もう少し明確に言いましょう。これまで、package.xml には 1 つの <release> タグしかありませんでした。package.xml 2.0 では 複数の release タグを並べてそれぞれ別のインストールセットを 指定することが可能です。tar ボール内のファイル一覧と インストーラがその一覧を処理する手順を分離することで、 複雑なインストールファイルセットを単純化することになります。 この変更により、インストールファイルセットのデバッグが非常に シンプルになります。

<filelist> タグに含めることのできるタグは、<install> および <ignore> の 2 つだけです。 install には、"name" および "as" の 2 つの 属性が必須となります。install タグは、package.xml の <file> における install-as 属性と同様の働きをします、つまり、 リストに含まれるファイルの新しいインストール場所を指定します。 ignore タグは、ファイルを完全に無視するために使用します。

<installconditions> タグには 4 つのタグを含めることができます。 その書式は <dependencies> セクションにある <php>、<extension>、<os> および <arch> です。 extension タグ以外のタグはそれぞれ 1 度ずつしか使用できませんが、 extension タグは無制限に使用可能です。

php タグは、インストールセットが対象とする PHP のバージョンあるいは バージョンの範囲を指定するために使用します。

extension タグは、正常にインストールするために必要な拡張モジュールを 指定するために使用します。

os タグは、正常にインストールするために必要な OS を指定するために 使用します。unix はすべての種類にマッチし、linux はすべての linux 系 OS にマッチします。また Mac OS X に対応するのは darwin で、* を指定するとすべての OS にマッチします。

arch タグは、正常にインストールするために必要な uname 文字列、 あるいはその一部を指定します。

<phprelease>

リリース型 phprelease は、PEAR 形式の PHP スクリプトパッケージの リリース向けに設計された型です。これは、検証規則を 多少変更します。まず最初に、 <contents> タグは必ず <file> タグおよび <dir> タグを含まなければ なりません。ファイルのロールとして有効なのは role="php"、 role="data"、role="doc" および role="test"、 それに加えて利用者が PHP リリースで使用するためにインストールした 独自ロールのみとなります。

<extsrcrelease>

リリース型 extsrcrelease は、PECL 形式の PHP 拡張モジュールリリース、 つまり使用するためにはコンパイルが必要となるリリースを表します。 これは、検証規則を多少変更します。まず最初に、 <contents> タグは必ず <file> タグおよび <dir> タグを含まなければ なりません。ファイルのロールとして有効なのは role="src"、 role="data"、role="doc" および role="test" それに加えて利用者が拡張ソースリリースで使用するためにインストールした 独自ロールのみとなります。

さらに、パッケージが提供する拡張モジュール名を記述した <providesextension> タグが package.xml に存在する必要があります。

<extbinrelease>

リリース型 extbinrelease は、PECL 形式の PHP 拡張モジュールバイナリ リリース、つまりコンパイル済みのリリースを表します。 これは、検証規則を多少変更します。まず最初に、 <contents> タグは必ず <file> タグおよび <dir> タグを含まなければ なりません。ファイルのロールとして有効なのは role="ext"、 role="data"、role="doc" および role="test" それに加えて利用者が拡張バイナリリリースで使用するためにインストールした 独自ロールのみとなります。

さらに、拡張モジュールのソースを提供するパッケージを記述した <srcpackage> あるいは <srcuri> タグ、およびパッケージが 提供する拡張モジュール名を記述した <providesextension> タグが package.xml に存在する必要があります。

<bundle>

リリース型 bundle は、いくつかのパッケージリリースをひとつのパッケージに まとめ、同時にインストールできるようにするために設計されています。 これは、アプリケーション全体をひとつの tar ボールにしたり、パッケージ群を ひとつの tar ボールで配布したりする場合に使用可能です。

他のリリース型と異なり、bundle リリースの <contents> タグには <bundledpackage> タグだけが含まれている必要があります。 bundledpackage の内容は、"Foo-1.2.3.tgz" のようなリリース名となります。

さらに <bundle/> タグは何も要素を含んではいけません。

前のページ | ホーム | 次のページ
<usestask> | 上に戻る | パッケージのリリース

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


<stability>

<stability> -- リリースおよび API の安定性を指定する

リリースの安定性および API の安定性を記述する

package.xml 1.0 では、これは "state" と呼ばれていましたが、 あまり的確な表現ではありませんでした。package.xml 2.0 では stability (安定性) という呼び方を使用するようになり、version と同様にリリース・API の 2 つに分けて考えるようになりました。

リリースの安定性は、package.xml 1.0 での state と同じものです。 以下のいずれかとなります。

  1. snapshot - 開発中のある特定の時期の記録を固めたもの。

  2. devel - 最も新しい非製品版リリース。これは、本当に最新版で テストを行っていないコードに使用します。

  3. alpha - 新しい非製品版リリース。これは、API が安定していない 新しいコードやテストを行っていないコードに使用します。

  4. beta - 非製品版リリース。これは、API が安定しており 安定版リリースとほぼ同等の状態のコードに使用します。beta リリースと するためには、リグレッションテストおよびドキュメントが存在するか あるいは近いうちに完成することが条件となります。 リリース候補 (RC) 版には beta を使用します。

  5. stable - 製品版リリース。これは、API が安定しており リグレッションテストおよびドキュメントが存在する必要があります。

API の安定性は情報のみであり、インストーラは使用しません。

前のページ | ホーム | 次のページ
<version> | 上に戻る | <license>

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


package.xml バージョン 2.0 のタグの詳細リファレンス

目次
<channel> -- チャネルとは?
<uri> -- どのような場合に <uri> を使うのか?
<lead>、<developer>、<contributor> および <helper> -- リリースの開発者についての文書
<version> -- package.xml 2.0 でのバージョン管理
<stability> -- リリースおよび API の安定性を指定する
<license> -- ソフトウェアのライセンスおよび (オプションで) ライセンス文書への参照を指定する
<contents> -- リリースの内容を指定する
<dir> -- <contents> タグ内のディレクトリを記述する
<file> -- <contents> タグ内のファイルを記述する
<file> のタスク -- 特化したファイルインストールおよびファイル操作
<compatible> -- <compatible> で、バージョンの制限を緩和する
<dependencies> -- package.xml 2.0 における依存性の指定
<usesrole> -- <contents> で使用する独自のファイルロールを記述する
<usestask> -- <contents> で使用する独自のタスクを記述する
<phprelease>、<extbinrelease>、<extsrcrelease>、<bundle> -- リリースの型を指定する

詳細な説明が必要なタグについて、ここで説明します (未完成)。

前のページ | ホーム | 次のページ
PECL 開発者向けの extsrcrelease および extbinrelease の変更 | 上に戻る | <channel>

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


<file> のタスク

<file> のタスク -- 特化したファイルインストールおよびファイル操作

ファイルのインストールをカスタマイズするためにタスクを使用する

タスクにより、柔軟でカスタマイズ可能なファイル操作や複雑な インストール処理が可能となります (そのため、"tasks" という 名前になっています)。デフォルトでは、PEAR には 4 つのタスクがあります。 しかし、PEAR/Tasks ディレクトリに既存のタスクと同様の規約に従った ファイルを追加することで、簡単にタスクを追加することが可能です。 このページでは独自のタスクを作成する方法については説明しません。 package.xml 内でタスクを使用する方法についてのみ説明します。

PEAR とともに配布されているのは、3 つの基本的なタスクと 1 つの 複雑なタスクです。基本的なタスクは "replace"、"windowseol" および "unixeol" で、複雑なタスクが "postinstallscript" となります。 "replace" は、package.xml 1.0 の古いタグ <replace> とほぼ同じもので、ファイルの中身についてテキストの置換を行います。 "windowseol" および "unixeol" は、 DOS のバッチファイル (.bat) や Unix のシェルスクリプトなどのファイルの 行末コードを適切に操作します。 "postinstallscript" により、更なるインストール関数を 実行するためのスクリプトを動作させることを選択可能です。

<tasks:replace> - ファイルの内容をカスタマイズする

replace タスクには、3 つの必須属性があります。

  1. type - これは package-info あるいは pear-config のいずれかである必要があります。package-info の場合は package.xml 自身から取得した情報をもとに置換を行い、 pear-config の場合は設定変数 (
    pear config-show
    で表示されるもの) の値をもとに置換を行います。

  2. from - 変換元となるテキストです。 通常のテキストと区別するため、これは伝統的に "@" で囲まれ、例えば from="@version@" のようになります。

  3. to - "from" が現れた際に変換するために 使用する抽象項目。package-info の場合に変換候補として指定可能なのは、 以下のいずれかです。version、release_date、 release_state、release_license、release_notes、apiversion、name、 summary、description、notes、time、date、そしてパッケージに よっては extends、srcpackage、srcuri および providesextension。

package-info 型の置換はパッケージの作成時に行われることに注意しましょう。 そのため、.tgz/.tar リリースの中には置換後のファイルが含められます。 pear-config 型の置換はインストールシステムによってのみ行われ、 インストールの際に実行されます。

<tasks:windowseol> - 行末を \r\n に変換する

このタスクは、Windows 固有のファイル (DOS のバッチファイルなど) を 非 Windows 環境 (たとえば行末を \n に変換してしまう Unix など) で 作成することを可能にします。このタスクは、インストール時だけでなく パッケージ作成時にも実行されることに注意しましょう。そのため、 .tgz/.tar リリースの中には正しい行末のファイルが含まれます。

<tasks:unixeol> - 行末を \n に変換する

このタスクは、Unix 固有のファイル (シェルスクリプトなど) を 非 Unix 環境 (たとえば行末を \r\n に変換してしまう Windows など) で 作成することを可能にします。このタスクは、インストール時だけでなく パッケージ作成時にも実行されることに注意しましょう。そのため、 .tgz/.tar リリースの中には正しい行末のファイルが含まれます。

<tasks:postinstallscript> - 究極のカスタマイズ

postinstallscript タスクは、参照しているファイルが インストール後に実行するスクリプトであることを インストーラに通知します。

セキュリティ上の理由により、このスクリプトはユーザによって 手動で実行させなければなりません。そのため、インストーラは このタスクをその他のタスクとは別の特別なコードで管理します。

<postinstallscript> タグでは、インストーラがユーザからの入力を 取得するために使用するパラメータを定義しています。 Web インストーラおよびコマンドラインインストーラの両方をサポートするには、 すべての入力を PEAR で処理し、インストール後スクリプトに所定の形式で 渡す必要があります。あなたがしなければならないことは、 <postinstallscript> タグの内部で使用するパラメータを定義することだけです。

パラメータつきの単純なインストール後スクリプトを表す xml は、 このようになります。

<tasks:postinstallscript>
 <paramgroup>
  <id>first</id>
  <param>
   <name>test</name>
   <prompt>Testing Thingy</prompt>
   <type>string</type>
  </param>
 </paramgroup>
</tasks:postinstallscript>

この段階では、"string" 型のみがサポートされることに注意しましょう。 その他の型もいずれサポートされる予定です。 次に、より複雑な例を示します。

<tasks:postinstallscript>
 <paramgroup>
  <id>first</id>
  <param>
   <name>test</name>
   <prompt>Testing Thingy</prompt>
   <type>string</type>
   <default>hi</default>
  </param>
  <param>
   <name>test2</name>
   <prompt>Testing Thingy 2</prompt>
   <type>string</type>
  </param>
 </paramgroup>
 <paramgroup>
  <id>second</id>
  <name>first::test</name>
  <conditiontype>preg_match</conditiontype>
  <value>g+</value>
  <param>
   <name>test</name>
   <prompt>Testing Thingy a</prompt>
   <type>string</type>
   <default>hi</default>
  </param>
  <param>
   <name>test2</name>
   <prompt>Testing Thingy b</prompt>
   <type>string</type>
  </param>
 </paramgroup>
</tasks:postinstallscript>

このスクリプトには 2 つのパラメータグループがあります。まず最初の グループが処理された後に、2 番目のグループが処理されます (自然な 流れです)。しかし、ここでは 2 番目のグループは条件付きの パラメータグループとなっています。これは、前のパラメータグループでの ユーザの入力を検証し、それが条件を満たす場合にのみプロンプトを 表示します。条件は、3 つのタグ <tasks:name>、<tasks:conditiontype> および <tasks:value> で指定します。3 つのタグはすべて必須であり、 ひとつでも欠けていると xml の妥当性検証に失敗することに注意しましょう。

<tasks:name> は、前のパラメータグループのパラメータ名です。書式は グループ ID::パラメータ名 のようになります。つまり、上の例の "first::test" は、<tasks:paramgroup> first の <tasks:param> test のことを指します。

<tasks:conditiontype> は、<tasks:name> で指定したパラメータの値を どのように処理するかを定義します。"="、"!=" あるいは "preg_match" のいずれかとなります。

  • =: これは (明らかに) パラメータの値が <tasks:value> タグと 等しいかどうかを調べます。

  • !=: これは (明らかに) パラメータの値が <tasks:value> タグと 等しくないかどうかを調べます。

  • preg_match: これは、<tasks:value> タグの内容を、 preg_match() 関数の / および / の間の値として使用します。正規表現には、両端の // を 「含めないでください」。2 番目の <tasks:paramgroup> において、 値 "g+" は以下のように扱われます。
    <?php
preg_match('/g+/', first::test value)
?>

前のページ | ホーム | 次のページ
<file> | 上に戻る | <compatible>

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


<uri>

<uri> -- どのような場合に <uri> を使うのか?

どのような場合に <channel> ではなく <uri> を使うのか

あなたがチャネルサーバを持っておらず、パッケージを公開して 他のパッケージがあなたのパッケージに依存することを許可したいのなら、 <uri> を使用します。このタグには、パッケージの特定のバージョンの .tgz ファイルをダウンロードするための静的な uri を含めます。

外部のパッケージとの依存性が必要ないのであれば、パッケージのチャネル名 として単純に pear.php.net を指定しておきます。

例えば、もしパッケージ Foo のバージョン 1.1.0 を www.example.com で 公開したいのなら、uri "http://www.example.com/Foo-1.1.0" を使用します。uri には、フルパスから「拡張子を除いたもの」を指定する 必要があることに注意しましょう。これにより、 Foo-1.1.0.tgz および gzip を使用できないユーザのための Foo-1.1.0.tar の両方を提供できます。

参考

<channel>

前のページ | ホーム | 次のページ
<channel> | 上に戻る | <lead>、<developer>、<contributor> および <helper>

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


<usesrole>

<usesrole> -- <contents> で使用する独自のファイルロールを記述する

独自のファイルロールを記述する

PEAR がデフォルトで提供する標準のファイルロールは以下のとおりです。

  • php

  • data

  • doc

  • test

  • script

  • src

  • ext

サードパーティが提供する、より高度なインストール処理を行えるロールを パッケージで使用したい場合は、<file> タグの中に以下のように そのロールを指定するだけです。

<file role="foo"/>

しかし、独自のロール "foo" を提供するパッケージを ユーザがインストールしていない場合は、インストール時に "unknown role 'foo'" というエラーが出てしまいます。 これはあまり親切とはいえません。

<usesrole> タグを使用すると、インストーラはその代わりに "this package uses the custom role 'foo', install package pear.example.com/Foo to use" というメッセージを表示するようになります。

<usesrole>
 <role>foo</role>
 <package>Foo</package>
 <channel>pear.example.com</channel>
</usesrole>

静的 URI のパッケージ (チャネルを使用しないパッケージ) も サポートされていることに注意しましょう。

<usesrole>
 <role>foo</role>
 <uri>http://pear.example.com/Foo-1.2.0</uri>
</usesrole>

前のページ | ホーム | 次のページ
<dependencies> | 上に戻る | <usestask>

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


<usestask>

<usestask> -- <contents> で使用する独自のタスクを記述する

独自のファイルタスクを記述する

PEAR がデフォルトで提供する標準のファイルタスクは この場所 に記述されています。

サードパーティが提供するタスクをパッケージで使用したい場合は、 <file> タグの中に以下のようにそのタスクを指定するだけです。

<file role="php">
 <tasks:foo/>
</file>

しかし、独自のタスク "foo" を提供するパッケージを ユーザがインストールしていない場合は、インストール時に "unknown task 'foo'" というエラーが出てしまいます。 これはあまり親切とはいえません。

<usestask> タグを使用すると、インストーラはその代わりに "this package uses the custom task 'foo', install package pear.example.com/Foo to use" というメッセージを表示するようになります。

<usestask>
 <task>foo</task>
 <package>Foo</package>
 <channel>pear.example.com</channel>
</usestask>

静的 URI のパッケージ (チャネルを使用しないパッケージ) も サポートされていることに注意しましょう。

<usestask>
 <task>foo</task>
 <uri>http://pear.example.com/Foo-1.2.0</uri>
</usesrole>

前のページ | ホーム | 次のページ
<usesrole> | 上に戻る | <phprelease>、<extbinrelease>、<extsrcrelease>、<bundle>

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


<version>

<version> -- package.xml 2.0 でのバージョン管理

リリースバージョンおよび API のバージョンを記述する

package.xml 1.0 では、version は単なるバージョンでした。 package.xml 2.0 では、バージョン管理をリリースおよび API の 2 つに分割しました。

リリースバージョンは、package.xml 1.0 でのバージョンと同じものです。 このバージョンは、パッケージ作成者によって注意深く検証されます。

API バージョンは情報のみであり、インストーラは使用しません。 インストーラは、パッケージ時の代替としてこれを使用することが可能です。 これは、getApiVersion() のようなメソッドを 実装する場合に有用です。 さらに、API バージョンの検証は非常に緩やかなもので、単に version_compare() と互換性のある形式かどうかだけを調べるものです。

前のページ | ホーム | 次のページ
<lead>、<developer>、<contributor> および <helper> | 上に戻る | <stability>

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


channel.xml

channel.xml -- チャネル定義ファイル

チャネルを定義する方法

チャネルの機能を調べるのは簡単です。 channel.xml を定義する XSD スキーマが http://pear.php.net/dtd/channel-1.0.xsd から取得可能です。 channel.xml では以下の要素を定義します。

  1. チャネル名。

  2. チャネル名に対するエイリアス (オプション)。

  3. チャネルの目的についての概要。

  4. ダウンロードやパッケージングの際にパッケージの独自検証を行う オプションのパッケージ。

  5. チャネルがサポートするプロトコルの一覧 (XML-RPC、SOAP および REST がサポートされます)。

  6. ミラーサイトとそのサイトがサポートするプロトコルの一覧。

これは、すべての要素を含んだ channel.xml の例です。

<channel version="1.0"
         xsi:schemaLocation="http://pear.php.net/channel-1.0
                             http://pear.php.net/dtd/channel-1.0.xsd">
 <name>pear.example.com</name>
 <suggestedalias>foo</suggestedalias>
 <summary>Example channel.xml</summary>
 <validatepackage version="1.3.4">Foo_Validate</validatepackage>
 <servers>
  <primary port="8080" ssl="yes">
   <xmlrpc> <!-- デフォルトのパスは xmlrpc.php です -->
    <function version="1.0">logintest</function>
    <function version="1.0">package.listLatestReleases</function>
    <function version="1.0">package.listAll</function>
    <function version="1.0">package.info</function>
    <function version="1.0">package.getDownloadURL</function>
    <function version="1.1">package.getDownloadURL</function>
    <function version="1.0">package.getDepDownloadURL</function>
    <function version="1.1">package.getDepDownloadURL</function>
    <function version="1.0">package.search</function>
    <function version="1.0">channel.listAll</function>
   </xmlrpc>
   <rest> <!-- デフォルトのパスはなく、必ずベース URL を指定しなければなりません -->
    <baseurl type="package">http://pear.example.com/rest/1.0/package</baseurl>
    <baseurl type="category">http://pear.example.com/rest/1.0/category</baseurl>
   </rest>
   <soap path="soapy.php"> <!-- デフォルトのパスは soap.php です -->
    <function version="1.0">package.listAll</function>
   </soap>
  </primary>
  <mirror server="foo2.example.com/pearmirror">
   <xmlrpc path="mirrorxmlrpc.php"> <!-- デフォルトのパスは xmlrpc.php です -->
    <function version="1.0">package.listLatestReleases</function>
    <function version="1.0">package.listAll</function>
    <function version="1.0">package.info</function>
    <function version="1.0">package.getDownloadURL</function>
    <function version="1.1">package.getDownloadURL</function>
    <function version="1.0">package.getDepDownloadURL</function>
    <function version="1.1">package.getDepDownloadURL</function>
    <function version="1.0">package.search</function>
   </xmlrpc>
   <rest> <!-- デフォルトのパスはなく、必ずベース URL を指定しなければなりません -->
    <baseurl type="package">http://foo2.example.com/rest/1.0/package</baseurl>
   </rest>
  </mirror>
 </servers>
</channel>

<name>

チャネル名。これは、提供されているパッケージについての詳細情報を 調べるためにユーザが閲覧するサーバ名となります。 例えば PEAR パッケージは pear.php.net チャネルにあり、PECL パッケージは pecl.php.net チャネルにあります。過去との互換性のため、package.xml バージョン 1.0 を使用している既存パッケージは pear.php.net チャネルに 属するものとみなされます。

サーバ名をチャネル名に使用することの利点は、auto-discovery が 使用できるようになること、パッケージの配置が簡単になることです。

チャネルはドキュメントルートに存在する必要はなく、チャネルにパスを 含めることもできます。例えば以下のようなチャネル名が可能です。 foo.example.com/path/to/pear. <suggestedalias> を指定しない場合、チャネルの利用者は

$ pear install foo.example.com/path/to/pear/Packagename

とタイプしなければならないことに注意しましょう。

チャネル定義ファイル "channel.xml" がチャネルの ルートディレクトリに存在する必要があります。チャネルが "pear.example.com" の場合、channel.xml が "http://pear.example.com/channel.xml" に存在しなければ なりません。チャネルが "pear.example.com/path/to/pear" の場合、channel.xml が "http://pear.example.com/path/to/pear/channel.xml" に存在しなければなりません。

<suggestedalias>

<suggestedalias> は、パッケージをチャネルからインストールする際に 使用する、短くて使用しやすい名前を定義します。例えば、 pear.php.net チャネルの suggested alias は "pear" です。 チャネルのエイリアスは、6 文字を超えないようにしましょう。 利用者は、インストールやアップグレードの際に毎回これをタイプしなければ なりません。エイリアスが長ったらしいと、大変なことになります。

もともとこのタグは <alias> と呼ばれていましたが、利用者に より柔軟性を提供するために <suggestedalias> という名前に 変わりました。チャネルの所有者が提案 (suggest) するエイリアスが 気に入らない場合、利用者は channel-alias コマンドで簡単に 別のエイリアスを設定することができます。

<summary>

このタグでは、このチャネルで見つけられるパッケージについての情報を 簡単に説明します。これは、利用者が list-channels コマンドを 使用した際に表示されます。

<validatepackage>

多くのチャネルでは、パッケージの命名規則や バージョン番号の付与方法については PEAR がデフォルトで提供する 規則で十分でしょう。しかし、中にはこの規則が厳しすぎると感じる チャネルがあるかもしれません。また逆に緩やかすぎると感じることも あるかもしれません。<validatepackage> タグでは それをカスタマイズする機能を提供します。

省略した場合、インストーラは PEAR_Validate クラスを使用します。より緩やかなバージョン番号付与規則を提供する PEAR_Validate_PECL クラスが存在することに 注意しましょう。これは例えば、バージョン番号の規則に違反した際の PEAR の警告にかかわりたくない pecl.php.net のようなチャネルの ためのものです。

<validatepackage> には、version 属性およびテキスト要素が 必要です。テキスト要素にはパッケージ名を指定しなければなりません。 このパッケージ名は、以下のようにインストールできる必要があります。

$ pear install channelname.example.com/Packagename-version

この節のはじめに示した channel.xml の例では、

$ pear install pear.example.com/Foo_Validate-1.3.4

のようになります。さらにこのパッケージでは、パッケージ名に対応する クラスが提供されている必要があり、このクラスは PEAR の命名規約に したがったファイル名 (すべてのアンダースコア "_" を パス区切り文字 "/" に変換します。つまり、Foo_Validate は Foo/Validate.php となります) のファイルに存在する必要があります。 さらにこのクラスは PEAR_Validate を継承していなければなりません。 既存の検証機能を拡張するためには、"validate" ではじまる メソッド (validateVersion() など) を オーバーライドします。

<servers>: <primary> and <mirror>

channel.xml および PEAR インストーラでは、ミラーリングが明示的に サポートされています。利用者は、設定オプション default_channel を使用して好みのミラーを 選択することが可能で、channel.xml では使用可能なすべてのミラーを <mirror> タグで記述することができます。

プロトコルの場所を定義し、メインチャネルサーバでサポートされている プロトコルの一覧を定義するために <primary> タグを使用します。 PEAR インストーラがサーバに接続する方法を変更するために、 オプションの属性を使用することが可能です。インストーラが XML-RPC および SOAP サービスに接続する際の方法を定義するために "port" 属性を使用します。REST サービスは、常に 独立した <baseurl> タグで制御されます。

<xmlrpc>, <soap>, <rest>

channel.xml は、Web サービスのプロトコルとして XML-RPC、SOAP および REST を認識します。しかし、現時点で PEAR インストーラが サポートしているのは XML-RPC のみです。近いうちに REST も サポートされる予定です。今のところ、近いうちに SOAP がサポートされる予定はありませんが、将来それが実装された際にも channel.xml は対応可能なようになっています。

<xmlrpc> および <soap> タグの書式は同じです。それぞれの タグにはオプションの属性 "path" を含めることが可能で、 これによって PEAR に問合せ先 URL を教えます。デフォルトのパスは プロトコル.php、つまり xmlrpc.php あるいは soap.php となります。 言い換えれば、上の例の channel.xml で定義されたチャネル pear.example.com の XML-RPC 関数にアクセスするためには、インストーラは https://pear.example.com:8080/xmlrpc.php (XML-RPC 関数の場合)、あるいは https://pear.example.com:8080/soapy.php (SOAP 関数の場合) に問い合わせます。

<rest> タグは REST の設計思想を反映しています。各リソースは <baseurl> タグ内のベース URL で定義され、インストーラは XML-RPC あるいは SOAP が提供するのと同じ情報を ハイパーリンクを通じて取得します。 必須属性 "type" により、ベース URL から提供される情報の 種類およびそれをパースする方法をインストーラに教えます。

<function>

<function> タグは、きわめてシンプルです。必須属性 version によって API を、そしてテキスト要素によって関数の名前を インストーラに教えます。以下のように、バージョンの違う複数の関数を 共存させることが可能であることに注意しましょう。
<function version="1.0">package.getDownloadURL</function>
<function version="1.1">package.getDownloadURL</function>
新しい API が過去との互換性を保っている場合、使用可能なすべての バージョンを定義しておきましょう。これにより、旧バージョンの インストーラもその API を使用できるようになります。

なぜ wsdl のような標準を使用しないのですか?

皆さんの中には「Web サービスを探すために、なぜまた新たな標準を 作ったりするのか?」と思うかたもおられるでしょう。答えは単純です。 channel.xml は、java における WSDL の役割を担うものでは ありませんし、また XML-RPC に取って代わるものでもありません。 channel.xml は、これらの技術の上位階層に位置するものです。 大事なのはサポートされているリモートプロトコルの一覧を すばやく取得することであり、それが何を行うのかを説明することでは ありません。

PEAR インストーラは、一般的なパラメータや返り値のリストが必要ないほど 専門化されており、xml-rpm 関数 package.info バージョン 1.0 が 何を必要として何を返すのかを正確に知っています。 それ以外の情報は、単に帯域およびディスク領域を浪費するだけになります。

前のページ | ホーム | 次のページ
チャネル | 上に戻る | XML-RPC 関数

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML-RPC 関数

XML-RPC 関数 -- XML-RPC 関数の API ドキュメント

標準チャネルではどんな XML-RPC 関数が使用可能?

標準 PEAR チャネルがサポートしている XML-RPC 関数の一覧は以下のとおりです。

  • logintest - スタブ関数

  • package.getDownloadURL - パッケージをダウンロードするための URL を取得する

  • package.getDepDownloadURL - パッケージの依存関係をダウンロードするための URL を取得する

  • package.info - パッケージの情報を取得する

  • package.listAll - 全パッケージの一覧および各パッケージの詳細情報を取得する

  • package.listLatestReleases - 全パッケージの一覧および各パッケージの最新バージョンを取得する

  • package.search - 条件に一致するパッケージを検索する

channel.listAll を実装することも可能ですが、これは pear.php.net および pecl.php.net によってのみ実装されることを推奨します。 というのは、これは update-channels コマンドによって 公式なチャネルの一覧を取得するために使用されるものだからです。

logintest

xml-rpc 関数 logintest は login コマンドからコールされ、 論理型の TRUE を返します。

package.getDownloadURL

false|struct package.getDownloadURL (struct packageinfo [, string preferred_state = stable [, (v1.1) string installed_version = false]])

false|struct packageinfo

以下の形式の配列。

array(
        'channel' => チャネル名,
        'package' => パッケージ名,
        ['version' => 取得したい特定のバージョン,]
        ['state' => 取得したい特定の状態,]
     )

version および state がともに設定されている場合、 version の内容は無視されます。

string preferred_state = stable

クライアント側の preferred_state。これは、安定バージョンでない リリースを除くために使用します。

string installed_version = false

現在クライアント側にインストールされているパッケージのバージョン。 バージョンを表す文字列か、インストールされていない場合には false となります。これは、 (version_compare(返す可能性のあるバージョン, インストールされているバージョン, "<") で定義される) 古いバージョンを返さないことを確実にするために使用します。

package.getDownloadURL 関数は、2 つあるいは 3 つの要素を持つ 配列を返します。

  • "version" => 返されるリリースのバージョン。

  • "info" => リリースの package.xml の完全な内容。

  • "url" => このリリースをダウンロードする URL。 preferred_state、installed_version および packageinfo の version/state によって決まる条件を満たす リリースが存在しない場合は、このインデックスは返されず そのかわりに最新リリースのバージョンおよび package.xml が返されます。

    url エントリには .tgz や .tar を含めません。例えば "http://pear.php.net/get/PEAR-1.4.0.tgz" ではなく "http://pear.php.net/get/PEAR-1.4.0" とします。

package.getDownloadURL のバージョン 1.0 では installed_version パラメータをサポートしていません。バージョン 1.1 ではサポートしています。 これが、2 つのバージョン間の唯一の違いです。

package.getDepDownloadURL

false|struct package.getDepDownloadURL (string xsdversion, struct dependency, struct parentpackage [, string preferred_state = stable [, (v1.1) string installed_version = false]])

string xsdversion

'1.0' あるいは '2.0' のいずれかであり、トップレベルの <package version="X.0"> タグの version 属性に 一致します。これにより、第 2 パラメータをどのように処理するのかを 決定します。

struct dependency

第 1 パラメータ xsdversion が '1.0' の場合、以下の形式の配列となります。

array(
        'name' => パッケージ名,
        'type' => 'pkg' - これ以外はエラー,
        'rel' => 'has', 'ge', 'le', 'lt', 'le', 'not', 'ne'
        ['version' => 取得したい特定のバージョン,]
     )

xsdversion が '2.0' の場合、以下の形式の配列となります。

array(
        'name' => パッケージ名,
        'channel' => パッケージチャネル - 以下を参照,
        ['min' => 最小バージョン番号 (この値を含む),]
        ['max' => 最大バージョン番号 (この値を含む),]
        ['exclude' => 例外とするバージョン番号 (文字列),
                      あるいは例外とする複数バージョンの配列,]
     )

channel があなたのチャネルと一致することを常に確かめなければ なりません。もしチャネルサーバが pear.php.net あるいは pecl.php.net 以外の場合は、xsdversion='1.0' のリクエストは すべて拒否しなければなりません。また、xsdversion='2.0' であっても channel があなたのチャネルと一致しないリクエストも 拒否しなければなりません。

struct parentpackage

親パッケージの情報で、以下の形式の配列となります。

array(
        'channel' => チャネル名,
        'package' => パッケージ名,
        'version' => 取得したい特定のバージョン,
     )

string preferred_state = stable

クライアント側の preferred_state。これは、安定バージョンでない リリースを除くために使用します。

string installed_version = false

現在クライアント側にインストールされている依存パッケージのバージョン。 バージョンを表す文字列か、インストールされていない場合には false となります。これは、 (version_compare(返す可能性のあるバージョン, インストールされているバージョン, "<") で定義される) 古いバージョンを返さないことを確実にするために使用します。

package.getDownloadURL と同様、package.getDepDownloadURL は 2 つあるいは 3 つの要素を持つ配列を返します。

  • "version" => 返されるリリースのバージョン。

  • "info" => リリースの package.xml の完全な内容。

  • "url" => このリリースをダウンロードする URL。 preferred_state、installed_version および packageinfo の version/state によって決まる条件を満たす リリースが存在しない場合は、このインデックスは返されず そのかわりに最新リリースのバージョンおよび package.xml が返されます。

    url エントリには .tgz や .tar を含めません。例えば "http://pear.php.net/get/PEAR-1.4.0.tgz" ではなく "http://pear.php.net/get/PEAR-1.4.0" とします。

package.getDepDownloadURL のバージョン 1.0 では installed_version パラメータをサポートしていません。バージョン 1.1 ではサポートしています。 これが、2 つのバージョン間の唯一の違いです。

package.info

false|struct package.info (string package [, string field = null])

string package

情報を取得するパッケージの名前。

string field = null

情報を取得するフィールドの名前。null の場合、この関数は 以下の要素を持つ配列を返します。

<?php
array(
    'name' => 'パッケージ名',
    'category' => 'カテゴリ名',
    'license' => 'パッケージのライセンス',
    'summary' => 'パッケージの概要',
    'description' => 'パッケージの説明',
    'releases' =>
    array( // すべてのリリースをバージョン番号をキーとして格納します
        '0.1' =>
        array(
          'license' => 'リリースのライセンス',
          'summary' => 'リリースの概要',
          'description' => 'リリースの説明',
          'releasedate' => 'リリース日',
          'releasenotes' => 'リリースノート',
          'state' => 'リリースの安定性',
          // 以下の項目はオプションです
          'deps' =>
          array(
            array( // 最新リリースの依存性
              'type' => 'package.xml <dep> の type',
              'relation' => 'package.xml <dep> の rel',
              'version' => 'package.xml <dep> の version、あるいは空の文字列',
              'name' => 'package.xml <dep> の name',
              'optional' => 'yes あるいは no',
            ),
            // すべての依存性について続けます
          ),
        ),
        // すべてのリリースについて続けます
        // これは、リリース日の新しい順に並べなければなりません
    ),
);
?>

もし第 2 パラメータを指定する場合、それは以下のいずれかでなければなりません。

  • authors - 現在のパッケージメンテナの一覧。形式は以下のとおりです。

    <?php
array(
    'handle1' =>
    array(
      'name' => 'メンテナの名前',
      'email' => 'maintainer@example.com',
      'role' => 'package.xml での role (lead, developer, contributor, helper)',
    ),
    'handle2' =>
    array(
      'name' => 'メンテナ 2 の名前',
      'email' => 'maintainer2@example.com',
      'role' => 'package.xml での role (lead, developer, contributor, helper)',
    ),
    // など
);
?>

  • category - このパッケージが所属するカテゴリ。

  • description - 最新リリースの説明。

  • license - 最新リリースのライセンス。

  • notes - 最新リリースのリリースノート。

  • releases - すべてのリリースについての情報。上で説明したような 形式となります。

  • summary - 最新リリースの概要。

package.listAll

struct package.listAll ([bool released_only = true [, bool stable_only = true]])

bool released_only = TRUE

TRUE を指定すると、リリースされていないパッケージは パッケージ一覧で返されません。

bool stable_only = TRUE

TRUE を指定すると、安定版リリースでないパッケージは パッケージ一覧で返されません。

この関数は、上で示した条件を満たすすべてのパッケージを このような形式の配列で返します。

array(
  array(
    'name' => 'パッケージ名',
    'category' => 'カテゴリ名',
    'license' => 'リリースのライセンス',
    'summary' => 'パッケージの概要',
    'description' => 'パッケージの説明',
    'stable' => '条件を満たす最新のリリースのバージョン',
    'unstable' => '最新の非安定版リリースのバージョン。stable_only の場合は false',
    'state' => '条件を満たす最新のリリースのリリース状態',
    'deps' =>
    array( // package.info と同様の形式
    )
  ),
  // など
);

package.listLatestReleases

struct package.listLatestReleases ([string state = ''])

string state = ''

'' の場合は全パッケージの最新リリースが返されます。それ以外の場合は 'snapshot'、'devel'、'alpha'、'beta' あるいは 'stable' の いずれかを指定する必要があり、この関数は state よりも 安定しているリリースの中で最新のものを返します。

state が 'beta' の場合は、この関数は beta あるいは stable の リリースの中で最新のものを返します。state が 'devel' の場合は、 この関数は devel、alpha、beta あるいは stable のリリースの中で 最新のものを返します。その他の場合も同様です。

この関数は、パラメータ "state" で指定した条件を満たす リリースを、すべてのパッケージについて以下の形式の配列で返します。

array(
  array(
    'package' => 'パッケージ名',
    'version' => 'リリースのバージョン',
    'state' => 'リリースの安定性',
    'filesize' => 'ダウンロードする .tgz ファイルの大きさ',
  ),
  // etc.
);

package.search

struct package.listAll (string fragment [, string|bool summary = false [, bool released_only = true [, bool stable_only = true]]])

string fragment

パッケージ名で検索する場合に使用する文字列。

string|bool summary = FALSE

false の場合、このパラメータは無視されます。それ以外の場合は、 最初のパラメータにマッチした結果をさらに絞り込むために、 このパラメータを使用してパッケージの概要文を検索します。

bool released_only = TRUE

TRUE を指定すると、リリースされていないパッケージは パッケージ一覧で返されません。

bool stable_only = TRUE

TRUE を指定すると、安定版リリースでないパッケージは パッケージ一覧で返されません。

この関数は、上で示した条件を満たすすべてのパッケージを このような形式の配列で返します。

array(
  array(
    'name' => 'パッケージ名',
    'category' => 'カテゴリ名',
    'license' => 'リリースのライセンス',
    'summary' => 'パッケージの概要',
    'description' => 'パッケージの説明',
    'stable' => '条件を満たす最新のリリースのバージョン',
    'unstable' => '最新の非安定版リリースのバージョン。stable_only の場合は false',
    'state' => '条件を満たす最新のリリースのリリース状態',
    'deps' =>
    array( // package.info と同様の形式
    )
  ),
  // など
);

前のページ | ホーム | 次のページ
channel.xml | 上に戻る | Custom File Roles

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Defining a customized role for use in a package.xml

To define a custom role, you need to create a package containing a single file. Here is a sample package.xml that could be a custom role:

<?xml version="1.0"?>
<package version="2.0" xmlns="http://pear.php.net/dtd/package-2.0"
    xmlns:tasks="http://pear.php.net/dtd/tasks-1.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
http://pear.php.net/dtd/tasks-1.0.xsd
http://pear.php.net/dtd/package-2.0
http://pear.php.net/dtd/package-2.0.xsd">
 <name>Chiarafoo</name>
 <channel>pear.chiaraquartet.net</channel>
 <summary>Chiarafoo role</summary>
 <description>
  The chiarafoo role installs files into your customized Foo directory
 </description>
 <lead>
  <name>Greg Beaver</name>
  <user>cellog</user>
  <email>cellog@php.net</email>
  <active>yes</active>
 </lead>
 <date>2005-03-21</date>
 <version>
  <release>1.0.0</release>
  <api>1.0.0</api>
 </version>
 <stability>
  <release>stable</release>
  <api>stable</api>
 </stability>
 <license uri="http://www.php.net/license">PHP License</license>
 <notes>
  Provides the chiarafoo file role
 </notes>
 <contents>
  <dir name="/" baseinstalldir="PEAR/Installer/Role">
   <file name="Chiarafoo.xml" role="php"/>
   <file name="Chiarafoo.php" role="php">
    <tasks:replace from="@package_version@" to="version" type="package-info"/>
   </file>
  </dir> <!-- / -->
 </contents>
 <dependencies>
  <required>
   <php>
    <min>4.2.0</min>
   </php>
   <pearinstaller>
    <min>1.4.3</min>
   </pearinstaller>
  </required>
 </dependencies>
 <phprelease/>
</package>

The XML file Chiarafoo.xml should be similar to this file:

<role version="1.0">
 <releasetypes>php</releasetypes>
 <installable>1</installable>
 <locationconfig>foo_dir</locationconfig>
 <honorsbaseinstall>1</honorsbaseinstall>
 <unusualbaseinstall />
 <phpfile>1</phpfile>
 <executable />
 <phpextension />
 <config_vars>
  <foo_dir>
   <type>directory</type>
   <default><php_dir/><constant>DIRECTORY_SEPARATOR</constant><text>Foo</text></default>
   <doc>directory where foo files are installed</doc>
   <prompt>PHP foo directory</prompt>
   <group>File Locations</group>
  </foo_dir>
 </config_vars>
</role>

The script in Chiarafoo.php is incredibly simple:

<?php
/**
 * PEAR_Installer_Role_Chiarafoo
 *
 * PHP versions 4 and 5
 *
 * LICENSE: This source file is subject to version 3.0 of the PHP license
 * that is available through the world-wide-web at the following URI:
 * http://www.php.net/license/3_0.txt.  If you did not receive a copy of
 * the PHP License and are unable to obtain it through the web, please
 * send a note to license@php.net so we can mail you a copy immediately.
 *
 * @category   pear
 * @package    Chiarafoo
 * @author     Greg Beaver <cellog@php.net>
 * @copyright  2005 Greg Beaver
 * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
 * @version    CVS: $Id: customroles.xml,v 1.4 2005/11/03 05:06:52 cellog Exp $
 * @link       http://pear.chiaraquartet.net/index.php?package=Chiarafoo
 * @since      File available since Release 0.1.0
 */

/**
 * @category   pear
 * @package    Chiarafoo
 * @author     Greg Beaver <cellog@php.net>
 * @copyright  2005 Greg Beaver
 * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
 * @version    Release: @package_version@
 * @link       http://pear.chiaraquartet.net/index.php?package=Chiarafoo
 * @since      Class available since Release 0.1.0
 */
class PEAR_Installer_Role_Chiarafoo extends PEAR_Installer_Role_Common
{
    /**
     * @param PEAR_Installer
     * @param PEAR_PackageFile_v2
     * @param array file attributes
     * @param string relative path to file in package.xml
     */
    function setup(&$installer, $pkg, $atts, $file)
    {
        // do something special with the installer
    }
}
?>

Since PEAR 1.4.3, nothing else is necessary for a successful implementation of a file role.

The contents of the role's XML file must contain these tags:

  • <releasetypes>

  • <installable>

  • <locationconfig>

  • <honorsbaseinstall>

  • <unusualbaseinstall>

  • <phpfile>

  • <executable>

  • <phpextension>

  • (optional) <config_vars>

The <releasetypes> tag

This tag can only contain one of the following values:

  • php

  • extsrc

  • extbin

In order to specify compatibility with multiple release types, use multiple <releasetypes> tags as in:

<releasetypes>php</releasetypes>
 <releasetypes>extsrc</releasetypes>
 <releasetypes>extbin</releasetypes>

releasetypes defines the kind of releases that this role can be used in. For instance, the "src" role is reserved for extsrc packages, and cannot be used in regular PEAR-style php releases. The "data" role can be used in any release, and would define <releasetypes> as:

<releasetypes>php</releasetypes>
 <releasetypes>extsrc</releasetypes>
 <releasetypes>extbin</releasetypes>

The <installable> tag

This tag must be either <installable>1</installable> or empty (<installable/>) and determines whether files utilizing this custom role can be installed. Any file that should be installed must set this to 1. Only roles such as the "src" role that is processed and used to create the files that are eventually installed should set this to an empty tag.

The <locationconfig> tag

This tag is used for all installable files to determine which configuration variable contains the directory in which the file should be installed. For instance, the php role uses the "php_dir" locationconfig, the data role uses "data_dir".

Our example role, chiarafoo, uses the "foo_dir" configuration variable, and then through the definition of <config_vars> tells the installer what foo_dir means. Note that once a custom role is installed, the user can config-set/ config-get/config-show the variable just like any other configuration variable!

<config_vars> can define more than one configuration variable, but note that more than 3 variables will trigger an error, disallowing any of them, as a security precaution.

The <honorsbaseinstall> tag

This tag controls whether a role reacts to the "baseinstalldir" attribute of a <file> or <dir> tag. Any role that honors baseinstalldir can potentially allow conflicting files from different packages, and so a check has to be made. A file role that does not honor baseinstalldir is always installed into:

Packagename/full/path/from/contents/file.ext

To specify this value, use <honorsbaseinstall>1</honorsbaseinstall> For all other cases, it should be an empty tag (<honorsbaseinstall/>)

The <unusualbaseinstall> tag

This tag controls whether a role that would normally ignore the "baseinstalldir" attribute of a <file> or <dir> tag would honor it, but still use the Packagename/baseinstalldir/full/path/from/contents/file.ext instead of baseinstalldir/full/path/from/contents/file.ext. Any role that supports the unusual baseinstalldir type cannot conflict with other files because the package name is always the parent directory. To specify this value, use <unusualbaseinstall>1</unusualbaseinstall> For all other cases, it should be an empty tag (<unusualbaseinstall/>)

The <phpfile> tag

This tag should be set to 1 (<phpfile>1</phpfile>) for any roles that contain php script files. These files are analyzed at package time, possibly catching errors before release. For all other cases, it should be an empty tag (<phpfile/>)

The <executable> tag

This tag should be set to 1 (<executable>1</executable>) for roles like the "script" role that should have their executable attribute set via chmod() on install. For all other cases, it should be an empty tag (<executable/>)

The <phpextension> tag

This tag should be used for roles like the "ext" role that provide a binary PHP extension. To specify this value, use <phpextension>1</phpextension> For all other cases, it should be an empty tag (<phpextension/>)

The optional <config_vars> tag

This tag is used to define configuration variables that should be added to the installer by this custom file role. Note that the installer will not allow a custom file role to create more than 3 configuration variables. To define configuration variables, create tags with the name of the configuration variable, and then sub-tags defining information about the configuration variable.

These tags are transformed into the PHP array format expected by the PEAR_Config class using an adapted version of Stephan Schmidt's excellent XML_Unserializer class (from the XML_Serializer package). As such, it is easiest to understand the XML format by examining existing configuration variables.

array(
        'password' => array(
            'type' => 'password',
            'default' => '',
            'doc' => '(maintainers) your PEAR account password',
            'prompt' => 'PEAR password (for maintainers)',
            'group' => 'Maintainers',
            ),
        // Advanced
        'verbose' => array(
            'type' => 'integer',
            'default' => PEAR_CONFIG_DEFAULT_VERBOSE,
            'doc' => 'verbosity level
0: really quiet
1: somewhat quiet
2: verbose
3: debug',
            'prompt' => 'Debug Log Level',
            'group' => 'Advanced',
            ),
        'preferred_state' => array(
            'type' => 'set',
            'default' => PEAR_CONFIG_DEFAULT_PREFERRED_STATE,
            'doc' => 'the installer will prefer releases with this state when installing packages without a version or state specified',
            'valid_set' => array(
                'stable', 'beta', 'alpha', 'devel', 'snapshot'),
            'prompt' => 'Preferred Package State',
            'group' => 'Advanced',
            ),
         );

These sample configuration values from the actual PEAR_Config class would translate into this XML:

<config_vars>
 <password>
  <type>password</type>
  <default />
  <doc>(maintainers) your PEAR account password'</doc>
  <prompt>PEAR password (for maintainers)</prompt>
  <group>Maintainers</group>
 </password>
 <verbose>
  <type>integer</type>
  <default><constant>PEAR_CONFIG_DEFAULT_VERBOSE</constant></default>
  <doc>verbosity level
0: really quiet
1: somewhat quiet
2: verbose
3: debug</doc>
  <prompt>Debug Log Level</prompt>
  <group>Advanced</group>
 </verbose>
 <preferred_state>
  <type>set</type>
  <default><constant>PEAR_CONFIG_DEFAULT_PREFERRED_STATE</constant></default>
  <doc>the installer will prefer releases with this state when installing packages without a version or state specified</doc>
  <valid_set>stable</valid_set>
  <valid_set>beta</valid_set>
  <valid_set>alpha</valid_set>
  <valid_set>devel</valid_set>
  <valid_set>snapshot</valid_set>
  <prompt>Preferred Package State</prompt>
  <group>Advanced</group>
 </preferred_state>
</config_vars>

Note that the simple array defining the set converts each value into a separate <valid_set> tag for the preferred_state configuration variable.

The <default> tag's value can accept either a simple string, or three different kinds of tags:

  • <text> - this will be converted into a PHP string

  • <constant> - the contents of this sub-tag will be used to retrieve the value of a pre-defined PHP constant, or a pre-defined PEAR constant (as defined in PEAR_Config or PEAR_Common) and substitute the value for the <constant> tag.

  • any default configuration variable. These include default_channel, preferred_mirror, remote_config, auto_discover, master_server, http_proxy, php_dir, ext_dir, doc_dir, bin_dir, data_dir, test_dir, cache_dir, php_bin, username, password, verbose, preferred_state, umask, cache_ttl, sig_type, sig_bin, sig_keyid, and sig_keydir.

    when used, the configuration variable should simply be an empty tag like <php_dir/>. The tag will be replaced with the default value of the configuration variable, not the currently assigned value.

For instance, this example default value:

<default><text0>hi there </text0><constant>PHP_OS</constant><text1> user, your default php_dir is </text1><php_dir/></default>

might convert into something like "hi there Linux user, your default php_dir is /usr/local/lib/php/pear".

Our example Chiarafoo role's foo_dir default value:
<default><php_dir/><constant>DIRECTORY_SEPARATOR</constant><text>Foo</text></default>

might convert into something like "/usr/local/lib/php/Foo" or "C:\php5\pear\Foo".

Note that in order to use multiple <constant> or <text> tags, you must append a numbered suffix as in the <text0> <text1> example above. Only one PEAR configuration variable may be used per default value.

Note that if you use <type>integer</type>, no matter what default value is specified, it will be casted into an integer by PEAR_Config.

前のページ | ホーム | 次のページ
Custom File Roles | 上に戻る | Custom File Tasks

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Creating customized tasks in PHP

Creating a custom task involves creating a class that validates xml, and performs the task when called upon. Tasks can be invoked in two situations: at package-time and at install-time. Each task can control whether it should be called at package-time, install-time, or at both times.

There are two kinds of tasks: simple and multiple. Most tasks are simple tasks. Simple tasks are self-contained: all customization is limited to that file. Multiple tasks are collected during installation and processed fully as a unit after files have been committed to disk, allowing more complex processing.

All simple tasks must define 3 methods, all multiple task must define 4 methods. These are:

  • validateXml()

  • init()

  • startSession()

  • run() (multiple tasks only)

validateXml()

true|array validateXml (PEAR_PackageFile_v2 $pkg, string|array $xml, PEAR_Config &$config, array $fileAttributes)

This method is called upon package.xml validation and should be used to validate the task's xml content. Upon error, a simple array of format array(CODE, message) must be returned. The code must be one of the following constants, as defined in PEAR/Task/Common.php:

  • PEAR_TASK_ERROR_NOATTRIBS - Attributes were expected, but none were present.

  • PEAR_TASK_ERROR_MISSING_ATTRIB - A specific attribute is not present.

  • PEAR_TASK_ERROR_WRONG_ATTRIB_VALUE - The value of an attribute is incorrect.

  • PEAR_TASK_ERROR_INVALID - Any other error in validation.

The error message should include the file name as defined by $fileAttributes['name'], and include as much useful information about the location of the validation error as possible.

PEAR_PackageFile_v2 $pkg

This is the package.xml object that contains the task.

string|array $xml

The raw parsed content of the task's xml as parsed from package.xml. Tags like <tasks:windowseol> that have no attributes or child elements will be passed an empty string ''. Otherwise, simple text content will be a string, and nested tags/attributes will be passed in as an array. Here is a list of sample xml and their parsed values:

  • <tasks:blah/>

    string("");

  • <tasks:blah>hello
</tasks:blah>

    string("hello");

  • <tasks:blah>hello
 <tasks:boo/>
</tasks:blah>

    array('_content' => 'hello', 'tasks:boo' => string(''))

  • <tasks:blah foo="one">
 <tasks:boo/>
</tasks:blah>

    array('attribs' => array('foo' => 'one'), 'tasks:boo' => string(''))

PEAR_Config $config

This is the current configuration object

array $fileAttributes

The parsed attributes of the <file> tag that encloses this tag. This is guaranteed to contain indices name, specifying the file name, and role, specifying the file role. Other attributes like baseinstalldir may be present but are not required, and so will not be guaranteed to be present for every file.

init()

void init (string|array $xml, array $fileAttributes, string|null $lastVersion)

The init() function is called immediately prior to the startSession() method, and should be used for initialization that is not directly related to file modification. This method may move to another location in the installation process at any time. The logical separation of initialization from task action is important and the order of execution can be depended upon.

string|array $xml

The raw parsed content of the task's xml as parsed from package.xml. Tags like <tasks:windowseol> that have no attributes or child elements will be passed an empty string ''. Otherwise, simple text content will be a string, and nested tags/attributes will be passed in as an array. Here is a list of sample xml and their parsed values:

  • <tasks:blah/>

    string("");

  • <tasks:blah>hello
</tasks:blah>

    string("hello");

  • <tasks:blah>hello
 <tasks:boo/>
</tasks:blah>

    array('_content' => 'hello', 'tasks:boo' => string(''))

  • <tasks:blah foo="one">
 <tasks:boo/>
</tasks:blah>

    array('attribs' => array('foo' => 'one'), 'tasks:boo' => string(''))

array $fileAttributes

The parsed attributes of the <file> tag that encloses this tag. This is guaranteed to contain indices name, specifying the file name, and role, specifying the file role. Other attributes like baseinstalldir may be present but are not required, and so will not be guaranteed to be present for every file.

string|null $lastVersion

This will be set to the string representing the version of the last installed version of this package. This is useful for determining whether the package is being upgraded or is a fresh installation. If the package is being installed for the first time, NULL will be passed in.

startSession()

string|false|PEAR_Error startSession (string $contents, string $dest)

For non-script tasks, startSession() is called to actually execute a task. The task should perform all needed operations on the file contents, and on success return the file contents regardless of any modification. These contents will be written to disk, so it is imperative that they be the full, original file contents if no modification is made to them.

For script tasks, startSession() is called to determine whether the script can be safely executed. For both task types, script and non-script, a return value of FALSE will cause the task to be silently skipped. A return value of a PEAR_Error will cause processing of all operations to stop, and an error message to be displayed by the installer prior to exiting. Any other return value will cause the script to be processed normally by the frontend as a post-installation script.

string $contents

The original contents of the file whose <file> tag in package.xml contains the task tag.

string $dest

The full path to the final installed file location. This is strictly informational, as the file does not yet exist, and should only be used for error messages or other processing that does not attempt to modify the file.

run()

false|string run (array $tasks)

The run() method should return FALSE on success, and an error message if there is a problem. This method is called only for tasks that define $this->type as multiple. For each task within package.xml that has this task, the run() method will be called with an array containing all of the task objects from the package.xml.

array $tasks

An array of task objects.

前のページ | ホーム | 次のページ
Custom File Tasks | 上に戻る | Post-installation Scripts

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structure of a post-install script

The post-install script class must contain two methods, one named init(), and the other named run(). The init() method is called at the same time as all other post-install scripts. The run() method is called at the conclusion of each parameter group in order to process the user's responses to queries.

The init() method

void init (PEAR_Config $config, PEAR_PackageFile_v2 $self, string|null $lastInstalledVersion)

PEAR_Config $xml

The current configuration used for installation.

PEAR_PackageFile_v2 $self

The package.xml contents as abstracted by this object.

string|NULL $lastInstalledVersion

The last version of this package that was installed. This is a very important parameter, as it is the only way to determine whether a package is being installed from scratch, or upgraded from a previous version. Using this parameter, it is possible to determine what incremental changes, if any, need to be performed.

The run() method

bool run (array $infoArray, string $paramGroupId)

array $infoArray

if $paramGroupId is _undoOnError, then $infoArray will contain a list of successfully completed parameter group sections. This can be used to restore any system changes made by the installation script.

Otherwise, $infoArray contains the results of the user input from the most recent <paramgroup> section.

string $paramGroupId

This variable either contains _undoOnError or the contents of the most recent <paramgroup>'s <id> tag. Note that paramgroup id cannot begin with an underscore (_), and so _undoOnError can only be triggered by the PEAR installer.

前のページ | ホーム | 次のページ
Post-installation Scripts | 上に戻る | PEAR コア コンポーネンツ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR Manual

List of authors

Edited by

Martin Jansen
Alexander Merz

2006-12-02

Windows Help File Edition

Dieter Raber
Anatoly Techtonik
02-12-2006

Copyright © 2001, 2002, 2003, 2004, 2005, 2006 The PEAR Documentation Group

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR マニュアル

PEAR マニュアル 抜粋

  • Net_SMTP
  • Net_POP3
  • Mail
  • Mail_Mime
  • File_Archive
  • Spreadsheet_Excel_Writer
  • Image_Graph サンプルコードサイト(英文)
  • API ドキュメント( Web )
  • PEAR でグラフ画像作成
  • PEAR の Mail パッケージによるメール送信
  • PEAR で簡易メール受信


コマンドライン インストーラ

前提事項

次の説明は、最新版の PEAR パッケージマネージャ がインストールされていることを前提としています。

コマンドラインインストーラは、PEAR パッケージをシステムにインストールする最も簡単な方法です。 このインストーラは、HTTP 接続で PEAR パッケージサーバにアクセスし、 パッケージをダウンロードし、任意の場所にインストールします。

完全自動インストール

コマンドライン版インストーラの使用方法は、非常に分かりやすく簡単です。 シェルで、次の行を実行してください。

$ pear install <package>

<package> は、インストールするパッケージの名前 (たとえば HTTP_Upload など) に置き換えます。

使用したいパッケージがまだ安定版になっていない場合は、そのパッケージの状況に応じ、 最後に "-beta" あるいは "-alpha" をつけると 強制的にインストールすることができます。

$ pear install <package>-beta

ベータ版やアルファ版のパッケージをインストールする方法はほかにもあります。 "-f" スイッチを使用して強制的にインストールするか、 preferred_state を beta に設定します。以下のいずれの方法でもインストールできます。

$ pear config-set preferred_state beta
$ pear install <package>
$ pear config-set preferred_state stable

$ pear -d preferred_state=beta install <package>

$ pear install -f <package>

利用可能なパッケージの一覧を取得するには、 PEAR パッケージブラウザ を参照するか、次のコマンドを実行します。

$ pear remote-list

このコマンドは、その時点で PEAR で利用可能なすべてのパッケージのリストを返します。

半自動インストール

http://pear.php.net/から gzip 圧縮された tar アーカイブの形式でパッケージがリリースされています。 それを手動でダウンロードして、ローカルでインストールすることも可能です。 シェルで次のコマンドを実行してください。

$ pear install <file>.tgz

このコマンドにより、自動的にパッケージがインストールされますが、 その際にはオンライン接続が不要です。 <file>.tgzは、ダウンロードしたファイルの 名前に置き換えてください。

コマンドおよび変数

PEAR コマンドラインツールで使用可能なコマンドの一覧を示します。 これらのコマンドの多くは、ルート権限でのサーバアクセスが必要となります。

コマンド | 説明
build | ソースから拡張モジュールをビルドする
bundle | PECL 拡張モジュールをダウンロードし、展開する
channel-add | チャンネルを追加する (PEAR 1.4 以降)
channel-alias | チャンネル名にエイリアスを指定する (PEAR 1.4 以降)
channel-delete | リストからチャンネルを削除する (PEAR 1.4 以降)
channel-discover | 指定したサーバ名のチャンネルを初期化する (PEAR 1.4 以降)
channel-info | チャンネルの情報を取得する (PEAR 1.4 以降)
channel-update | 既存のチャンネルをアップデートする (PEAR 1.4 以降)
clear-cache | XML-RPC キャッシュをクリアする
config-create | デフォルトの設定ファイルを生成する (PEAR 1.4 以降)
config-get | 指定された設定項目の設定値を表示する
config-help | 設定項目についてのヘルプを表示する
config-set | 指定された設定項目に値を設定する
config-show | すべての設定項目の設定値を表示する
convert | package.xml 1.0 形式を package.xml 2.0 形式に変換する (PEAR 1.4 以降)
cvsdiff | パッケージのすべてのファイルに対し cvs diff -u を実行し、結果を表示する
cvstag | CVS のリリースタグをセットする
download | パッケージをダウンロードする。インストールは行わない
download-all | すべての利用可能なパッケージをダウンロードする
info | パッケージについての情報を表示する
install | パッケージをインストールし、成功か失敗かを表示する
list | インストール済のパッケージの一覧を表示する
list-all | 利用可能なすべてのパッケージの一覧を表示する
list-channels | 利用可能なチャンネル一覧を表示する (PEAR 1.4 以降)
list-files | インストール済のパッケージに含まれるファイルの一覧を表示する (PEAR 1.4 以降)
list-upgrades | インストール済のパッケージ対し適用可能なアップグレードの一覧を表示する
login | リモートの PEAR サーバに接続しログインする
logout | リモートの PEAR サーバからログアウトする
makerpm | PEAR パッケージから RPM spec ファイルをビルドする
package | パッケージをビルドする
package-dependencies | パッケージの依存性を表示する
package-validate | パッケージの整合性を確認する
remote-info | リモートのパッケージの情報を表示する
remote-list | リモートのパッケージの一覧を表示する
run-scripts | パッケージにバンドルされたインストール後用のスクリプトを実行する (PEAR 1.4 以降)
run-tests | 回帰テストを実行する
search | リモートのパッケージのデータベースを検索する
shell-test | シェルスクリプトテストを行う
sign | パッケージの配布ファイルに署名する
uninstall | パッケージをアンインストールする
update-channels | チャンネルのリストをアップデートする (PEAR 1.4 以降)
upgrade | パッケージを最新のバージョンにアップグレードする (preferred_state も参照ください)
upgrade-all | すべてのパッケージをアップグレードする (list-upgrades も参照ください)

次に、PEAR の設定項目の一覧を示します。 config-get, config-help, config-set および config-show コマンドを使って これらの項目を設定します。PEAR をシステムにインストールする際に、 そのサーバに対応した値でデフォルト値が設定されます。 必要に応じて調整してください。

設定項目 | 説明 | デフォルト値
bin_dir | 実行ファイルがインストールされるディレクトリ | /usr/bin
doc_dir | ドキュメントがインストールされるディレクトリ | /usr/lib/php/docs
ext_dir | 拡張モジュールがインストールされるディレクトリ | ./
php_dir | PHP ファイル (PEAR のファイルなど) がインストールされるディレクトリ | /usr/lib/php
cache_dir | PEAR インストーラの XMLRPC キャッシュ用のディレクトリ | /tmp/pear/cache
data_dir | データファイルがインストールされるディレクトリ | /usr/lib/php/data
php_bin | スクリプト実行に使われる PHP の CLI または CGI バイナリ | /usr/bin/php
test_dir | 回帰テストがインストールされるディレクトリ | /usr/lib/php/tests
cache_ttk | ローカルキャッシュが使用され、更新が行われない秒数 (有効期限) | 3600
preferred_state | パッケージの開発状況で、優先的にインストールされるもの。 stable, beta, alpha, devel または snapshot | stable
umask | ファイル作成時に使われる umask (Unix 系の環境のみ) | 22
verbose | デバック用のログレベル。 0-3 で、3 が完全なデバックモード | 1
http_proxy | パッケージのダウンロードの際に使う HTTP プロキシのアドレス (host:port) 。任意 |
remote_config | リモート用設定ファイル。ローカルのインストールをリモートのサーバに FTP を使ってミラーする場合に使用する (PEAR 1.4 以降) |
auto_discover | コマンドライン指定または依存性に基づいて新しいチャンネルが自動的に探知される | 0
default_channel | デフォルトのチャンネル (PEAR 1.4 以降) | pear.php.net (pecl コマンドの場合は pecl.php.net)
preferred_mirror | 優先的に使用されるチャンネルのミラー (PEAR 1.4 以降) | pear.php.net (pecl コマンドの場合は pecl.php.net)
master_server | PEAR サーバ [PEAR 1.4 以降で廃止されました] | pear.php.net
password | PEAR パスワード (メンテナ用) |
sig_bin | 署名処理のプログラム | /sw/bin/gpg
sig_keydir | 署名キーのディレクトリ | /etc/pearkeys
sig_keyid | 署名に使用するキー |
sig_type | パッケージ署名の種類 (gpg のみ) | gpg
username | PEAR ユーザ名 (メンテナ用) |

前のページ | ホーム | 次のページ
パッケージマネージャの取得 | 上に戻る | 共有ホストでの PEAR のローカルコピーのインストール

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


CVS インストーラ

ここでは、CVS から最新の開発版 PEAR パッケージをインストールする方法について説明します。

実稼動環境では、CVS から得たパッケージを実行することは控えるべきです。 CVS バージョンは通常のリリースと異なります。つまり、

  • メンテナ他からの援助が得られません。

  • CVS バージョンは、PEAR インストーラのアップグレード機能を破壊することがあります。

CVS から得たパッケージは、次の場合にのみ使用するべきです。

  • メンテナが勧めた場合

  • パッケージの開発を援助したい場合

  • リリースされていない機能やパッチを本当に必要としている場合

CVS からパッケージをインストールする場合、パッケージのメンテナが 新しいリリースを作成するのと同じステップを取る必要があります。 次のいずれかのステップで問題がある場合は、本マニュアルの デベロッパーズガイドを参照してください。

  1. パッケージを http://www.php.net/anoncvs.php に記述されている通りに CVS から チェックアウトする。

    チェックアウトすべきモジュールは、pear/<packagename> となります。たとえば、 cvs -d :pserver:cvsread@cvs.php.net:/repository checkout pear/HTTP_Client。

  2. package.xml をチェックし、fileset 要素が 実際のファイル・ディレクトリ構造にあっているかどうか調べる。 もし異なるなら、メンテナに連絡をとり、package.xml を アップデートするように頼んでみてください。

  3. 有効なパッケージのアーカイブを PEAR インストーラを使って作成する。 pear package <path to package.xml>

  4. 対象のパッケージがインストール済みの時は、バージョンに関連する問題を避けるために削除する。 pear uninstall <package>

  5. パッケージのアーカイブをインストールする。 pear install <package-file>

    以上で CVS バージョンがインストールされました。

(CVS バージョンは) パッケージの正式リリース後、できるだけ早くアップグレードするべきです。 正式リリースをインストールする際には、バージョンに関連する問題を避けるため、 CVS バージョンを削除してください。

前のページ | ホーム | 次のページ
手動インストール | 上に戻る | PECL パッケージのインストール

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


パッケージマネージャの取得

Unix/Linux/BSD

PHP 4.3.0 以降、 ./configure に --without-pear オプションを指定しない限り、 PEAR パッケージマネージャは (PHP と共に) インストールされます。

Unix/Linux/BSD ディストリビューションが提供する PHP を使う場合は、 PEAR を別途インストールする必要があるかもしれません。インストール方法については、 それぞれのディストリビューションのドキュメントを参照してください。

バージョン 4.3.0 以前の場合や、パッケージマネージャを再インストールしたい場合は、 次の方法が暫定的に用意されています。

$ lynx -source http://go-pear.org/ | php

注意 コマンドラインブラウザの名前として lynx ではなく links を使用している Linux ディストリビューション (Redhat など) もあります。そのような場合は、 上の行を適宜変更してください。

注意 http://go-pear.org/ を go-pear.php という名前で保存して、このように実行することもできます。

php go-pear.php

Windows

PHP をダウンロードしインストールが完了したら、バッチファイルを実行します。 バッチファイルは、c:\php\go-pear.bat にあります (PHP をインストールした場所による)。 セットアップがはじまると質問がいくつか行われ、そこで指定したパスに PEAR パッケージマネージャがインストールされます。 インストールが終了したら、インストールしたフォルダへのパスを PATH 環境変数に追加します。 手動で追加する (スタート > コントロールパネル > システム > 環境変数) か、 PHP のソースディレクトリにある PEAR_ENV.reg を実行 (ダブルクリック) するかしてください。 以上で、Windows のコマンドプロンプトから pear コマンドを使い PEAR パッケージマネージャを実行できるようになります。

PEAR インストールのアップデートを go-pear.org を用いて行うこともできます。 http://go-pear.org/ をブラウザで表示し、出力をローカルファイル go-pear.php に保存します。そして次のコマンドを Windows のコマンドプロンプトで実行してください。

php go-pear.php
これで、更新処理が開始されます。

ホスティング環境での PEAR

Web ホスティングプロバイダを使用しており (ローカルログインや Telnet, SSH による) サーバへの直接アクセスができない場合でも、 Web フロントエンドを用いれば PEAR インストーラを使用することができます。

http://go-pear.org/ を go-pear.php という名前で保存し、go-pear.php をあなたのサーバにコピーします。そして、対応する URL (たとえば http://example.com/pear/go-pear.php など) をブラウザで開きます。

前提事項

インストールの前に、pear ディレクトリに 適切なアクセス制限をかけておくことを忘れないようにしましょう。

前のページ | ホーム | 次のページ
インストール | 上に戻る | コマンドライン インストーラ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


手動インストール

警告

この章は削除されました。その理由としては、手動インストールを行うためには パッケージがどのようにして生成され、インストールの際にどのようなプロセスが 実行されるかについての詳しい理解が必要となるからです。 PEAR インストーラなしでパッケージをインストールしてみたいなら、 デベロッパーズガイドの package.xml についてのセクション (第15章 および 第16章) を参照すると良いでしょう。

PEAR をシェルアクセス無しでリモートホストにインストールする場合は、 共有ホストでの PEAR のローカルコピーのインストール項 を参照してください。

前のページ | ホーム | 次のページ
共有ホストでの PEAR のローカルコピーのインストール | 上に戻る | CVS インストーラ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PECL パッケージのインストール

パッケージのインストール手順については、PHP のウェブサイトにて こちらのマニュアル を参照してください。

前のページ | ホーム | 次のページ
CVS インストーラ | 上に戻る | サポート

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


共有ホストでの PEAR のローカルコピーのインストール

システム共有としてインストールされた PEAR にアクセスできるプロバイダを使っているユーザもいるでしょう。 しかし、PEAR のローカルコピーを作成すると、 共有インストールされていないパッケージを使いたい場合など、多くの場面で便利です。 ここでは、telnet/ssh によるシェルアクセスを使ったローカルコピーの作成方法と、 ftp アクセスだけを使った方法とについて説明します。

SSH を使ったインストール

SSH を使って PEAR のローカルコピーをインストールするには、 次のコマンドを使用します。

PEAR 1.3.5 以前

$ pear -s -c ~/.pearrc -d doc_dir=~/pear/docs \
    -d ext_dir=~/pear/ext -d php_dir=~/pear/lib \
    -d data_dir=~/pear/data -d test_dir=~/pear/tests \
    -d cache_dir=~/pear/cache -d bin_dir=~/pear/bin

PEAR 1.4 以降

$ pear config-create /home/user/pear .pearrc

ホームディレクトリに .pearrc という名称のローカル設定ファイルが作成されます。

そのあと .bashrc（または他のスタートアップファイル）にて ~/pear/bin をパスに追加し、次のコマンドを実行します。

PEAR 1.3.2 以前

$ pear -c ~/.pearrc install Archive_Tar PEAR Console_Getopt XML_RPC

PEAR 1.3.3 以降

$ pear install -o PEAR

ホームディレクトリ下の pear という名称のサブディレクトリが作られ、 そこにあなたがインストールしたパッケージが保存されます。 システム共有版とは別に、PEAR のローカル版がインストールされます。 このローカルにインストールされたファイルを使用するには、PEAR パッケージを使うコードで PHP の include_path を次のようにセットしてください。

<?php
ini_set('include_path', '~/pear/lib' . PATH_SEPARATOR
        . ini_get('include_path'));

// PHP 4.3.0 以降ではこの方法も使用できます。
// これは、特に共有ホストなどで有用です。
set_include_path('~/pear/lib' . PATH_SEPARATOR
                 . get_include_path());
?>

または、apache の .htaccess ファイルで php_value を使う方法もあります。

ftp/ftps/sftp を使ったローカルコピーのインストール

FTP を使って PEAR のローカルコピーをインストールする方法は、昔ながらの難しい方法と、 新しく簡単な方法の 2 つがあります。新しい方法を行うには、 PEAR をバージョン 1.4.3 以降にアップグレードする必要があります。

PEAR 1.4.3 以降と PEAR_RemoteInstaller を使う改良インストール法

PEAR 1.4.3 以降では、FTP を使ったローカルコピーのインストールも簡単に行えます。

シェルアクセスができないリモ－トホストに PEAR をインストールしたいというユーザもいるでしょう。 FTP を使うのが唯一の選択肢だということも良くあることですが、手動でインストールすると 置換などのインストーラの機能を活用している複雑なパッケージで問題が起こります。

〔FTP を使ってリモ－トホストに〕適切にインストールするには 次の手順で行います。

  1. ローカルのコンピュータに PHP 5.0 以降をインストールする

  2. ftps を使用する場合は、 php.ini で openssl 拡張モジュールを有効にする

  3. sftp を使用する場合は、 php.ini で ssh2 拡張モジュールを有効にする

  4. PEAR の CLI バージョン ("pear" コマンドのこと。ウェブインターフェイスではない) をローカルのコンピュータにインストールし、正常動作を確認する

  5. リモートホストにアクセスでき、書き込みができるようにする (セキュリティ上、ftp でなく sftp か ftps の使用を 強く 推奨します)

  6. ホームディレクトリのフルパスを確認する

  7. ローカルとリモートの双方について、それぞれの環境に対応した設定ファイルを作成する

  8. リモートの設定ファイルをリモートホストにアップロードする

  9. リモートホストの設定ファイルの場所を ローカルの設定ファイルの remote_config に指定する

  10. remote-install, remote-uninstall, remote-upgrade および remote-upgrade-all コマンドを使ってパッケージを管理する

1. PEAR の CLI バージョン ("pear" コマンド。ウェブインターフェイスではありません) をローカルのコンピュータにインストールする

こちらで インストール手順 を参照してください。

2. PEAR_RemoteInstaller パッケージがローカルにインストールされていなければ、 インストールする

3. リモートホストに対して ftp でアクセスでき、ftp で書き込めるようにする

書かれている通りです。DOS プロンプトや Unix シェルで FTP コマンドを実行できれば、 FTP 接続が可能です。

ログインに必要なユーザ名とパスワードを入力します。

書き込みができるか調べるのは簡単です。ファイルをアップロードすることができれば、 書き込み権限があります。

4. ホームディレクトリのフルパスを確認する

これも書かれている通りです。次のスクリプトを WEB ドキュメントのルートティレクトリに アップロードし出力を確認すると良いでしょう。

<?php
echo dirname(__FILE__);
?>

/home/username/htdocs や /home/username/public_html のようになるでしょう。FTP でアクセスする際には、 /home/username へ接続するとよいでしょう。

5. ローカルとリモートの双方について、それぞれの環境に対応した設定ファイルを作成する

これも簡単です。windows と unix でそれぞれ次のようにします。

まず、Windows です。

リモートコードのローカルコピーを保存する場所を選びます。たとえば、 C:\remote\pear とします。コマンドプロンプトから (スタートメニュー => プログラム から「コマンドプロンプト」を探します)、 次のように打ち込みます。

C:\> mkdir remote
C:\> cd remote
C:\remote\> mkdir pear
C:\remote\> cd pear
C:\remote\pear> pear config-create -w C:\remote\pear remote.ini
C:\remote\pear> pear config-create /home/username/pear .pearrc

Unix でも、似たような手順をとります。

$ cd
$ mkdir remote
$ cd remote
$ mkdir pear
$ cd pear
$ pear config-create /home/mylocaluser remote.conf
$ pear config-create /home/username/pear .pearrc

6. リモートの設定ファイルをリモートホストにアップロードする

これも簡単です。どちらの OS でも FTP を使って .pearrc を /home/username/pear/.pearrc へアップロードします。

7. リモートホストの設定ファイルの場所を ローカルの設定ファイルの remote_config に指定する

暗号化を行わないなら（注：ただし、安全ではない）、 ストリームとして ftp:// を使います。 ftps を使用するなら、ストリームとして ftps:// を、 sftp を使用するなら、ssh2.sftp を使います。

remote_config に設定するパスは、 次の例のようにフルパスにする必要があります。

ssh2.sftp://user:pass@myremotehost.com/home/username/.pearrc

これが失敗した場合は、相対パスを試してください。

ftps://user:pass@myremotehost.com/.pearrc

remote_config の値をセットするには、次の構文を使用します。

windows の場合、

C:\remote\pear\> pear -c remote.ini config-set remote_config \
    ftp://user:pass@myremotehost.com/.pearrc

Unix の場合、

$ pear -c remote.conf config-set remote_config \
    ftp://user:pass@myremotehost.com/.pearrc

8. remote-install, remote-uninstall, remote-upgrade および remote-upgrade-all コマンドを使ってパッケージを管理する

以上で、ローカルとリモートのリポジトリを同期させることができます。

動作の詳細

インストーラは、まずパッケージをローカルにインストールし、次いで、 ftp ストリームを使ってローカルにインストールされたファイルをリモートの適切な場所に アップロードします。 "remote_config" 設定項目に指定された リモートの設定ファイルの値を用いて、 パッケージをインストールするべき場所へのフルパスを取得します。 インストールに関連するコマンド (install, uninstall, upgrade, and upgrade-all) にそれぞれ対応した remote- コマンド >(remote-install, remote-uninstall, remote-upgrade, remote-upgrade-all) が存在します。

リモートの設定ファイルは、置換などの特殊処理の際にも参照されます。 たとえば、data_dir 設定項目の値を参照してデータファイルのパスを取得するような ファイルがある場合、リモートホストのパス (/home/username/pear/data) が、ローカルのパス (C:\remote\pear\data) に代わって、使用されます。ただし、このようにしてローカルマシンにインストールされた パッケージはローカルのマシンで適切に動作しません。バックアップとして扱ってください。 非常時には、リモートホストへ ftp や scp でアップロードすることができます。

windows と unix とでインストールのされ方が異なるパッケージがあります。 そのようなパッケージをインストールする場合は、ローカルのシステムをリモートのシステムと 同じものにしてください。さらに、拡張モジュールに依存するパッケージもあります。 リモートのマシンで必要な拡張モジュールが利用可能かどうか調べるには、 phpinfo() の出力を参照してください。

ftp を通じた PEAR のローカルコピーのインストール - 昔ながらの方法

ftp を使用して PEAR のローカルコピーをインストールするには、 アップロード時にファイルのパーミッションを設定できる ftp クライアントが必要です。 まず、サーバの、ウェブに公開されていない場所にディレクトリをひとつ作成し、 好きな名前をつけます。そして、全ユーザから読み書き可能 (0777) とします。 http://go-pear.org/ をダウンロードし、go-pear.php という名前で保存します。go-pear.php を、 ウェブからアクセス可能なディレクトリにアップロードします。 (セキュリティのため) .htaccess を使って go-pear.php を含むディレクトリにパスワード制限をかけるのが良いでしょう。

次に、go-pear.php ファイルをブラウズします。 ウェブアドレスが http://www.example.com/ で、go-pear.php を public_html/install/go-pear.php に置いた場合、 http://www.example.com//install/go-pear.php にアクセスしてください。 表示されたインストールの画面に従います。 どこに PEAR をインストールするか訊かれたら、さきほど作成した 全ユーザから読み書き可能にしたディレクトリを指定します。 また、CLI バージョンの PHP のありかも知らせる必要があります。 PHP のありかは、次のスクリプトの出力を参照してください。

<?php
echo `which php`;
// これが動作しなかった場合は、echo PHP_BIN; を試してください
?>

PEAR がインストールされたら、他の PEAR インストールの方法と同様に、 ウェブ版のインストーラを使って、 パッケージのインストールやアップグレードができます。 インストールされた PEAR のファイルを使うには、ウェブサイトのスクリプト中で インクルードパスを設定する必要があります。

<?php
ini_set('include_path', '~/pear/lib' . PATH_SEPARATOR
        . ini_get('include_path'));

// PHP 4.3.0 以降ではこの方法も使用できます。
// これは、特に共有ホストなどで有用です。
set_include_path('~/pear/lib' . PATH_SEPARATOR
                 . get_include_path());
?>

前のページ | ホーム | 次のページ
コマンドライン インストーラ | 上に戻る | 手動インストール

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


他の情報源

  • PEAR グループは、ときおり、 行政文書 (Administrative Document) と呼ばれる、グループでの決定事項を記した文書を公開することがあります。 PEAR 内部での作業について重要な情報が記されているので、 PEAR に対する加勢を行う前に、それらの文章を読むことが期待されています。 文書が公開される際には、開発者メーリングリストに通知されますので、 サイトを頻繁にチェックする必要はありません。

  • このマニュアル中の デベロッパーズガイド にも、役に立つ情報が記されています。

  • 標準コーディング規約 の章には、 PEAR のコードが満たすべき標準規約が示されています。

前のページ | ホーム | 次のページ
コミュニティーについて | 上に戻る | 公式投稿採択プロセス

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


投稿内容の変更

通常、提案ステージ以降、投稿内容の編集や削除はできません。 緊急の場合のみ、開発者メーリングリストにメールを出し、 PEAR のサイト管理者に変更について頼んでみてください。 しかし、このような事は、通常するべきことではありません。 提案ステージにおいては、コミュニティーに対するすべての準備を整え、 混乱無しに投票が行われるようにしなければいけません。 また、もし投票が否定的な結果に終わったとしも、投稿内容を削除する理由にはなりません。

前のページ | ホーム | 次のページ
Step 3: PEPr の使用 | 上に戻る | メンテナンスされていないパッケージを引き継ぐ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Step 2: 議論の開始

開発者メーリングリスト での議論をはじめるため、ドラフトを PEPr に投稿しなければなりません。

PEAR 開発者と議論することで、以下のような点が判ります。

  • パッケージやそのコードに技術的問題がないか

  • 似たような機能のパッケージがすでに存在しないか

  • 似たようなものに取り組んでいる人はいないか。もしいれば、その人と協力することができます

  • などなど

議論の行間を読めば、採択プロセスにおいて肯定的な票を集めることが できそうかどうか分かるでしょう。

コードは子細に調べられますので、何らかの（肯定的・否定的双方の）批判を 受けることを承知しておいてください。また、コードが、標準コーディング規約に合致しているかどうかの 調査に時間を掛けさせないようにしてください。

PEAR は国際的なプロジェクトであることに注意してください。 さまざまな文化的背景をもつ人々がおり、 その中には英語のネイティブスピーカではない人もいるでしょう。 そのため、時として誤解の生じる余地もあるでしょうが、 悪気はないのだと考えるようにしましょう。 英語が完璧に使えなくても心配ありませんが、 できるだけ明確に発言するように努めましょう。 また、他人に助言を求めるのを恥じることはありません。

前のページ | ホーム | 次のページ
公式投稿採択プロセス | 上に戻る | Step 3: PEPr の使用

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Step 3: PEPr の使用

新規パッケージの投稿のためのツール (PEPr) を使うには、PEAR WEB サイトアカウントを申請 する必要があります。このアカウント申請は、通常1から2日で認められます。 アカウントが出来たら、New Package Proposal のところでパッケージを投稿することができます。

投稿採択のプロセスは、4 つのステージに分かれています。 "ドラフト (Draft)", "提案 (Proposal)", "投票 (Call for Votes)" および "終了 (Finished)" です。 すべての投稿事案が、これらのステージを経ることとなります。 （ドラフトステージを除く）各ステージごとに、投稿者と PEAR 開発者メーリングリストに メールが送られます。

Stage 1: ドラフトの作成

はじめは、投稿内容のドラフトを作成します。 編集は繰り返すことができ、PEPr の概要ページにはドラフトであることが 表示されます。このステージは、PEPr をいじってみるためのもので、 投稿内容を見栄え良くしたりして採択プロセスに備えることとなります。 投稿内容を発表し、PEAR コミュニティーから反応を得たいと思ったら、 次のステージに進むことができます。

Stage 2: 提案ステージ

この提案ステージで、実質的に投稿が開始されることとなります。 メールで、もしくは PEPr を通じて、提供したいパッケージについての 提案や質問をコミュニティーから受けることでしょう。 提案に従うのは良いことですが、相反する意見を受けることもあるかも知れません。 そういった場合は、このステージで意見を取捨選択するべきでしょう。 1週間、コメントを受け付けた後、次のステージに進むことができます。 このとき、PEAR コミュニティーによりパッケージが採択されるだろうと感じた場合にのみ、 次のステージ進むようにするべきです。

Stage 3: 投票

次のステージは投票です。このステージでは、投稿内容について 編集や削除など、変更を行うことは一切できません。 投票ステージでは、アクティブな PEAR のメンテナ達が投稿に対し投票を行います。 投票は、-1, 0 または +1 という数値をもって行われます。 ここで、-1 は "今のままでは PEAR に加えるのには反対" を、 +1 は"現在の状態で PEAR に加えることに賛成" を意味します。 0 は、"投稿内容を検分したけど、決められない" ということを示します。 投票の期間は7日間です。この期間後、5票未満しか投ぜられていない場合は、 投票の期間がもう7日間延長されます。その後は、5票以上あるかどうかに関係なく、 投票が終了します。

票には、条件をつけることができます。この条件付の票は、投票者が期待する 条件を満たす必要があるということを示しています。 条件付の票がある場合、投稿者はそれを読み、従うことが期待されています。 条件は、票のコメント欄に記載されています。すべての票に条件がつけられている 可能性もあります。どんな場合も、それらを読むことは、良い考えです。

Stage 4: 終了

投稿は終了しました。投稿が受け入れられたかどうか、票の合計が計算されます。 合計が5以上であれば、投稿が採択されます。残念ながら、そうでなければ、 投稿は拒否されたことになります。その理由については、提案および投票ステージでの コメントを参照してください。 パッケージを作り直し再投稿することもできますが、同じ事を2回繰り返すことは避けてください。

投稿が採択されたら、パッケージを PEAR に加えることができます。 はじめての投稿の場合は、PEAR グループに メールで連絡を取り、PEAR WEB サイトアカウントをフル機能の開発者アカウントに アップグレードするようにしてください。 その後、パッケージを登録したり、リリースをアップロードできるようになります。

準備とリリースのアップロードについては、 デベロッパーズガイド を参照してください。

前のページ | ホーム | 次のページ
Step 2: 議論の開始 | 上に戻る | 投稿内容の変更

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


提供するに値 しない 場合

大体の目安としては、単一の、あるいはごく少数のプロジェクトに関係するだけの 問題を解決するためのコードは、PEAR の一部となるのに適しません。 そこから利益を得る人は、ほとんど誰もいないからです。

しかし、"ニッチなソフトウエア" が PEAR に登録されない訳ではありません。 数値計算のセクションには、種々の代数的問題を解くための手の込んだパッケージがあります。 そういった代数的問題は平均的なアプリケーションには関係しませんが、 それらのパッケージは抽象的な科学的プロジェクトに対して大きな利益をもたらします。

一般性を欠くために PEAR に適さないものの他にも、現在の所、 PEAR では受け入れられないタイプのコードがあります。それは、完全な WEB アプリケーションです。 開発者向けのツール、例えば phpDocumentor などは受け入れていますが、 一般ユーザ向けのアプリケーションについては受け入れません。

PEAR の "A" は、"Application" を表しているのですが、 アプリケーションがサポートされていないことについては単純な理由があります。 現在のところ、完全な WEB アプリケーションのパッケージを扱えるような インフラ（PEAR インストーラなど）が開発されるに至っていないからです。

状況が変わりましたら、サイトを更新してお知らせする予定です。

前のページ | ホーム | 次のページ
パッケージを提供するに値する場合 | 上に戻る | コミュニティーについて

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth

目次
導入 -- 使用例
ストレージドライバ -- 導入
Auth_Container_Array -- ユーザ名とパスワードの配列を使用して認証を行う
Auth_Container_DB -- DB を使用して、データベースによる認証を行う
Auth_Container_DBLite -- DB を使用して、データベースによる認証を行う
Auth_Container_File -- File_Passwd を使用して、パスワードファイルによる認証を行う
Auth_Container_IMAP -- IMAP サーバを使用して認証を行う
Auth_Container_KADM5 -- Kerberos 5 サーバを使用して認証を行う
Auth_Container_LDAP -- LDAP サーバを使用して認証を行う
Auth_Container_MDB -- MDB を使用して、データベースによる認証を行う
Auth_Container_MDB2 -- MDB2 を使用して、データベースによる認証を行う
Auth_Container_PEAR -- PEAR ウェブサイトを使用して認証を行う
Auth_Container_POP3 -- POP3 サーバを使用して認証を行う
Auth_Container_RADIUS -- RADIUS サーバを使用して認証を行う
Auth_Container_SAP -- SAP サーバを使用して認証を行う
Auth_Container_SMBPasswd -- File_SMBPasswd を使用して、smbpasswd ファイルによる認証を行う
Auth_Container_SOAP -- SOAP サービスを使用して認証を行う
Auth_Container_SOAP5 -- SOAP サービスを使用して認証を行う
Auth_Container_vpopmail -- vpopmail サービスを使用して認証を行う
独自の Auth_Container -- 独自のストレージコンテナを作成する
Auth_Frontend_HTML -- デフォルトのログインフォーム
定数 -- 定義済の定数
Auth::Auth() -- コンストラクタ
Auth::addUser() -- 新しいユーザを追加する
Auth::changePassword() -- ユーザのパスワードを変更する
Auth::checkAuth() -- 有効な認証情報を持つセッションが存在するかどうかを調べる
Auth::getAuth() -- ユーザが認証済みかどうか調べる
Auth::getAuthData() -- 認証セッション内に保存された追加情報を取得する
Auth::getStatus() -- 認証セッションの現在の状況を取得する
Auth::getUsername() -- 認証済みユーザのユーザ名を取得する
Auth::listUsers() -- ユーザの一覧を取得する
Auth::logout() -- 認証済みのユーザをログアウトさせる
Auth::removeUser() -- ユーザアカウントを削除する
Auth::setAdvancedSecurity() -- 高度なセキュリティ機能を有効にする。デフォルトでは無効となっている
Auth::setAllowLogin() -- ユーザがログイン可能かどうかを制御する。デフォルトではオンになっている
Auth::setAuth() -- 特定のユーザをログイン済みとして扱う
Auth::setAuthData() -- 認証セッションの追加情報を保存する
Auth::setExpire() -- 認証有効期限を設定する
Auth::setFailedLoginCallback() -- ログインに失敗した際のコールバックを設定する
Auth::setIdle() -- 最大アイドル時間を設定する
Auth::setLoginCallback() -- ログインに成功した際のコールバックを設定する
Auth::setLogoutCallback() -- ログアウトに成功した際のコールバックを設定する
Auth::setSessionName() -- カスタムセッション名を設定する
Auth::setShowLogin() -- ログインフォームが表示されるかどうかを制御する。デフォルトは「表示される」
Auth::sessionValidThru() -- セッションの有効期限を取得する
Auth::start() -- 認証を開始する

ユーザ認証の為のフレームワークを提供します。

前のページ | ホーム | 次のページ
認証 (Authentication) | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_HTTP

目次
導入 -- HTTP ベースの認証
Auth_HTTP::Auth_HTTP() -- コンストラクタ
Auth_HTTP 例 -- シンプルなパスワード保護の例
Auth_HTTP 例2 -- データベースからの列データの取得と MD5 パスワード使用の例
Auth_HTTP::getAuth() -- 認証済みのユーザかどうか確認する。
Auth_HTTP::getStatus() -- 現在の認証状況についての情報を返す。
Auth_HTTP::start() -- 認証の開始

HTTPベースのユーザ認証フレームワークを提供します。

前のページ | ホーム | 次のページ
Auth::start() | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_HTTP::Auth_HTTP()

Auth_HTTP::Auth_HTTP() -- コンストラクタ

概要

void Auth_HTTP::Auth_HTTP ([string
      $storageDriver = "DB" [, mixed
       $options = ""]])

説明

認証システムのコンストラクタ

パラメータ

string $storageDriver

使用するストレージドライバの名称

mixed $options

ログイン情報に関する文字列、 もしくはストレージドライ版のオプションの配列

注意

この関数は、スタティックにコールする ことはできません。

例

例 28-1DBパラメータの使用

require_once "Auth/HTTP.php";

$a = new Auth_HTTP("DB", "mysql://test:test@localhost/test");

$a->start();
前のページ | ホーム | 次のページ
導入 | 上に戻る | Auth_HTTP 例

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_HTTP 例

Auth_HTTP 例 -- シンプルなパスワード保護の例

例

<?php

// Auth_HTTP を使った基本的な実装の例

require_once("Auth/HTTP.php");

// データベース接続オプションの設定
$AuthOptions = array(
'dsn'=>"pgsql://test:test@localhost/testdb",
'table'=>"testable",                            // テーブル名
'usernamecol'=>"username",			// ユーザ名のコラム
'passwordcol'=>"password",			// パスワードのコラム
'cryptType'=>"none",				// データベース中でのパスワードの暗号化形式
);

$a = new Auth_HTTP("DB", $AuthOptions);

$a->setRealm('yourrealm');			// 領域 (realm) 名
$a->setCancelText('<h2>Error 401</h2>');        // 認証が失敗した際に表示されるメッセージ
$a->start();					// 認証プロセスの開始

if($a->getAuth())				// 認証すべきユーザかどうかの確認
{
    echo "Hello $a->username welcome to my secret page";

};

?>
前のページ | ホーム | 次のページ
Auth_HTTP::Auth_HTTP() | 上に戻る | Auth_HTTP 例2

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_HTTP 例2

Auth_HTTP 例2 -- データベースからの列データの取得と MD5 パスワード使用の例

例

<?php
// データベースからの列データの取得と MD5 パスワードを使用した例

require_once("Auth/HTTP.php");

// データベース接続オプションの設定
$AuthOptions = array(
'dsn'=>"pgsql://test:test@localhost/testdb",
'table'=>"testable",                            // テーブル名
'usernamecol'=>"username",			// ユーザ名のコラム
'passwordcol'=>"password",			// パスワードのコラム
'cryptType'=>"md5",				// データベース中でのパスワードの暗号化形式
'dbFields'=>"*",				// 他のコラムの取得を可能にする
);

$a = new Auth_HTTP("DB", $AuthOptions);

$a->setRealm('yourrealm');			// 領域 (realm) 名
$a->setCancelText('<h2>Error 401</h2>');        // 認証が失敗した際に表示されるメッセージ
$a->start();					// 認証プロセスの開始

if($a->getAuth())				// 認証すべきユーザかどうかの確認
{
    echo "Hello $a->username welcome to my secret page <BR>";
    echo "Your details on file are: <BR>";
    echo $a->getAuthData('userid');		// データベースから他のデータを取得している。
    echo $a->getAuthData('telephone');      // この例では、ユーザID (userid)、電話番号 (telephone)
    echo $a->getAuthData('email');		// およびメールアドレス (email) を取得。
};
?>
前のページ | ホーム | 次のページ
Auth_HTTP 例 | 上に戻る | Auth_HTTP::getAuth()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_HTTP::getAuth()

Auth_HTTP::getAuth() -- 認証済みのユーザかどうか確認する。

概要

boolean Auth_HTTP::getAuth ()

説明

ユーザが認証済みかどうか確認します。

返り値

boolean - ユーザが認証済みならばTRUEを、 そうでなければ FALSEを返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Auth_HTTP 例2 | 上に戻る | Auth_HTTP::getStatus()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_HTTP::getStatus()

Auth_HTTP::getStatus() -- 現在の認証状況についての情報を返す。

概要

string Auth_HTTP::getStatus ()

説明

この関数はPEAR::Authと同様に現在のステータスを返します。 返り値の定数は、PEAR Authで定義されています。

返り値

string - possible values are AUTH_IDLED, AUTH_EXPIRED, AUTH_EXPIRED

注意

この関数は、スタティックにコールする ことはできません。

参照

PEAR Auth 定数一覧

前のページ | ホーム | 次のページ
Auth_HTTP::getAuth() | 上に戻る | Auth_HTTP::start()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_HTTP::start()

Auth_HTTP::start() -- 認証の開始

概要

void Auth_HTTP::start ()

説明

認証プロセスを開始します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Auth_HTTP::getStatus() | 上に戻る | Auth_PrefManager

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- HTTP ベースの認証

HTML のフォームを生成する PEAR::Auth と異なり、 当クラスは、クライアントに (HTTP の) ヘッダコマンドを送信し、 Apache の .htaccess 機構で使われているようなログインボックスを表示させます。

Auth_HTTP 2.1.0 以降では、HTTP ダイジェスト認証 (RFC2617) が実験的にサポートされるようになりました。

前のページ | ホーム | 次のページ
Auth_HTTP | 上に戻る | Auth_HTTP::Auth_HTTP()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_PrefManager

目次
Introduction to Auth_PrefManager -- Auth_PrefManager は、 ユーザの設定あるいはアプリケーションの設定を DB 互換のデータベースで管理するシンプルなクラスです。
チュートリアル -- Auth_PrefManager の簡単な使用法
constructor Auth_PrefManager::Auth_PrefManager() -- コンストラクタ
Auth_PrefManager::clearCache() -- キャッシュを消去する
Auth_PrefManager::deleteDefaultPref() -- デフォルトユーザの設定を削除する
Auth_PrefManager::deletePref() -- 指定したユーザの設定を削除する
Auth_PrefManager::getDefaultPref() -- デフォルト値を取得する
Auth_PrefManager::getPref() -- 設定を取得する
Auth_PrefManager::setDefaultPref() -- 設定のデフォルト値を登録する
Auth_PrefManager::setPref() -- 設定を登録する
Auth_PrefManager::setReturnDefaults() -- デフォルト値を返すかどうかを設定する
Auth_PrefManager::useCache() -- キャッシュを使用するかどうかを設定する

アプリケーションの設定を管理するためのフレームワークです。

前のページ | ホーム | 次のページ
Auth_HTTP::start() | 上に戻る | Introduction to Auth_PrefManager

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor Auth_PrefManager::Auth_PrefManager

PEAR マニュアル
前のページ 次のページ

constructor Auth_PrefManager::Auth_PrefManager()

constructor Auth_PrefManager::Auth_PrefManager() -- コンストラクタ

概要

require_once '/PrefManager.php';

bool constructor Auth_PrefManager::Auth_PrefManager (string $dsn, array [$properties = NULL], string $defaultUser)

説明

$properties は連想配列で、以下のような構造になります。 指定しなかったオプションにはデフォルト値が設定されます。

'table'

設定を取得するテーブル。[preferences]

'userColumn'

ユーザ名を探すフィールド。[user_id]

'nameColumn'

設定項目名を探すフィールド。[pref_name]

'valueColumn'

設定値を取得するフィールド。[pref_value]

'defaultUser'

デフォルト値の取得に使用するユーザ ID。[__default__]

'cacheName'

$_SESSION のキャッシュに使用するキー。[prefsCache]

'useCache'

後で使用するために値をキャッシュするかどうか。[true]

'serialize'

データの保存時のシリアライズ・取得時のアンシリアライズを行うかどうか。[false]

パラメータ

string $dsn

データベース接続のための DSN、あるいは DB オブジェクト。

array $properties

設定するプロパティの配列。

string $defaultUser

管理するデフォルトユーザ。

返り値

成功したかどうかを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

Auth_PrefManager 1.0.4 以前のバージョンで作成したユーザは、 serialize オプションを使用することはできません。これを使用すると、データが失われます。

前のページ | ホーム | 次のページ
チュートリアル | 上に戻る | Auth_PrefManager::clearCache()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_PrefManager::clearCache

PEAR マニュアル
前のページ 次のページ

Auth_PrefManager::clearCache()

Auth_PrefManager::clearCache() -- キャッシュを消去する

概要

require_once '/PrefManager.php';

void Auth_PrefManager::clearCache ()

説明

現在のユーザセッションに保存されている設定キャッシュをクリアします。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor Auth_PrefManager::Auth_PrefManager() | 上に戻る | Auth_PrefManager::deleteDefaultPref()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_PrefManager::deleteDefaultPref

PEAR マニュアル
前のページ 次のページ

Auth_PrefManager::deleteDefaultPref()

Auth_PrefManager::deleteDefaultPref() -- デフォルトユーザの設定を削除する

概要

require_once '/PrefManager.php';

bool Auth_PrefManager::deleteDefaultPref (string $pref_id)

説明

$pref_id で渡した設定のデフォルト値を削除します。

パラメータ

string $pref_id

削除する設定。

返り値

成功したかどうかを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Auth_PrefManager::clearCache() | 上に戻る | Auth_PrefManager::deletePref()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_PrefManager::deletePref

PEAR マニュアル
前のページ 次のページ

Auth_PrefManager::deletePref()

Auth_PrefManager::deletePref() -- 指定したユーザの設定を削除する

概要

require_once '/PrefManager.php';

bool Auth_PrefManager::deletePref (string $user_id, string $pref_id)

説明

ユーザ $user_id の設定 $pref_id が設定されていれば、それを削除します。

パラメータ

string $user_id

削除するユーザのユーザ ID。

string $pref_id

削除する設定。

返り値

成功したかどうかを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Auth_PrefManager::deleteDefaultPref() | 上に戻る | Auth_PrefManager::getDefaultPref()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_PrefManager::getDefaultPref

PEAR マニュアル
前のページ 次のページ

Auth_PrefManager::getDefaultPref()

Auth_PrefManager::getDefaultPref() -- デフォルト値を取得する

概要

require_once '/PrefManager.php';

mixed Auth_PrefManager::getDefaultPref (string $pref_id)

説明

たとえそのオブジェクトにユーザ ID が設定されていたとしても、 $pref_id のデフォルト値を取得します。

パラメータ

string $pref_id

取得するプロパティの名前。

返り値

値が見つかった場合はその値、見つからなかった場合は NULL を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Auth_PrefManager::deletePref() | 上に戻る | Auth_PrefManager::getPref()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_PrefManager::getPref

PEAR マニュアル
前のページ 次のページ

Auth_PrefManager::getPref()

Auth_PrefManager::getPref() -- 設定を取得する

概要

require_once '/PrefManager.php';

mixed Auth_PrefManager::getPref (string $user_id, string $pref_id, bool [$showDefaults = TRUE])

説明

指定したユーザの設定値を取得します。取得できなかった場合は、 もしデフォルト値が設定されていればそれを返します。

パラメータ

string $user_id

設定を取得するユーザ。

string $pref_id

取得する設定項目。

boolean $showDefaults

デフォルト値を取得するかどうか (グローバル設定を上書きします)。

返り値

値が見つかった場合はその値、見つからなかった場合は NULL を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Auth_PrefManager::getDefaultPref() | 上に戻る | Auth_PrefManager::setDefaultPref()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_PrefManager::setDefaultPref

PEAR マニュアル
前のページ 次のページ

Auth_PrefManager::setDefaultPref()

Auth_PrefManager::setDefaultPref() -- 設定のデフォルト値を登録する

概要

require_once '/PrefManager.php';

bool Auth_PrefManager::setDefaultPref (string $pref_id, mixed $value)

説明

$pref_id のデフォルト値を登録します。 ユーザがまだ設定を登録していない場合に、これが取得されます。

パラメータ

string $pref_id

登録する設定項目。

mixed $value

登録する値。

返り値

成功したかどうかを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Auth_PrefManager::getPref() | 上に戻る | Auth_PrefManager::setPref()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_PrefManager::setPref

PEAR マニュアル
前のページ 次のページ

Auth_PrefManager::setPref()

Auth_PrefManager::setPref() -- 設定を登録する

概要

require_once '/PrefManager.php';

bool Auth_PrefManager::setPref (string $user_id, string $pref_id, mixed $value)

説明

$pref_id の値を登録します。

パラメータ

string $user_id

設定するユーザ。

string $pref_id

登録する設定項目。

mixed $value

登録する値。

返り値

成功したかどうかを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Auth_PrefManager::setDefaultPref() | 上に戻る | Auth_PrefManager::setReturnDefaults()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_PrefManager::setReturnDefaults

PEAR マニュアル
前のページ 次のページ

Auth_PrefManager::setReturnDefaults()

Auth_PrefManager::setReturnDefaults() -- デフォルト値を返すかどうかを設定する

概要

require_once '/PrefManager.php';

void Auth_PrefManager::setReturnDefaults (mixed [$returnDefaults = TRUE])

説明

ユーザが設定項目を登録していない場合に、 getPref() がデフォルト値を返すかどうかを設定します。

パラメータ

mixed $returnDefaults

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

getDefaultPref() will always return the default value.

前のページ | ホーム | 次のページ
Auth_PrefManager::setPref() | 上に戻る | Auth_PrefManager::useCache()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_PrefManager::useCache

PEAR マニュアル
前のページ 次のページ

Auth_PrefManager::useCache()

Auth_PrefManager::useCache() -- キャッシュを使用するかどうかを設定する

概要

require_once '/PrefManager.php';

void Auth_PrefManager::useCache (bool [$use = TRUE])

説明

キャッシュを使用するかどうかを設定します。

キャッシュを有効にすると、取得した値がすべてユーザのセッションに保存されます。 これにより、データベースからの読み込み量を減らします。

パラメータ

boolean $use

キャッシュを使用するかどうか。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Auth_PrefManager::setReturnDefaults() | 上に戻る | Auth_RADIUS

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction to Auth_PrefManager

Introduction to Auth_PrefManager -- Auth_PrefManager は、 ユーザの設定あるいはアプリケーションの設定を DB 互換のデータベースで管理するシンプルなクラスです。

シンプルな設定マネージャ

以下の機能がサポートされています。

  • デフォルト値の設定

  • データベースに保存する前のデータのシリアライズ

  • DB がサポートする任意のデータベースのサポート

前のページ | ホーム | 次のページ
Auth_PrefManager | 上に戻る | チュートリアル

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


チュートリアル

チュートリアル -- Auth_PrefManager の簡単な使用法

データベースの準備

まず最初に、値を保存するデータベースを準備します。 このチュートリアルでは、読者はすでに PEAR の DB クラスの基本的な使用法を知っているものとします。

デフォルトのテーブルを準備するには、以下の SQL 文を実行します。

例 28-1テーブルを準備する SQL

CREATE TABLE `preferences` (
   `user_id` varchar( 255 ) NOT NULL default '',
   `pref_id` varchar( 32 ) NOT NULL default '',
   `pref_value` longtext NOT NULL ,
    PRIMARY KEY ( `user_id` , `pref_id` )
);

はじめての PrefManager オブジェクトの作成

Auth_PrefManager を使用するには、 まず以下のようにして基底オブジェクトのインスタンスを作成しなければなりません。

例 28-2オブジェクトの作成

<?php
require_once('Auth/PrefManager.php');
$dsn = 'mysql://user:password@localhost/database';   // 環境にあわせて DSN を変更します。
$options = array('serialize' => true);               // データを保存する前のシリアライズを有効にします。
                                                     // これにより、値が正しい形式で確実に取得できるようになります。
$prefmanager = new Auth_PrefManager($dsn, $options); // オブジェクトを作成します。
?>

デフォルト設定の登録および表示

PrefManager オブジェクトが出来上がったので、 これを使用して設定を登録してみましょう。

このチュートリアルでは、ユーザが自分の国を指定できるようにします。また、 国を登録しなかったユーザは「地球上のどこか」と設定されるようにします。

まずは setDefaultPref を使用してデフォルト値を設定しましょう。

例 28-3オブジェクトの設定

<?php
// 例 1 の続きです
$prefmanager->setDefaultPref("country", "地球");
?>

デフォルト値が設定できました。これで、(非常に) 基本的なページを作成することが可能です。 例えばユーザごとにカスタマイズしたメッセージを表示することができます。

現在は、このメッセージは常に "地球のみなさん、こんにちは!" となります。 まだどのユーザも自分の国を設定していないからです。

例 28-4設定の取得

$username = "guest";
<h1><?=$prefmanager->getPref($username, "country")?>のみなさん、こんにちは!</h1>

ユーザ設定の登録

最後に、自分が住む国を選択できるようにしなければなりません。

ここでは、単純なテキストボックスを使用します。 もちろん、実際のアプリケーションでは ユーザに設定変更させるのなら もうちょっとしっかり考える必要があるでしょう。

"国をリセット" ボタンは、ユーザ設定を消去してもう一度デフォルト値を表示します。

例 28-5設定の登録

<h1>国の設定</h1>
// ユーザが、国とユーザ名を登録できるようにします
if (isset($_POST['submit'])) {
    $username = htmlspecialchars($_POST['username']);
    $prefmanager->setPref($username, 'country', $_POST['country']);
} else if (isset($_POST['reset'])) {
    $username = htmlspecialchars($_POST['username']);
    $prefmanager->deletePref($username, 'country');
} else {
    $username = 'guest';
}
?>
<h1><?=$prefmanager->getPref($username, "country")?>のみなさん、こんにちは!</h1>
<h2>国とユーザ名を設定します</h2>
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) ?>">
  <label for="username">ユーザ名</label> <input name="username" value="<?=$username?>" /><br/>
  <label for="country">国</label> <input name="country" value="<?=$prefmanager->getPref($username, 'country')?>"/><br/>
  <input type="submit" name="submit" value="国の設定" /> <input type="submit" name="reset" value="国のリセット" />
</form>

一度ユーザ名と国名を入力すると、ログインするたびに そのユーザ用のメッセージが表示されるようになります。

完全なソースコード

例 28-6サンプルのソースコード

<h1>国の設定</h1>
<?php
require_once('Auth/PrefManager.php');

// PrefManager オブジェクトを作成します。

// 環境に合わせて DSN を変更します。
$dsn = 'mysql://user:password@localhost/database';

// データを保存する前のシリアライズを有効にします。
// これにより、値が正しい形式で確実に取得できるようになります。
$options = array('serialize' => true);

// オブジェクトを作成します。
$prefmanager = new Auth_PrefManager($dsn, $options);

// デフォルト値を設定します (スクリプトを実行するたびにこれを行う必要はありません)。
$prefmanager->setDefaultPref("country", "Earth");

// ユーザが、国とユーザ名を登録できるようにします。
if (isset($_POST['submit'])) {
    $username = htmlspecialchars($_POST['username']);
    $prefmanager->setPref($username, 'country', $_POST['country']);
} else if (isset($_POST['reset'])) {
    $username = htmlspecialchars($_POST['username']);
    $prefmanager->deletePref($username, 'country');
} else {
    $username = 'guest';
}
?>
<h1><?=$prefmanager->getPref($username, "country")?>のみなさん、こんにちは!</h1>
<h2>国とユーザ名を設定します</h2>
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) ?>">
  <label for="username">ユーザ名</label> <input name="username" value="<?=$username?>" /><br/>
  <label for="country">国</label> <input name="country" value="<?=$prefmanager->getPref($username, 'country')?>"/><br/>
  <input type="submit" name="submit" value="国の設定" /> <input type="submit" name="reset" value="国のリセット" />
</form>
前のページ | ホーム | 次のページ
Introduction to Auth_PrefManager | 上に戻る | constructor Auth_PrefManager::Auth_PrefManager()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_RADIUS

目次
Introduction -- Basic usage of Auth_RADIUS

Client implementation of RADIUS. This package contains wrapper classes for the RADIUS PECL extension. Provides RADIUS Authentication (RFC2865) and RADIUS Accounting (RFC2866).

前のページ | ホーム | 次のページ
Auth_PrefManager::useCache() | 上に戻る | Introduction

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_Frontend_HTML

Auth_Frontend_HTML -- デフォルトのログインフォーム

概要

PEAR::Auth_Frontend_HTML は、 PEAR::Auth で使用する、 汎用的なデフォルトのログインページを提供します。 独自のログインページの作成を考えている場合は、まずここからはじめてみるとよいでしょう。 ここには、ログインフォームに必要な要素がすべて含まれています。

前のページ | ホーム | 次のページ
独自の Auth_Container | 上に戻る | 定数

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth::addUser()

Auth::addUser() -- 新しいユーザを追加する

概要

mixed Auth::addUser (string $username, string $password [, mixed $additional = ''])

説明

Auth コンテナに新しいユーザを追加します。

パラメータ

string $username

新しいユーザのユーザ名。

string $password

新しいユーザのパスワード。

mixed $additional = ''

新しいユーザを作成する際に渡す、追加のオプション。各 Auth_Container はそれぞれ独自のオプションを持っています。 サポートされるオプションについてはコンテナのドキュメントを参照ください。

返り値

mixed - 成功した場合に TRUE、失敗した場合に PEAR Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

すべての Auth コンテナがこの機能を実装しているというわけではありません。

前のページ | ホーム | 次のページ
Auth::Auth() | 上に戻る | Auth::changePassword()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth::Auth()

Auth::Auth() -- コンストラクタ

概要

Auth::Auth (mixed $storageDriver [, mixed $options = "" [, string $loginFunction = "" [, boolean $showLogin = TRUE]]])

説明

認証システムのコンストラクタです。

コンストラクタによって、session_start() で PHP のセッション管理が開始されることが保証されます。 Auth が正しく動作するためには、セッションが有効になっている必要があるからです。

パラメータ

string $storageDriver

使用すべきストレージドライバーの名前、 もしくは独自の Auth_Container オブジェクト

mixed $options

ストレージコンテナに渡されるオプション

string $loginFunction

ログイン画面を表示するユーザ定義関数の名前

boolean $showLogin

ログインがオプションかどうかの定義

注意

この関数は、スタティックにコールする ことはできません。

参照

ストレージドライバ

例

例 28-1DB パラメータ

<?php
require_once "Auth/Auth.php";

function myOutput($username, $status)
{
    ...  /* See first example in introduction for the full listing */
}

$params = array(
            "dsn" => "mysql://martin:test@localhost/auth",
            "table" => "myAuth",
            "usernamecol" => "myUserColumn",
            "passwordcol" => "myPasswordColumn"
            );

$a = new Auth("DB", $params, "myOutput");

$a->start();

if ($a->getAuth()) {
    echo "You have been authenticated successfully.";
}
?>
    ;

データベーステーブル、 およびカラム名の代替名を指定する方法について示します。 この例では、テーブル myAuth を使用します。 フィールド myUserColumn からユーザー名、 フィールド myPasswordColumn からパスワードを選択します。 デフォルトでは、テーブル名およびフィールド名は それぞれ、auth および username、password となります。 また、DSN の代わりに、DSN 引数を保持した DB のオブジェクトを 渡すこともできます。

この機能は、 デフォルトと異なるデータベースレイアウトで、 PEAR::Auth を使用したい場合に必要となります。

例

例 28-2独自ストレージコンテナ

<?php
require_once "Auth/Auth.php";

function myOutput($username, $status)
{
    ...  /* See first example in introduction for the full listing */
}

$a = new Auth(new CustomAuthContainer($options), null, "myOutput");

$a->start();

if ($a->getAuth()) {
    echo "You have been authenticated successfully.";
}
?>

この例は、独自のストレージコンテナを Auth に渡す方法について示しています。

Auth パッケージが提供するストレージコンテナが、 自らの要求に合致しない場合は、独自のストレージコンテナを 作成することができます。 ストレージコンテナの詳細な情報については、 ストレージドライバ のセクションを参照してください。

前のページ | ホーム | 次のページ
定数 | 上に戻る | Auth::addUser()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth::changePassword()

Auth::changePassword() -- ユーザのパスワードを変更する

概要

mixed Auth::changePassword (string $username, string $password)

説明

Auth コンテナ内でのユーザのパスワードを変更します。

パラメータ

string $username

ユーザのユーザ名。

string $password

ユーザの新しいパスワード。

返り値

mixed - 成功した場合に TRUE、失敗した場合に PEAR Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

すべての Auth コンテナがこの機能を実装しているというわけではありません。

前のページ | ホーム | 次のページ
Auth::addUser() | 上に戻る | Auth::checkAuth()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth::checkAuth()

Auth::checkAuth() -- 有効な認証情報を持つセッションが存在するかどうかを調べる

概要

boolean Auth::checkAuth ()

説明

有効な認証情報を持つセッションが存在するかどうかを調べます。

返り値

boolean - 有効な認証情報を持つセッションが存在する場合、この関数は TRUE を返します。それ以外の場合は FALSE を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Auth::changePassword() | 上に戻る | Auth::getAuth()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth::getAuth()

Auth::getAuth() -- ユーザが認証済みかどうか調べる

概要

boolean Auth::getAuth ()

説明

ユーザが認証済みかどうか調べます。

返り値

boolean - ユーザが既に認証済みならば、関数は TRUE を返します。 そうでなければ、FALSE を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Auth::checkAuth() | 上に戻る | Auth::getAuthData()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth::getAuthData()

Auth::getAuthData() -- 認証セッション内に保存された追加情報を取得する

概要

mixed Auth::getAuthData (string $name)

説明

この関数は、事前に登録されているデータフィールドの値を取得します。

パラメータ

string $name

データフィールドの名前。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Auth::getAuth() | 上に戻る | Auth::getStatus()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth::getStatus()

Auth::getStatus() -- 認証セッションの現在の状況を取得する

概要

int Auth::getStatus ()

説明

認証セッションの現在の状況を取得します。

返り値

int - 現在のセッションの状況を表す Auth の定数を返します。

注意

この関数は、スタティックにコールする ことはできません。

参照

"Auth 定数"

前のページ | ホーム | 次のページ
Auth::getAuthData() | 上に戻る | Auth::getUsername()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth::getUsername()

Auth::getUsername() -- 認証済みユーザのユーザ名を取得する

概要

string Auth::getUsername ()

説明

ログインしているユーザのユーザ名を取得します。

返り値

string - ログインしているユーザのユーザ名を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Auth::getStatus() | 上に戻る | Auth::listUsers()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth::listUsers()

Auth::listUsers() -- ユーザの一覧を取得する

概要

array Auth::listUsers ()

説明

現在の Auth コンテナで、現在有効となっているユーザの一覧を返します。

返り値

array - ユーザの詳細情報の配列を返します。現在は統一された決まりはありません。 何がどのように返されるのかについては、各 Auth コンテナのドキュメントを参照ください。

注意

この関数は、スタティックにコールする ことはできません。

すべての Auth コンテナがこの機能を実装しているというわけではありません。

前のページ | ホーム | 次のページ
Auth::getUsername() | 上に戻る | Auth::logout()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth::logout()

Auth::logout() -- 認証済みのユーザをログアウトさせる

概要

void Auth::logout ()

説明

現在ログイン中のユーザをログアウトさせます。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Auth::listUsers() | 上に戻る | Auth::removeUser()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth::removeUser()

Auth::removeUser() -- ユーザアカウントを削除する

概要

mixed Auth::removeUser (string $username)

説明

Auth コンテナからユーザを削除します。

パラメータ

string $username

削除するユーザのユーザ名。

返り値

mixed - 成功した場合に TRUE、失敗した場合に PEAR Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

すべての Auth コンテナがこの機能を実装しているというわけではありません。

前のページ | ホーム | 次のページ
Auth::logout() | 上に戻る | Auth::setAdvancedSecurity()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth::sessionValidThru()

Auth::sessionValidThru() -- セッションの有効期限を取得する

概要

int Auth::sessionValidThru ()

説明

このメソッドは、現在の認証セッションのアイドル時間がリミットに達する、 すなわち、ユーザが自動的にログアウトされてしまう期限を秒（Unix 時間）で 返します。 最大アイドル時間が設定されていない場合は、0 が返されます （PEAR::Auth のデフォルト設定では、 最大アイドル時間は設定されていません）。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Auth::setShowLogin() | 上に戻る | Auth::start()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth::setAdvancedSecurity()

Auth::setAdvancedSecurity() -- 高度なセキュリティ機能を有効にする。デフォルトでは無効となっている

概要

void Auth::setAdvancedSecurity ([bool $flag = true])

説明

高度なセキュリティ機能を有効にし、中間者攻撃 (man in the middle attack) やセッションハイジャックを困難にします。この関数の機能の中には、 クッキーや Javascript をブラウザ側で有効にする必要があるものもあります。

以下のセキュリティ機能が有効になります。

  • クライアントの IP アドレスや User-Agent ヘッダの変更が検出されると、 ユーザをログアウトさせます。

  • 各クライアントからのリクエストに対して、特別な一意のクッキーをクライアントに送信します。 次回のリクエスト時に、クライアントがそのクッキーを持っている必要があります。 このクッキーは、リクエストのたびに毎回変更されます。 もしクライアントが正しいクッキーを持っていなければ、ログアウトさせます。

  • デフォルトのログイン画面で、チャレンジレスポンス方式を有効にします。 ユーザのパスワードは、Javascript でハッシュしてからサーバに送信されます。 これにより、パスワード盗聴ツールなどでパスワードが盗まれることを防ぎます。 パスワードはランダムなキーを使用してハッシュされるので、md5 ハッシュが ブルートフォース式のクラッキングの被害にあうことはありません。 これは、チャレンジレスポンス方式のパスワード認証をサポートしている ストレージコンテナでのみ使用可能です。現在は DB、MDB および MDB2 コンテナだけが md5 およびクリアテキストのパスワードをサポートしています。

注意 このメソッドは 1.3.0 以降で使用可能です。

パラメータ

boolean $flag

高度なセキュリティ機能を有効にしたい場合は TRUE、無効にしたい場合は FALSE を指定します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Auth::removeUser() | 上に戻る | Auth::setAllowLogin()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth::setAllowLogin()

Auth::setAllowLogin() -- ユーザがログイン可能かどうかを制御する。デフォルトではオンになっている

概要

void Auth::setAllowLogin (bool $allowLogin = true)

説明

Auth が POST 変数を処理し、ユーザのログイン処理を行うかどうかを制御します。 セキュリティ向上のため、ログインページ以外のすべてのページでは ログイン機能を無効にしておくことを推奨します。

パラメータ

boolean $allowLogin

ログインを有効にしたい場合は TRUE、それ以外は FALSE を指定します。

注意

この関数は、スタティックにコールする ことはできません。

このメソッドは 1.3.0 以降で使用可能です。

前のページ | ホーム | 次のページ
Auth::setAdvancedSecurity() | 上に戻る | Auth::setAuth()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth::setAuth()

Auth::setAuth() -- 特定のユーザをログイン済みとして扱う

概要

void Auth::setAuth (string $username)

説明

指定したユーザが、そのセッションでログイン済みであるとして扱います。 通常は内部的に使用するものですが、この関数を使用してログイン情報を詐称することも可能です。

パラメータ

string $name

データフィールドの名前。

注意

この関数は、スタティックにコールする ことはできません。

この関数は session_regenerate_id() をコールします。 そのため、セッション固定攻撃 (session fixation attack) を防ぐことができます。

前のページ | ホーム | 次のページ
Auth::setAllowLogin() | 上に戻る | Auth::setAuthData()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth::setAuthData()

Auth::setAuthData() -- 認証セッションの追加情報を保存する

概要

void Auth::setAuthData (string $name, mixed $value [, boolean $overwrite = true])

説明

この関数は、認証データとともに追加の情報を登録します。

パラメータ

string $name

データフィールドの名前。

mixed $value

データフィールドの値。

boolean $overwrite

既存のデータフィールドを置き換えるかどうか。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Auth::setAuth() | 上に戻る | Auth::setExpire()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth::setExpire()

Auth::setExpire() -- 認証有効期限を設定する

概要

void Auth::setExpire (integer $time [, boolean $add = FALSE])

説明

この関数は、（ログインしてから） 認証が期限切れとなるまでの時間を新しい値に設定します。

パラメータ

integer $time

認証有効期間（単位：秒）

boolean $add

TRUE の場合、 現在指定されている認証有効期間に $time が加えられます。 FALSE の場合は、$time に置き換えられます。

注意

この関数は、スタティックにコールする ことはできません。

Auth は、PHP のセッション機能を使用して、 ユーザの http コールの間隔を判断します。 Auth の有効期限をセッションのタイムアウトより大きくしたとしても、 PHP のセッションが期限切れになった時点で Auth も期限切れとなります。

前のページ | ホーム | 次のページ
Auth::setAuthData() | 上に戻る | Auth::setFailedLoginCallback()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth::setFailedLoginCallback()

Auth::setFailedLoginCallback() -- ログインに失敗した際のコールバックを設定する

概要

void Auth::setFailedLoginCallback (string $loginFailedCallback)

説明

この関数は、ユーザがログインに失敗した際にコールされるコールバック関数を設定します。

コールバック関数にはふたつのパラメータが渡されます。 ログインに失敗したユーザ名と、Auth オブジェクトへの参照です。

パラメータ

string $loginFailedCallback

使用するコールバック関数。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Auth::setExpire() | 上に戻る | Auth::setIdle()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth::setIdle()

Auth::setIdle() -- 最大アイドル時間を設定する

概要

void Auth::setIdle (integer $time [, boolean $add = FALSE])

説明

このメソッドで、最大アイドル時間を設定できます。 "アイドル時間"とは、 ユーザが2つの操作をする間隔の最大時間（単位：秒）のことです。 操作無しに最大アイドル時間が経過すると、ユーザは自動的にログアウトされて しまいます。逆に、ユーザが最大アイドル時間までに何か操作をすると、 アイドル時間はリセットされます。

パラメータ

integer $time

idle time in seconds

boolean $add

TRUE の場合、 現在指定されているアイドル時間に $time が加えられます。 FALSE の場合は、$time に置き換えられます。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Auth::setFailedLoginCallback() | 上に戻る | Auth::setLoginCallback()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth::setLoginCallback()

Auth::setLoginCallback() -- ログインに成功した際のコールバックを設定する

概要

void Auth::setLoginCallback (string $loginCallback)

説明

この関数は、ユーザがログインに成功した際にコールされるコールバック関数を設定します。

コールバック関数にはふたつのパラメータが渡されます。 ログインに成功したユーザ名と、Auth オブジェクトへの参照です。

パラメータ

string $loginCallback

使用するコールバック関数。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Auth::setIdle() | 上に戻る | Auth::setLogoutCallback()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth::setLogoutCallback()

Auth::setLogoutCallback() -- ログアウトに成功した際のコールバックを設定する

概要

void Auth::setLogoutCallback (string $loginCallback)

説明

この関数は、ユーザがログアウトに成功した際にコールされるコールバック関数を設定します。

コールバック関数にはふたつのパラメータが渡されます。 ログアウトに成功したユーザ名と、Auth オブジェクトへの参照です。

パラメータ

string $loginCallback

使用するコールバック関数。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Auth::setLoginCallback() | 上に戻る | Auth::setSessionName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth::setSessionName()

Auth::setSessionName() -- カスタムセッション名を設定する

概要

void Auth::setSessionName (string $name)

説明

この関数は、 ログイン時に作成させるセッションの名前を カスタマイズして設定することができます。 セッション名のデフォルトは、"PHPSESSID" です。

パラメータ

string $name

使用するセッション名

注意

この関数は、スタティックにコールする ことはできません。

同じドメインで Auth を用いるアプリケーションを複数実行する場合は、 setSessionName() を使用する必要があります。 この関数を使用しない場合、 アプリケーションの一つにログインしたユーザは、 再度ログインすることなしに他のアプリケーションも 使用することができてしまいます!

前のページ | ホーム | 次のページ
Auth::setLogoutCallback() | 上に戻る | Auth::setShowLogin()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth::setShowLogin()

Auth::setShowLogin() -- ログインフォームが表示されるかどうかを制御する。デフォルトは「表示される」

概要

void Auth::setShowLogin (bool $showLogin = true)

説明

ログインページがユーザに表示されるかどうかを制御します。 通常、WEB アプリケーションの特定のページでのみ ログインフォームを表示すればよいでしょう。

パラメータ

boolean $showLogin

ログインフォームを表示したければ TRUE、 表示したくなければ FALSE を指定します。

注意

この関数は、スタティックにコールする ことはできません。

これは、 Auth::Auth() の第 4 引数と同様のものです。

前のページ | ホーム | 次のページ
Auth::setSessionName() | 上に戻る | Auth::sessionValidThru()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth::start()

Auth::start() -- 認証を開始する

概要

void Auth::start ()

説明

認証プロセスを開始します。これを行うため、Auth はまず既存のセッションがあるかどうかとそのセッションが有効かどうかを調べます。 既存のセッションがなかったり、既存のセッションが何らかの理由で終了していた場合は、 ログインフォームを作成します。ログインフォームの作成には、 独自に指定したコールバックあるいは Auth_Frontend_HTML で実装されているデフォルトフォームが使用されます。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Auth::sessionValidThru() | 上に戻る | Auth_HTTP

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


定数

定数 -- 定義済の定数

AUTH_IDLED

-1

セッションのアイドル時間が所定の時間をこえている場合に返されます。

AUTH_EXPIRED

-2

セッションが期限切れになった場合に返されます。

AUTH_WRONG_LOGIN

-3

使用中の Auth コンテナが、与えられた ユーザ名/パスワード の組み合わせを有効だと判断できなかった場合に返されます。

AUTH_METHOD_NOT_SUPPORTED

-4

使用中の Auth コンテナで、その関数が実装されていない場合に返されます。

AUTH_SECURITY_BREACH

-5

高度なセキュリティチェックで問題が見つかった場合に返されます。

前のページ | ホーム | 次のページ
Auth_Frontend_HTML | 上に戻る | Auth::Auth()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- 使用例

Authについてのチュートリアル

この"ミニチュートリアル"では、 簡単な認証機構を利用してシステムを構築し、 サイトをセキュアにすることを目標とします。

セキュアにしたいサイトのはじめに、以下の短いコードを置いてください。

例 28-1PEAR::Authの典型的な使用例

require_once "Auth.php";

function loginFunction()
{
    /*
     * HTML出力は、作成するアプリケーションに合うように、
     * 変更してください。
     */
    echo "<form method=\"post\" action=\"test.php\">";
    echo "<input type=\"text\" name=\"username\">";
    echo "<input type=\"password\" name=\"password\">";
    echo "<input type=\"submit\">";
    echo "</form>";
}

$options = array(
  'dsn' = "mysql://user:password@localhost/database",
  );
$a = new Auth("DB", $options, "loginFunction");

$a->start();

if ($a->checkAuth()) {
    /*
     * サイトの出力はここ。
     */
}

このような短いコードでも、認証システムを実現できています。

最初の行では、PEARディレクトリからファイルを読み込んでいます。 そのファイルには、PEAR::Auth の実行に必要なコードが全て含まれています。 次に、ページの閲覧者がログインデータを入力するために使用する ログインフォームを表示する関数を定義します。 この関数のHTML フォーマットは自由に変更することが出来ます。

この例では、ログインデータの検証にデータベースを使用するので、 変数$dsnを作成します。 この変数には、 PEAR::DB によるデータベース接続に使われる有効なDSN文字列を指定します。 デフォルトのテーブルスキーマについて、および データベース以外のストレージコンテナを使用する方法については、 後述の説明を参照下さい。

その後、認証オブジェクトを作成します。 はじめの引数には、ストレージコンテナ名を指定します。 ここでは、データベースによるストレージコンテナを使用するので、 "DB"を渡します。 ２番目には、使用するストレージコンテナのドライバへの コネクション引数です。 ここでは、定義済のDSN文字列を使います。 ３番目の引数は、スクリプトの最初で定義した関数の名前です。 この関数は、ログインフォームを表示します。

ついで、認証オブジェクトを初期化します。そして、 ユーザがログインしているかどうか調べる必要があります。 これは、checkAuth()メソッドにより行います。 TRUEが返されると、ページの内容をユーザに示すことができます。

例 28-2認証の選択的な使用

// ここでは、ファイルの名前が "test.php" であるとします

require_once "Auth.php";

function loginFunction()
{
     /*
      * HTML出力は、作成するアプリケーションに合うように、
      * 変更してください。
      */
     echo "<form method=\"post\" action=\"test.php?login=1\">";
     echo "<input type=\"text\" name=\"username\">";
     echo "<input type=\"password\" name=\"password\">";
     echo "<input type=\"submit\">";
     echo "</form>";
}

if (isset($_GET['login']) && $_GET['login'] == 1) {
     $optional = true;
} else {
     $optional = false;
}

$options = array(
  'dsn' = "mysql://user:password@localhost/database",
  );
$a = new Auth("DB", $options, "loginFunction", $optional);

$a->start();

echo "すべての人がこのテキストを読めます。<br />";

if (!isset($_GET['login'])) {
     echo "<a href=\"test.php?login=1\">ログイン</a>\n";
}

if ($a->getAuth()) {
     echo "ログインした人だけが、ここを見れます。";
}

上記は、ログイン機能を選択的に使用する例です。 最後の$optionalパラメータは、 TRUEまたはFALSEとします。 FALSEとした場合、ログインフォームは表示されず、 ユーザは「すべての人がこのテキストを読めます。」 の文だけを見ることができます。 もし、ユーザがこのページ上部のリンクをクリックすると、 GETパラメータが"login=1"となって、同じページに接続します。 今回は、ログイン情報をログインフォームに入力できます。 ログインに成功すると、 「すべての人がこのテキストを読めます。」の文と 「ログインした人だけが、ここを見れます。」 の文の両方を見ることができます。

例 28-3ログアウト機能

以下の例では、現在のユーザをログアウトさせ、 ログインフォームを再び表示します。

$myauth->start();
if ($_GET['action'] == "logout" && $myauth->checkAuth()) {
    $myauth->logout();
    $myauth->start();
}

以下では、PEAR::Authの機能についての 詳細を示します。

次のSQL文は、MySQLを使用して、 データベース認証用のデフォルトのスキームを作成します。

CREATE TABLE auth (
   username VARCHAR(50) default '' NOT NULL,
   password VARCHAR(32) default '' NOT NULL,
   PRIMARY KEY (username),
   KEY (password)
);

認証を機能させるために必要なテーブル名とフィールド名が示されています。 PEAR::Auth のデフォルトの暗号化方式である MD5 アルゴリズムでパスワードのハッシュ値を計算する場合、 password カラムは、32文字以上とする必要があります。 他の暗号化方式、たとえばDES ("UNIX crypt") など、を使用する場合は、 それに合わせてカラムサイズを変更する必要があります。

前のページ | ホーム | 次のページ
Auth | 上に戻る | ストレージドライバ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


ストレージドライバ

ストレージドライバ -- 導入

概要

PEAR::Authでは、 種々のいわゆる「ストレージコンテナ」を使用してログインデータを保存することができます。 以下では、各ストレージコンテナの詳細について述べます。 それらコンテナのいずれもがあなたのニーズに合致しない場合は、 独自のものを作成することも簡単です。

利用できるコンテナ

Array

PHP の配列を使用するストレージコンテナです。

DB

PEAR DB を使用するストレージコンテナです。

DBLite

DB コンテナをシンプルにしたもので、ユーザ認証の機能のみを持っています。 ユーザ管理の関数は提供されていません。

File

PEAR File_Passwd を使用するストレージコンテナです。

IMAP

IMAP サーバを使用するストレージコンテナです。

KADM5

Kerberos V サーバを使用するストレージコンテナです。

LDAP

LDAP サーバを使用するストレージコンテナです。

MDB

PEAR MDB を使用するストレージコンテナです。

MDB2

PEAR MDB2 を使用するストレージコンテナです。

PEAR

PEAR ウェブサイトを使用するストレージコンテナです。

POP3

POP3 サーバを使用するストレージコンテナです。

RADIUS

RADIUS サーバを使用するストレージコンテナです。

SAP

SAP サーバを使用するストレージコンテナです。

SMBPasswd

PEAR File_SMBPasswd を使用するストレージコンテナです。

SOAP

SOAP サービスを使用するストレージコンテナです。クライアントとしては PEAR SOAP を使用します。

SOAP5

SOAP サービスを使用するストレージコンテナです。クライアントとしては PHP5 SOAP を使用します。

vpopmail

vpopmail を使用するストレージコンテナです。

Custom

独自のストレージコンテナを作成するための説明です。

前のページ | ホーム | 次のページ
導入 | 上に戻る | Auth_Container_Array

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_Container_Array

Auth_Container_Array -- ユーザ名とパスワードの配列を使用して認証を行う

Array

このストレージコンテナは、少数の ユーザ名/パスワード のペアをスクリプトのソースコード中に保存する機能を提供します。

Auth コンストラクタ() でのこのストレージ固有のオプションは、オプションの配列です。

表 28-1使用可能なオプション

オプション | データ型 | デフォルト値 | 説明
"cryptType" | string | "none" | パスワードを保存する際の暗号化方式。
"users" array array() ユーザ名およびパスワードハッシュの連想配列。
array(
    'guest' => '084e0343a0486ff05530df6c705c8bb4', // パスワードは guest
    'georg' => 'fc77dba827fcc88e0243404572c51325' // パスワードは georg
)

前のページ | ホーム | 次のページ
ストレージドライバ | 上に戻る | Auth_Container_DB

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


独自の Auth_Container

独自の Auth_Container -- 独自のストレージコンテナを作成する

独自のストレージコンテナ

独自のストレージコンテナを作成するための雛形を以下に示します。

例 28-1CustomAuthContainer.php

include_once 'Auth/Container.php';

class CustomAuthContainer extends Auth_Container
{
    /**
     * コンストラクタ
     */
    function CustomAuthContainer($params)
    {
      // 初期化をここで行います
    }

    function fetchData($username, $password)
    {
        // 有効かどうかを調べます
        if($isvalid) {
            // 何らかの処理をします
            return true;
        }
        return false;
    }
}

そして、これを使用するには以下のようにします。

例 28-2authcustom.php

include_once 'CustomAuthContainer.php';
include_once 'Auth/Auth.php';

$auth_container = new CustomAuthContainer($params);
$myauth = new Auth($auth_container);

$myauth->start();
前のページ | ホーム | 次のページ
Auth_Container_vpopmail | 上に戻る | Auth_Frontend_HTML

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_Container_DB

Auth_Container_DB -- DB を使用して、データベースによる認証を行う

DB コンテナ

このコンテナは、 PEAR::DB 抽象化レイヤーを使用してデータベースへのアクセスを行います。 つまり、DB がサポートしているすべてのデータベースに対して ログインデータを保存することができます。

Auth コンストラクタ() でのこのストレージ固有のオプションは、オプションの配列です。

表 28-1使用可能なオプション

オプション | データ型 | デフォルト値 | 説明
"dsn" | string | "" | 有効な、正しい形式の DSN 。
"table" | string | "auth" | 認証データが保存されるテーブル名。
"usernamecol" | string | "username" | ユーザ名が保存されるカラムの名前。
"passwordcol" | string | "password" | 暗号化されたパスワードが保存されるカラムの名前。
"db_fields" | array | array() | ユーザの詳細情報を読み込む際に使用する追加フィールドの配列。
"cryptType" | string | "md5" | パスワードを保存する際の暗号化方式。
"auto_quote" | boolean | TRUE | データベースのテーブル名、フィールド名を自動的にクォートするかどうか。
"db_options" | array | array() | PEAR::DB のコンストラクタに渡すオプションの配列。 詳細は PEAR::DB::setOption() を参照ください。

前のページ | ホーム | 次のページ
Auth_Container_Array | 上に戻る | Auth_Container_DBLite

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_Container_DBLite

Auth_Container_DBLite -- DB を使用して、データベースによる認証を行う

DBLite コンテナ

DBLite コンテナは、 DB コンテナをシンプルにしたものです。 ユーザ管理に関するコードを削除し、単純なユーザ認証機能のみを提供します。

Auth コンストラクタ() でのこのストレージ固有のオプションは、オプションの配列です。

表 28-1使用可能なオプション

オプション | データ型 | デフォルト値 | 説明
"dsn" | string | "" | 有効な、正しい形式の DSN 。
"table" | string | "auth" | 認証データが保存されるテーブル名。
"usernamecol" | string | "username" | ユーザ名が保存されるカラムの名前。
"passwordcol" | string | "password" | 暗号化されたパスワードが保存されるカラムの名前。
"db_fields" | array | array() | ユーザの詳細情報を読み込む際に使用する追加フィールドの配列。
"cryptType" | string | "md5" | パスワードを保存する際の暗号化方式。
"auto_quote" | boolean | TRUE | データベースのテーブル名、フィールド名を自動的にクォートするかどうか。
"db_options" | array | array() | PEAR::DB のコンストラクタに渡すオプションの配列。 詳細は PEAR::DB::setOption() を参照ください。

前のページ | ホーム | 次のページ
Auth_Container_DB | 上に戻る | Auth_Container_File

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_Container_File

Auth_Container_File -- File_Passwd を使用して、パスワードファイルによる認証を行う

File コンテナ

説明

Auth コンストラクタ() でのこのストレージ固有のオプションは、オプションの配列です。

表 28-1使用可能なオプション

オプション | データ型 | デフォルト値 | 説明
"type" | string | "Cvs" | 認証に使用するファイルのフォーマット。使用可能な形式については PEAR::File_Passwd のドキュメントを参照ください。
"file" | string | "" | 使用するファイルのファイル名。

前のページ | ホーム | 次のページ
Auth_Container_DBLite | 上に戻る | Auth_Container_IMAP

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_Container_IMAP

Auth_Container_IMAP -- IMAP サーバを使用して認証を行う

IMAP コンテナ

このストレージコンテナは、指定した IMAP サーバに接続して ユーザ名/パスワード によってログインを試みます。

Auth コンストラクタ() でのこのストレージ固有のオプションは、オプションの配列です。

表 28-1使用可能なオプション

オプション | データ型 | デフォルト値 | 説明
"host" | string | "localhost" | IMAP サーバのホスト名あるいは IP アドレス。
"port" | integer | 143 | IMAP サーバが待ち受けているポート。
"baseDSN" | string | "" | これは、SSL、TLS や証明書などといった接続方式を制御します。 SSL IMAP サーバに接続するには: "/imap/ssl" SSL IMAP サーバに自己署名の証明書で接続するには: "'/imap/ssl/novalidate-cert'" 詳細なオプションは、PHP のサイトにある http://www.php.net/manual/function.imap-open.php で得られます。
"timeout" | integer | 20 | サーバに接続する際のタイムアウト秒数。
"checkServer" | boolean | TRUE | コンテナの開始時に、サーバに接続できるかどうかを調べるかどうか。

前のページ | ホーム | 次のページ
Auth_Container_File | 上に戻る | Auth_Container_KADM5

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_Container_KADM5

Auth_Container_KADM5 -- Kerberos 5 サーバを使用して認証を行う

KADM5 コンテナ

このストレージドライバは、PECL の kadm5 拡張モジュールを使用して、 Kerberos V サービスでの認証機能を提供します。

Auth コンストラクタ() でのこのストレージ固有のオプションは、オプションの配列です。

表 28-1使用可能なオプション

オプション | データ型 | デフォルト値 | 説明
"hostname" | string | "localhost" | Kerberos V サーバのホスト名あるいは IP アドレス。
"realm" | string | "" | 認証用の Kerberos V realm。
"timeout" | integer | 10 | サーバに接続する際のタイムアウト秒数。
"checkServer" | boolean | FALSE | コンテナの開始時に、サーバに接続できるかどうかを調べるかどうか。

前のページ | ホーム | 次のページ
Auth_Container_IMAP | 上に戻る | Auth_Container_LDAP

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_Container_LDAP

Auth_Container_LDAP -- LDAP サーバを使用して認証を行う

LDAP コンテナ

このストレージコンテナは、ldap 拡張モジュールを使用して LDAP サーバからユーザのデータを読み込みます。

Auth コンストラクタ() でのこのストレージ固有のオプションは、オプションの配列です。

表 28-1使用可能なオプション

オプション | データ型 | デフォルト値 | 説明
"host" | string | "localhost" | アクセスするホスト名あるいは IP アドレス。
"port" | integer | 389 | アクセスする LDAP サーバのポート。
"url" string "" プロトコル、URL およびポートを指定した、接続先の完全な URL。 ldaps:// を指定すると便利です。これは、 "host" および "port" の設定より優先します。 PHP が OpenLDAP 2+ ライブラリと組み合わせてコンパイルされている場合にのみ使用可能です。
"version" | integer | 2 | 使用する LDAP のバージョン。通常は 2 (デフォルト) あるいは 3 です。整数型でなければなりません!
"referrals" | boolean | TRUE | LDAP サーバから返される照会 (referral) 情報に自動的に従うかどうかを設定します。
"binddb" string "" 設定されている場合は、まずこのユーザでバインドしてからユーザの検索を始めます。 設定されていない場合は、匿名バインドを使用します。 これにより、MS アクティブディレクトリでこのコンテナが動作するようになると言われていますが、 この方式で設定されているサーバなら、他のものでも動作するでしょう。 現時点では、これは完全な dn でなければなりません (basedn と userdn は連結されません)。
"bindpw" string "" binddn でバインドする際に使用するパスワード。
"basedn" string "" サーバのベース DN。
"userdn" string "" ユーザを検索する際に、basedn の前に付加されます。
"userscope" | string | "sub" | ユーザを検索する際の範囲。one、sub (デフォルト) あるいは base のいずれか。
"userattr" | string | "uid" | 検索する属性を指定します。
"userfilter" | string | "(objectClass=posixAccount)" | 検索に使用するフィルタ。 (&(userattr=username)(userfilter)) のように用いられます。
"attributes" | array | array('') | エントリから取得する追加の属性の配列。これらは認証データに追加され、 Auth::getAuthData() で取得できるようになります。空の配列を指定するとすべての属性を取得し、 array('') (デフォルト) を指定すると何も取得しません。この配列の値として 'dn' を追加すると、バインドに使用するユーザの DN が認証データに追加されます。
"attrformat" string "AUTH"

'attributes' オプションで定義した追加データを返す際の書式。 次の二種類が使用可能です。

LDAP は、データを多次元の配列で返します。各配列は 'count' という要素から始まり、そこでエントリ内の属性の数か あるいは属性内の値の数を提供します。この書式を指定すると、 Auth オブジェクトからデータを取得する手段は getAuthData('attributes') だけとなります。これは、 1.3.0 より前のバージョンでのデフォルトの書式です。

AUTH は、他の Auth コンテナにより近い形式でデータを返します。 各属性の要素には、Auth の getAuthData() メソッドを直接コールしてアクセス可能です。 1.3.0 以降、これがデフォルトとなりました。

"groupdn" string "" グループを検索する際に、basedn の前に付加されます。
"groupattr" | string | "cn" | 検索するグループの属性を指定します。
"groupfilter" | string | "(objectClass=groupOfUniqueNames)" | グループの検索の際に、検索フィルタに追加されるフィルタ。 (&(groupattr=group)(memberattr=username)(groupfilter)) のように用いられます。
"memberattr" | string | "uniqueMember" | ユーザの dn を探す対象となる、グループオブジェクトの属性。
"memberisdn" | boolean | TRUE | memberattr がユーザの dn (デフォルト) であるか、それとも userattr (通常は uid) であるか。
"group" string "" 認証に成功するために、ユーザが所属していなければならないグループの名前。
"groupscope" | string | "sub" | グループを検索する際の範囲。one、sub (デフォルト) あるいは base のいずれか。
"start_tls" | boolean | "false" | START_TLS 暗号化接続の使用を有効/無効にします。
"try_all" | boolean | FALSE | 認証処理の検索で複数のエントリが返された場合に、 すべてのエントリを順に試すかあるいは最初のエントリだけを試す (デフォルト) か。
"debug" | boolean | FALSE | デバッグ出力を有効にします。

例 28-1LDAP サーバに対する認証

$a1 = new Auth("LDAP", array(
   'host' => 'localhost',
   'port' => '389',
   'version' => 3,
   'basedn' => 'o=netsols,c=de',
   'userattr' => 'uid'
   'binddn' => 'cn=admin,o=netsols,c=de',
   'bindpw' => 'password'
   ));

例 28-2特定のグループに所属するユーザを対象とする

$a2 = new Auth('LDAP', array(
   'url' => 'ldaps://ldap.netsols.de',
   'basedn' => 'o=netsols,c=de',
   'userscope' => 'one',
   'userdn' => 'ou=People',
   'groupdn' => 'ou=Groups',
   'groupfilter' => '(objectClass=posixGroup)',
   'memberattr' => 'memberUid',
   'memberisdn' => false,
   'group' => 'admin'
   ));

例 28-3Microsoft Active Directory サーバに対する認証

$a3 = new Auth('LDAP', array(
   'host' => 'ldap.netsols.de',
   'port' => 389,
   'version' => 3,
   'referrals' => false,
   'basedn' => 'dc=netsols,dc=de',
   'binddn' => 'cn=Jan Wagner,cn=Users,dc=netsols,dc=de',
   'bindpw' => 'password',
   'userattr' => 'samAccountName',
   'userfilter' => '(objectClass=user)',
   'attributes' => array(''),
   'group' => 'testing',
   'groupattr' => 'samAccountName',
   'groupfilter' => '(objectClass=group)',
   'memberattr' => 'member',
   'memberisdn' => true,
   'groupdn' => 'cn=Users',
   'groupscope' => 'one',
   );

Microsoft ActiveDirectory サーバを使用する場合は、 'userattr' として 'samaccountname' を指定し、次の特殊なルールに基づいて ActiveDirectory のディレクトリ名を 'basedn' に変換する必要があります。 ActiveDirectory ドメイン (DNS 名とは関係ありません) "win2000.example.org" の ActiveDirectory サーバ上にあるデフォルトの 'Users' フォルダの 'basedn' は、"CN=Users, DC=win2000, DC=example, DC=org" となります。ドメイン名は、すべて DC 属性となります。 独自のユーザフォルダを使用する場合は、"CN=Users" の部分を "OU" 属性のつながりに変換します。これは、独自のフォルダへのパスを 逆順にしたものとなります。つまり、ActiveDirectory フォルダ "win2000.example.org\Custom\Accounts" は、 "OU=Accounts, OU=Custom, DC=win2000, DC=example, DC=org" となります。

アクティブディレクトリへの匿名バインドは許可されていないようです。 そのため、ユーザを検索する際には binddn および bindpw を設定する必要があります。

AD では、LDAP Referral を false に設定しておく必要があります。

さらに、もし MS LDAP サーバに対して暗号化接続を行いたいのなら、 ウェブサーバ上の /etc/ldap/ldap.conf あるいはウェブサーバのユーザの ~/.ldaprc (設定によっては読み込めないかもしれません) の中で "TLS_REQCERT never" を指定しなければならないことに注意しましょう。

前のページ | ホーム | 次のページ
Auth_Container_KADM5 | 上に戻る | Auth_Container_MDB

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_Container_MDB

Auth_Container_MDB -- MDB を使用して、データベースによる認証を行う

MDB コンテナ

このコンテナは、 PEAR::MDB 抽象化レイヤーを使用してデータベースへのアクセスを行います。 つまり、MDB がサポートしているすべてのデータベースに対して ログインデータを保存することができます。

Auth コンストラクタ() でのこのストレージ固有のオプションは、オプションの配列です。

表 28-1使用可能なオプション

オプション | データ型 | デフォルト値 | 説明
"dsn" | string | "" | 有効な、正しい形式の DSN 。
"table" | string | "auth" | 認証データが保存されるテーブル名。
"usernamecol" | string | "username" | ユーザ名が保存されるカラムの名前。
"passwordcol" | string | "password" | 暗号化されたパスワードが保存されるカラムの名前。
"db_fields" | array | array() | ユーザの詳細情報を読み込む際に使用する追加フィールドの配列。
"cryptType" | string | "md5" | パスワードを保存する際の暗号化方式。
"auto_quote" | boolean | TRUE | データベースのテーブル名、フィールド名を自動的にクォートするかどうか。
"db_options" | array | array() | PEAR::MDB のコンストラクタに渡すオプションの配列。 詳細は PEAR::MDB を参照ください。

前のページ | ホーム | 次のページ
Auth_Container_LDAP | 上に戻る | Auth_Container_MDB2

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_Container_MDB2

Auth_Container_MDB2 -- MDB2 を使用して、データベースによる認証を行う

MDB2 コンテナ

このコンテナは、 PEAR::MDB2 抽象化レイヤーを使用してデータベースへのアクセスを行います。 つまり、MDB2 がサポートしているすべてのデータベースに対して ログインデータを保存することができます。

Auth コンストラクタ() でのこのストレージ固有のオプションは、オプションの配列です。

表 28-1使用可能なオプション

オプション | データ型 | デフォルト値 | 説明
"dsn" | string | "" | 有効な、正しい形式の DSN 。
"table" | string | "auth" | 認証データが保存されるテーブル名。
"usernamecol" | string | "username" | ユーザ名が保存されるカラムの名前。
"passwordcol" | string | "password" | 暗号化されたパスワードが保存されるカラムの名前。
"db_fields" | array | array() | ユーザの詳細情報を読み込む際に使用する追加フィールドの配列。
"cryptType" | string | "md5" | パスワードを保存する際の暗号化方式。
"auto_quote" | boolean | TRUE | データベースのテーブル名、フィールド名を自動的にクォートするかどうか。
"db_options" | array | array() | PEAR::MDB2 のコンストラクタに渡すオプションの配列。 詳細は PEAR::MDB2 を参照ください。

前のページ | ホーム | 次のページ
Auth_Container_MDB | 上に戻る | Auth_Container_PEAR

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_Container_PEAR

Auth_Container_PEAR -- PEAR ウェブサイトを使用して認証を行う

PEAR コンテナ

このコンテナは、PEAR ウェブサイト (http://pear.php.net/) の開発者アカウントを使用した認証機能を提供します。

このコンテナには、ストレージ固有のオプションはありません。

前のページ | ホーム | 次のページ
Auth_Container_MDB2 | 上に戻る | Auth_Container_POP3

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_Container_POP3

Auth_Container_POP3 -- POP3 サーバを使用して認証を行う

POP3 コンテナ

このストレージコンテナは、指定した POP3 サーバに接続して ユーザ名/パスワード によってログインを試みます。

Auth コンストラクタ() でのこのストレージ固有のオプションは、オプションの配列です。

表 28-1使用可能なオプション

オプション | データ型 | デフォルト値 | 説明
"host" | string | "localhost" | POP3 サーバのホスト名あるいは IP アドレス。
"port" | integer | "110" | POP3 サーバが待ち受けているポート。
"method" boolean あるいは string TRUE

POP3 サーバが使用する認証方式。以下のいずれか。

TRUE

Net_POP3 の認証アルゴリズムを使用します。

'DIGEST-MD5', 'CRAM-MD5', 'LOGIN', 'PLAIN', 'APOP', 'USER'

まずこの認証方式を試し、うまくいかなかった場合には自動的に方式を選びます。

前のページ | ホーム | 次のページ
Auth_Container_PEAR | 上に戻る | Auth_Container_RADIUS

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_Container_RADIUS

Auth_Container_RADIUS -- RADIUS サーバを使用して認証を行う

RADIUS コンテナ

このコンテナを使用するには、Auth_RADIUS および PECL の radius が必要です。

Auth コンストラクタ() でのこのストレージ固有のオプションは、オプションの配列です。

表 28-1使用可能なオプション

オプション データ型 デフォルト値 説明
"servers" array array("localhost", 0, "testing123", 3, 3)

RADIUS サーバの配列です。host, port, shared secret, timeout, maxtries を指定します。

host はサーバホストです。FQDN か、 あるいはドット区切りの IP アドレスをテキスト形式で指定します。

port はサーバに接続する際の UDP ポートです。0 を指定すると、 ネットワークサービスデータベースからエントリ radius/udp を探し、そのポートを使用します。エントリが見つからなかった場合は、 認証用の標準 RADIUS ポート (1812) を使用します。

shared secret は、サーバホストに対する秘密パラメータとして渡します。 RADIUS プロトコルは、最初の 128 バイトだけを受け取ってそれ以降を無視します。

timeout は、サーバから応答を受け取る際のタイムアウト秒数を指定します。

maxtries は、処理に失敗した際にやり直しを行う最大回数を指定します。

最大で 10 のサーバを指定することができます。複数のサーバを指定すると、 有効な応答が返ってくるか、あるいは maxtries に達するまでラウンドロビン方式で試行を続けます。

"authtype" string "PAP"

リクエストの検証に使用する認証方式。 PAP、CHAP_MD5、MSCHAPv1、MSCHAPv2 のいずれかを指定します。

それぞれの方式には依存性があります。PAP 以外のすべての認証方式では Crypt_CHAP パッケージが必要で、MS-CHAP を使用するなら、さらに mhash 拡張モジュールが必要です。

前のページ | ホーム | 次のページ
Auth_Container_POP3 | 上に戻る | Auth_Container_SAP

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_Container_SAP

Auth_Container_SAP -- SAP サーバを使用して認証を行う

SAP コンテナ

このコンテナは、SAP サーバを使用した認証を行います。 http://saprfc.sourceforge.net/ で取得できる SAPRFC 拡張モジュールを使用します。

Auth コンストラクタ() でのこのストレージ固有のオプションは、オプションの配列です。 これは直接 SAPRFC 拡張モジュールに渡されます。 内部的に使用されるオプションはありません。詳細は SAPRFC のドキュメントを参照ください。

前のページ | ホーム | 次のページ
Auth_Container_RADIUS | 上に戻る | Auth_Container_SMBPasswd

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_Container_SMBPasswd

Auth_Container_SMBPasswd -- File_SMBPasswd を使用して、smbpasswd ファイルによる認証を行う

SMBPasswd コンテナ

このストレージコンテナは、smbpasswd ファイルを使用した認証機能を提供します。 PEAR の File_SMBPasswd パッケージを使用します。

Auth コンストラクタ() でのこのストレージ固有のオプションは、使用する smbpasswd ファイルのファイル名を含む文字列です。

前のページ | ホーム | 次のページ
Auth_Container_SAP | 上に戻る | Auth_Container_SOAP

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_Container_SOAP

Auth_Container_SOAP -- SOAP サービスを使用して認証を行う

SOAP コンテナ

このコンテナは、PEAR SOAP クライアントを使用して、 SOAP サービスでの認証機能を提供します。

Auth コンストラクタ() でのこのストレージ固有のオプションは、オプションの配列です。

表 28-1使用可能なオプション

オプション | データ型 | デフォルト値 | 説明
"endpoint" | string | サービスが存在する URI。
"namespace" | string | ウェブサービスの名前空間。
"method" | string | コールする SOAP メソッド。
"encoding" | string | 使用するコンテントエンコーディング (例えば UTF-8)。
"usernamefield" | string | ユーザ名が保存されるフィールドの名前。
"passwordfield" | string | パスワードが保存されるフィールドの名前。
"matchpasswords" boolean TRUE

TRUE の場合、SOAP コールから返される結果のパスワードフィールドを コンテナがチェックします。そしてユーザが入力した値と一致するかを調べます。

FALSE の場合、ユーザ認証に失敗すると SOAP コールがエラーを返します。 エラーが返ってこなかった場合は認証に成功したものとみなされ、 そのまま処理を進められます。

"_features" array

ユーザ名およびパスワードフィールドのほかに SOAP コールに渡す 追加のパラメータの連想配列。これは、SOAP コールに 名前つきパラメータとして渡されます。

array(
  'field1'  => 'value1',
  'foo'     => 'bar',
);

前のページ | ホーム | 次のページ
Auth_Container_SMBPasswd | 上に戻る | Auth_Container_SOAP5

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_Container_SOAP5

Auth_Container_SOAP5 -- SOAP サービスを使用して認証を行う

SOAP5 コンテナ

このコンテナは、PHP の SOAP 拡張モジュールをクライアントとして用いて、 SOAP サービスでの認証機能を提供します。

Auth コンストラクタ() でのこのストレージ固有のオプションは、オプションの配列です。 以下のオプションに加えて、PHP SOAP クライアント用のすべてのオプションを この配列に含めることが可能で、それらがクライアントに渡されます。

表 28-1使用可能なオプション

オプション | データ型 | デフォルト値 | 説明
"wsdl" | string | 認証に使用する SOAP サービスについて記述した WSDL ファイルの場所。 WSDL ファイルは、"location" および "uri" で指定した内容より優先されます。
"location" | string | サービスが存在する URI。WSDL ファイルが使用できないときに使用します。
"uri" | string | ウェブサービスの名前空間。WSDL ファイルが使用できないときに使用します。
"method" | string | コールする SOAP メソッド。
"usernamefield" | string | "username" | ユーザ名が保存されるフィールドの名前。
"passwordfield" | string | "password" | パスワードが保存されるフィールドの名前。
"matchpasswords" boolean TRUE

TRUE の場合、SOAP コールから返される結果のパスワードフィールドを コンテナがチェックします。そしてユーザが入力した値と一致するかを調べます。

FALSE の場合、ユーザ認証に失敗すると SOAP コールがエラーを返します。 エラーが返ってこなかった場合は認証に成功したものとみなされ、 そのまま処理を進められます。

"_features" array

ユーザ名およびパスワードフィールドのほかに SOAP コールに渡す 追加のパラメータの連想配列。これは、SOAP コールに 名前つきパラメータとして渡されます。

array(
  'field1'  => 'value1',
  'foo'     => 'bar',
);

前のページ | ホーム | 次のページ
Auth_Container_SOAP | 上に戻る | Auth_Container_vpopmail

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Auth_Container_vpopmail

Auth_Container_vpopmail -- vpopmail サービスを使用して認証を行う

vpopmail コンテナ

このコンテナは、既存の vpopmail サービスを使用して ユーザ名とパスワードの検証を行います。

このコンテナには、ストレージ固有のオプションはありません。

前のページ | ホーム | 次のページ
Auth_Container_SOAP5 | 上に戻る | 独自の Auth_Container

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


LiveUser

目次
導入 -- LiveUser について
セットアップ -- パッケージとサンプルを動作させる方法
前のページ | ホーム | 次のページ
Introduction | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


LiveUser_Admin

LiveUser_Admin は、LiveUser で使用するあらゆるデータを管理するためのパッケージです。 例えばユーザ、グループ/ロール、権限およびそれらの関係を扱います。

LiveUser_Admin の主な機能は次のとおりです。 複数の認証コンテナから取得したデータを、単一の権限コンテナにまとめることができます。 さまざまな権限コンテナや認証コンテナを使用することができます。つまり、 新しく作成したアプリケーションと、 独自の方法で権限やユーザの情報を管理している既存アプリケーションとを 簡単に統合できるということです。 新しいコンテナ型を作成するだけで準備OKです! 現在使用可能なコンテナは、 PEAR::DB、PEAR::MDB、PEAR::MDB2、ext/PDO を使用するものです。 LiveUser_Admin が提供する機能には次のようなものがあり、 これらを追加/編集/削除/取得することができます。

  • Rights (権限)

  • Users (ユーザ)

  • Groups (グループ)

  • Areas (範囲)

  • Applications (アプリケーション)

  • Subgroups (サブグループ)

  • ImpliedRights (暗黙の権限)

LiveUser については、外部の wiki にもまとめられています。

現時点では、LiveUser_Admin はまだベータ段階です。 とは言え、LiveUser_Admin は既に幅広いウェブサイトで実運用に使用されています。 完全に網羅しているわけではありませんが、その一覧を ここ で見ることができます。

LiveUser_Admin の今後の開発予定は ここ にあります。

LiveUser の概念についての詳細な説明は、以下の記事が参考になるでしょう。 http://www.php-mag.net/magphpde/magphpde_article/psecom,id,595,nodeid,21.html

この記事は 2004 年 4 月のものであるため、一部古くなっているところもあります。 また、この記事では LiveUser_Admin パッケージで使用する SQL ジェネレータについても説明されていません。 この機能により、API がさらに柔軟になりました。今や、 ストレージ層全体の設定を変更したり拡張したりできるようになっているのです。 これは、データの結合の際に多かれ少なかれ何らかのフィルタ処理を行えることを意味します。 この API についての概要は、 http://oss.backendmedia.com/LiveUser/AdminFilters を参照ください。

最近書かれた記事で、LiveUser やさまざまな権限コンテナについての 詳細な説明が掲載されているものが ここ にあります。

データベース構成の ER ダイアグラムは ここ にあります。

このダイアグラムには、権限の複雑度によってどのテーブルが必要になるのかが説明されています。 必要のないテーブルがインストーラでインストールされてしまうことを防ぐには、 インストーラの generateSchema() メソッドに渡す権限コンテナインスタンスの "tables" プロパティを修正します。

LiveUser を使い始めるにあたっては、次の 2 つの 記事 が参考になるでしょう。

LiveUser_Admin には、さまざまなサンプルが同梱されています。 これらのサンプルは、PEAR インストールディレクトリの下の "docs" ディレクトリにインストールされます。これらを見ると、 いろいろな使用例がわかるでしょう。 データベースのサンプルにはスキーマファイルが付属しています。 LiveUser のサンプルのルートフォルダにある demodata.php に、コマンドラインあるいはブラウザからこのスキーマをインストールする方法が書かれています。 これらのスキーマファイルをインストールするには、MDB2_Schema が必要です。

LiveUser_Admin パッケージの

  • example 1 では、さまざまな API を使用して、 管理 API のほとんどのメソッドとカスタムフィールドの使用法を説明します。

  • example3 では、単一の認証元 (データベース) と権限 (データベース)、 そして認証情報の記憶機能 (remember me feature) を使用した、 実際にありそうなシナリオについて説明します

前のページ | ホーム | 次のページ
セットアップ | 上に戻る | ベンチマーク処理

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- LiveUser について

LiveUser について

LiveUser は、高機能な認証と権限管理のフレームワークです。 さまざまな外部の機能をオプションで組み合わせて使用することができます。 基底クラスは LiveUser で、これがいわゆる "クライアント" となります。このクラスを使用して、 個々のユーザの認証や権限チェックを行います。

LiveUser は、以下のような機能を提供します。 LiveUser クラスはログイン手続きを担当します。何らかの権限コンテナと、 ひとつあるいは複数の異なる認証コンテナを用いて設定することができます。 つまり、あちこちのデータコンテナに散らばっているユーザのデータを用いて、 ユーザのデータが見つかるまでそれらを順番に探していくことができるということです。 例えば、オンラインでウェブサイトのアカウントを申請したユーザの情報を、 ウェブサーバのローカルデータベースに格納することができます。 また、全従業員に対して、新たなアカウントを発行することなくサイトにログインさせることもできます。 これらを実現するため、LiveUser クラスが使用する第二のコンテナを定義することができます。

また、お好みの権限コンテナを定義して、各ユーザの権限を管理することもできます。 選択したコンテナに応じて、あらゆる種類の権限管理方式を一貫した API で実装できます。

さまざまな権限コンテナや認証コンテナを使用することで、 独自方式で権限やユーザを管理している既存アプリケーションと 新しく書いたアプリケーションを簡単に統合させることができるようになります。 新しいコンテナ型を作成するだけで準備OKです!

現在使用可能なコンテナは、 PEAR::DB、PEAR::MDB、PEAR::MDB2、ext/PDO、PEAR::XML_Tree、Session そして PEAR::Auth を使用するものです。

LiveUser については、外部の wiki にもまとめられています。

現時点では LiveUser はまだベータ段階です。 とは言え、LiveUser は既に幅広いウェブサイトで実運用に使用されています。 完全に網羅しているわけではありませんが、その一覧を ここ で見ることができます。

LiveUser の今後の開発予定は ここ にあります。

LiveUser の概念についての詳細な説明は、この 記事 が参考になるでしょう。

この記事は 2004 年 4 月のものであるため、一部古くなっているところもあります。 しかし根本的な考え方や変わっていませんし、最近の変更点のほとんどは API の一貫性と柔軟性を高めるためのものです。 結果的に、API の例はほとんど時代遅れになっています。 この記事では、権限コンテナが 現在はロジック層とストレージ層に分割されていることについても述べられていません。 この分割により、ロジックの重複が排除され、 ストレージ層をスタッカブルな形式で実装できるようになりました。 つまり、まず最初にキャッシュストレージを参照し、 その後で必要に応じて実際のストレージ層のデータを取得するといったように LiveUser を設定できるようになったのです。

最近書かれた記事で、LiveUser やさまざまな権限コンテナについての 詳細な説明が掲載されているものが ここ にあります。

LiveUser を使う前には、選択したコンテナ用のデータ構造を作成する必要があります。 設定オプションを使用することで、ストレージ層の多くの部分をカスタマイズすることができます。 最もわかりやすいのは、フィールド名やテーブル名のエイリアスを作成することでしょう。 これにより、既存のあらゆるデータを LiveUser に統合することができます。 選択したコンテナに応じたデータベーススキーマのインストーラを使用する必要があります。 このインストーラは MDB2_Schema および MDB2 パッケージを必要とし、 大半のオプションを適切に処理してデータベーススキーマを直接作成することができます。 インストール用のクラスは "[PEAR]/data/misc/schema/install.php" にあります。 このファイルの先頭に、サンプルコードがコメントアウトされています。 基本的に、これは認証および権限のそれぞれについて (1) スキーマ xml ファイルを作成し、(2) スキーマをインストールする という二段階の手続きとなります。

インストールの際に、インストーラはスキーマのバックアップファイルを作成します。 異なる設定でインストーラが再度実行された場合に、 インストーラはこれらのファイルを使用してデータベースを変更します。 しかし、このバックアップファイルが存在する場合は、 同じ DSN でインストーラを実行すると無条件でデータベースを変更しようとし、 テーブルを新規作成することはありません。 何らかの理由で最初からテーブルを作り直したい場合は、該当する DSN のバックアップファイルを削除してください。 インストーラの場所は、pear がインストールされているディレクトリの下の data ディレクトリの中です。 名前は install.php で、その先頭部分には API コールの多くの例が コメントアウトされています。

データベース構成の ER ダイアグラムは ここ にあります。

このダイアグラムには、権限の複雑度によってどのテーブルが必要になるのかが説明されています。 必要のないテーブルがインストーラでインストールされてしまうことを防ぐには、 インストーラの generateSchema() メソッドに渡す権限コンテナインスタンスの "tables" プロパティを修正します。

LiveUser を使い始めるにあたっては、次の 2 つの 記事 が参考になるでしょう。

LiveUser はオブザーバをサポートしており、内部で発生したさまざまなイベントに対して LiveUser から自動的にコールバックを呼び出すことができるようになっています。 オブザーバについては、ここ で説明されています。

LiveUser には、さまざまなサンプルが同梱されています。 これらのサンプルは、PEAR インストールディレクトリの下の "docs" ディレクトリにインストールされます。これらを見ると、 いろいろな使用例がわかるでしょう。 データベースのサンプルにはスキーマファイルが付属しています。 LiveUser のサンプルのルートフォルダにある demodata.php に、コマンドラインあるいはブラウザからこのスキーマをインストールする方法が書かれています。 これらのスキーマファイルをインストールするには、MDB2_Schema が必要です。

LiveUser パッケージの

  • example1 では、単一の認証元 (この場合は XML) で、フィールドのエイリアスや独自のフィールドを使用する方法について説明します。

  • example2 では、単一の認証元 (この場合は XML) に権限管理機能をつけ、 認証情報の記憶機能 (remember me feature) とフィールドのエイリアスを使用する方法について説明します。

  • example4 では、複数の認証元 (XML とデータベース) と権限管理機能 (データベース) を使用し、ニュース記事を管理するような実際にありそうな場面を説明します。

  • example5 では、単一の認証元 (データベース) と権限管理機能 (データベース) を使用し、ニュース記事を管理するような実際にありそうな場面を説明します。

前のページ | ホーム | 次のページ
LiveUser | 上に戻る | セットアップ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


セットアップ

セットアップ -- パッケージとサンプルを動作させる方法

サンプルを動作させるための手順

LiveUser のサンプルを動作させるのは、PHP や PEAR の初心者には少し難しいでしょう。ここでは、example4 と GVN の例を、LiveUser 0.16.12 と MySQL で動作させるために必要な手順をまとめます。

  1. PHP と MySQL をインストールするか、あるいは PHP と MySQL が使えるレンタルサーバと契約します。

  2. PEAR をインストールします。インストールするには、 コマンドラインのインストーラ を使用するか、あるいは go-pear.php を FTP でサーバにアップロード します。

  3. PEAR パッケージ LiveUser、 MDB2、MDB2_Driver_mysql、 HTML_Template_IT、HTML_QuickForm そして Var_Dump をインストールします。 コマンドラインを使用する場合は pear install --alldeps LiveUser-beta (各パッケージについてこれを繰り返す) のようになります。 go-pear.php を使用した場合は、 ウェブベースでパッケージをインストールする方法があるはずですが、 私は使ったことがありません。

  4. MySQL で空のデータベースを作成します。

  5. example4 のファイル群をウェブサーバのルートディレクトリにコピーします。 私の Linux 環境では、このサンプルは /usr/share/pear/docs/LiveUser/docs/examples にありました。また Apache のウェブルートは /var/www です。サンプルのある場所を調べるには pear list-files LiveUser を実行します。

  6. データベースを作成するために、demodata.php をブラウザで閲覧します。URL は、例えば http://www.example.com/LU/demodata.php?dsn=mysql://dbuser:pwd@localhost/databasename&file=/var/www/LU/demodata.xml&create=1 のようになります。もちろん、ファイルのパスやデータベースの ユーザ、パスワード、 ホスト そして データベース名 は環境に応じて変更しなければなりません。アクセスした結果 "成功した" というメッセージが表示されれば、 phpMyAdmin などのツールでデータベース内にテーブルとデータが確認できるでしょう。

    警告

    システムによっては、demodata.xml に手を加えないと正常に実行できないことがあるようです。 <is_active>..</is_active> タグの内部にあるすべての "Y" を "1" に、そしてすべての "N" を "0" に置き換えます。

  7. conf.php ファイルを編集し、データベースの情報を入力します。

  8. これで、ブラウザで index.html を表示してログインし、example4 を利用できるようになります。

  9. GVN サンプル を実行するには、まずウェブルートに "GVN" フォルダを作成します。

  10. GVN のチュートリアルにしたがって最初から進めます。なぜなら、 依存性の問題があったり、サンプルファイルをすべて保存する必要があったりするからです。

  11. ほとんどのファイルで、LiveUser/LiveUser.php をインクルードするようになっているところを単に LiveUser.php に書き換える必要があります。

  12. Auth_XML.xml を、 example4 から GVN フォルダにコピーします。

  13. データベースの情報や LiveUser の設定についての配列を、 example4/conf.php から GVN の conf.php および conf_admin.php にコピーします。

  14. example4 では、データベース内のユーザが何らかの理由で有効化されていません... そこで、peoples テーブルで isactive カラムを 1 に変更します。

この手順に従うと、サンプルアプリケーションを動作させてユーザの追加などができるようになります。

前のページ | ホーム | 次のページ
導入 | 上に戻る | LiveUser_Admin

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Cache_Lite

目次
導入 -- Cache_Lite の導入
constructor Cache_Lite::Cache_Lite() -- コンストラクタ
Cache_Lite::get() -- キャッシュが有効かどうかをテストし、(有効であれば) それを返す
Cache_Lite::save() -- キャッシュファイルにデータを保存する
Cache_Lite::remove() -- キャッシュファイルを削除する
Cache_Lite::clean() -- キャッシュをクリアする
Cache_Lite::setToDebug() -- デバッグモードを設定する
Cache_Lite::setLifeTime() -- 新しい生存期間を設定する
Cache_Lite::saveMemoryCachingState() --
Cache_Lite::getMemoryCachingState() --
Cache_Lite::lastModified() -- キャッシュの最終更新時間を返す
Cache_Lite::raiseError() -- PEAR エラーを引き起こす
Cache_Lite::extendLife() -- キャッシュファイルの有効期限を延長する
constructor Cache_Lite_Output::Cache_Lite_Output() -- コンストラクタ
Cache_Lite_Output::start() -- キャッシュが有効かどうかをテストし、(有効であれば) ブラウザにそれを返す。あるいは出力バッファリングが有効になる
Cache_Lite_Output::end() -- start() メソッドで開始された出力バッファリングを停止し、出力をキャッシュファイルに保存する
constructor Cache_Lite_Function::Cache_Lite_Function() -- コンストラクタ
Cache_Lite_Function::call() -- キャッシュ可能な関数あるいはメソッドをコールする (あるいはすでにキャッシュされている場合はコールしない)
Cache_Lite_Function::drop() -- キャッシュファイルを削除する
コンストラクタ Cache_Lite_File::Cache_Lite_File() -- コンストラクタ
Cache_Lite_File::get() -- キャッシュが有効かどうかをテストし、(有効であれば) それを返す

Cache_Lite は高速で軽量かつ安全なキャッシュシステムを提供します。 ファイルコンテナに対して最適化されており、キャッシュの汚染から保護されます (これはファイルロックやハッシュによるテストを行うためです)。

前のページ | ホーム | 次のページ
キャッシュ | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Cache_Lite_File::get

PEAR マニュアル
前のページ 次のページ

Cache_Lite_File::get()

Cache_Lite_File::get() -- キャッシュが有効かどうかをテストし、(有効であれば) それを返す

概要

require_once 'Cache/Lite/File.php';

string Cache_Lite_File::get (string $id [, string $group = 'default'])

説明

キャッシュファイルが有効かどうかをテストし、 有効であればそれを返します (さもなければ FALSE) 。

パラメータ

string $id

キャッシュIDを指定します

string $group

キャッシュグループ名を指定します

返り値

returns キャッシュデータ (あるいは、有効なキャッシュがない場合 false)

注意

この関数は、スタティックにコールする ことはできません。

例

例 30-1使用法

<?php
require_once "Cache/Lite/File.php";

$options = array(
    'cacheDir' => '/tmp/',
    'masterFile' => '/home/web/config.xml',
    'pearErrorMode' => CACHE_LITE_ERROR_DIE
);
$cache = new Cache_Lite_File($options);

if ($data = $cache->get('id_of_the_page')) {

    // キャッシュがヒットした !
    // コンテンツは $data に入っている
    // (...)

} else {

    // 有効なキャッシュが見つからなかった (このページを生成し保存する必要がある)    // (...)

}

?>
前のページ | ホーム | 次のページ
コンストラクタ Cache_Lite_File::Cache_Lite_File() | 上に戻る | 設定 (Configuration)

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor Cache_Lite::Cache_Lite

PEAR マニュアル
前のページ 次のページ

constructor Cache_Lite::Cache_Lite()

constructor Cache_Lite::Cache_Lite() -- コンストラクタ

概要

require_once 'Cache/Lite.php';

void constructor Cache_Lite::Cache_Lite ([array $options = array(NULL)])

説明

Cache_Lite コアクラスのコンストラクタです。 様々なオプションを設定するために、 引数として連想配列を与えることができます。

パラメータ

array $options

様々なオプションを設定するための連想配列を指定します。

表 30-1

オプション | データ型 | デフォルト値 | 詳細
cacheDir | string | /tmp/ | キャッシュファイルを配置するディレクトリ (末尾はスラッシュ) を指定します
caching | boolean | TRUE | キャッシュの有効/無効を指定します
lifeTime | integer | 3600 | キャッシュ生存期間を秒単位で指定します (1.6.0beta 1以降、無期限のキャッシュ生存期間を表す null 値が利用可能です) 。
fileLocking | boolean | TRUE | ファイルロックの有効/無効を指定します (悪条件下でのキャッシュ汚染を回避することができます)
writeControl | boolean | TRUE | 書き込み制御の有効/無効を指定します。 書き込み制御を有効にすると、 キャッシュの書き込みが若干遅くなります。 しかし、読み込み・書き込み制御を行わない場合、 いくつかのキャッシュ汚染ファイルが検出されますが、 完全な制御ではありません。
readControl | boolean | TRUE | 読み込み制御の有効/無効を指定します。 有効な場合、制御キーがキャッシュファイルに埋め込まれ、 このキーが読み込み後計算されたキーと比較されます。
readControlType | string | crc32 | 読み込み制御のタイプを指定します (読み込み制御が有効な場合のみ)。 'md5' (md5 ハッシュ制御 (最良ですが最遅))、 'crc32' (crc32 ハッシュ制御 (若干安全性に欠けますが高速))、 あるいは 'strlen' (長さのテストだけ (最速)) のいずれかである必要があります。
pearErrorMode | integer | CACHE_LITE_ERROR_RETURN | PEAR エラーモード (raiseError がコールされた場合) を指定します (CACHE_LITE_ERROR_RETURN は PEAR_Error オブジェクトを返します。 CACHE_LITE_ERROR_DIE はスクリプトを即時停止します (デバッグに便利です)) 。
fileNameProtection | boolean | TRUE | ファイル名を保護するかどうかを指定します (もし true なら、あなたは全てのキャッシュ ID やグループ名を使用することができます。もし false なら、 高速ですが、ID やグループ名はキャッシュファイル名が直接使用されますので、 特殊文字などに気を付けてください) 。
automaticSerialization | boolean | FALSE | 自動シリアライズの有効/無効を指定します (データを文字列ではない形式で直接保存するために使用されますが、 動作は遅くなります) 。
memoryCaching | boolean | FALSE | "メモリキャッシング" の有効/無効を指定します (NB : メモリキャッシングには生存期間はなく、 スクリプトの終了だけがあります) 。
onlyMemoryCaching | boolean | FALSE | "メモリキャッシングのみ" の有効/無効を指定します (もし有効な場合、ファイルは使用されません) 。
memoryCachingLimit | integer | 1000 | メモリキャッシュにストアするレコードの最大数を指定します
automaticCleaningFactor | integer | 0 | 自動クリーニングプロセスの無効/設定を指定します。 自動クリーニングプロセスは、新しいキャッシュファイルを書き込むとき (与えられた生存期間に対して) 古くなったキャッシュファイルを削除します。 0 は "自動的にキャッシュクリーニングしない" という意味です。 1 は "機械的にキャッシュクリーニングする" という意味 (遅い) で、 x>1 は "x 個のキャッシュを書き込んだ場合に 1 回、 ランダムで自動的にクリーニングする" を意味します。 20 から 200 の間の値が最初の値として良いかも知れません。
hashedDirectoryLevel | integer | 0 | ハッシュ化されたディレクトリ構造のレベルを設定します。 0 は "ハッシュ化されたディレクトリ構造を使用しない" という意味で、 1 は "1 レベルのディレクトリ"、 2 は "2 レベルのディレクトリ" を意味します。 このオプションは、何千ものキャッシュファイルがある場合にのみ Cache_Lite を高速化する事ができます。 明確なベンチマークのみ、完璧な値を選択する手助けになります。 1 あるいは 2が最初の値として良いでしょう。
errorHandlingAPIBreak | boolean | FALSE | true に設定すると、API を少しだけ変更してしまいますが、 CACHE_LITE_ERROR_RETURN モードにおけるエラー処理がやりやすくなります (save() メソッドが PEAR_Error オブジェクトを返せるようになります)。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

例

例 30-1最も一般的なオプションを使用する

<?php
require_once "Cache/Lite.php";

$options = array(
    'cacheDir' => '/tmp/',
    'lifeTime' => 7200,
    'pearErrorMode' => CACHE_LITE_ERROR_DIE
);

$cache = new Cache_Lite($options);

?>
前のページ | ホーム | 次のページ
導入 | 上に戻る | Cache_Lite::get()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Cache_Lite::clean

PEAR マニュアル
前のページ 次のページ

Cache_Lite::clean()

Cache_Lite::clean() -- キャッシュをクリアする

概要

require_once 'Cache/Lite.php';

boolean Cache_Lite::clean (string [$group = FALSE], string [$mode = 'ingroup';])

説明

グループが指定されない場合、全てのキャッシュファイルが削除されます ; または、指定されたグループのキャッシュファイルだけが削除されます。

パラメータ

string $group

キャッシュグループ名を指定します

string $mode

キャッシュをフラッシュするモードを指定します : 'old' (現在の生存期間に対して古すぎるキャッシュファイルをクリアします) 、 'ingroup' (与えられたグループの全てのキャッシュファイルをクリアします) 、 'notingroup' (与えられたグループ以外のキャッシュファイルをクリアします) 。 [1.5.0 ベータ以降] 'callback_myFunc' ( 完全パスファイルとグループと共に関数 'myFunc' をコールします。 もしコールバックが 'true' を返す場合、 キャッシュファイルは削除されます) 。

返り値

returns 問題がなければ true

注意

この関数は、スタティックにコールする ことはできません。

例

例 30-1使用法

<?php
require_once 'Cache/Lite.php';

$options = array('cacheDir' => '/tmp/');
$cache = new Cache_Lite($options);

$cache->clean();

?>

この例は全てのキャッシュファイルをクリアします。

前のページ | ホーム | 次のページ
Cache_Lite::remove() | 上に戻る | Cache_Lite::setToDebug()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Cache_Lite::extendLife

PEAR マニュアル
前のページ 次のページ

Cache_Lite::extendLife()

Cache_Lite::extendLife() -- キャッシュファイルの有効期限を延長する

概要

require_once 'Cache/Lite.php';

void Cache_Lite::extendLife ()

説明

[Cache_Lite-1.7.0beta2 以降] 既存のキャッシュファイルの有効期限を延長します。キャッシュファイルが "touch" され、新たに生まれ変わることになります。詳細は、 この機能追加要望 を参照ください。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

例

例 30-1標準的な使用法

<?php
require_once "Cache/Lite.php";

$options = array(
    'cacheDir' => '/tmp/',
    'lifeTime' => 7200,
    'pearErrorMode' => CACHE_LITE_ERROR_DIE
);

$cache = new Cache_Lite($options);
$id = 'foo';
if (!($data = $cache->get($id))) {
    // キャッシュにヒットしませんでした !
    $data = '123456789';
    $cache->save($data);
} else {
    // キャッシュにヒットしました !
    if (isset($_GET['extend'])) {
        $cache->extendLife();
    }
}
echo($data);

?>
前のページ | ホーム | 次のページ
Cache_Lite::raiseError() | 上に戻る | constructor Cache_Lite_Output::Cache_Lite_Output()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Cache_Lite::get

PEAR マニュアル
前のページ 次のページ

Cache_Lite::get()

Cache_Lite::get() -- キャッシュが有効かどうかをテストし、(有効であれば) それを返す

概要

require_once 'Cache/Lite.php';

string Cache_Lite::get (string $id [, string $group = 'default' [, boolean $doNotTestCacheValidity = FALSE]])

説明

Cache_Lite の主なメソッドの1つです : キャッシュファイルが有効かどうかをテストし、 有効であればそれを返します (さもなければ FALSE) 。

パラメータ

string $id

キャッシュIDを指定します

string $group

キャッシュグループ名を指定します

boolean $doNotTestCacheValidity

もし TRUE を指定した場合、キャッシュの正当性はテストされません。

返り値

returns キャッシュデータ (あるいは、有効なキャッシュがない場合 false)

注意

この関数は、スタティックにコールする ことはできません。

例

例 30-1使用法

<?php
require_once "Cache/Lite.php";

$options = array(
    'cacheDir' => '/tmp/',
    'lifeTime' => 7200,
    'pearErrorMode' => CACHE_LITE_ERROR_DIE
);
$cache = new Cache_Lite($options);

if ($data = $cache->get('id_of_the_page')) {

    // キャッシュがヒットした !
    // コンテンツは $data に入っています
    // (...)

} else {

    // 有効なキャッシュが見つからなかった (このページを生成し保存する必要がある)
    // (...)

}

?>
前のページ | ホーム | 次のページ
constructor Cache_Lite::Cache_Lite() | 上に戻る | Cache_Lite::save()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Cache_Lite::getMemoryCachingState

PEAR マニュアル
前のページ 次のページ

Cache_Lite::getMemoryCachingState()

Cache_Lite::getMemoryCachingState() --

概要

require_once 'Cache/Lite.php';

void Cache_Lite::getMemoryCachingState (string $id [, string $group = 'default' [, bool $doNotTestCacheValidity = FALSE]])

説明

典型的なキャッシュファイルから 以前に保存したメモリキャッシングの配列の状態をロードします。

パラメータ

string $id

キャッシュIDを指定します

string $group

キャッシュグループ名を指定します

boolean $doNotTestCacheValidity

もし TRUE を指定した場合、キャッシュの正当性はテストされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Cache_Lite::saveMemoryCachingState() | 上に戻る | Cache_Lite::lastModified()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Cache_Lite::lastModified

PEAR マニュアル
前のページ 次のページ

Cache_Lite::lastModified()

Cache_Lite::lastModified() -- キャッシュの最終更新時間を返す

概要

require_once 'Cache/Lite.php';

int Cache_Lite::lastModified ()

説明

[CACHE_LITE ハッカーのためだけ] キャッシュの最終更新時間を返します。

返り値

returns 最終更新時間

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Cache_Lite::getMemoryCachingState() | 上に戻る | Cache_Lite::raiseError()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Cache_Lite::raiseError

PEAR マニュアル
前のページ 次のページ

Cache_Lite::raiseError()

Cache_Lite::raiseError() -- PEAR エラーを引き起こす

概要

require_once 'Cache/Lite.php';

void Cache_Lite::raiseError (string $msg, int $code)

説明

動的に PEAR.php を取り込み、PEAR エラーを引き起こします。

パフォーマンス改善のため、PEAR.php ファイルは動的に取り込まれます。 つまり、このファイルはエラーを引き起こす時のみ取り込まれます。 そのため、ほとんどの場合、このファイルは取り込まれず、 パフォーマンスはより良くなります。

パラメータ

string $msg

エラーメッセージを指定します

integer $code

エラーコードを指定します

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Cache_Lite::lastModified() | 上に戻る | Cache_Lite::extendLife()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Cache_Lite::remove

PEAR マニュアル
前のページ 次のページ

Cache_Lite::remove()

Cache_Lite::remove() -- キャッシュファイルを削除する

概要

require_once 'Cache/Lite.php';

boolean Cache_Lite::remove (string $id [, string $group = 'default'])

説明

与えられたキャッシュファイル (ID とグループで識別される) を削除します。

パラメータ

string $id

キャッシュIDを指定します

string $group

キャッシュグループ名を指定します

返り値

returns 問題がなければ true

注意

この関数は、スタティックにコールする ことはできません。

例

例 30-1使用法

<?php
require_once "Cache/Lite.php";

$options = array(
    'cacheDir' => '/tmp/',
    'lifeTime' => 7200,
    'pearErrorMode' => CACHE_LITE_ERROR_DIE
);
$cache = new Cache_Lite($options);

$cache->remove('id_of_the_page');

if ($data = $cache->get('id_of_the_page')) {

    // キャッシュがヒットした !
    // [あり得ない !]

} else {

    // 有効なキャッシュが見つからなかった (このページを生成し保存する必要がある)
    $data = '<html><head><title>test</title></head><body><p>this is a test</p></body></html>';
    $cache->save($data);

}

?>

これはダミーの例です。 なぜなら、キャッシュがスクリプトの最初で削除されているからです ! そのため、if 文の最初のケースはあり得ません。

前のページ | ホーム | 次のページ
Cache_Lite::save() | 上に戻る | Cache_Lite::clean()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Cache_Lite::save

PEAR マニュアル
前のページ 次のページ

Cache_Lite::save()

Cache_Lite::save() -- キャッシュファイルにデータを保存する

概要

require_once 'Cache/Lite.php';

boolean Cache_Lite::save (string $data [, string $id = NULL [, string $group = 'default']])

説明

与えられたデータを保存します (もし automaticSerialization が TRUE の場合、文字列でなければなりません) 。

パラメータ

string $data

キャッシュファイルに保存するためのデータを指定します (automaticSerialization が FALSE (デフォルト) の場合、文字列以外の型にすることはできません)

string $id

キャッシュIDを指定します

string $group

キャッシュグループ名を指定します

返り値

returns 問題がなければ true

注意

この関数は、スタティックにコールする ことはできません。

例

例 30-1使用法

<?php
require_once "Cache/Lite.php";

$options = array(
    'cacheDir' => '/tmp/',
    'lifeTime' => 7200,
    'pearErrorMode' => CACHE_LITE_ERROR_DIE
);
$cache = new Cache_Lite($options);

if ($data = $cache->get('id_of_the_page')) {

    // キャッシュがヒットした !
    // コンテンツは $data に入っている
    echo $data;

} else {

    // 有効なキャッシュが見つからなかった (このページを生成し保存する必要がある)
    $data = '<html><head><title>test</title></head><body><p>this is a test</p></body></html>';
    echo $data;
    $cache->save($data);

}

?>
前のページ | ホーム | 次のページ
Cache_Lite::get() | 上に戻る | Cache_Lite::remove()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Cache_Lite::saveMemoryCachingState

PEAR マニュアル
前のページ 次のページ

Cache_Lite::saveMemoryCachingState()

Cache_Lite::saveMemoryCachingState() --

概要

require_once 'Cache/Lite.php';

void Cache_Lite::saveMemoryCachingState (string $id [, string $group = 'default'])

説明

メモリキャッシングの配列の状態を典型的なキャッシュファイルに保存します。

パラメータ

string $id

キャッシュIDを指定します

string $group

キャッシュグループ名を指定します

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Cache_Lite::setLifeTime() | 上に戻る | Cache_Lite::getMemoryCachingState()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Cache_Lite::setLifeTime

PEAR マニュアル
前のページ 次のページ

Cache_Lite::setLifeTime()

Cache_Lite::setLifeTime() -- 新しい生存期間を設定する

概要

require_once 'Cache/Lite.php';

void Cache_Lite::setLifeTime (int $newLifeTime)

説明

キャッシュの生存期間を変更します。

パラメータ

integer $newLifeTime

新しい生存期間 (秒) を指定します。

例外・エラー

throws 投げられる例外はありません

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Cache_Lite::setToDebug() | 上に戻る | Cache_Lite::saveMemoryCachingState()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Cache_Lite::setToDebug

PEAR マニュアル
前のページ 次のページ

Cache_Lite::setToDebug()

Cache_Lite::setToDebug() -- デバッグモードを設定する

概要

require_once 'Cache/Lite.php';

void Cache_Lite::setToDebug ()

説明

エラーが発見された時、スクリプトが停止しメッセージが表示されます (デバッグモードの場合だけ) ; コンストラスタで pearErrorMode オプションを指定するのと同じ効果があります

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Cache_Lite::clean() | 上に戻る | Cache_Lite::setLifeTime()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- Cache_Lite の導入

説明

PEAR::Cache_Lite は小さなキャッシュシステムです。 高トラフィックな Web サイト向けに最適化されていますので、本当に高速でかつ安全です (これはファイルロックや対汚染のテストを行うためです)。

メモ : Cache_Lite の独立した中国語ドキュメントは このページ で利用できます。

ゴールと技術的な詳細

スピード

とりわけ、PEAR::Cache_Lite は非常に高速である必要があります。 これはハイレベルなハードウェアソリューションでダウンしない高トラフィックな サイトでの PEAR 利用の可能性を与えます。

cache_lite の技術的な選択についての詳細は、 このドキュメント にあります。 しかし、エラーが発生した場合 (非常に稀です) の主となるアイデア だけは、PEAR.php ファイルに含まれています。

シンプルさ

キャッシュシステムはしばしばアプリケーションレイヤに埋め込まれるので、 PEAR::Cache_Lite のカーネルは小さく、 かつ適用するライセンスについて融通が利く必要があります (LGPL)。 高度な機能性はコアを拡張するファイルに見ることができます。

セキュリティ

高トラフィックな Web サイトでは、 キャッシュシステムはキャッシュファイルの汚染から保護する必要があります (同時に読み書きモードでアクセスするためです)。 ほとんどのキャッシュシステムでは、 この問題に対する保護機能が提供されていません。

ファイルのロックは完全な解決法ではありません。 NFSやマルチスレッドサーバでは役に立たないからです。 そのため、PEAR::Cache_Lite ではこれに加えてあらゆる状況におけるデータ保全を保証するために 2つのメカニズム (ハッシュキーに基づく) を提供しています。 詳細は前の段落にあるリンクを参照してください。

使用法

一般的な使用法

Cache_Lite の全てのモジュールは同じ考え方に従っています。

パラメータ (デフォルトではない他の値) は連想配列を使って コンストラクタに渡されます。

キャッシュファイルはキャッシュID (と最後にはグループ) によって識別されます。柔軟性を持たせるため、 ID のロジックは開発者が選択することができます。

これ以降「グループ」はキャッシュファイルを貯めたもの、 「ブロック」は HTML ページの一部という意味で使用します。

コア

簡単な例から始めましょう : とある一意な変数 (文字列) をもってページが生成され、復元されます。
<?php

// パッケージを include する
require_once('Cache/Lite.php');

// このキャッシュのIDを設定する
$id = '123';

// いくつかのオプションを設定する
$options = array(
    'cacheDir' => '/tmp/',
    'lifeTime' => 3600
);

// Cache_Lite オブジェクトを生成する
$Cache_Lite = new Cache_Lite($options);

// このIDに対する有効なキャッシュがあるかどうかテストする
if ($data = $Cache_Lite->get($id)) {

    // キャッシュがヒットした !
    // コンテンツは $data に入っている
    // (...)

} else { // 有効なキャッシュが見つからなかった (このページを生成する必要がある)

    // キャッシュミス !
    // キャッシュに入れるデータを $data に入れる
    // (...)
    $Cache_Lite->save($data);

}

?>

もしブロック毎のキャッシュを使用したいがグローバルキャッシュにしたくない場合、次のようなスクリプトになります:
<?php
require_once('Cache/Lite.php');

$options = array(
    'cacheDir' => '/tmp/',
    'lifeTime' => 3600
);

// Cache_Lite オブジェクトを生成する
$Cache_Lite = new Cache_Lite($options);

if ($data = $Cache_Lite->get('block1')) {
    echo($data);
} else {
    $data = 'Data of the block 1';
    $Cache_Lite->save($data);
}

echo('<br><br>Non cached line !<br><br>');

if ($data = $Cache_Lite->get('block2')) {
    echo($data);
} else {
    $data = 'Data of the block 2';
    $Cache_Lite->save($data);
}

?>

コア

しかしながら、単一文字変数で全てのページコンテンツを復元することは常に可能ではありません。Cache_Lite_Output は、このようにして私たちの助けになります :
<?php

require_once('Cache/Lite/Output.php');

$options = array(
    'cacheDir' => '/tmp/',
    'lifeTime' => 10
);

$cache = new Cache_Lite_Output($options);

if (!($cache->start('123'))) {
    // Cache missed...
    for($i=0;$i<1000;$i++) { // Making of the page...
        echo('0123456789');
    }
    $cache->end();
}

?>

この考えは、ブロック毎のキャッシュの使用法と同じです :
<?php

require_once('Cache/Lite/Output.php');

$options = array(
    'cacheDir' => '/tmp/',
    'lifeTime' => 10
);

$cache = new Cache_Lite_Output($options);

if (!($cache->start('block1'))) {
    // キャッシュミス ...
    echo('Data of the block 1 !');
    $cache->end();
}

echo('Non cached line !');

if (!($cache->start('block2'))) {
    // キャッシュミス ...
    echo('Data of the block 2 !');
    $cache->end();
}

?>

重要な注意点

Cache_Lite を使って最大限の効果を得るためには、 ページが必要とする全てのパッケージを機械的に include しないでください。 条件付きの include を使用していることでページがキャッシュされていない (そして、再計算しなければならない) 場合、必要なモジュール だけ をロードするようにしてください。

良くない 方法 :
<?php
   require_once("Cache/Lite.php");
   require_once("...")
   require_once("...")
   // (...)
   $cache = new Cache_Lite();
   if ($data = $Cache_Lite->get($id)) { // キャッシュがヒットした !
       echo($data);
   } else { // $data にページデータを(再)構築する必要がある
       // (...)
       $Cache_Lite->save($data);
   }
?>

こちらはよい方法です (通常2倍早くなります) 。
<?php
   require_once("Cache/Lite.php");
   // (...)
   $cache = new Cache_Lite();
   if ($data = $Cache_Lite->get($id)) { // キャッシュがヒットした !
       echo($data);
   } else { // $data にページデータを(再)構築する必要がある
       require_once("...")
       require_once("...")
       // (...)
       $Cache_Lite->save($data);
   }
?>

結論

Cache_Lite をもっと知りたいなら、 パッケージに付属している例と技術的な詳細を参照してください。

前のページ | ホーム | 次のページ
Cache_Lite | 上に戻る | constructor Cache_Lite::Cache_Lite()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::countChildren

PEAR マニュアル
前のページ 次のページ

Config_Container::countChildren()

Config_Container::countChildren() -- コンテナの子供をカウントする

概要

require_once 'Config/Container.php';

int Config_Container::countChildren ([string $type = NULL [, string $name = NULL]])

説明

このメソッドは、このコンテナが持っている子供の数を返します。 If either $name or $type, it will affine its search just to return the number of children corresponding to these parameters.

パラメータ

string $type

カウントする子供の種類です。

string $name

カウントする子供の名前です。

返り値

int - 見つかった子供の個数です。

例外・エラー

表 31-1PEAR_Error の値

エラーコード | エラー値 | 意味 | 解決
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Config_Container::addItem() | 上に戻る | Config_Container::createBlank()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config

目次
導入 -- Config でできること
設定の編集 -- 設定内容を操作する方法
使用できるコンテナ -- サポートされるフォーマット
Config::Config() -- コンストラクタ
Config::getRoot() -- config オブジェクトのルートコンテナを返す
Config::isConfigTypeRegistered() -- もしコンテナが登録済みならTRUEが返る
Config::parseConfig() -- データソースの内容を解析する
Config::setRoot() -- オブジェクトのルートコンテントを設定する
Config::writeConfig() -- データソースにコンテナーの内容を書きます。
Config_Container::Config_Container() -- コンストラクタ
Config_Container::addItem() -- このアイテムにアイテムを追加する
Config_Container::countChildren() -- コンテナの子供をカウントする
Config_Container::createBlank() -- ブランク行をアイテムに追加する
Config_Container::createComment() -- アイテムにコメントを追加する
Config_Container::createDirective() -- ディレクティブをアイテムに追加する
Config_Container::createItem() -- セクション項目に新しい子を作成する
Config_Container::createSection() -- アイテムにセクションを加える
Config_Container::getAttribute() -- アイテムの属性値を取得する
Config_Container::getAttributes() -- アイテムの総ての属性を取得する
Config_Container::getChild() -- 指定したインデックスの子要素を返す
Config_Container::getContent() -- アイテムの内容を取得する
Config_Container::getItem() -- 特定の項目の発見を試みる
Config_Container::getItemIndex() -- 親要素が持つ子の配列における項目のインデックスを返す
Config_Container::getItemPosition() -- 親が持つ子要素の配列における、項目の階層を返す
Config_Container::getName() -- アイテム名を取得する
Config_Container::getParent() -- アイテムの親オブジェクトを返す
Config_Container::getType() -- アイテムの種類を取得する
Config_Container::isRoot() -- ルートアイテムの調査をする
Config_Container::removeItem() -- オブジェクトから項目を削除する
Config_Container::searchPath() -- XPATH 風のフォーマットを使用してノードを探す
Config_Container::setAttributes() -- 項目の属性を設定する
Config_Container::setContent() -- アイテムの内容を設定する
Config_Container::setDirective() -- 子ディレクティブの内容を設定するか、 あるいは新しいディレクティブを作成する
Config_Container::setName() -- アイテム名を設定する
Config_Container::setType() -- アイテムタイプを設定する
Config_Container::toArray() -- コンテナとその子要素を、キー/値のペアによる配列で返す
Config_Container::toString() -- 文字列表現を返す
Config_Container::updateAttributes() -- 項目の属性を更新する
Config_Container::writeDatasrc() -- ファイルに書き出す

Configパッケージは設定操作の関数を提供します。

前のページ | ホーム | 次のページ
設定 (Configuration) | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


使用できるコンテナ

使用できるコンテナ -- サポートされるフォーマット

使用できるコンテナ

Apache

Apache 設定ファイル。

GenericConf

汎用の設定ファイルです。等号、コメントの開始文字、 改行文字などを独自に設定し、 お好みの設定フォーマットにマッチさせることができます。

IniCommented

標準 INI ファイルをパースし、コメントも維持します。

IniFile

標準 INI ファイルを、PHP 組み込み関数の parse_ini_file() を使用してパースします。 コメントは読み込みません。

PHPArray

PHP の配列をパースします。PHP のソースファイル、 あるいはメモリ上の配列から読み込めます。

警告

PHP の配列を含む設定ファイルを読み込む際には標準的な PHP のメソッドを使用するので、保存する際にはコードのコメントや構造は失われます。

PHPConstants

PHP のソースファイルから、PHP の define() をパースします。

XML

XML ファイルをパースします。

前のページ | ホーム | 次のページ
設定の編集 | 上に戻る | Config::Config()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::addItem

PEAR マニュアル
前のページ 次のページ

Config_Container::addItem()

Config_Container::addItem() -- このアイテムにアイテムを追加する

概要

require_once 'Config/Container.php';

object Config_Container::addItem (object &$item [, string $where = 'bottom' [, object $target = NULL]])

説明

このメソッドは現在の子コンテナに子Config_Containerを加えるでしょう。 したがって、addItem() は単に1つのセクションタイプコンテナと呼ぶことができます。 位置が指定されれば、 オブジェクトはこの位置で加えられるでしょう。 もし'before'か'after' が位置として指定された場合、ターゲットオブジェクトが必要です。 are specified as position, a target object is required. その後、オブジェクトは、 現在のコンテナ中のターゲットオブジェクトの位置の前、 あるいはその位置の後に加えられるでしょう。

パラメータ

object &$item

コンテナオブジェクトです。

string $where

一の選択です。('bottom', 'top', 'after', 'before')

object $target

もし$whereで、 'before'か'after' を選択した場合に必要です。 $targetは、 このコンテナの子供のうちのひとつである必要があります。 ZendEngine2は、デフォルトでリファレンスを受け取ります。 その後、 &$target を代わりに持つことは可能でしょう。

返り値

object - 追加されたオブジェクトのリファレンスです。

例外・エラー

表 31-1PEAR_Error の値

エラーコード | エラー値 | 意味 | 解決
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

例

例 31-1addItem()でアイテムを追加する使用例

$section =& new Config_Container('section', 'conf');
$directive =& new Config_Container('directive', 'user', 'mansion');
$section->addItem($directive);

例 31-2別のアイテムに関連する位置とaddItem()でアイテムを追加する使用例

$section =& new Config_Container('section', 'conf');
$directive =& new Config_Container('directive', 'user', 'mansion');
$section->addItem($directive);

$comment =& new Config_Container('comment', null, 'Here goes my name');
$section->addItem($comment, 'before', $directive);
前のページ | ホーム | 次のページ
Config_Container::Config_Container() | 上に戻る | Config_Container::countChildren()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::Config_Container

PEAR マニュアル
前のページ 次のページ

Config_Container::Config_Container()

Config_Container::Config_Container() -- コンストラクタ

概要

require_once 'Config/Container.php';

&Config_Container::Config_Container ([string $type = '' [, string $name = '' [, string $content = '' [, mixed $attributes = NULL]]]])

説明

Config_Containerの新規作成と、そのリファレンスを返します。

パラメータ

string $type

コンテナオブジェクトの種類で、この中にあるはずです。 'section', 'comment', 'directive', 'blank'.

string $name

Name of container object. The name is required for sections and directives, not for blanks or comments.

string $content

コンテナオブジェクトの内容です。 内容はディレクティブとコメントに使われます。

array $attributes

コンテナオブジェクトの属性の配列です。 オプションでコンテナに属性を追加することが出来ます。 選択したパーサはこれらを使用することができます。

返り値

object - 作成したオブジェクトのリファレンスです。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Config::writeConfig() | 上に戻る | Config_Container::addItem()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::createBlank

PEAR マニュアル
前のページ 次のページ

Config_Container::createBlank()

Config_Container::createBlank() -- ブランク行をアイテムに追加する

概要

require_once 'Config/Container.php';

objectConfig_Container::createBlank ([mixed $where = 'bottom' [, mixed $target = NULL]])

説明

現在のアイテムがsectionでなければいけません。 この関数は、createItem() をヘルパー関数として呼びます。

パラメータ

string $where

新しいアイテムを生成する位置。('top', 'bottom', 'before', 'after')

object $target

$whereで、 'before'か 'after'を指定した場合のみ必要。

返り値

object - 新しいアイテムのリファレンスを返します。

例外・エラー

表 31-1PEAR_Error の値

エラーコード | エラー値 | 意味 | 解決策
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

例

例 31-1createBlank()を使用して新しいディレクティブを作成する

$section =& new Config_Container('section', 'conf');
$directive =& $section->createDirective('user', 'mansion');
$section->createBlank('before', $directive);
前のページ | ホーム | 次のページ
Config_Container::countChildren() | 上に戻る | Config_Container::createComment()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::createComment

PEAR マニュアル
前のページ 次のページ

Config_Container::createComment()

Config_Container::createComment() -- アイテムにコメントを追加する

概要

require_once 'Config/Container.php';

objectConfig_Container::createComment ([string $content = '' [, string $where = 'bottom' [, object $target = NULL]]])

説明

現在のアイテムが"section"でなければいけません。 この関数は、 createItem() をヘルパー関数として呼びます。

パラメータ

string $content

コメントの内容

string $where

新しいアイテムを生成する位置。('top', 'bottom', 'before', 'after')

object $target

$whereで、 'before'か 'after'を指定した場合のみ必要。

返り値

object - 新しいアイテムのリファレンスを返します。

例外・エラー

表 31-1PEAR_Error の値

エラーコード | エラー値 | 意味 | 解決策
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

例

例 31-1createComment() を使用して新しいディレクティブを作成する

$section =& new Config_Container('section', 'conf');
$section->createComment('Database Configuration');
前のページ | ホーム | 次のページ
Config_Container::createBlank() | 上に戻る | Config_Container::createDirective()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::createDirective

PEAR マニュアル
前のページ 次のページ

Config_Container::createDirective()

Config_Container::createDirective() -- ディレクティブをアイテムに追加する

概要

require_once 'Config/Container.php';

object Config_Container::createDirective (string $name, string $content [, mixed $attributes = NULL [, string $where = 'bottom' [, mixed $target = NULL]]])

説明

現在のアイテムが"section"でなければなりません。 この関数は createItem() をヘルパー関数として呼びます。

パラメータ

string $name

新しいディレクティブの名前。

string $content

新規ディレクティブの内容

mixed $attributes

ディレクティブ属性。

string $where

新しいアイテムを生成する位置。('top', 'bottom', 'before', 'after')

object $target

$whereで、 'before'か 'after'を指定した場合のみ必要。

返り値

object - 新しいアイテムのリファレンスを返します。

例外・エラー

表 31-1PEAR_Error の値

エラーコード | エラー値 | 意味 | 解決策
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

例

例 31-1 createDirective() を使用して新しくディレクティブを作成する

$section =& new Config_Container('section', 'conf');
$section->createDirective('user', 'mansion');
前のページ | ホーム | 次のページ
Config_Container::createComment() | 上に戻る | Config_Container::createItem()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::createItem

PEAR マニュアル
前のページ 次のページ

Config_Container::createItem()

Config_Container::createItem() -- セクション項目に新しい子を作成する

概要

require_once 'Config/Container.php';

object &Config_Container::createItem (string $type, mixed $item, string $content [, array $attributes = NULL [, string $where = 'bottom' [, object $target = NULL]]])

説明

このメソッドはセクションに対してコールしなければならず、 作成される項目の型は任意です。これは、新しい子を現在の項目に追加します。 位置を指定した場合は、その場所に子が作成されます。 このメソッドを直接コールするのではなく、ヘルパメソッドを使用することを推奨します。

パラメータ

string $type

項目の型。directive、 section、comment、 blank...

mixed $item

項目名。

string $content

項目の内容。

array $attributes

項目の属性。

string $where

場所を選択します。'bottom'、 'top'、'after'、 'before'

object $target

'before' あるいは 'after' を $where で選んだ場合に必要です。

返り値

新しい項目への参照を返します。

例外・エラー

表 31-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

例

例 31-1createItem() による新規項目の作成

$section =& new Config_Container('section', 'conf');
$section->createItem('directive', 'user', 'root');
$section->createItem('directive', 'pass', 'root');
$header =& $section->createItem('comment', null, 'Database Configuration', 'top');
$section->createItem('blank', null, null, 'after', $header);
前のページ | ホーム | 次のページ
Config_Container::createDirective() | 上に戻る | Config_Container::createSection()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::createSection

PEAR マニュアル
前のページ 次のページ

Config_Container::createSection()

Config_Container::createSection() -- アイテムにセクションを加える

概要

require_once 'Config/Container.php';

objectConfig_Container::createSection (string $name [, array $attributes = NULL [, string $where = 'bottom' [, object $target = NULL]]])

説明

現在のアイテムが"section"でなければいけません。 createItem() をヘルパー関数として呼びます。

パラメータ

string $name

新規セクションの名前。

array array $attributes

セクションの属性。

string $where

新しいアイテムを生成する位置。('top', 'bottom', 'before', 'after')

object $target

$whereで、 'before'か 'after'を指定した場合のみ必要。

返り値

object - 新しいアイテムのリファレンスを返します。

例外・エラー

表 31-1PEAR_Error の値

エラーコード | エラー値 | 意味 | 解決策
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

例

例 31-1createSection() を使用して新しいディレクティブを作成する

$conf =& new Config_Container('section', 'MAIN');
$dbConf =& $conf->createSection('DB');
$dbConf->createDirective('user', 'mansion');
前のページ | ホーム | 次のページ
Config_Container::createItem() | 上に戻る | Config_Container::getAttribute()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::getAttribute

PEAR マニュアル
前のページ 次のページ

Config_Container::getAttribute()

Config_Container::getAttribute() -- アイテムの属性値を取得する

概要

require_once 'Config/Container.php';

mixed Config_Container::getAttribute (string $attribute)

説明

この関数は、属性キーに対する値を返します。 総ての属性を取得する場合は、 getAttributes()を参照してください。

パラメータ

string $attribute

属性キーを指定します。

返り値

mixed - アイテムの属性値が返ります。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Config_Container::createSection() | 上に戻る | Config_Container::getAttributes()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::getAttributes

PEAR マニュアル
前のページ 次のページ

Config_Container::getAttributes()

Config_Container::getAttributes() -- アイテムの総ての属性を取得する

概要

require_once 'Config/Container.php';

array Config_Container::getAttributes (void)

説明

この関数は、このコンテナーの総ての属性を配列で返します。

返り値

array - アイテムの総ての属性を返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 31-1属性の使用法

$attributes = array('id' => 'db', 'language' => 'en');
     $section =& new Config_Container('section', 'main', null, $attributes);
     $section->createDirective('authentication', 'test', array('type' => 'mysql',
     'host' => 'localhost'));

     echo $section->toString('phparray');
     echo $section->toString('xml');

例 31-2総ての属性を'@'キーとPHP配列タイプで設定する

<?php
$main['@']['id'] = 'db';
$main['@']['language'] = 'en';
$main['authentication']['#'] = 'test';
$main['authentication']['@']['type'] = 'mysql';
$main['authentication']['@']['host'] = 'localhost';
?>

例 31-3xmlタイプで通常の方法を用いて総ての属性をで設定する

<?xml version="1.0" encoding="ISO-8859-1"?>
       <main id="db" language="en">
        <authentication type="mysql" host="localhost">
         test
        </authentication>;
       </main>
前のページ | ホーム | 次のページ
Config_Container::getAttribute() | 上に戻る | Config_Container::getChild()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::getChild

PEAR マニュアル
前のページ 次のページ

Config_Container::getChild()

Config_Container::getChild() -- 指定したインデックスの子要素を返す

概要

require_once 'Config/Container.php';

mixed Config_Container::getChild (int $index)

説明

子要素は配列として格納されます。このメソッドは、指定したインデックスの Config_Container オブジェクトを返します。

パラメータ

integer $index

子要素のインデックス。

返り値

子要素への参照、あるいは子要素が存在しない場合には FALSE を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Config_Container::getAttributes() | 上に戻る | Config_Container::getContent()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::getContent

PEAR マニュアル
前のページ 次のページ

Config_Container::getContent()

Config_Container::getContent() -- アイテムの内容を取得する

概要

require_once 'Config/Container.php';

mixed Config_Container::getContent (void)

説明

取り出し関数. アイテムの内容を返す。

返り値

mixed - アイテムが所持する内容。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Config_Container::getChild() | 上に戻る | Config_Container::getItem()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::getItem

PEAR マニュアル
前のページ 次のページ

Config_Container::getItem()

Config_Container::getItem() -- 特定の項目の発見を試みる

概要

require_once 'Config/Container.php';

mixed Config_Container::getItem ([string $type = NULL [, string $name = NULL [, mixed $content = NULL [, array $attributes = NULL [, int $index = -1]]]]])

説明

このメソッドはは、 指定されたパラメーターに応答する項目を発見しようとします。

このメソッドは、 タイプ'section' のオブジェクトでのみ呼ぶことができます。 ルートががセクションであることに注意してください。 このメソッドは、再帰的でなく現在の構造を維持しようとします。

パラメータ

string $type

項目の種類です。(directive, section, comment, blank...)

string $name

項目名です。

mixed $content

この内容を持つ項目を発見します。

array $attributes

任意の値への属性セットを持つ項目を発見します。

integer $index

返されたオブジェクトリスト内の項目のインデックスです。 それがセットされない場合、 この名前を持つ最後の項目を返すでしょう。

返り値

mixed - 発見した項目のリファレンスか、見つからない場合はFALSEを返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 31-1getItem()を使用して、項目を見つける方法上の少数の例

// will return the last directive found

$directives =& $obj->getItem('directive');

// will return the last directive found with content 'root'

$directives =& $obj->getItem('directive', null, 'root');

// will return the fourth directive with name 'bar'

$directive_bar_4 =& $obj->getItem('directive', 'bar', null, null, 4);

// will return the last section named 'foo'

$section_foo =& $obj->getItem('section', 'foo');

// will return the last section with attribute 'id' set to 'db'

$section_foo =& $obj->getItem('section', 'foo', null, array('id' => 'db'));
前のページ | ホーム | 次のページ
Config_Container::getContent() | 上に戻る | Config_Container::getItemIndex()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::getItemIndex

PEAR マニュアル
前のページ 次のページ

Config_Container::getItemIndex()

Config_Container::getItemIndex() -- 親要素が持つ子の配列における項目のインデックスを返す

概要

require_once 'Config/Container.php';

mixed Config_Container::getItemIndex (void)

説明

子 Config_Container オブジェクトは配列として格納されます。 このメソッドは、この項目の、親要素の配列内におけるインデックスを返します

返り値

整数値、あるいはルートオブジェクトである場合に NULL を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Config_Container::getItem() | 上に戻る | Config_Container::getItemPosition()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::getItemPosition

PEAR マニュアル
前のページ 次のページ

Config_Container::getItemPosition()

Config_Container::getItemPosition() -- 親が持つ子要素の配列における、項目の階層を返す

概要

require_once 'Config/Container.php';

int Config_Container::getItemPosition (void)

説明

親が持つ子要素の配列における項目の階層を、 同じ型と名前の項目に応じて返します。

返り値

整数値、あるいはルートオブジェクトである場合に NULL を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Config_Container::getItemIndex() | 上に戻る | Config_Container::getName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::getName

PEAR マニュアル
前のページ 次のページ

Config_Container::getName()

Config_Container::getName() -- アイテム名を取得する

概要

require_once 'Config/Container.php';

string Config_Container::getName (void)

説明

このアイテムの名前を返します。

返り値

string - アイテム名。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Config_Container::getItemPosition() | 上に戻る | Config_Container::getParent()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::getParent

PEAR マニュアル
前のページ 次のページ

Config_Container::getParent()

Config_Container::getParent() -- アイテムの親オブジェクトを返す

概要

require_once 'Config/Container.php';

object Config_Container::getParent (void)

説明

アイテムの親オブジェクトを返します。

返り値

object - 親オブジェクトのリファレンスか、 ルートオブジェクトの場合はNULLが返ります。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Config_Container::getName() | 上に戻る | Config_Container::getType()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::getType

PEAR マニュアル
前のページ 次のページ

Config_Container::getType()

Config_Container::getType() -- アイテムの種類を取得する

概要

require_once 'Config/Container.php';

string Config_Container::getType (void)

説明

このアイテムの種類を取得します。

返り値

string - アイテムの種類。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Config_Container::getParent() | 上に戻る | Config_Container::isRoot()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::isRoot

PEAR マニュアル
前のページ 次のページ

Config_Container::isRoot()

Config_Container::isRoot() -- ルートアイテムの調査をする

概要

require_once 'Config/Container.php';

bool Config_Container::isRoot (void)

説明

そこは一つだけのルートアイテムです。 それは親・名前・内容をもっておらず、種類は「section」です。 ルートアイテムはパーサで使用されず、その子供達だけです。

返り値

bool - もしアイテムがルートアイテムならTRUEが返ります。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Config_Container::getType() | 上に戻る | Config_Container::removeItem()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::removeItem

PEAR マニュアル
前のページ 次のページ

Config_Container::removeItem()

Config_Container::removeItem() -- オブジェクトから項目を削除する

概要

require_once 'Config/Container.php';

mixed Config_Container::removeItem (void)

説明

このメソッドは現在の項目を削除します。 その子へのリファレンスは同様に削除されます。 このメソッドはパラメーターを受付けません。

返り値

boolean - もしオブジェクトを削除できればTRUEが、 さもなくばFALSEかPEAR_Errorが返ります。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Config_Container::isRoot() | 上に戻る | Config_Container::searchPath()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::searchPath

PEAR マニュアル
前のページ 次のページ

Config_Container::searchPath()

Config_Container::searchPath() -- XPATH 風のフォーマットを使用してノードを探す

概要

require_once 'Config/Container.php';

mixed Config_Container::searchPath (mixed $args)

説明

このメソッドは、与えられたパスを使用して 現在のコンテナから項目を探します。

このメソッドは、型が 'section' であるオブジェクトに対してのみコール可能です。 ルートはセクション型であることに注意しましょう。 このメソッドは再帰的に働きます。

このメソッドは、必要な数のパラメータによって定義されるパスから項目を探します。 その書式は array (item1, item2, ..., itemN) となります。 配列の要素には文字列か配列が指定できます。文字列は項目の name として扱われ、 配列の場合は項目の 'name' や 'attributes' の値として扱われます。

パラメータ

mixed $args

一致する項目を探す対象となる文字列あるいは配列。カンマ区切りで指定します。

返り値

見つかった項目への参照、あるいは見つからなかった場合に FALSE を返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 31-1searchPath() の使用例

// 次のような XML 設定ファイルがあるとします

// <config>
//   <db>
//     <user>root</user>
//     <password>pass</user>
//     <host>localhost</host>
//   </db>
// </config>

$config = new Config();
$root =& $menuObj->parseConfig('db.xml', 'xml');

// これは、db セクションの password ディレクティブを返します
$passObj =& $root->searchPath(array('config', 'db', 'password'));

例 31-2属性を使用した、searchPath() のより複雑な例

// 次のような XML 設定ファイルがあるとします

// <menu>
//   <group id="company">
//     <page id="news"/>
//     <page id="jobs"/>
//   </group>
//   <group id="projects">
//     <page id="project1"/>
//     <page id="project2"/>
//   </group>
// </menu>

$menuObj = new Config();
$root =& $menuObj->parseConfig('menu.xml', 'xml');

// これは、メニュー内のコンテナで 'id' が 'projects' であるものを返します
$section =& $root->searchPath(array('menu', array('group', array('id' => 'projects'))));

// ページを取得するためにはこのようにもできます
$page =& $root->searchPath(array('menu',
                                  array('group', array('id' => 'projects')),
                                  array('page',  array('id' => 'project2'))));
前のページ | ホーム | 次のページ
Config_Container::removeItem() | 上に戻る | Config_Container::setAttributes()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::setAttributes

PEAR マニュアル
前のページ 次のページ

Config_Container::setAttributes()

Config_Container::setAttributes() -- 項目の属性を設定する

概要

require_once 'Config/Container.php';

void Config_Container::setAttributes (array $attributes)

説明

属性は配列形式で指定します。これは PHP 配列、XML、Apache コンテナで使用されます。IniFile コンテナや IniCommented コンテナでは属性は使用されません。 getAttributes() メソッドの例を見ると、属性がどのように出力されるのかがわかります。 このメソッドは、既存の属性を上書きします。 既存の属性のうちの一部だけを変更したい場合は updateAttributes() を使用してください。

パラメータ

array $attributes

属性の配列。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Config_Container::searchPath() | 上に戻る | Config_Container::setContent()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::setContent

PEAR マニュアル
前のページ 次のページ

Config_Container::setContent()

Config_Container::setContent() -- アイテムの内容を設定する

概要

require_once 'Config/Container.php';

void Config_Container::setContent (mixed $content)

説明

このアイテムの内容を設定します。

パラメータ

mixed mixed $content

アイテムの内容を指定します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Config_Container::setAttributes() | 上に戻る | Config_Container::setDirective()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::setDirective

PEAR マニュアル
前のページ 次のページ

Config_Container::setDirective()

Config_Container::setDirective() -- 子ディレクティブの内容を設定するか、 あるいは新しいディレクティブを作成する

概要

require_once 'Config/Container.php';

void Config_Container::setDirective (string $name, mixed $content [, int $index = -1])

説明

これはヘルパーメソッドです。まず最初に getItem() を使用して既存の項目を探します。 見つかった場合は、その項目の setContent() メソッドをコールします。 見つからなかった場合は、最下部に指定した名前と内容で 新しいディレクティブを作成します。

パラメータ

string $name

探したいディレクティブの名前。

mixed $content

新しい内容。通常は文字列。

integer $index

設定するディレクティブのインデックス。 同じ名前のディレクティブが複数ある場合に指定します。

返り値

新しく設定されたディレクティブを返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Config_Container::setContent() | 上に戻る | Config_Container::setName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::setName

PEAR マニュアル
前のページ 次のページ

Config_Container::setName()

Config_Container::setName() -- アイテム名を設定する

概要

require_once 'Config/Container.php';

void Config_Container::setName (string $name)

説明

このアイテムの名前を設定します。

パラメータ

string $name

アイテム名を指定します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Config_Container::setDirective() | 上に戻る | Config_Container::setType()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::setType

PEAR マニュアル
前のページ 次のページ

Config_Container::setType()

Config_Container::setType() -- アイテムタイプを設定する

概要

require_once 'Config/Container.php';

void Config_Container::setType (string $type)

説明

このアイテムの種類を設定します。

パラメータ

string $type

アイテムタイプを指定します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Config_Container::setName() | 上に戻る | Config_Container::toArray()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::toArray

PEAR マニュアル
前のページ 次のページ

Config_Container::toArray()

Config_Container::toArray() -- コンテナとその子要素を、キー/値のペアによる配列で返す

概要

require_once 'Config/Container.php';

array Config_Container::toArray (void)

説明

このメソッドは、Config ツリーを配列形式で返します。その書式は
$section[directive][index] = value
となります。コンテナが属性を保持している場合は、属性のキーに '@'、属性の値に '#' を使用します。 インデックスがここにある理由は、 同名のディレクティブやセクションが複数存在する可能性があるためです。 toArray() メソッドは、そのような場合も想定しています。

返り値

Config_Container ツリーを配列形式で返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 31-1toArray()() の使用例

$attributes = array('id' => 'db', 'language' => 'en');
     $section =& new Config_Container('section', 'main', null, $attributes);
     $section->createDirective('authentication', 'one', array('type' => 'mysql'));
     $section->createDirective('authentication', 'two', array('type' => 'oracle'));
     $section->createDirective('permission', 'group');
     var_dump($section->toArray());

例 31-2同名の属性やディレクティブが含まれる結果の配列

array(1) {
  ["main"]=>
  array(3) {
    ["@"]=>
    array(2) {
      ["id"]=>
      string(2) "db"
      ["language"]=>
      string(2) "en"
    }
    ["authentication"]=>
    array(2) {
      [0]=>
      array(2) {
        ["#"]=>
        string(3) "one"
        ["@"]=>
        array(1) {
          ["type"]=>
          string(5) "mysql"
        }
      }
      [1]=>
      array(2) {
        ["#"]=>
        string(3) "two"
        ["@"]=>
        array(1) {
          ["type"]=>
          string(6) "oracle"
        }
      }
    }
    ["permission"]=>
    string(5) "group"
  }
}
前のページ | ホーム | 次のページ
Config_Container::setType() | 上に戻る | Config_Container::toString()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::toString

PEAR マニュアル
前のページ 次のページ

Config_Container::toString()

Config_Container::toString() -- 文字列表現を返す

概要

require_once 'Config/Container.php';

string Config_Container::toString (string $configType [, array $options = array()])

説明

このメソッドは、指定した設定型の toString() メソッドをコールします。 Config_Container およびその子要素を文字列形式で返します。

パラメータ

string $configType

文字列を作成するために使用する設定型。

array $options

パーサが使用する特別なオプションを指定します。

返り値

出来上がった文字列を返します。

例外・エラー

表 31-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Config_Container::toArray() | 上に戻る | Config_Container::updateAttributes()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::updateAttributes

PEAR マニュアル
前のページ 次のページ

Config_Container::updateAttributes()

Config_Container::updateAttributes() -- 項目の属性を更新する

概要

require_once 'Config/Container.php';

void Config_Container::updateAttributes (array $attributes)

説明

指定された属性が既に設定されている場合、それは上書きされ、 新しい内容が設定されます。パラメータで指定した配列に含まれない属性は そのまま残ります。

パラメータ

array $attributes

属性の配列。

例外・エラー

表 31-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Config_Container::toString() | 上に戻る | Config_Container::writeDatasrc()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config_Container::writeDatasrc

PEAR マニュアル
前のページ 次のページ

Config_Container::writeDatasrc()

Config_Container::writeDatasrc() -- ファイルに書き出す

概要

require_once 'Config/Container.php';

boolean Config_Container::writeDatasrc (mixed $datasrc, string $configType [, array $options = array()])

説明

デフォルトでは、このメソッドは toString() が出力する文字列をファイルに書き出します。 指定した設定型で writeDatasrc() メソッドが存在する場合、その代わりにこのメソッドがコールされます。 これにより、あなた自身で独自の保存ハンドラを追加しやすくなります。

パラメータ

mixed $datasrc

データソースに関する情報。たとえば設定ファイルへのパスや dsn など。

string $configType

設定の型。

array $options

ライター用のオプション。

返り値

成功した場合に TRUE を返します。

例外・エラー

表 31-1PEAR_Error の値

エラーコード | エラーの値 | 意味 | 対応
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Config_Container::updateAttributes() | 上に戻る | コンソール

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config::Config

PEAR マニュアル
前のページ 次のページ

Config::Config()

Config::Config() -- コンストラクタ

概要

require_once 'Config.php';

object Config::Config (void)

説明

Configコンストラクタ。ルート Config_Containerを生成します。

前のページ | ホーム | 次のページ
使用できるコンテナ | 上に戻る | Config::getRoot()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config::getRoot

PEAR マニュアル
前のページ 次のページ

Config::getRoot()

Config::getRoot() -- config オブジェクトのルートコンテナを返す

概要

require_once 'Config.php';

object &Config::getRoot (void)

説明

この関数は、Configオブジェクトの中のルート Config_Container 返します。 返された Config_Container オブジェクトの参照値は設定データとして操作します。

返り値

object - config のルートコンテナオブジェクトのリファレンスを返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 31-1getRoot() の使用法

$config = new Config();
$root =& $config->getRoot();
前のページ | ホーム | 次のページ
Config::Config() | 上に戻る | Config::isConfigTypeRegistered()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config::isConfigTypeRegistered

PEAR マニュアル
前のページ 次のページ

Config::isConfigTypeRegistered()

Config::isConfigTypeRegistered() -- もしコンテナが登録済みならTRUEが返る

概要

require_once 'Config.php';

bool Config::isConfigTypeRegistered (string $configType)

説明

この関数は必要なコンテナタイプが $GLOBALS['CONFIG_TYPES'] に存在するかどうか調べます。

パラメータ

string $configType

設定の種類(php array, xml, inifile...)

返り値

bool - 登録済みならTRUEが、そうでなければFALSEが返る。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Config::getRoot() | 上に戻る | Config::parseConfig()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config::parseConfig

PEAR マニュアル
前のページ 次のページ

Config::parseConfig()

Config::parseConfig() -- データソースの内容を解析する

概要

require_once 'Config.php';

mixed &Config::parseConfig (mixed $datasrc, string $configType [, array $options = array()])

説明

このメソッドは、与えられたデータソースを解析し、 ルートConfig_Container オブジェクトを他のConfig_Container オブジェクトで補充します。 もし何らかの理由で行かなければ、ルートConfig_Container オブジェクトへのリファレンスか、 あるいはPEAR_Errorを返すでしょう。

パラメータ

mixed $datasrc

解析するべきデータソースです。 ほとんどのコンテナーについては、それはファイルパスです。 PHP配列パーサーについては、配列を指定します。

string $configType

解析するべき設定のタイプです。

array $options

パーサー用オプションです。

返り値

object - Config_Containerオブジェクトのリファレンスです。

例外・エラー

表 31-1PEAR_Error の値

エラーコード | エラー値 | 意味 | 解決策
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

例

例 31-1parseConfig()の使用法

$config = new Config();
$root =& $config->parseConfig('/path/to/file.php', 'phparray',
                                array('name' => 'conf');
前のページ | ホーム | 次のページ
Config::isConfigTypeRegistered() | 上に戻る | Config::setRoot()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config::setRoot

PEAR マニュアル
前のページ 次のページ

Config::setRoot()

Config::setRoot() -- オブジェクトのルートコンテントを設定する

概要

require_once 'Config.php';

mixed Config::setRoot (object &$rootContainer)

説明

この関数は、現在の総ての子とルート Config_Container オブジェクトを与えられたオブジェクトに交換をします。

パラメータ

object $rootContainer

一番最初のルートとしてのコンテナ

返り値

boolean - 成功時には TRUE 、 失敗時には FALSE を返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 31-1setRoot() の使い方

$container =& new Config_Container('section', 'conf');

$config = new Config();
$root =& $config->setRoot($container);
前のページ | ホーム | 次のページ
Config::parseConfig() | 上に戻る | Config::writeConfig()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Config::writeConfig

PEAR マニュアル
前のページ 次のページ

Config::writeConfig()

Config::writeConfig() -- データソースにコンテナーの内容を書きます。

概要

require_once 'Config.php';

mixed Config::writeConfig ([mixed $datasrc = NULL [, string $configType = NULL [, array $options = array()]]])

説明

このメソッドはデータソースに設定内容をデータソースに書き込みをするために ルートの Config_Container::writeDatasrc() メソッドを呼ぶでしょう。

パラメータ

mixed $datasrc

データソースの書き込み先です。

string $configType

書き込みをする設定の種類です。

array $options

書き込みのオプションです。

返り値

mixed - 成功時には TRUE、 失敗時には PEAR_Error を返します。

例外・エラー

表 31-1PEAR_Error の値

エラーコード | エラー値 | 意味 | 解決策
 | "" |  |

注意

この関数は、スタティックにコールする ことはできません。

例

このサンプルはphp配列を含むphp設定ファイルのからXMLファイルに変換する方法です。

例 31-1writeConfig()の使用法

$config = new Config();
$config->parseConfig(
                       '/path/to/file.php',
               'phparray',
                       array('name' => 'conf')
            );
$config->writeConfig(  '/path/to/file.xml',
                       'xml',
                       array('name' => 'conf')
            );

前のページ | ホーム | 次のページ
Config::setRoot() | 上に戻る | Config_Container::Config_Container()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- Config でできること

導入

Config を使用すると、XML ファイルや PHP の配列、 あるいはその他のデータソースに保存された設定項目を扱いやすくなります。 これらの機能がサポートされています。

  • さまざまな書式の設定項目のパース

  • セクション、ディレクティブ、コメント、空白などのお好みに応じた操作

  • お好みの書式による、データソースへの設定内容の書き出し

Config オブジェクトは、その他の Config_Container オブジェクトのコンテナとして働きます。 たいしたことをするわけではありませんが、入出力操作を簡単に行えるようになります。 ルート Config_Container オブジェクトがあり、 その配下に子 Config_Container オブジェクトが含まれるという形式になります。 Config_Container オブジェクトは、 自分の親への参照と、自分の子の配列を保持します。 この構造により、さまざまなコンテナの内容に容易にアクセスできるようになります。

Config_Container オブジェクトには、 さまざまな型があります。

  • セクション: これは、他の Config_Container オブジェクトを含むものです。

  • ディレクティブ: これは他のオブジェクトを含まず、その代わりに項目名とその内容を含むものです。キーと値のペアとなります。

  • コメント: 項目と似ていますが、コメントはその内容だけであり、名前は含まれません。選択した設定の型に応じて、コメントは特別な扱いを受けます。

  • ブランク: これは名前も値も持ちません。単に空行を指定したいときに使用します。

Config パッケージを使用する際は、 大半の作業は Config_Container オブジェクトに対して行います。

例 31-1新しい Config_Container の作成

// Config_Container オブジェクトを初期化します

require_once('Config.php');
$conf =& new Config_Container('section', 'conf');
$conf_DB =& $conf->createSection('DB');
$conf_DB->createDirective('type', 'mysql');
$conf_DB->createDirective('host', 'localhost');
$conf_DB->createDirective('user', 'root');
$conf_DB->createDirective('pass', 'root');

// このコンテナを、Config のルートとして指定します

$config = new Config();
$config->setRoot($conf);

// コンテナを php の配列として書き出します

$config->writeConfig('/tmp/config_test.php', 'phparray',
                     array('name' => 'test'));

// 設定内容を画面に表示します

echo $conf->toString('phparray', array('name' => 'test'));

上の例では、Config と Config_Container を組み合わせる方法を説明しています。 これ以外にも別の方法があります。 例えば、まず Config オブジェクトを作成して $config->getRoot() を使用し、返されたオブジェクトへの参照にセクションやディレクティブを追加するという方法です。

例 31-2XML ファイルからの設定の読み込み

require_once 'Config.php';

$conf = new Config;
$root =& $conf->parseConfig('config.xml', 'XML');

if (PEAR::isError($root)) {
    die('設定を読み込む際のエラー: ' . $root->getMessage());
}

$settings = $root->toArray();

printf('User settings: <a href="%s">%s %s</a>',
       $settings['root']['conf']['www'],
       $settings['root']['conf']['firstname'],
       $settings['root']['conf']['lastname']
       );

この例で使用する XML ファイル config.xml は、このようになります。

<?xml version="1.0" encoding="UTF-8"?>

<conf>
  <firstname>John</firstname>
  <lastname>Doe</lastname>

  <www>http://example.com/</www>
</conf>

さらなる情報は、 API ドキュメント や パッケージのサンプル、そして パッケージのテスト を参照ください。また、DevShed では、Config パッケージのすばらしい チュートリアル が公開されています。

前のページ | ホーム | 次のページ
Config | 上に戻る | 設定の編集

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


設定の編集

設定の編集 -- 設定内容を操作する方法

設定内容の作成

Config オブジェクトの中身を作成するには、 いろいろな方法があります。まず単純に、 配列を以下の例のように渡すことができます。

例 31-1配列からの設定の作成

// 設定項目の配列

$conf = array(
    'DB' => array(
        'type' => 'mysql',
        'host' => 'localhost',
        'user' => 'root',
        'pass' => 'root'
     )
);

// Config オブジェクト

$config = new Config();
$root =& $config->parseConfig($conf,
                              'phparray',
                              array('name' => 'conf'));
echo $root->toString('phparray', array('name' => 'conf'));

または、Config に対してファイルシステム上のファイルを指定し、 そのファイルをパースさせることもできます。例えばこのようにします。 この例では、すでに妥当な XML ファイルが存在することを前提としています。

例 31-2ファイルからの設定の作成

// Config オブジェクト

$config = new Config();
$root =& $config->parseConfig('/path/to/file.xml', 'xml');
echo $root->toString('phparray', array('name' => 'conf'));
今のところ、Config が扱える形式は XML、PHP の配列、ini ファイル、 Apache の設定ファイル、そしてコメントとキー/値のペアからなる汎用的な型のいずれかとなります。

もちろん、 先ほどの節 の例で示したように設定をゼロから作成することも可能です。

前のページ | ホーム | 次のページ
導入 | 上に戻る | 使用できるコンテナ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Console_Color

目次
導入 -- Console_Color の使用法
色コード -- 表形式のリファレンス

Console_Color を使用すると、 作成したアプリケーションの出力に、 ANSI コンソールカラーを用いて簡単に色をつけることができます。

前のページ | ホーム | 次のページ
コンソール | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


色コード

色コード -- 表形式のリファレンス

説明

表 32-1色コード

色 | 通常テキスト | 強調テキスト | 背景
黒 | %k | %K | %0
赤 | %r | %R | %1
緑 | %g | %G | %2
黄色 | %y | %Y | %3
青 | %b | %B | %4
マゼンタ | %m | %m | %5
紫 | %p | %P |
シアン | %c | %C | %6
白 | %w | %W | %7

表 32-2スタイルコード

スタイル | コード
点滅、フラッシュ | %F
アンダーライン | %U
反転 | %8
強調 | %_, %9
リセット | %n
文字としての % | %%
前のページ | ホーム | 次のページ
導入 | 上に戻る | Console_Getopt

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- Console_Color の使用法

基本

Console_Color が提供するメソッドには、 特殊なマーカーでタグ付けされた文字列を ANSI 互換の色コード表現に変換するものがあります。 また、指定した色に対応するコードを直接返すメソッドもあります。

最も頻繁に使用するメソッドは convert() です。 これは
%bHello World!%n\n
あるいは
3 out of 4 people make up about %r75%% %n
のような文字列を受け取り、それを ANSI 表現で返します。 パーセント記号 (%) の後に続く文字には特別な意味があります。その概要については 色コード を参照ください。

色を通常の状態に戻すには、%n を使用します。

さらに、escape() メソッドを使用すると、 特殊文字がマークとして扱われないようにできます。

メソッド bgcolor()、
color()、fgcolor()
および style() は、
指定した色やスタイルに対応する ANSI 制御コードを直接返します。

例

<?php
require 'Console/Color.php';
// 青にします
print Console_Color::convert("%bHello World!%n\n");
// もっとカラフルにします
print Console_Color::convert("%rred%n, %ggreen%n, %yyellow%n\n");
?>
前のページ | ホーム | 次のページ
Console_Color | 上に戻る | 色コード

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Console_Getopt

目次
入門 - オプション -- オプションの定義と処理
Console_Getopt::getopt -- コマンドラインオプションを取得する
Console_Getopt::readPHPArgv -- 定義済の $argv 配列を読む

Console_Getopt は、 コマンドライン引数の取得と処理をかんたんに行う機能を提供します。

前のページ | ホーム | 次のページ
色コード | 上に戻る | 入門 - オプション

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Console_Getopt::getopt

Console_Getopt::getopt -- コマンドラインオプションを取得する

概要

require_once 'Console/Getopt.php';

array getopt (array $args, string $shortoptions [, array $longoptions = NULL])

説明

コマンドラインオプションをパースし、結果を返します。

パラメータ

  • array $args - コマンドライン引数の配列。

  • string $shortoptions - 使用できる短いオプション目録を指定します。 詳細については、 オプションについてのセクション を参照してください。

  • array $longoptions - 使用できる長いオプション目録を指定します。 詳細については、 オプションについてのセクション を参照してください。

返り値

array - パースされたオプションと非オプションのコマンドライン引数の 2つの要素からなる配列、もしくは PEAR_Error 。

例外・エラー

表 32-1PEAR_Error の値

エラーコード | エラーメッセージ | 理由 | 対処法
NULL | "Console_Getopt: option --$opt is ambiguous" | 同じ文字から始まるオプションが複数あります。 | オプションの名称を変えます。タイプミスによって、このエラーが 起こることもあります。
NULL | "Console_Getopt: option --$opt requires an argument" | オプションにパラメータが付加されていません。 | ふつうは、ユーザのミスです。 もしパラメータの付加が任意であるならば、オプション定義に、 任意と記述します。
NULL | "Console_Getopt: option --$opt doesn't allow an argument" | オプションにパラメータが付加されています。 | ふつうは、ユーザのミスです。 もしパラメータの付加が必要であるならば、オプション定義に そのように記述します。
NULL | "Console_Getopt: unrecognized option --$opt" | 不明なオプションです。 | ふつうは、ユーザのミスです。 もしそのパラメータが存在するはずならば、オプション定義にて 定義します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
入門 - オプション | 上に戻る | Console_Getopt::readPHPArgv

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


入門 - オプション

入門 - オプション -- オプションの定義と処理

オプションの定義

Getopt() は、 2つの形式のオプションをサポートしています。すなわち、 短いオプション（short options）と 長いオプション（long options）です。

例 32-1長短オプションをつけてスクリプトをコールする

# 短いオプションを使う。
myphpscript -q -l en -o
# 替わって長いオプションを使う。
myphpscript --quite --lang=en --option
# 両方を混ぜる。
myphpscript -q --lang=en -o
サポートするオプションを定義する必要があります。 getopt() の第2引数には、 すべてのサポートする文字を渡します。 上記の例では、最小限、以下のとおりとなります。
$shortoptions = "qlo";
文字の順番は重要ではありません。パラメータを伴うオプションを 定義する必要がある場合もあります。あるオプションがパラメータを 伴うことを表すには、コロン (:) を付加します。 パラメータの付加が任意のときは、コロンを2つにします。 例を示します。
$shortoptions = "ql:o::";
この場合、以下のようにスクリプトをコールできます。
myphpscript
myphpscript -q
myphpscript -q -l en
myphpscript -o text
myphpscript -o
一方、
myphpscript -l
とは、できません。-lオプションは、 与えられた場合には必ず

長いオプションも同様に動作しますが、配列で定義します。
$longoptions = array("quite", "lang", "option");
パラメータ付加を定義するには、短いオプションと同じように '=' および '==' を使います。
$longoptions = array("quite", "lang=", "option==");

返されるオプションの配列

返り値は、 パースされたオプションと、非オプションのコマンドライン引数の 2つの要素からなる配列となります。 パースされたオプション内の各項目もまた、2つの要素からなります。 1つ目はオプションを示します。2つ目は付加されたパラメータを示しますが、 付加無しの場合は、NULL となります。

前のページ | ホーム | 次のページ
Console_Getopt | 上に戻る | Console_Getopt::getopt

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Console_Getopt::readPHPArgv

Console_Getopt::readPHPArgv -- 定義済の $argv 配列を読む

概要

require_once 'Console/Getopt.php';

array readPHPArgv ()

説明

種々のPHP 設定を考慮して、$argv 配列を読みます。 ini ディレクティブ中の register_globals と register_argc_argv を考慮します。

返り値

array - オプションとパラメータを含む配列、もしくは PEAR_Error です。

例外・エラー

表 32-1PEAR_Error の値

エラーコード | エラーメッセージ | 理由 | 対処法
NULL | "Console_Getopt: Could not read cmd args (register_argc_argv=Off?)" | PHP は、コマンドライン引数を当スクリプトに与えません。 | php.ini の "register_argc_argv" をチェックしてください。

注意

この関数は、スタティックにコールする ことはできません。

例

例 32-1readPHPArgv() の使用

$con  = new Console_Getopt;
$args = $con->readPHPArgv();
array_shift($args);
$options = $con->getopt2($args, $shortopt);

前のページ | ホーム | 次のページ
Console_Getopt::getopt | 上に戻る | Console_ProgressBar

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Console_ProgressBar

Console_ProgressBar は、 カスタマイズ可能なプログレスバーをコンソール/ターミナルに表示します。

例 32-3プログレスバーの例

This will display a very simple bar:
=====================================================

A more complicated bar, showing current status in numbers as well:
* 3/7 [==========================>-------------------------------------]  42.86%

Showing elapsed time, and using ANSI codes:
   - 109/345 [========>------------------]  31.59% Elapsed Time: 00:03.94

Showing an estimate for the remaining time:
- 105/345 [============>-------------------------------]  30.43% ETA: 00:11.52

設定方法

  1. require_once "Console/ProgressBar.php"

  2. Console_ProgressBar のインスタンスを作成します。

  3. 何らかの進捗があった時点で update() をコールします。

  4. 最後に erase() をコールします (オプション)。

例 32-4単純なプログレスバーの例

<?php
require_once 'Console/ProgressBar.php';
$bar = new Console_ProgressBar('[%bar%] %percent%', '=>', ' ', 80, 7);

// 何らかの処理を行います
for ($i = 0; $i <= 7; $i++) {
    $bar->update($i);
    sleep(1);
}
echo "\n";
?>

[=======================================>                              ]  57.14%

バーの作成

この例では、5 個のパラメータを使用してプログレスバーのインスタンスを作成します。 使用するパラメータは format string、bar string、 empty string、console width および target number です。

最初のパラメータ format string は、プログレスバー全体のレイアウトを指定します。 任意の文字のほかに、置換用の変数を指定することができます。

  • %bar% が実際のプログレスバーです。

  • %current% は update() で設定する実際の値です。

  • %max% は、コンストラクタで設定した最大値 (target number) で置き換えられます。

  • %fraction% は %current%/%max% と同じ値です。

  • %percent% は進捗状況をパーセントで表したものです。

  • %elapsed% は経過時間です。

  • %estimate% は、完了までの予測時間です。

二番目の引数は、プログレスバーで使用する文字列です。上の例では "=>" を指定しています。指定した文字列が短すぎる場合 (この例の "=>" のように)、必要な長さを埋めるために、 一番左の文字が繰り返されます。指定した文字列が長すぎる場合、 余分な文字は左側から切り詰められます。

三番目の引数は、プログレスバーの「空欄」の位置を埋める文字列です。 上の例では "-" を指定しています。指定した文字列が短すぎる場合 (この例の "-" のように)、必要な長さを埋めるために、 一番右の文字が繰り返されます。指定した文字列が長すぎる場合、 余分な文字は右側から切り詰められます。

四番目の引数では表示幅を指定します。通常のコンソール/ターミナル の幅は 80 文字なので、ここでは 80 を渡しています。 現時点では、ターミナルの文字幅を取得するメソッドはありません。

五番目の引数は、プログレスバー全体が表す数値です。 たとえば 115 KB の大きさのファイルのダウンロード時にプログレスバーを表示するなら、 ここで 115 を指定します。

更新および完了

プログレスバーの設定が終わったら、実際の作業 (ファイルのアップロードや ダウンロード、何らかの計算など) をはじめることができます。 進捗があったたびに update() をコールし、現在の処理状況を指定します。

最後まで終わったら、画面からプログレスバーを消去します。これには erase() を使用します。

前のページ | ホーム | 次のページ
Console_Getopt::readPHPArgv | 上に戻る | Console_Table

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Console_Table

目次
constructor Console_Table::Console_Table() -- コンストラクタ
Console_Table::addCol() -- テーブルにカラムを加えます。
Console_Table::addData() -- テーブルにデータを加えます。
Console_Table::addRow() -- テーブルに列を加えます。
Console_Table::getTable() -- すばらしいアスキーアートのテーブルを返します。
Console_Table::insertRow() -- 与えられた列番号の後ろに列をテーブルに挿入します。
Console_Table::setHeaders() -- カラムにヘッダーをセットします。

Console_Table はコンソールテーブルを構築するメソッドを提供します。

前のページ | ホーム | 次のページ
Console_ProgressBar | 上に戻る | constructor Console_Table::Console_Table()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Console_Table::addCol

PEAR マニュアル
前のページ 次のページ

Console_Table::addCol()

Console_Table::addCol() -- テーブルにカラムを加えます。

概要

require_once 'Console/Table.php';

void Console_Table::addCol (array $col_data [, integer $col_id [, integer $row_id]])

説明

  テーブルにカラムを加えます。

パラメータ

array $col_data

カラムデータ。数値または連想配列である必要があります。

integer $col_id

配置するカラムインデックス

integer $row_id

ゼロ以外から列を始める場合、ここに指定

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor Console_Table::Console_Table() | 上に戻る | Console_Table::addData()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Console_Table::addData

PEAR マニュアル
前のページ 次のページ

Console_Table::addData()

Console_Table::addData() -- テーブルにデータを加えます。

概要

require_once 'Console/Table.php';

void Console_Table::addData (array $data [, integer $col_id [, integer $row_id]])

説明

テーブルにデータを加えます。加えるためには引数にデータを含む2次元配列である必要があります。s

パラメータ

array $data

テーブルに加えるデータ

integer $col_id

任意に始まるカラムのID

integer $row_id

任意に始まる列のID

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Console_Table::addCol() | 上に戻る | Console_Table::addRow()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Console_Table::addRow

PEAR マニュアル
前のページ 次のページ

Console_Table::addRow()

Console_Table::addRow() -- テーブルに列を加えます。

概要

require_once 'Console/Table.php';

void Console_Table::addRow (array $row [, array $append = TRUE])

説明

テーブルに列を加えます。

パラメータ

array $row

加える列のデータ

array $append

Whether to append or prepend the row

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Console_Table::addData() | 上に戻る | Console_Table::getTable()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor Console_Table::Console_Table

PEAR マニュアル
前のページ 次のページ

constructor Console_Table::Console_Table()

constructor Console_Table::Console_Table() -- コンストラクタ

概要

require_once 'Console/Table.php';

void constructor Console_Table::Console_Table ()

説明

コンストラクタ

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Console_Table | 上に戻る | Console_Table::addCol()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Console_Table::getTable

PEAR マニュアル
前のページ 次のページ

Console_Table::getTable()

Console_Table::getTable() -- すばらしいアスキーアートのテーブルを返します。

概要

require_once 'Console/Table.php';

void Console_Table::getTable ()

説明

すばらしいアスキーアートのテーブルを返します。

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Console_Table::addRow() | 上に戻る | Console_Table::insertRow()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Console_Table::insertRow

PEAR マニュアル
前のページ 次のページ

Console_Table::insertRow()

Console_Table::insertRow() -- 与えられた列番号の後ろに列をテーブルに挿入します。

概要

require_once 'Console/Table.php';

void Console_Table::insertRow (array $row [, integer $row_id])

説明

与えられた列番号の後ろに列をテーブルに挿入します。 If $row_id is not given it will prepend the row.

パラメータ

array $row

挿入するデータ

integer $row_id

Row number to insert before

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Console_Table::getTable() | 上に戻る | Console_Table::setHeaders()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Console_Table::setHeaders

PEAR マニュアル
前のページ 次のページ

Console_Table::setHeaders()

Console_Table::setHeaders() -- カラムにヘッダーをセットします。

概要

require_once 'Console/Table.php';

void Console_Table::setHeaders (array $headers)

説明

カラムにヘッダーをセットします。

パラメータ

array $headers

カラムヘッダー

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Console_Table::insertRow() | 上に戻る | データベース

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB

目次
導入 - DSN -- データソース名(The Data Source Name)
導入 - 接続 -- 接続および接続の終了
導入 - クエリ -- クエリを実行する
導入 - 結果 -- クエリ結果からデータを取得する
導入 - 準備と実行 -- SQL 文を準備し、実行する
導入 - autoPrepare & autoExecute -- SQL 文を自動で組み立て、実行する
導入 - 移植性 -- データベースの移植性に関する機能
導入 - シーケンス -- シーケンスとオートインクリメント
DB -- 本体クラス
DB::connect() -- データベースに接続する
DB::isError() -- 変数が DB_Error オブジェクトかどうかを調べる
DB_common -- データベースへのアクセスのためのインターフェイス
DB_common::affectedRows() -- データ更新クエリによって変更された行の数を調べる
DB_common::autoCommit() -- 自動コミットの有効/無効を切り替える
DB_common::autoExecute() -- 指定した変数に基づいて、 INSERT 文あるいは UPDATE 文を準備・実行する
DB_common::autoPrepare() -- 指定した変数に基づいて、 INSERT 文あるいは UPDATE 文を準備する
DB_common::commit() -- 現在のトランザクションをコミットする
DB_common::createSequence() -- 新しいシーケンスを作成する
DB_common::disconnect() -- データベースとの接続を切断する
DB_common::dropSequence() -- シーケンスを削除する
DB_common::escapeSimple() -- 現在の DBMS の規則に基づいて文字列をエスケープする
DB_common::execute() -- 準備された SQL 文を実行する
DB_common::executeMultiple() -- 配列の各要素内に準備された SQL 文を実行する
DB_common::freePrepared() -- プリペアド SQL ステートメントに関連付けられたリソースを開放する
DB_common::getAll() -- クエリを実行し、すべてのデータを配列として返す
DB_common::getAssoc() -- クエリを実行し、結果を配列として返す
DB_common::getCol() -- クエリを実行し、ひとつのカラムのデータを返す
DB_common::getListOf() -- データベースのシステム情報を表示する
DB_common::getOne() -- クエリを実行し、最初の行の最初のカラムを返す
DB_common::getOption() -- PEAR DB 設定オプションの現在の状態を取得する
DB_common::getRow() -- クエリを実行し、最初の行を返す
DB_common::limitQuery() -- データベースに LIMIT クエリを送信する
DB_common::nextId() -- シーケンスの次の値を返す
DB_common::prepare() -- 後で実行するための SQL 文を準備する
DB_common::provides() -- DBMS が特定の機能をサポートしているかどうかを調べる
DB_common::query() -- データベースにクエリを送信する
DB_common::quote() -- 廃止予定: 文字列をクォートする
DB_common::quoteIdentifier() -- 識別子として安全に使用できるように文字列を整形する
DB_common::quoteSmart() -- リテラルとして安全に使用できるように入力内容を整形する
DB_common::rollback() -- 現在のトランザクションをロールバックする
DB_common::setFetchMode() -- デフォルトのフェッチモードを設定する
DB_common::setOption() -- PEAR DB の実行時オプションを設定する
DB_common::tableInfo() -- テーブル内のカラムやクエリ結果についての情報を取得する
DB_result -- DB 結果セット
DB_result::fetchInto() -- 結果セットの行を変数に取得する
DB_result::fetchRow() -- 結果セットから行を取得する
DB_result::free() -- 結果セットを開放する
DB_result::nextResult() -- 複数のクエリから結果セットを取得する
DB_result::numCols() -- 結果セットのカラム数を取得する
DB_result::numRows() -- 結果セットの行数を取得する
DB_Error -- DB エラーオブジェクト

SQL データベースにアクセスするための統一された API です。

前のページ | ホーム | 次のページ
データベース | 上に戻る | 導入 - DSN

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_DataObject

目次
導入 -- DB_DataObject で何ができるか
設定オプション -- データベースアクセスのためのデフォルト値の設定
自動生成とデータベーススキーマ -- 基底クラスの生成とデータベーススキーマ
DB_DataObject::factory() -- 表名に基づいたクラスの自動ロードとインスタンス化
->get() -- 単純な取得 (Select) リクエスト
DB_DataObject::staticGet() -- 単純な取得 (Select) リクエストで、簡潔かつ自動ロードを行う
{Child Class}::staticGet() -- 単純な取得 (Select) リクエストで、簡潔にされたもの (自動生成)
->find() -- 結果を検索する
->fetch() -- 次の行をフェッチする
->count() -- select count() リクエストを実行する
->insert() -- 現在のオブジェクト変数をデータベースに挿入する
->update() -- オブジェクト変数でデータベースを更新する
->delete() -- 表からアイテムを削除します
特殊なデータの検索 (SELECT) -- 高度なフィルタ - ::query(), ::SelectAdd(), ::whereAdd(), ::Limit(), ::OrderBy(), ::GroupBy(),
->query() -- 生のクエリを送出する
->free() -- リソースを解放する
->selectAdd() -- 取得するカラムを追加する
->whereAdd() -- WHERE ステートメントを追加する
->escape() -- Like クエリで使用する文字列をエスケープする
->limit() -- 制限をセットします
->orderBy() -- order by 条件を追加する
->groupBy() -- group by 条件を追加する
自動的な表のリンクと結合 -- 自動的な表のリンク - ::getLink(), ::getLinks(), ::joinAdd(), ::selectAs()
->getLink() -- 関連するオブジェクトをフェッチして返す
->getLinks() -- 関連するオブジェクトをロードする
->selectAs() -- クエリの取得 コンポーネントを構築する (通常は結合のため)
->joinAdd() -- JOIN クエリを生成するために他の DataObject を追加する
->set*() and ->get*() -- オーバーロードを用いた自動的な set系・get系メソッド
->setFrom() -- （form で POST された）配列またはオブジェクトから 要素をコピーする
->toArray() -- 現在の結果を配列で取得する
->validate() -- オブジェクトデータをチェックし、 オブジェクトの検証メソッドをコールする
->tableName() -- オブジェクトのテーブル名を取得、あるいは設定する
->database() -- オブジェクトが使用するデータベースを取得、あるいは設定する
->table() -- テーブルスキーマを取得、あるいは設定する
->keys() -- テーブルのキーを取得あるいはセットする
->getDatabaseConnection() -- PEAR データベースオブジェクトを取得する
->getDatabaseResult() -- PEAR データベースの結果オブジェクトを取得する
DB_DataObject::debugLevel -- デバッグ情報を出力する量を設定する
->debug() -- デバッグ情報を出力する
DB_DataObject::raiseError -- エラーをスローする
キャスト - 日付型、Blob そして Null -- DB_DataObject_Cast ::date(), ::blob(), ::sql()

SQL ビルダとデータモデル層

この章では、DB_DataObject SQL ビルダとデータモデル層の使用方法について説明しています。

前のページ | ホーム | 次のページ
DB_Error | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_DataObject_FormBuilder

目次
導入 -- DataObject クラスから HTML フォームを作成するパッケージ

DataObject クラスから HTML フォームを作成するパッケージ

現在のところ、詳細なドキュメントはこちらにあります 。

FormBuilder についてのプレゼンテーションです 。

前のページ | ホーム | 次のページ
キャスト - 日付型、Blob そして Null | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->count()

->count() -- select count() リクエストを実行する

概要

int $DB_DataObject->count ([string|boolean $countWhat|$whereAddOnly [, boolean $whereAddOnly]])

説明

これは、表のキーカラムによる select count() リクエストを実行し、 結果の行数を返します。 count() に適用されるデフォルトの条件は、オブジェクト変数と whereAdd の設定内容の組み合わせです。 もし、定数 DB_DATAOBJECT_WHEREADD_ONLY が第1パラメータに指定された場合、 whereAdd の設定内容だけが使用されます。

パラメータ

  • string $countWhat - デフォルトカウントは、主キーをカウントします。 もし何か他をカウントする必要がある場合で、単純に DISTINCT を指定する場合は DISTINCT を前に付けた主キーをカウントします。 その他の場合は独自の値をカウントします (エスケープが必要な場合、忘れないようにしてください) 。

  • boolean $useWhereAddOnly - whereAdd 条件のみ使用するかどうかを指定します (デフォルトでは、count オブジェクトの設定内容と whereAdd の条件の両方が使用されます) 。

返り値

int|false - 結果の数もしくは失敗時に false

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1オブジェクト変数に基づいたデータの簡単な検索とフェッチ

<?php

/* using property values */
$person = new DataObjects_Person;
$person->name  = "test"
$total = $person->count();
echo "There are {$total} people with a name like test";

/* using countWhat */
$person = new DataObjects_Person;
$total = $person->count('DISTINCT name');
echo "There are {$total} names in the database";

/* using countWhat value = DISTINCT */
$person = new DataObjects_Person;
$total = $person->count('DISTINCT');
echo "There are {$total} names in the database";

/* using whereOnly */
$person = new DataObjects_Person;
$person->name = "test";
$person->whereAdd("name like '%test%");
$total = $person->count(DB_DATAOBJECT_WHEREADD_ONLY);
echo "There are {$total} names in the database";

?>

例 33-2結果の SQL

SELECT count(person.id) AS DATAOBJECT_NUM
    FROM person
    WHERE person.name = 'test';

SELECT count(DISTINCT name) AS DATAOBJECT_NUM
    FROM person;

SELECT count(DISTINCT person.id) AS DATAOBJECT_NUM
    FROM person;

SELECT count(person.id) AS DATAOBJECT_NUM
    FROM person
    WHERE name like '%test%';
前のページ | ホーム | 次のページ
->fetch() | 上に戻る | ->insert()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->database()

->database() -- オブジェクトが使用するデータベースを取得、あるいは設定する

概要

object $DB_DataObject->database ([string $name])

説明

引数なしの場合、オブジェクトが扱うデータベースを返します。 文字列を渡した場合、そのオブジェクトが扱うデータベースをセットします。

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1データベース名の取得

$person = new DataObjects_Person;
echo $person->database();
// echo's mydatabase

// now use the same object to check on a mirror..

$person->database('mirror1');
$person->id = 12;
$person->find(true);
前のページ | ホーム | 次のページ
->tableName() | 上に戻る | ->table()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->debug()

->debug() -- デバッグ情報を出力する

概要

void $DB_DataObject->debug (string $message [, string $logPrefix [, integer $level=1]])

説明

デバッグ情報を出力するために独自に継承したクラスで利用できるデバッガです。 DB_DataObject::DebugLevel(x) を使用することで有効になり、 設定ファイルで製品としての設定をすることで完全に無効にすることができます。

パラメータ

  • string $message - 出力するメッセージを設定します。

  • integer $logtype - 太字の接頭辞文字列を指定します。

  • integer $level - 出力レベルを設定します。 1 は通常の出力となり、5 はデータベースの接続パスワードなども 出力するようになります。

注意

この関数は、スタティックにコールする ことはできません。

警告

製品モードでは、デバッガは無効にしてください。

参照

DB_DataObject::debugLevel()

例

例 33-1デバッグレベルを設定する

$person = new DataObjects_Person;
$person->get(12);

// always prints
$person->debug('just got the person, about to set stuff', 'my application',0);
$person->setFrom($_POST['input']);

// only prints if debuglevel is set
$person->debug('just set the variables, about to update', 'my application',1);
$person->update();
前のページ | ホーム | 次のページ
DB_DataObject::debugLevel | 上に戻る | DB_DataObject::raiseError

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_DataObject::debugLevel

DB_DataObject::debugLevel -- デバッグ情報を出力する量を設定する

概要

void DB_DataObject::debugLevel ([integer $level])

説明

デバッグレベルを設定、あるいは返します。これにより、 クエリや接続が生成され実行されるのを確認することができます。

パラメータ

  • integer $level - レベルを指定します。 パラメータを指定しない場合、デバッグ出力は無効になります。 1 は通常の出力となり、5 は接続のためのパスワードなども含まれるように なります。

注意

この関数は、スタティックにコールする ことはできません。

参照

->debug()()

例

例 33-1debugLevel() の使用

// turn debugging high
DB_DataObject::debugLevel(5);
$person = new DataObjects_Person;
$person->get(12);
$person->setFrom($_POST['input']);
$person->update();
// turn debugging off
DB_DataObject::debugLevel();
前のページ | ホーム | 次のページ
->getDatabaseResult() | 上に戻る | ->debug()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->delete()

->delete() -- 表からアイテムを削除します

概要

int $DB_DataObject->delete ([boolean $useWhere])

説明

主キーあるいは whereAdd() メソッドコールのいずれかに基づいてデータベースからデータを削除します。 デフォルトでは、削除はセットされた変数に基づいて行われます。 しかしながら、 whereAdd() メソッドを使用したい場合、 $useWhere パラメータに DB_DATAOBJECT_WHEREADD_ONLY をセットすべきです。

パラメータ

  • boolean $use_where - whereAdd() 条件を使用するかどうかを指定します (デフォルトでは、削除は主キーのみが使用します) 。

返り値

int 作用した行数、あるいは失敗した場合 FALSE

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 意味 | 解決策
DB_* | "*" | PEAR::DB を参照してください | PEAR::DB を参照してください
DB_DATAOBJECT_ERROR_NODATA | "削除: クエリの $condition にデータが指定されていません" |  |

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1単純な削除

$person = new DataObjects_Person;
$person->get(12);
$person->delete();

$person = new DataObjects_Person;
$person->whereAdd('age < 21');
$person->delete(DB_DATAOBJECT_WHEREADD_ONLY);

例 33-2結果の SQL

SELECT * FROM person WHERE id=12
DELETE FROM person WHERE id=12 AND name='test' AND age=21
DELETE FROM person WHERE age < 21
前のページ | ホーム | 次のページ
->update() | 上に戻る | 特殊なデータの検索 (SELECT)

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->escape()

->escape() -- Like クエリで使用する文字列をエスケープする

概要

void $DB_DataObject->escape (string $value)

説明

Pear DB の quote と同様、値をクオートがなくなるようエスケープしますので、 LIKE クエリで使用することができます。

パラメータ

  • string $value - エスケープしたい文字列を指定します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1LIKE の文字列をエスケープする

$person = new DataObjects_Person;
$person->whereAdd("name LIKE '%" . $person->escape("o'brian") . "%'");
$person->find();

例 33-2結果の SQL

SELECT * FROM PERSON WHERE name LIKE '%o\'brian%'
前のページ | ホーム | 次のページ
->whereAdd() | 上に戻る | ->limit()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_DataObject::factory()

DB_DataObject::factory() -- 表名に基づいたクラスの自動ロードとインスタンス化

概要

mixed DB_DataObject::factory ([string $table])

説明

これは、クラスの自動ロードとインスタンス化を行うお勧めの方法です。 クラスは表のためのクラスネーミング設定 (class_location および class_prefix) に基づいてロードされます。

パラメータ

  • string $table - ロードするテーブルを指定します ([バージョン1.7.2から] ブランクかつデータオブジェクトのインスタンスがコールされた場合、 そのオブジェクトの新しいインスタンスが生成されます) 。

返り値

object mixed - FALSE またはオブジェクト

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 意味 | 解決策
DB_DATAOBJECT_ERROR_NOCLASS | "$class を自動ロードできません" |  |

注意

このメソッドを静的あるいは動的にコールする事ができます。

例

例 33-1主キーに基づいたデータの簡単なフェッチ

// オプションを設定します
$opts = &PEAR::getStaticProperty('DB_DataObject','options');
$opts = array(
    'class_location'  => '/home/me/Projects/myapplication/DataObjects',
    'class_prefix'    => 'DataObjects_'
);

// ファイル /home/me/Projects/myapplication/DataObjects/Person.php
// を読み込み、クラス DataObjects_Person が存在するかどうかを調べ、
// そのクラスのインスタンスを返します

$person = DB_DataObject::factory('person');

if ($person->get(12)) {
  print_r($person);
} else {
  echo "12 番の人は存在しません";
}

// 動的に使用することも可能です
class DataObjects_MyTable {

    function anExample() {
        $person = $this->factory('person');

        // バージョン 1.7.2 でサポートされます
        $another_mytable = $this->factory();

        $another_person = $person->factory();

    }
}
前のページ | ホーム | 次のページ
自動生成とデータベーススキーマ | 上に戻る | ->get()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->fetch()

->fetch() -- 次の行をフェッチする

概要

boolean $DB_DataObject->fetch ()

説明

fetch メソッドは次の行を取得し、 行データをオブジェクト変数にセットします。 データが取得できた場合、TRUE を返します。 これ以上データがない場合、FALSE となります。

返り値

boolean - 成功した場合 TRUE、失敗した場合 FALSE

注意

この関数は、スタティックにコールする ことはできません。

Fetch は staticGet や get によってコールされますので、 特別なデータ (整形済みの日付など) をオブジェクトに追加するために このクラスをオーバーライドすることができます。

例

例 33-1オブジェクト変数に基づいたデータの単純な検索とフェッチ

$person = new DataObjects_Person;

$person->hair = 'red';
$person->has_glasses = 1;

$number_of_rows = $person->find();

$people = array();
while ($person->fetch()) {
    /* store the results in an array */
    $people[] = clone($person);
    echo "GOT {$person->name}<BR>";
}

例 33-2特別なデータを追加するためのオーバーライドされたフェッチ

function fetch() {

  $ret = parent::fetch();
  if ($ret === false) {
      return false;
  }
  $this->dateFormated = date('d/M/Y', $this->date);
  return true;
}
前のページ | ホーム | 次のページ
->find() | 上に戻る | ->count()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->find()

->find() -- 結果を検索する

概要

int $DB_DataObject->find ([boolean $autoFetch])

説明

find メソッドは、オブジェクト変数と WhereAdd() 条件に基づいた現在のクエリを作成し実行します。 もし、AutoFetch が TRUE ならは、 fetch メソッドも自動的にコールされます。

パラメータ

  • boolean $autoFetch - 最初の結果をフェッチするかどうかを指定します

返り値

int - データベースバックエンドが numRows() メソッドをサポートする場合は見つかった件数。そうでなければ 1 (あるいは、1.7.13以降は true が返されます)

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1オブジェクト変数に基づいたデータの単純な find()

$person = new DataObjects_Person;
$person->hair = 'red';
$person->has_glasses = 1;
$number_of_rows = $person->find();

例 33-2結果の SQL

SELECT * FROM person WHERE hair='red' and has_glasses = 1
前のページ | ホーム | 次のページ
{Child Class}::staticGet() | 上に戻る | ->fetch()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->free()

->free() -- リソースを解放する

概要

object $DB_DataObject->free ()

説明

DataObject はプライベートなグローバル変数として結果セットを保持しています。 通常これは結果を処理した後、もしくはリクエストの終了時に解放されます。 しかし、クエリを直接実行している、データを挿入しているなどの いくつかの状況ではデータをキャッシュする必要がありません。

このメソッドを使用することで、全ての結果セットを解放することができます (注意してください) ! このメソッドは、実行中の fetch() ループを停止させます。

通常、大量の挿入やクエリを実行している場合のみ、 このメソッドを使用する必要があります。

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1ループ内でリソースを解放する

<?php

for ($i = 0; i< 10000; $i++) {
    $person = new DataObjects_Person;
    $person->query(' ... do something ... ');
    $person->free();
}

?>
前のページ | ホーム | 次のページ
->query() | 上に戻る | ->selectAdd()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->get()

->get() -- 単純な取得 (Select) リクエスト

概要

int $DB_DataObject->get (mixed Key or Value [, mixed value])

説明

キーや値を使用して結果を取得します。 成功した場合、行数を返し (通常は1) 、 このクラス変数に全ての表カラムをセットします。 もし、1つのパラメータのみが使用された場合、第1引数は値と見なされ、 get() は主キーを使用します。

パラメータ

  • mixed $key あるいは $value - カラム (あるいは、 1つだけのパラメータの場合は値) を指定します。

  • mixed $value - 値を指定します。

返り値

int - 行数

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 意味 | 解決策
DB_DATAOBJECT_ERROR_INVALIDCONFIG | "$table でキーが利用できません" |  |
DB_DATAOBJECT_ERROR_INVALIDARGS | "値が指定されていません" |  |

注意

この関数は、スタティックにコールする ことはできません。

同じオブジェクトインスタンスで2回 get をコールすることを回避すべきです。 その場合、予期しない結果となります。

例

例 33-1主キーに基づいたデータの簡単なフェッチ

$person = new DataObjects_Person;
$person->get(12);
print_r($person);

例 33-2結果の SQL

SELECT * FROM person WHERE id=12

例 33-3キーと値に基づいたデータの簡単なフェッチ

$person = new DataObjects_Person;
$person->get('email','test@example.com');
print_r($person);

例 33-4結果の SQL

SELECT * FROM person WHERE email='test@example.com'

例 33-5サンプルコードの結果

Object (DataObjects_Person) =>
    [N] => 1
    [id] => 12
    [group] => 5
    [has_glasses] => 1
    [name] => 'fred blogs'
    [password] => '**testing'
    [email] => 'test@example.com'
前のページ | ホーム | 次のページ
DB_DataObject::factory() | 上に戻る | DB_DataObject::staticGet()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->getDatabaseConnection()

->getDatabaseConnection() -- PEAR データベースオブジェクトを取得する

概要

object $DB_DataObject->getDatabaseConnection ()

説明

オブジェクトが使用している PEAR データベースの接続を取得します。 これにより、様々な情報を検索したり直接クエリを送信することができます。

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1接続を取得する

$person = new DataObjects_Person;
$db=  &$person->getDatabaseConnection();
echo $db->phptype;

例 33-2出力例

1000_monkeys
前のページ | ホーム | 次のページ
->keys() | 上に戻る | ->getDatabaseResult()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->getDatabaseResult()

->getDatabaseResult() -- PEAR データベースの結果オブジェクトを取得する

概要

object $DB_DataObject->getDatabaseResult ()

説明

PEAR データベースの結果オブジェクトを取得します。 これにより、Pager クラスや HTML_Select クラスなどと連携することができます。

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1結果オブジェクトの取得

$person = new DataObjects_Person;
$person->hair = 'green';
$person->selectAdd();
$person->selectAdd('id,name');
$person->find();

$res=  $person->getDatabaseResult();
$quickFormSelect->loadDbResult($res,'id','name');
前のページ | ホーム | 次のページ
->getDatabaseConnection() | 上に戻る | DB_DataObject::debugLevel

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->getLink()

->getLink() -- 関連するオブジェクトをフェッチして返す

概要

mixed $DB_DataObject->getLink (string $column [, string $table [, string $key]])

説明

関連するオブジェクトをフェッチします。 これは、links.ini ファイルの <dbname> 設定が結合で使用されます (この詳細についてはリンクの導入を参照してください。)

また、カラムや関連テーブルとカラムを明示するために全てのパラメータを指定します。

パラメータ

  • string $column - カラムまたは column.xxxxx のどちらかを指定します

  • string $table - 値を検索するためのテーブル名を指定します

  • string $link - 他方のテーブルでマッチさせるカラム名を指定します

返り値

mixed - 成功時はオブジェクト、失敗時は FALSE

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1関連するオブジェクトを取得する

$person = new DataObjects_Person;
$person->get(12);
$group = $person->getLink('group_owner');
echo $group->name;
$group = $person->getLink('colourid','hair');

例 33-2結果の SQL

SELECT * FROM person WHERE id=12
SELECT * FROM group WHERE id=3
SELECT * FROM hair WHERE id=4
前のページ | ホーム | 次のページ
自動的な表のリンクと結合 | 上に戻る | ->getLinks()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->getLinks()

->getLinks() -- 関連するオブジェクトをロードする

概要

boolean $DB_DataObject->getLinks ([string $variableFormat])

説明

links.iniの関連情報を使用して、 メインオブジェクトに関連する全てのオブジェクトをロードします。 また、アンダースコア (_) 付きの行名で 呼び出しているオブジェクト変数を結果オブジェクトにセットします。

以前のカラム名変換を使用することは推奨されません。 links.ini ファイルが使用されます。

パラメータ

  • string $variableFormat - デフォルトの振る舞いは、行名の前にアンダースコア (_) を付けた変数を結果のオブジェクトに割り当てることです。 しかしながら、この値を様々な異なるフォーマットにすることができます。

    例 33-1 フォーマッタの例

    if room.occupied_by is linked to a person.id

without a modifier - eg _%s

results in the equivilant of
$object->_occupied_by =  $object->getLink('occupied_by');

with a modifier - eg link_%s

results in the equivilant of
$object->link_occupied_by = $object->getLink('occupied_by');

返り値

boolean - 成功時は TRUE、失敗時は FALSE

注意

この関数は、スタティックにコールする ことはできません。

参照

DB_DataObject::getLink()

例

例 33-22つの例の表

Person
+---------------+---------------+------+-----+---------+----------------+
| Field         | Type          | Null | Key | Default | Extra          |
+---------------+---------------+------+-----+---------+----------------+
| id            | mediumint(9)  |      | PRI | 0       | auto_increment |
| first_name    | varchar(80)   | YES  |     | NULL    |                |
| last_name     | varchar(80)   |      | MUL |         |                |
| middle_name   | varchar(80)   | YES  |     | NULL    |                |
| badge_number  | smallint(6)   | YES  |     | NULL    |                |
| street        | varchar(80)   | YES  |     | NULL    |                |
| city          | varchar(80)   | YES  |     | NULL    |                |
| state         | varchar(80)   | YES  |     | NULL    |                |
| zip           | varchar(15)   | YES  |     | NULL    |                |
| phone         | varchar(15)   | YES  |     | NULL    |                |
| reg_type      | varchar(80)   | YES  |     | NULL    |                |
| judge         | varchar(10)   | YES  |     | NULL    |                |
| staff         | varchar(10)   | YES  |     | NULL    |                |
| volunteer     | varchar(10)   | YES  |     | NULL    |                |
| rpga_number   | mediumint(9)  | YES  |     | NULL    |                |
| total_fee     | float(10,2)   | YES  |     | NULL    |                |
| email_address | varchar(80)   | YES  |     | NULL    |                |
| country       | varchar(30)   | YES  |     | NULL    |                |
| convention_id | int(11)       |      |     | 0       |                |
| last_modified | timestamp(14) | YES  |     | NULL    |                |
+---------------+---------------+------+-----+---------+----------------+

Convention
+----------------------+---------------+------+-----+---------+----------------+
| Field                | Type          | Null | Key | Default | Extra          |
+----------------------+---------------+------+-----+---------+----------------+
| id                   | int(11)       |      | PRI | 0       | auto_increment |
| name                 | varchar(50)   |      |     |         |                |
| sponsor_organization | varchar(50)   |      |     |         |                |
| rpga_convention_code | varchar(20)   |      |     |         |                |
| web_site_url         | varchar(200)  |      |     |         |                |
| last_modified        | timestamp(14) | YES  |     | NULL    |                |
| room_id              | int(11)       |      |     |         |                |
+----------------------+---------------+------+-----+---------+----------------+

Room
+----------------------+---------------+------+-----+---------+----------------+
| Field                | Type          | Null | Key | Default | Extra          |
+----------------------+---------------+------+-----+---------+----------------+
| room_id              | int(11)       |      | PRI | 0       | auto_increment |
| name                 | varchar(50)   |      |     |         |                |
+----------------------+---------------+------+-----+---------+----------------+

例 33-3 全ての関連するオブジェクトをロードする

$person = new DataObjects_Person;
$person->get(1079);
$person->getLinks();
print_r($person);

例 33-4結果の SQL

SELECT * FROM person WHERE id=1079
SELECT * FROM convention WHERE id=1

例 33-5結果の出力

Object:dataobjects_person Object
(
    [_DB_DataObject_version] => 1.0
    [__table] => person
    [_database_dsn] =>
    [_database_dsn_md5] => 3974043abbccdd6412fb156a1d10b98377
    [_database] => testing
    [_condition] =>
    [_group_by] =>
    [_order_by] =>
    [_limit] =>
    [_data_select] => *
    [_link_loaded] => 1
    [_lastError] => pear_error Object
        (
            [error_message_prefix] =>
            [mode] => 1
            [level] => 1024
            [code] => -3
            [message] => getLink:Could not find class for row last_modified, table last
            [userinfo] =>
            [callback] =>
        )

    [id] => 1079
    [N] => 1
    [_DB_resultid] => 2
    [first_name] => Tim
    [last_name] => White
    [middle_name] =>
    [badge_number] => 123
    [street] => 334411 N Washington
    [city] => Texas
    [state] => CO
    [zip] => 12345
    [phone] => 343412323232
    [reg_type] => Staff
    [judge] =>
    [staff] => CHECKED
    [volunteer] =>
    [rpga_number] => 1232323
    [total_fee] => 0.00
    [email_address] => tim@example.com
    [country] => USA
    [convention_id] => 1
    [last_modified] => 20020711084539
    [_first_name] =>
    [_last_name] =>
    [_middle_name] =>
    [_badge_number] =>
    [_reg_type] =>
    [_rpga_number] =>
    [_total_fee] =>
    [_email_address] =>
    [_convention_id] => dataobjects_convention Object
        (
            [_DB_DataObject_version] => 1.0
            [__table] => convention
            [_database_dsn] =>
            [_database_dsn_md5] => 3974043abbcc86412fb156a1d10b98377
            [_database] => testing
            [_condition] =>
            [_group_by] =>
            [_order_by] =>
            [_limit] =>
            [_data_select] => *
            [_link_loaded] =>
            [_lastError] =>
            [id] => 1
            [N] => 1
            [_DB_resultid] => 3
            [name] => ABCD XYZ
            [sponsor_organization] => some sponser
            [rpga_convention_code] => ABCD_XYZ
            [web_site_url] => http://example.com
            [last_modified] => 20020703143828
            [room_id] => 1
        )

    [_last_modified] =>
)

** Note,  This error: [message] => getLink:Could not find class for row last_modified, table last

is caused by the original link code using {tablename}_{colname} for guessing links, this automated
linking should be ignored, and not used, as it is depreciated.

例 33-63つの表の結合例

/**
 * The following example show a three tables join.
 *
 * More joins can be nested as you see fit.
 */
$person = new DataObjects_Person;

$data = array();
if ($person->find()) {
    while ($person->fetch()) {
        $person->getLinks();
        // Following is another call to getLinks for the second join
        $person->_convention_id->getLinks();
        $data[] = $person->_convention_id->_room_id->ToArray();
    }
}

print_r($data);

例 33-7databasename.links.ini

; this ini file is for the three tables join example above.
[person]
person_id = convention:person_id

[room]
room_id = convention:room_id
前のページ | ホーム | 次のページ
->getLink() | 上に戻る | ->selectAs()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->groupBy()

->groupBy() -- group by 条件を追加する

概要

void $DB_DataObject->groupBy ([string $group])

説明

group by 条件を追加します。 パラメータなしでコールすると、現在の Group 条件をクリアします。

パラメータ

  • string $group - グルーピング条件を指定します

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1Group by のセット

$person = new DataObjects_Person;
$person->groupBy('name');
$person->groupBy('age, eye');
$person->find();

例 33-2結果の SQL

SELECT * FROM person GROUP BY name, age, eye
前のページ | ホーム | 次のページ
->orderBy() | 上に戻る | 自動的な表のリンクと結合

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->insert()

->insert() -- 現在のオブジェクト変数をデータベースに挿入する

概要

mixed $DB_DataObject->insert ()

説明

現在のオブジェクトの偏す打ちに基づいたデータをデータベースに挿入し、 もし、シーケンスや主キーが使用される場合、挿入された要素のIDを返します。 値は完全にクオートされ、 いくつかの制限された型のチェックは行われています。

MySQLでは mysql_next_id() メソッドが使用され、 他のデータベースでは、PEAR DB の sequence メソッドが使用されます。

注意： insert() メソッドはいくつかの状況では ID を正しく返さないかも知れません。

  • データベースバックエンドがサポートしていない場合

  • 生成スクリプトが正しいカラムを自動インクリメント/nextvalとしてマークしなかった場合

  • 何らかのエラーが発生した場合 (デバッグモードで確認することができます)

  • 挿入に失敗、あるいは '0' 行に影響を与えた場合

返り値

mixed - Id あるいは キーを指定します。

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 意味 | 解決策
DB_DATAOBJECT_ERROR_INVALIDCONFIG | "挿入:$table の定義がありません" |  |
DB_DATAOBJECT_ERROR_NODATA | "挿入:クエリにデータが指定されていません" |  |
DB_* | * | PEAR::DB を参照してください | PEAR::DB を参照してください

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1簡単な挿入

$person = new DataObjects_Person;
$person->name='fred';
$id = $person->insert();

例 33-2結果の SQL

INSERT INTO person (name) VALUES ('fred');
前のページ | ホーム | 次のページ
->count() | 上に戻る | ->update()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->joinAdd()

->joinAdd() -- JOIN クエリを生成するために他の DataObject を追加する

概要

void $DB_DataObject->joinAdd ([object $dataobject [, string $joinType [, string $joinAs [, string $joinCol]]]])

説明

他の DataObject を追加して JOIN クエリを生成します。 このメソッドを使用するときは注意してください。 そのままのクエリの方が joinAddメソッドを使用するよりも 分かりやすいかも知れません。

このメソッドを実装してくれた Stijn de Reede に感謝します。

パラメータ

  • object $obj - 結合されるオブジェクトを 指定します。 (値がない場合、結合がクリアされます)

  • string $joinType - "LEFT" | "INNER " | "RIGHT" | ""

    INNER がデフォルトで、"" は結合やリンクが WHERE 句に追加されず、単純に select ... from a,b,c を実行します。

    注意: 'LEFT' は LEFT OUTER と等価です。

  • string $joinAs - テーブルを別名で扱いたい場合、 二次テーブルからカラムを複数選択したいときに役に立つでしょう

  • string $joinCol - このオブジェクトのテーブルでマッチさせたいカラムを指定します。 このテーブルを子オブジェクトの複数箇所にリンクする場合に必要です。

    例 33-1 特定の結合するカラムを使用する

    user->friend (is a id of a person)
user->mother (is a id of another person)

注意

この関数は、スタティックにコールする ことはできません。

以下の例はテストされていません。DB_DataObject::debugLevel(1) を使用し、 これを使用したときに何が行われているかを理解し、 著者により良い例を送ってください。

例

例 33-2本当にシンプルな結合

// (requires links.ini to be set up correctly)
// get all the images for product 24

$i = new DataObject_Image();
$pi = new DataObjects_Product_image();
$pi->product_id = 24; // set the product id to 24
$i->joinAdd($pi); // add the product_image connectoin
$i->find();
while ($i->fetch()) {
// do stuff
}

例 33-3結果の SQL

SELECT * FROM image,product_image
  LEFT JOIN image ON product_image
  WHERE product_image.id = 24
    AND product_image.pid = product.id

例 33-4より複雑な JOIN クエリ

// an example with 2 joins
// get all the images linked with products or productgroups
$i = new DataObject_Image();
$pi = new DataObject_Product_image();
$pgi = new DataObject_Productgroup_image();
$i->joinAdd($pi);
$i->joinAdd($pgi);
$i->find();
while ($i->fetch()) {
// do stuff
}

例 33-5結果の SQL

SELECT * FROM image,product_image
  LEFT JOIN image ON product_image
  LEFT JOIN image ON productgroup_image
  WHERE product
    AND product.id = product_image.pid
    AND product.id = productgroup_image.pid
前のページ | ホーム | 次のページ
->selectAs() | 上に戻る | ->set*() and ->get*()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->keys()

->keys() -- テーブルのキーを取得あるいはセットする

概要

array $DB_DataObject->keys ([string $keys ...]])

説明

引数なしでオブジェクトで使用されるキーを返します (生成スクリプトはこれらを生成し、主キー、ユニーク、 あるいは nextval() のような検出したものに基づいてこれらを推定します)。 1つあるいは複数の値を指定した場合、現在のインスタンスにセットします。

デフォルトのキーは通常 database.ini ファイルにストアされます。 これについては、自動生成のセクションに記載されています。

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1接続の取得

$person = new DataObjects_Person;
print_r($person->keys());
//
// array(
//     0 => 'id',
// )
//

// now use it to define a on the fly database table...

$d = new DB_DataObject;
$d->tableName('person');
$d->table(array(
  'id'   => DB_DATAOBJECT_INT,
  'name' => DB_DATAOBJECT_STRING,
));
$d->keys('id');

// if you have multiple keys
// $d->keys('id','key2','key2');

$d->id = 12;
$d->find(true);
// should do the same as above..!
前のページ | ホーム | 次のページ
->table() | 上に戻る | ->getDatabaseConnection()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->limit()

->limit() -- 制限をセットします

概要

void $DB_DataObject->limit ([int $from [, int $number]])

説明

クエリの制限をセットします (これは LIMIT 句をサポートしているデータベースでのみ動作します) 。 パラメータがない場合、現在の制限がクリアされます。

パラメータ

  • int $from - 制限の開始 (あるいは数値)、 あるいはリセットのためのブランクを指定します

  • int $number - 結果の数の制限を指定します

注意

この関数は、スタティックにコールする ことはできません。

postgres と mysqlのみ制限を直接サポートしていますので、 サポートされてないデータベースでこのメソッドをコールすると PEAR::Error が投げられ、終了します。

例

例 33-1制限のセット

$person = new DataObjects_Person;
$person->limit(2);
$person->find();
while ($person->fetch()) {
    echo "{$person->id} {$person->name}<BR>";
}

$person = new DataObjects_Person;
$person->limit(2,4);
$person->find();

while ($person->fetch()) {
    echo "{$person->id} {$person->name}<BR>";
}

例 33-2結果の SQL

SELECT * FROM person LIMIT 2

SELECT * FROM person LIMIT 2,4
前のページ | ホーム | 次のページ
->escape() | 上に戻る | ->orderBy()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->orderBy()

->orderBy() -- order by 条件を追加する

概要

void $DB_DataObject->orderBy ([string $order])

説明

order by 条件を追加します。 パラメータなしでコールすると、現在の order 条件をクリアします。

パラメータ

  • string $order - 順序を指定します

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1order by のセット

<?php
$person = new DataObjects_Person;
$person->orderBy('name');
$person->orderBy('age, eye');
$person->find();

// or with direction:
$person = new DataObjects_Person;
$person->orderBy('name ASC');
$person->orderBy('age DESC, eye');
$person->find();

?>

例 33-2結果の SQL

SELECT * FROM person ORDER BY name, age, eye
前のページ | ホーム | 次のページ
->limit() | 上に戻る | ->groupBy()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->query()

->query() -- 生のクエリを送出する

概要

void $DB_DataObject->query (string $string)

説明

データベースに生のクエリを送出します。 しばしば、 大量の whereAdd や orderBy メソッドコールは必要でないと考えるかも知れません。 これは、ただクエリを書くだけよりも単純で、 コードをクリーンにかつ簡潔にします。

パラメータ

  • string $string - SQL クエリを指定します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1データベースでの生のクエリ

$person = new DataObjects_Person;
$person->query("SELECT * FROM {$person->__table} WHERE id > 12 ORDER BY id");
while ($person->fetch()) {
  echo $person->name;
}
前のページ | ホーム | 次のページ
特殊なデータの検索 (SELECT) | 上に戻る | ->free()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_DataObject::raiseError

DB_DataObject::raiseError -- エラーをスローする

概要

object DB_DataObject::raiseError (int $message [, resource $type=NULL [, resource $behaviour=NULL]])

説明

デフォルトのエラーハンドリングは、PEAR::Error を生成することですが、それを返すことはしません。 もしエラーを処理したい場合、PEAR_Error コールバックの内容を確認すべきです。 おそらく内部メソッドで大暴れしているでしょう。

パラメータ

  • int $message - メッセージを指定します。

  • resource $type - 型を指定します。

  • resource $behaviour - 振る舞い (die あるいは continue) を指定します。

返り値

object [unknown] -

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
->debug() | 上に戻る | キャスト - 日付型、Blob そして Null

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->selectAdd()

->selectAdd() -- 取得するカラムを追加する

概要

void $DB_DataObject->selectAdd ([string $condition])

説明

取得するカラムを追加します。 デフォルトでは、クエリは全てのアイテムを取得します (たとえば、SELECT * FROM table) 。 この振る舞いを変更するために、まず 現在のリクエストをクリアするために selectAdd() を引数なしでコールし、希望する特定のアイテムを追加することができます。

また、オブジェクトのコンストラクタメソッド (クラスと同名のメソッド) に SelectAdd() メソッドコールを追加することで デフォルトの取得クエリをセットアップすることもできます。

パラメータ

  • resource $key - 表のカラム名を指定します

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1selectAdd() の使用

$person = new DataObjects_Person;
$person->selectAdd();
$person->selectAdd('id,name');

while ($person->fetch()) {
  echo "$person->id} {$person->name}<BR>";
}

$person = new DataObjects_Person;
$person->selectAdd("DATE_FORMAT(birthday,'%d %m %Y') as birthday_formated ");
$person->id = 12;
$person->find(TRUE);

echo "$person->name} {$person->birthday_formated}<BR>";

例 33-2結果の SQL

SELECT id,name FROM person

SELECT *, DATE_FORMAT(birthday,'%d %m %Y') as birthday_formated  FROM person WHERE id=12
前のページ | ホーム | 次のページ
->free() | 上に戻る | ->whereAdd()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->selectAs()

->selectAs() -- クエリの取得 コンポーネントを構築する (通常は結合のため)

概要

void $DB_DataObject->selectAs ([object | array $columns_or_object [, string $format [, string $table_name]]])

説明

現在のオブジェクトのカラム名、提供されたオブジェクトあるいは配列に基づいた 取得アイテムを自動生成します。

これは、カラム名の衝突を起こしている時 (両方の表に 'id' カラムが存在するなど) 、主に固定フォーマットでカラムの改名を可能にするための joinAdd を用いた結合で使用されます。

selectAs にパラメータを渡さない場合、現在の SELECT (通常デフォルトの *) をリセットし、現在のオブジェクトのカラム名に基づいた 取得リストを構築します。

パラメータ

  • object | array $column_or_object - データオブジェクトもしくはカラム名の配列を指定します

  • string $format - カラムが現れたときに使用するフォーマットで、sprintf フォーマットを指定します。 %s はカラム名に置換されますので、car_%s は SQL 中で 'car.name as car_name' が生成されることなります。

  • string $tableName - これは1番目の引数として配列が指定された、 あるいはテーブルを他の名前で結合している場合に使用されます。

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1selectAs() の使用

<?php
// ok lets see what is going on..
DB_DataObject::debugLevel(1);

$person = new DataObjects_Person;

// to generate "person.id as id , person.name as name ......."
$person->selectAs();

// to generate a restricted list.. "person.age as age , person.name as name"
$person->selectAs(array('age','name'));

// using another object.
$car = new DataObjects_Car;

// this is the first car (
$car->use = 'first';

// using the joinadd add the car..
$person->joinAdd($car);

// now add all the select columns for the car eg. "car.id as car_id, car.name as car_name ...."
$person->selectAs($car, 'car_%s');

// select only a few columns from the car table.
// note you have to use the table name at the end..
$person->selectAs(array('color','topspeed'), 'car_%s','car');

// now the user can have a second car....
$secondcar = new DataObjects_Car;
$secondcar->use = 'second';

// now since we alreay have one car, the sql statement would get messy
// so we are joining this as the second car "FROM person INNER JOIN car ..... , car as secondcar WHERE .....
$person->joinAdd($secondcar,'','secondcar');

// and we can now add all the columns
// "secondcar.id as secondcar_id, secondcar.name as secondcar_name ........
// note that you must use the last field as the SECONDCAR.ID format uses the 'AS' name, rather than the
// objects real table name 'car'
$person->selectAs($secondcar, 'secondcar_%s','secondcar');

// ok fire of a query...
$person->find();
while ($person->fetch()) {
  ......
}

?>
前のページ | ホーム | 次のページ
->getLinks() | 上に戻る | ->joinAdd()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->setFrom()

->setFrom() -- （form で POST された）配列またはオブジェクトから 要素をコピーする

概要

boolean $DB_DataObject->setFrom (array or object $from [, string $format = '%s'])

説明

テーブル定義に基づいて、配列またはオブジェクトから現在のオブジェクトに 要素をコピーします（キーの値は上書きされません）。 このメソッドは、（もしフィールド名がデータベースと一致する場合） フォームから POST される情報を処理したり、 オブジェクトを複製するのに使用できます。

setFrom メソッドを使用してキーカラムの値を設定することはできません。 セキュリティー上の理由により、暗黙的に無視されます （しかし、手動でキーの値を設定することはできます）。

setFrom メソッドは、set系メソッド set{columnname} が存在していれば、 それをコールしようとします。 また、日付フォーマットを修正するために fromValue() メソッドもコールします。

このメソッドがカラム名 from に対するオーバーロードされたメソッドと 重複していることに気づくかも知れません。 そのため、カラム名 'from' に関連するメソッドは、set_from と getFrom になります。

パラメータ

  • array or Object $from - コピー元のオブジェクトを指定します。

  • string $format - 配列またはオブジェクト変数のフォーマットを指定します。 これにより、どのようにこのオブジェクトに関連付けるかが決定されます。 例えば、指定した配列が prefix_COLNAME というフォーマットであれば、 'prefix_%s' を指定します。

返り値

array or boolean - 成功時は TRUE、あるいは PHP4.3.2 以降では set*() の戻り値の配列

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1setFrom() の使用

// person contains name,age
// $_POST contains 'name'=>'fred', 'age'=>'22'

$person = new DataObjects_Person;
$person->get(12);
$person->setFrom($_POST);
$person->update();

// or using the formating

// person contains name,age
// $_POST contains 'person_name'=>'fred', 'person_age'=>'22'

$person = new DataObjects_Person;
$person->get(12);
$ret = $person->setFrom($_POST,'person_%s');

// use the return value from setFrom to test for errors (PHP4.3.2)
if ($ret === true) {
  $person->update();
} else {
  // $ret is an array or strings..
  echo 'There were some errors: '  . implode(', ', $ret);
}

// or copying from another object
$personA = new DataObjects_Person;
$personA->get(12);

$personB = new DataObjects_Person;
$personB->get(14);

$personA->setFrom($personB);
$person->update();
前のページ | ホーム | 次のページ
->set*() and ->get*() | 上に戻る | ->toArray()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->set*() and ->get*()

->set*() and ->get*() -- オーバーロードを用いた自動的な set系・get系メソッド

概要

true | string $DB_DataObject->set* (mixed $value)

mixed $DB_DataObject->get* ()

説明

PHP 4.3.2RC2 以降、DB_DataObject は自動的にオーバーロードされ、 あなたがメソッドを定義していなくても $object->set{ColumnName}() や $object->set{ColumnName}($value) を使用して全ての変数にアクセスできます。

set メソッドはエラーの場合文字列を返し、さもなければ TRUE を返します。 これにより、setFrom メソッドと連携し、 エラー文字列の配列を返すことができます。

get メソッドは toArray() メソッドで使用されます。 もし定義されていれば、 人が読める日付の作成のようにカラムの表示を変更することができます。

ロジックは非常にシンプルです。もし $object->setXXX() がコールされ、 かつ定義されていない場合、単純に値を設定します。 もし setXXXX メソッドが定義されていれば、デフォルトハンドラの代わりに コールされます。同じ事が getXXX() メソッドについても適用されます。

カラム名が from である場合に名前衝突の可能性があるので、 カラム 'from' に関連するメソッドは setFrom() ではなく set_from になります。

パラメータ

  • mixed $value - set系メソッドのみ (カラムに割り当てる値を) 指定します。 get系メソッドでは日付フォーマットや sprintf の整形文字列を引数として指定します。

返り値

mixed - set系メソッドは、デフォルトメソッドや独自実装からは TRUE 。値が不正な場合、setXXX($value) メソッドは文字列 (エラー) を返し、成功の場合 TRUE。 getXXX メソッドは、値あるいは整形された値を返す。 このメソッドは $object->toArray() に影響することを忘れないように。

注意

この関数は、スタティックにコールする ことはできません。

注意: このメソッドは実験的なものです。この動作は将来変更されるかも知れません。

例

例 33-1オブジェクト変数に基づくシンプルな検索とデータのフェッチ

class DataObjects_Person extends DB_DataObject {

    var $id;
    var $name;
    var $date_of_birth;

    // you can define this method after you implement a call to it!
    // as it is automatically implemented to return $this->date_of_birth by
    // the overload __call() method.

    function getDate_of_Birth() {
        return date('d M Y', strtotime($this->date_of_birth));
    }
}

$person = new DataObjects_Person;

$person->get(12);

// now lets use the getters and setters even though some are not defined.
echo $person->getName() . ' was born on  ' . $person->getDate_of_Birth();

例 33-2結果の出力

Fred Blogs was born on 1 April 1970
前のページ | ホーム | 次のページ
->joinAdd() | 上に戻る | ->setFrom()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_DataObject::staticGet()

DB_DataObject::staticGet() -- 単純な取得 (Select) リクエストで、簡潔かつ自動ロードを行う

概要

mixed DB_DataObject::staticGet (string $class, mixed $key or $value [, mixed $value])

説明

警告

このメソッドは非推奨です。::factory() および ->get() を使用することを推奨します。

この静的メソッドは、factory と get() を組み合わせたものです。 staticGet() は取得したデータをグローバル変数に格納し、 同一リクエスト内での再利用時に高速にアクセスできるようにします (データを更新するクエリが実行されると、キャッシュはクリアされます)。

パラメータ

  • string $class - クラス名を指定します。

  • string $key - カラム (あるいは、2つのパラメータが与えられる場合は値) を指定します。

  • mixed $value - 値を指定します。

返り値

object mixed - FALSE あるいはオブジェクト

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 意味 | 解決策
DB_DATAOBJECT_ERROR_NOCLASS | "$class を自動ロードできません" |  |
DB_DATAOBJECT_ERROR_NOCLASS | "$newclass の生成エラーです" |  |
DB_DATAOBJECT_ERROR_NODATA | "get $key $value で何もデータが返されません" |  |

注意

このメソッドは静的にコールされなければなりません。

例

例 33-1主キーに基づいたデータの簡単なフェッチ

$person = DB_DataObject::staticGet('DataObjects_Person',12);
print_r($person);
前のページ | ホーム | 次のページ
->get() | 上に戻る | {Child Class}::staticGet()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


{Child Class}::staticGet()

{Child Class}::staticGet() -- 単純な取得 (Select) リクエストで、簡潔にされたもの (自動生成)

概要

object {Child Class}::staticGet (mixed $key or $value [, mixed $value])

説明

この静的メソッドは、get リクエストと似ていますが、 クラスのインスタンス化は必要ありません。 staticGet() はオプションで結果のキャッシュも行います (設定の項目を参照してください) 。

パラメータ

  • string $key - カラムあるいは1つのパラメータのみが与えられる場合は値を指定します。

  • mixed $value - 値を指定します。

返り値

object mixed - FALSE あるいはオブジェクト

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 意味 | 解決策
DB_DATAOBJECT_ERROR_NOCLASS | "$class を自動ロードできません" |  |
DB_DATAOBJECT_ERROR_NOCLASS | "$newclass の生成エラーです" |  |
DB_DATAOBJECT_ERROR_NODATA | "get $key $value で何もデータが返されません" |  |

注意

このメソッドは静的にコールされなければなりません。

例

例 33-1主キーに基づいたデータの簡単なフェッチ

$person = DataObjects_Person::staticGet(12);
print_r($person);
前のページ | ホーム | 次のページ
DB_DataObject::staticGet() | 上に戻る | ->find()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->table()

->table() -- テーブルスキーマを取得、あるいは設定する

概要

object $DB_DataObject->table ([array $schema])

説明

引数なしの場合、オブジェクトが扱うテーブルスキーマを返します。 配列を渡した場合、そのオブジェクトが扱うテーブルスキーマをセットします。

デフォルトのスキーマは通常 database.ini に格納されています。 これについては、自動生成のセクションに記載されています。

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1接続の取得

$person = new DataObjects_Person;
print_r($person->table());
//
// array(
//     'id'     =>  1  // == DB_DATAOBJECT_INT
//     'name'   =>  2  // == DB_DATAOBJECT_STR
//     'bday'   =>  6  // == DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE
//     'last'   =>  14 // == DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME
//     'active' =>  17 // == DB_DATAOBJECT_INT + DB_DATAOBJECT_BOOL
//     'desc'   =>  34 // == DB_DATAOBJECT_STR + DB_DATAOBJECT_TXT
//     'photo'  =>  64 // == DB_DATAOBJECT_STR + DB_DATAOBJECT_BLOB
// )
//

// now use it to define a on the fly database table...

$d = new DB_DataObject;
$d->tableName('person');
$d->table(array(
  'id'   => DB_DATAOBJECT_INT,
  'name' => DB_DATAOBJECT_STRING,
));
$d->keys(array('id'));

$d->id = 12;
$d->find(true);
// should do the same as above..!
前のページ | ホーム | 次のページ
->database() | 上に戻る | ->keys()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->tableName()

->tableName() -- オブジェクトのテーブル名を取得、あるいは設定する

概要

object $DB_DataObject->tableName ([string $name])

説明

引数なしの場合、オブジェクトが扱うテーブル名を返します。 文字列を渡した場合、そのオブジェクトが扱うテーブル名をセットします。

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1テーブル名の取得と設定

$person = new DataObjects_Person;
echo $person->tableName();
// echo's person

// now use the same object to query the extra_people table

$person->tableName('extra_people');
$person->id = 12;
$person->find(true);

// you can also use this in conjunction with table(), to create dataobjects for random tables..

$d = new DB_DataObject;
$d->tableName('person');
$d->table(array(
  'id'   => DB_DATAOBJECT_INT,
  'name' => DB_DATAOBJECT_STRING,
));
$d->keys(array('id'));

$d->id = 12;
$d->find(true);
// should do the same as above..!
前のページ | ホーム | 次のページ
->validate() | 上に戻る | ->database()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->toArray()

->toArray() -- 現在の結果を配列で取得する

概要

array $DB_DataObject->toArray ([string $format])

説明

HTML_QuickForms などの他のパッケージで 使用するために連想配列として取得することができます (オプションでキーをフォーマットできる)。

PHP4.2.3RC2 以降、各カラムの値は getXXX() メソッドで処理されますので、 get系メソッドを定義することで行のフォーマットを変更することができます。

パラメータ

  • string $format - sprintf 形式の文字列を指定します。例）'form[%s]'

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1配列の取得

$person = new DataObjects_Person;
$person->get(2);
print_r($person->toArray());
print_r($person->toArray('user[%s]'));

例 33-2出力例

Array
(
    [id] => 2
    [name] => test
    [username] => username
    [password] =>
    [firstname] => jones
    [lastname] =>
)

Array
(
    [user[id]] => 2
    [user[name]] => test
    [user[username]] => username
    [user[password]] =>
    [user[firstname]] => jones
    [user[lastname]] =>
)
前のページ | ホーム | 次のページ
->setFrom() | 上に戻る | ->validate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->update()

->update() -- オブジェクト変数でデータベースを更新する

概要

int $DB_DataObject->update ([dataobject|boolean $original|$useWhere])

説明

現在のオブジェクト変数でデータベースを更新します。 もしデータオブジェクトを引数として提供した場合、 新旧データの間での違いだけが更新されます。

引数に DB_DATAOBJECT_WHEREADD_ONLY のみを指定してコールした場合は、 主キーではなく whereAdd の値に基づいてクエリが構築されます。 これを使用すると、一行ずつの更新ではなく複数レコードの一括更新が可能となります。

パラメータ

  • DataObject $original - 現在のデータオブジェクトとオリジナルとの違いから、 更新クエリが構築されるかどうかを指定します。

返り値

int 作用した行数、あるいは失敗した場合 FALSE

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 意味 | 解決策
DB_DATAOBJECT_ERROR_INVALIDCONFIG | "更新:$table の定義がありません" |  |
DB_DATAOBJECT_ERROR_NODATA | "更新:クエリ $settings にデータが指定されていません" |  |

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1単純なフェッチと更新

$person = new DataObjects_Person;
$person->get(12);
$person->name='fred';
$person->update();

$person = new DataObjects_Person;
$person->get(12);
$original = clone($person); // clone is emulated in php4 for compatibility reasons.
$person->name='fred';
$person->update($original);

例 33-2結果の SQL

SELECT * FROM person WHERE id = 12
UPDATE person SET name='fred', age='21', eyes='blue' WHERE id = 12

SELECT * FROM person WHERE id = 12
UPDATE person SET name='fred'  WHERE id = 12

例 33-3単純なフェッチと更新

$person = new DataObjects_Person;
$person->removed=1;
$person->whereAdd('age > 21');
$person->update();

例 33-4結果の SQL

SELECT * FROM person WHERE id = 12;
UPDATE person SET removed=1 WHERE age > 21
前のページ | ホーム | 次のページ
->insert() | 上に戻る | ->delete()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->validate()

->validate() -- オブジェクトデータをチェックし、 オブジェクトの検証メソッドをコールする

概要

array $DB_DataObject->validate ()

説明

全てのオブジェクト変数が有効かどうかをチェックします。 デフォルトではカラムが整数値か文字列かをチェックします。 継承したクラスで validateEmail() のようなメソッドを定義する場合、'email' と呼ばれる行を検証するためにそのメソッドがコールされるでしょう。 更新や挿入などの前にコールしエラーメッセージを生成する場合に 役に立つでしょう。

独自の検証ルールを設定するためには このメソッドをオーバーライドしてください。

返り値

array - 検証結果あるいは TRUE

注意

この関数は、スタティックにコールする ことはできません。

以下の例は、PEARの検証パッケージを使用しています。

例

例 33-1 検証手順

$person = new DataObjects_Person;
$person->get(12);
$person->setFrom($_POST['input']);
$val = $person->validate();
if ($val === TRUE) {
  $person->update();
} else {
  foreach ($val as $k=>$v) {
    if ($v == false) {
      echo "There was something wrong with ($k)\n";
    } else {
      echo "($k) validated OK\n";
    }
  }
}

例 33-2バリデートメソッド

/* inside class DataObject_Person */
function validateEmail() {
  return Validate::email($this->email, true);
}

function validateHomepage() {
  return Validate::url($this->homepage, true);
}
function validateDate() {
  return Validate::date($this->date, "%d-%m-%Y", array(01,01,1970), array(01,01,2030));
前のページ | ホーム | 次のページ
->toArray() | 上に戻る | ->tableName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


->whereAdd()

->whereAdd() -- WHERE ステートメントを追加する

概要

void $DB_DataObject->whereAdd ([string $where [, string $logic]])

説明

SQL クエリの WHERE 部分を追加します。 引数なしにこのメソッドをコールすると、WHERE 条件をクリアします。 デフォルトの振る舞いは、すでにある条件に 'AND' を追加し、 $logic パラメータで OR 条件を追加します。

パラメータ

  • string $cond - 追加する条件、または条件をリセットするためのブランクを指定します。

  • string $logic - オプションのロジック "OR" を指定します (デフォルトは "AND") 。

注意

この関数は、スタティックにコールする ことはできません。

参照

例

例 33-1whereAdd() の使用

$person = new DataObjects_Person;
$person->whereAdd('age > 12');
$person->whereAdd('age < 30');
$person->find();

while ($person->fetch()) {
    echo "$person->id} {$person->name}<BR>";
}
$person = new DataObjects_Person;
$person->whereAdd('age < 12');
$person->whereAdd('age > 30', 'OR');
$person->find();

while ($person->fetch()) {
    echo "$person->id} {$person->name}<BR>";
}

例 33-2結果の SQL

SELECT * FROM person WHERE age > 12 AND age < 30

SELECT * FROM person WHERE age < 12 OR age > 30
前のページ | ホーム | 次のページ
->selectAdd() | 上に戻る | ->escape()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


自動生成とデータベーススキーマ

自動生成とデータベーススキーマ -- 基底クラスの生成とデータベーススキーマ

自動生成 (createTables.php) が行うこと

SQL 構築ツールの本質的特長の一つは、 整数をチェックし文字列をエスケープする事ができるよう、 データベース構造のある程度の情報を持っていることです。 データベースのテーブル構造に問い合わせるためには、 いくつかの方法があります。

  • 毎回 SQL クエリで問い合わせる

  • それぞれの Web ページの初期化の時に問い合わせる

  • アプリケーションがセットアップしている間に1度問い合わせ、 ファイルにストアする

DB_DataObject は通常これらのうちの 最後の方法を採ります (代わりに章の下の方を見てください)。 ファイルを読み込むために parse_ini_file 関数を利用していますので、適度に高速に動作します。 しかしながら、使用する前に DB_DataObject のセットアップが必要です。

DB_DataObjectのもう一つの主要なコンセプトは、 DB_DataObjectを継承したクラスをあなたが使用する ということです。 このクラスは、全ての表に関連する処理を行います。 大規模なデータベース向けにこれらのクラスをセットアップすることは、 時間の浪費になる可能性があります。そのため、 createTables.php ファイルが全てのクラスファイルの雛形を自動的に作成します。

自動生成を始めるために、pear/DB/DataObject/ ディレクトリに移動し、 c:\php4\php.exe createTables.php myconfig.ini と打ち込んでください。これで設定ファイルを読み込み、 データ定義ファイルに沿って全ての基底クラスを生成します。

バージョン1.5からオプション "proxy = full" が利用可能になりました。これにより、ini ファイルや事前に生成されたクラスを利用しなくとも DataObjects がオンザフライでクラスやスキーマを生成するようになります。

デフォルトのクラス定義

デフォルトで生成されるクラスは、このような感じです。

例 33-1生成された継承クラス

/*
* Table Definition for group
*/

class DataObjects_Grp extends DB_DataObject {

    ###START_AUTOCODE
    /* the code below is auto generated do not remove the above tag */

    var $__table='group';                             // table name
    var $id;                              // int primary_key
    var $name;                            // string
    var $grp_owner;                       // int
    var $official;                        // string
    var $street;                          // string
    var $postcode;                        // string
    var $city;                            // string
    var $homepage;                        // string
    var $email;                           // string
    var $extra;                           // blob

    /* Static get */
    function staticGet($k,$v=NULL) { return DB_DataObject::staticGet('DataObjects_Grp',$k,$v); }

    /* the code above is auto generated do not remove the tag below */
    ###END_AUTOCODE
}

クラスはテーブル名を定義し、 参照のためにいくつかのテーブルカラムに コメントを付けています。また、 単一行をオブジェクトとして素早く取得するために利用できる staticGet() メソッドも追加しています。 また、###END_AUTOCODE の後にテーブルに関連するコードを追加すべきです。

バージョン 1.6 以前では、__clone メソッドが生成されていましたが、 PHP5 では $x = clone($y); を使用するよう変更されましたので、 このメソッドは削除されました。 現在 DataObjects はダミー関数 clone を互換性のために (もし必要であれば) 生成します。

データベーススキーマファイル

デフォルトで生成されるデータベース定義ファイルは以下のような感じで、 "schema_location" 設定オプションで定義されたディレクトリに配置され、 データベースと同じ名前が付けられます。

もし、データベースを改名する場合、 ファイルを再生成するか同じ名前に合わせる必要があります。

もし、データベーススキーマを変更する (たとえば、カラムを追加したり型を変更する) 場合、 createTables.php を使用してスキーマファイルを再生成する必要があります。 今のところ、これは自動的には行われません (が、そのうち追加されるかも知れません)。

このファイルは手で編集すべきではありません (再生成されるときに全ての変更が失われるので) 。 設定オプション "sequence_{table} = key" を使用したり、 継承したクラスで sequenceKey() メソッドを定義することによって、 表のキーを上書きすることができます。

例 33-2データベース設定ファイル

[group]
id = 129
name = 130
grp_owner = 129
official = 130
street = 130
postcode = 130
city = 130
homepage = 130
email = 130
extra = 130

[group__keys]
id = N

このブロックは、表と2進加算 (1=integer,2=string,128=not null, 129=integer かつ not null) によるフィールドの型、 または各表のキーの一覧を示しています。 このファイルを編集する必要はありません。

スキーマファイル使用の代替案

スキーマファイルを使わないで DataObjects を使用することは可能で、 2つの手順で実現することができます。

  • 継承したクラスで table() と keys() メソッドを定義する

  • DataObjects のインスタンスがあるときに table() と keys() に、 とある配列を渡す

この2つ目は、keys() と tables() のページで解説されています。

以下は、手で書いた schema.ini ファイルを使用しないクラスです。

これは、オブジェクト変数よりはメソッドの戻り値となるよう 設計されていますので、 print_r() の出力は余分な情報が含まれていないでしょう (また、大きな結果セットをダンプしたときよりは小さいでしょう) 。

例 33-3手で書いた継承されたクラス

/*
* Table Definition for group
*/

class DataObjects_Grp extends DB_DataObject {

    // you can define these yourself

    var $__table='group';                             // table name
    var $id;                              // int primary_key
    var $name;                            // string
    var $bday;                            // string
    var $last;                            // datetime
    var $active;                          // tinyint(1)
    var $desc;                            // text
    var $photo;                           // blob

    // these are usefull to be consistant with a autogenerated file.

    /* Static get */
    function staticGet($k,$v=NULL) { return DB_DataObject::staticGet('DataObjects_Grp',$k,$v); }

    // now define your table structure.
    // key is column name, value is type
    function table() {
        return array(
            'id'     => DB_DATAOBJECT_INT,
            'name'   => DB_DATAOBJECT_STR,
            'bday'   => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE,
            'last'   => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME,
            'active' => DB_DATAOBJECT_INT + DB_DATAOBJECT_BOOL,
            'desc'   => DB_DATAOBJECT_STR + DB_DATAOBJECT_TXT,
            'photo'  => DB_DATAOBJECT_STR + DB_DATAOBJECT_BLOB,
        );
    }

    // now define the keys.
    function keys() {
        return array('id');
    }

}

前のページ | ホーム | 次のページ
設定オプション | 上に戻る | DB_DataObject::factory()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


キャスト - 日付型、Blob そして Null

キャスト - 日付型、Blob そして Null -- DB_DataObject_Cast ::date(), ::blob(), ::sql()

キャストによる処理 (文字列と数字を除く全て)

警告

これは実験的なものです！ しかしながら、文章化されています。 現在、限られた数のデータベースのみサポートしています (もし、これをお気に入りのデータベースでサポートしたいのであれば、 修正内容を私に送ってください) 。 また、内部操作 / API は将来変更されるかも知れません。

DataObjects は、数字と文字列に焦点を当てた データベースで動作させることは非常に簡単です。 また、日付型フィールドに対しても使用することができます (けれども、希望する文字列に正しくフォーマットしなければなりません)。 また、生の SQL query() を使用することで、 他の型に対しても使用することができます。 また、文字列値 "null" は自動的にデータベース内で NULL に変換されます。

より明確な方法でよりリッチなデータベース型に対するコードを提供するための 努力により、DB_DataObject_Cast オブジェクトは作られました。 その狙いは、より一般的でない型を意味するオブジェクトを 簡単に生成することです。 以下が使用例です。

キャストオブジェクトは、 クエリの組み立てと値の割り当ての両方で使用することができます。

例 33-1クエリの組み立てと値の割り当てにおけるキャストオブジェクト

<?php

// using Cast Objects for building a query.

$person = DB_DataObject::factory('person');

// assign the value of birthday to a Cast object with a date.
$person->birthday =  DB_DataObject_Cast::date(2000,12,30);

$person->find();
while ($person->fetch()) {
    echo "{$person->name} has a birthday on 30 december 2002<BR>";
}

// use Cast Objects for assigning values.

$person = DB_DataObject::factory('person');
$person->get(12);

// set the persons's birthday to 30 december 2000
$person->birthday = DB_DataObject_Cast::date(2000,12,30);

// now update the database.
$person->update();

?>

ご覧の通り、このコンポーネントは未成熟なので、 なにかリクエストやアイデアがあれば、遠慮なく alan_k at php dot net に連絡してください。

blobと文字列型

blobは、データベースに大きなバイナリデータをストアすることができる フィールドです。

現在、blob は bytea 型を使用することで postgres のみサポートされています (他のデータベースのコードを私にメールしてください)。

例 33-2写真と巨大なテキストファイルの挿入

<?php

$person = DB_DataObject::factory('person');
$person->name = 'fred'

// use blob for binary data.
$person->photo =  DB_DataObject_Cast::blob(file_get_contents('xxx.jpg'));

// use string for textural data into a blob type.
$person->xmldocs =  DB_DataObject_Cast::string(file_get_contents('xxx.xml'));

// now insert into the database.
$person->insert();

?>

日付型

ほとんどの日付が ISO 標準形式でデータベースにストアされます。 このメソッドは、年月日、人間が読むことができる 日/月/年、 あるいは ISO 形式の 年-月-日 のいずれかから日付型を生成することができます。 これは、簡単な規則に基づいて不足している値を埋めます。

例 33-3色々な形式の日付の挿入

<?php

$person = DB_DataObject::factory('person');
$person->name = 'fred'

// use a human readable date

// full format
$person->birthday = new DB_DataObject_Cast::date('21/12/2003');

// use only a month/year - actually sets to 1 december 2003
$person->expires =  DB_DataObject_Cast::date('12/2003');

// use only a year only - actually sets to 1 jan 2003
$person->expires = DB_DataObject_Cast::date(2003);

// use a iso formated

// full formated
$person->birthday =  DB_DataObject_Cast::date('2003-12-21');

// use only a year-month - actually sets to 1 december 2003
$person->expires =  DB_DataObject_Cast::date('2003-12');

// using array syntax

// full formated
$person->birthday =  DB_DataObject_Cast::date(2003,12,21);

// use only a year-month  - actually sets to 1 december 2003
$person->expires =  DB_DataObject_Cast::date(2003,12);

// the real values are stored in object variables

echo $person->birthday->year; // prints 2003
echo $person->birthday->month; // prints 12
echo $person->birthday->day; // prints 21

// you can do simple date addition (similar to mktime)

$d = DB_DataObject_Cast::date('01/12/2003');

$nextMonth = DB_DataObject_Cast::date($d->year,$d->month+1,1);

?>

SQL 型

いくつかの型は SQL 固有、 あるいはデータベース固有でさえあるかも知れません。 このため、SQL 文の一部として生の文字列を配置するために SQL 型を使用することができます。

例 33-4生の SQL を使用する

<?php
$person = DB_DataObject::factory('person');
$person->get(12);

// set the birthday to null.
$person->birthday =  DB_DataObject_Cast::sql('NULL');

// do a sql cast statement (postgres specific)
$data = DB_DataObject_Cast::sql('cast("123123",datetime)');

// now insert into the database.
$person->insert();

?>

前のページ | ホーム | 次のページ
DB_DataObject::raiseError | 上に戻る | DB_DataObject_FormBuilder

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


設定オプション

設定オプション -- データベースアクセスのためのデフォルト値の設定

設定

DB_DataObject や自動生成されるクラスや定義を使用する前に設定する必要があります。 DB_DataObject の最も簡単な設定法は、 ini ファイルを使用することです (しかしながら、PEAR::Config クラスや独自の設定システムを検討する方を好むかも知れません) 。

例 33-1これは、DB_DataObject の典型的な設定ファイルです

[DB_DataObject]

database    = mysql://user:password@localhost/vending
schema_location = /home/me/Projects/myapplication/DataObjects
class_location  = /home/me/Projects/myapplication/DataObjects
require_prefix  = DataObjects/
class_prefix    = DataObjects_

DB_DataObject (あるいは、このようなオプションを使用する他のクラス) でこの設定ファイルを使用します。

例 33-2デフォルトオプションの設定

$config = parse_ini_file('example.ini',TRUE);
foreach($config as $class=>$values) {
    $options = &PEAR::getStaticProperty($class,'options');
    $options = $values;
}

// or you can do without an ini file, and configure it in PHP..

$options = &PEAR::getStaticProperty('DB_DataObject','options');
$options = array(
    'database'         => 'mysql://user:password@localhost/vending',
    'schema_location'  => '/home/me/Projects/myapplication/DataObjects',
    'class_location'   => '/home/me/Projects/myapplication/DataObjects',
    'require_prefix'   => 'DataObjects/',
    'class_prefix'     => 'DataObjects_',
);

設定オプション - 必須項目

database DSN

データベースに接続するためのデフォルトの DSN を指定します。

schema_location directory

DB_DataObject のデータベーススキーマファイルがストアされるディレクトリを 指定します。

DB_DataObject は、データベースの詳細 (表やカラム) をこのディレクトリにある ini ファイルにストアします。 この情報は、SQL の組み立ての際、 カラムが文字列型でクオートが必要かどうか、 あるいは数値型 (かつ、チェックされる) かどうかを決定するのに使用されます。一般的には継承した DataObject クラスと同じディレクトリにスキーマをストアします。

require_prefix directory

デフォルトの取り込みパス (include path) への絶対パス、 あるいは相対パスを指定します。 ここには、拡張したクラスが格納されています。

これは、クラスの自動読み込みのために staticGet() メソッドと getLinks() メソッドによって使用されます。

class_prefix string

生成された全てのクラスは、 {class_prefix}ucfirst($table_name) と命名されます。 接頭辞を変更するためにこれを使用してください。 これは、staticGet() と getLinks() によって使用されます。

設定オプション - 任意項目

sequence_{table} string

キー定義ファイルを無効とし、表のキーを特定のキーにハードコードするために使用します。 通常、 構成上正しく問い合わせることができないデータベースで使用します。

例 33-3person 表でキーにログイン情報を使用する

sequence_person = login

ignore_sequence_keys string

自動的にシーケンスで埋めるために PEAR の nextval() を使用したくない場合、"ALL" あるいはテーブルのリスト "person,cart,group" とすることで無効にすることができます。

debug integer

デフォルトのデバッグレベルを指定します (デフォルト 0=off、1= 基本的な SQL ロギング、 2=結果ロギング、3=全て) 。

debug_ignore_updates boolean

デフォルトは FALSE 。 セットされた場合、データベースの更新は無効になります。

dont_die boolean

デフォルトは FALSE 。 dataobjects の通常の振る舞いは、 致命的エラーが発生したり、データベースとの接続に失敗する、 あるいはメソッドに無効なオブジェクト型を渡した場合、 PEAR_ERROR_DIE (たとえば、PHP を終了する) となります。 しかし、サーバを生かしておく必要がある場合、 TRUE をセットしてエラーをキャッチし、PEAR エラーハンドラを定義 することで、 'すみません、ただいまメンテナンスのため停止しています' といった親切なメッセージ画面を表示させることができます。

quote_identifiers boolean

SQL 文中の識別子のクオーテーションを強制する場合、 1 をセットします。

例 33-4quote_identifiers がある場合とない場合の生成されたステートメント

quote_identifiers = 1;
SELECT 'somecol' FROM 'sometable' WHERE 'somevalue'=1;

quote_identifiers = 0;
SELECT somecol FROM sometable WHERE somevalue=1;

proxy string

クラスや ini クラスの生成を手動でコード生成しなくても オンザフライで行うことが可能になります (現時点でサポートされている値は "full" だけで、 スキーマデータとファクトリを使用する際のデフォルトのクラスを 生成します) 。

設定オプション - 複数のデータベース (任意項目)

database_* string

複数のデータベースがある場合、それぞれのデータベースの DSN を特定するために database_* を使用することができます。

例 33-5複数のデータベースを使用する - データベースのパスワード

database_authentication  = mysql://user:password@localhost/authentication
database_sales           = mysql://user:password@localhost/sales

table_* string

複数のデータベースがある場合、 個々の表を異なるデータベースにマップするために table_* を使用することができます。 たとえは、次のような感じです。

例 33-6複数のデータベースを使用する - 表のセッティング

table_users     = authentication
table_saleslog  = sales
table_stock     = sales

設定オプション - ビルダ

class_location directory

クラスを拡張した DataObject を配置するディレクトリを指定します。

クラスの定義の更新/生成の際、 自動クラスビルダによって使用されます。

extends string

基底クラスの名前 (通常、DB_DataObject) を指定します。

全てのクラスに有用なメソッドの共通レイヤーを追加したい場合、 extends_location と extends に別のクラスを指定することができます。 デフォルトは 'DB_DataObject' です。

extends_location directory

The Directory where your Base Class (usually 基底クラス (通常は、DB_DataObject) を配置するディレクトリを指定します。

全てのクラスに有用なメソッドの共通レイヤーを追加したい場合、 extends_location と extends に別のクラスを指定することができます。 デフォルトは 'DB/DataObject.php' です。

generator_class_rewrite boolean

データベースからクラスを再生成するとき、 通常、変数や staticGet などのみが更新されますが、 これをセットすることで拡張フィールドも更新されるようになります。

build_views boolean

Postgres (といくつかの他のもの) で通常のテーブルのように ビューを処理できるようにするかを指定します (たとえば、挿入/更新/削除などがビューでも動作します) 。 データベースの全てのビューに対してファイルを生成するために、 このオプションを使用することができます。

注意： 生成されたクラスで手動でキーを指定する必要があります。 (たとえば、メソッド keys() と sequenceKey() を定義する場合です。 何をキーにすればよいかをビルダは推測することはできません) 。

generator_include_regex string

もし特定のテーブルに対してクラスと ini エントリだけをを生成したい 場合に正規表現を指定します。これにより、 名前が正規表現にマッチするテーブルのみ生成されます。 例えば、 /mytables_.*/ です。

generator_exclude_regex string

もし特定のテーブルに対してクラスと ini エントリだけを を生成したくない場合に正規表現を指定します。これにより、 名前が正規表現にマッチするテーブルのみ生成されません。 例えば、 /private_tables_.*/ です。

generator_strip_schema boolean

PostgreSQL のスキーマの概念は少し変わっていて、 テーブル名の先頭にスキーマ名が付加されるようになっています。 クラスやスキーマの生成の際に、この仕様は邪魔になります。 これを 1 に設定すると、テーブル名からスキーマを取り除きます。

generator_novars boolean

もし True ならば、カラムのためのプライベート あるいは変数定義を出力しませんので、get/set メソッドを オーバーロードすることができるようになります。

generator_add_validate_stubs boolean

もし True ならば、検証メソッドのためのスタブを追加します。

前のページ | ホーム | 次のページ
導入 | 上に戻る | 自動生成とデータベーススキーマ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


特殊なデータの検索 (SELECT)

特殊なデータの検索 (SELECT) -- 高度なフィルタ - ::query(), ::SelectAdd(), ::whereAdd(), ::Limit(), ::OrderBy(), ::GroupBy(),

より高度なクエリ

基本的な特長はほとんどの簡単なクエリを非常に素早く実行することですが、 より複雑なクエリを構築することは 以下のメソッドを使用することで可能です。 これらはクエリの構築で追加、あるいは条件をセットするものです。 これらは、ビルダのメソッドを使用する事と生の SQL を使用することの間で良いバランスを取っていることが分かるでしょう。

DB_DataObject は現在 結合 (JOIN) クエリを処理することができます。 しかしながら、この特長をすぐに使用する前に、 コードの信頼性のためにこのすばらしい特長を使用するためにも リンクと結合の導入を是非読んでください。

前のページ | ホーム | 次のページ
->delete() | 上に戻る | ->query()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- DB_DataObject で何ができるか

導入

警告

Zend Optimizerを使用している場合、オプティマイザのバグのため、 最適化レベルを下げ、定数 DB_DATAOBJECT_NO_OVERLOAD = 0 を定義する必要があります。 さもないと、PHP がセグメンテーション違反を起こします。

PHP4でのFIXできないバグのため、 参照渡しの引数を伴うオーバーロードは使用できません (PHP5 ではうまく動作します)。 もし、参照渡しの必要がある場合、定数 DB_DATAOBJECT_NO_OVERLOAD = 0 を定義してください。

DB_DataObject は SQL ビルダおよび PEAR::DB の上位データモデリングレイヤです。 主な目的は、以下の通りです。

  • オブジェクト変数に基づく SQL の生成とステートメントの実行

  • データとそれに関連する周辺のソースコードのグループ化

  • データにアクセスし操作するためのシンプルで首尾一貫した API の提供

これはどういったことでしょうか？ より良く書かれた PHP アプリケーションやフレームワークを見ると、 データベースの表などにアクセスする部分をラップするクラスを使用する、 といった共通のアプローチを採っていることに気づくでしょう。 最初の例は次のような person オブジェクトとしてよく見かけられます。

例 33-1典型的なデータオブジェクトあるいはコンテナ

class MyPerson {

      // gets an array of data about the seleted person
      function getPerson($id) {
          global $db;
          $result = $db->query("SELECT * FROM person WHERE id=$id");
          return $result->fetchRow();
      }

      // example of checking a password.
      function checkPassword($username,$password) {
          global $db;
          $result = $db->query("SELECT username FROM person WHERE username='$username' AND password = '$password'");
          return $result->fetchRow();
      }

  }

  // get the persons details..
  $array = MyPerson::getPerson(12);

このアプローチの主な利点は、単一の表に対する似たようなアクションを グループ化する事ができるということと、重複するコード (例えば、2 つのメソッドが同様のことを行っている) を見つけやすいということでしょう。 また、グローバル変数 $db をここで使用していることに気づくでしょう。 実際にあなたはほとんどの場合で、 全てのクラスで共通のデータベース接続を使用しているでしょう。 では、これをどの様にするべきでしょうか？

次のステップは、値の格納場所としてオブジェクト変数を使用することです。

例 33-2典型的なデータオブジェクトあるいはコンテナ

class MyPerson {

      var $id;
      var $name;
      var $birthDate;

      // gets an array of data about the seleted person
      function get($id) {
          global $db;
          $result = $db->query("SELECT * FROM person WHERE id=$id");
          $array = $result->fetchRow();
          foreach($array as $key=>$value) {
              $this->$key = $value;
          }
      }

      function getAge() {
          return date('Y') - date('Y',$this->birthDate);
      }

  }
  // now get the person and display the age.
  $person = new MyPerson;
  $person->get(12);
  echo "{$person->name} is ". $person->getAge() . " years old";

ご覧の通り、データの現在の行がデータコンテナにストアされ、 オブジェクトのデータを操作するためにメソッドを追加する、 あるいは、他の関連するオブジェクト (例えば、データベース間の表の関連) をコールする事ができます。

次のステップですが、なぜデータベースで検索や取得を実行するためにメンバ変数を利用しないのでしょうか。

例 33-3典型的なデータオブジェクトあるいはコンテナ

class MyPerson {

      var $id;
      var $name;
      var $birthDate;

      // does the query based on the value of $this->name
      function find() {
          global $db;
          $this->result = $db->query("SELECT * FROM person WHERE name={$this->name}");
      }

      // fetches a row of data and sets the object variables to match it.

      function fetch() {
          $array = $this->result->fetchRow();
          if (empty($array)) {
              return false;
          }
          foreach($array as $key=>$value) {
              $this->$key = $value;
          }
      }

  }
  // now get the person and display the age.
  $person = new MyPerson;
  $person->name = "John";
  $person->find();
  while ($person->fetch()) {
    echo "a {$person->name} has a birthday on {$person->birthDate}<BR>";
  }

ご覧の通り、find メソッドがコールされる前に値がオブジェクトに アサインされることで、クエリに対する条件を設定することができます。 DB_DataObject はこれと同じように動作しますが、 whereAdd() メソッドでさらなる条件を追加する、あるいは、selectAdd() メソッドで選択を制限することもできます。

当然、この方法を進めていき、 データベースの各表に対する小さなコンテナを大量に作成することもでき、 全てのコードはうまく各表と対応するでしょう。しかしながら、 上の例から分かるように、 全てのクラスはメソッドの共通セットのようになります。

  • get, find, fetch などデータをフェッチするメソッド

  • データストアから更新、登録、削除するメソッド

  • 関連するオブジェクトのフェッチの自動化するメソッド

このため、これを改善するために DB_DataObject が誕生し、上にある問題に対する統一解として第一歩を踏み出しました。 しかし、多くの問題の複雑さが増すにつれ、 より詳細が調査されていきました。 その結果、DataObjects を持つようになり、 以下の機能を持つほどに成長しました。

  • (データベース接続に対する) 共通のシンプルな設定メソッド

  • データベース情報のための高速でシンプルなストア。 これにより、データを素早く配置するために主キーを利用することが できます。

  • 何が行われているのかをはっきりさせるためのデバッガ

  • 基本的なデータの検証 - 文字列と整数型はチェックすることができます。

  • 複雑な JOIN の作成や副問い合わせ (リンク) による関連データの取得

  • 現在のデータベース表の定義に基づいたクラスの生成と更新 (自動生成の章を参照してください)

  • setFrom() メソッドや toArray() メソッドを使用することによる他のパッケージとの連携の容易さ

では、どの様なクラスになるでしょうか？

例 33-4実際の DataObject コードの最後あたり..

// this is the common configuration code - place in a general site wide include file.

    // this  the code used to load and store DataObjects Configuration.
    $options = &PEAR::getStaticProperty('DB_DataObject','options');

    // the simple examples use parse_ini_file, which is fast and efficient.
    // however you could as easily use wddx, xml or your own configuration array.
    $config = parse_ini_file('example.ini',TRUE);

    // because PEAR::getstaticProperty was called with and & (get by reference)
    // this will actually set the variable inside that method (a quasi static variable)
    $options = $config['DB_DataObject'];

     // this is normally contained in your DataObjects file (autogenerated by the generator)

    require_once 'DB/DataObject.php';

    // by extending the base class DB_DataObject - you inherit all the common methods defined in it.

    class DataObjects_Person extends  DB_DataObject {

        var $id; // this is a primary id (it's specified in a config file - explained later)
        var $name;
        var $friend;

        // this is a simple function to get the persons friends..?

        function getFriends()
        {

            $personObject = $this->factory('person');

            // look for all people with their friend number matching this persons id.
            $personObject->friend = $this->id;

            // do the select query.
            $personObject->find();
            $array = array();

            // fetch the results into the object.
            while ($personObject->fetch()) {
                // use the clone to copy - not really needed but get used to it for PHP5

                $array[] = clone($personObject);
            }
            // return the results.
            return $array;

        }
    }

    // and this goes on your display code

    // create a new person class..
    $person = DB_DataObject::Factory('person');

    // get the person using the primary key.
    $person->get(12);
    // get the friends.
    $friends = $person->getFriends();

    //  DB_DataObjects is designed to make print_r useable to debug your applications.
    print_r($friends);

上の例は DB_DataObject のコンポーネントを表しています。オプションを設定することで、 全てのコアオブジェクトは、生成された ini ファイルからデータ定義を自動的に読み込み、 データベースにどの様にアクセスすればよいか知ることができます (複数のデータベースもサポートしています - 設定の節を参照してください)。

上のクラス定義には、あなたは全ての共通のメソッドを無視し、 データ特有のコードを定義する必要があるだけである、 という事を示しています。また、 複数行のデータを処理するメソッドも併せて 1 つ示されています。

後半は、どの様にクエリを発行して単一行の結果を取得するか が示されています。 $person->get() はデータベースに接続し、クエリを実行し、結果をフェッチし、 クエリから返されたデータをオブジェクト変数に割り当てます。

例 33-5 上の例では次のクエリが実行される

SELECT * FROM person WHERE id=12;
SELECT * FROM person WHERE friend=12;

例 33-6 データベースの値を変更するには、オブジェクト変数の値を変更しコールするだけ

$person = DB_DataObject::factory('person');
        $person->get(12);
        $person->name = 'Fred';
        $person->update();

大まかには、メソッド名は関連する SQL ステートメントと同じです。

前のページ | ホーム | 次のページ
DB_DataObject | 上に戻る | 設定オプション

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


自動的な表のリンクと結合

自動的な表のリンクと結合 -- 自動的な表のリンク - ::getLink(), ::getLinks(), ::joinAdd(), ::selectAs()

自動的な関連データの収集

データベースの設計時、しばしばいくつかの表が他と関連付けられます - 会員テーブルは個人の ID とそれらがメンバーであるグループ ID への参照を含んでいます。 リンクメソッド群を使用することで、 親変数にオブジェクトを自動的にフェッチする事ができます。

自動化されたリンクは、databasename.links.ini ファイルによってサポートされます。 これには表同士の関連と、 ある表のカラムから他方へのマッピングがストアされます。 この databasename.links.ini ファイルは、 主キーオブジェクトの関連情報を処理する、 または素早く複雑な複数テーブルを使用したクエリを構築するために getLinks() と joinAdd() メソッドで使用されます。

リンクを使用する他の方法は、getLink() メソッドを経由することです。 これは、カラムを明示し、それが他の表とカラムにどの様に関連しているかを database.links.ini を使わずに手動で指定する事ができます。

getlinks と joinAdd のゴールは、 コードが合理的で分かりやすい事を保証する限り、 2つのテーブルの接続を可能な限りシンプルで高速に作成することです。 以下の例では、初期フェッチ後のオブジェクトでさらなるデータを フェッチするために getlinks() がどのように使用できるかを例示しています。 また、完全な大きな結合クエリを構築する前に links ファイルをテストするためにも使用することができます。

例 33-1 リンクと結合のシンプルな導入

// just loop and fetch more information

$person = new DataObjects_Person;
$person->eyeColour = 'red';
$person->find();
while ($person->fetch()) {
    // this will look up in the cars table for the id matching the person->car value.

    $car = $person->getLink('car','cars','id');

    echo "{$person->name} has red eyes and owns a {$car->type}\n";
}

// now if you create a database.links.ini file with the car example
// the example would look like this.

$person = new DataObjects_Person;
$person->eyeColour = 'red';
$person->find();
while ($person->fetch()) {

    // use the links.ini file to automatically load
    // the car object into $person->_car
    $person->getLinks();

    echo "{$person->name} has red eyes and owns a {$person->_car->type}\n";
}

// and finally the most complex, using SQL joins and select as.
// the example would look like this.

$person = new DataObjects_Person;
$person->eyeColour = 'red';

// first, use selectAs as to make the select clauses match the column names.
$person->selectAs();

// now lets create the related element
$car = new DataObjects_Car;

// and for fun.. lets look for red eys and red cars..
$car->colour = 'red';

// add them together.
$person->joinAdd($car);

// since both tables have the column id in them, we need to reformat the query so
// that the car columns have a different name.

$person->selectAs($car,'car_%s');

$person->find();
while ($person->fetch()) {

    echo "{$person->name} has red eyes and owns a {$person->car_type}\n";
}

テーブルリンクのためのリンク ini ファイルの使用

DB_DataObject バージョン 0.3 はリンク ini ファイルの生成機能を取り入れました。これにより、ini ファイルを使用してカラムと他のデータベースカラムをマップする事ができます。この ini ファイルは 'databasename.links.ini' という名前を持ち、createTables.php によって意自動生成されるデータベーススキーマ ini ファイル 'databasename.ini' と同じフォルダに配置されます。

databasename.links.ini は各表に対するセクションを含んでおり、 リンクされるカラムと、表と関連付けられるカラムを等号で結びます。 以下の例では、person.owner が grp.id にリンクされるように 非主キーから主キーへの関連となっています。 これは person オブジェクトで getLinks() メソッドを実行すると、 3 つのテーブル - colurs, grp, attachments からデータをフェッチする事になるでしょう。

もし、キー (カラムからのリンク) に 'full stop' を使用する場合、 getLinks() メソッドは 'full stop' の左側と文字列がマッチするカラム名を表内から検索します。 そして、'full stop' をアンダースコアに置換し、 オブジェクト変数をその名前に割り当てます。もしくは、(joinAdd() メソッドを使用している場合) 他のオブジェクトから返されるべきカラムをどの様にしたいかを selectAs() メソッドを使用して決定することができます。

例 33-2 databasename.links.ini ファイルの例

;                       for table person
[person]
;                       link value of eycolor to table colors, match name column
eyecolor = colors:name
;                       link value of owner to table grp, match id column
owner = grp:id
;                       link value of picture to table attachments, match id column
picture = attachments:id

;                       for a sales example with multiple links of a single column
[sales]
;                       for autoloading the car object into $sales->_car_id
car_id = car:id
;                       for autoloading the part number object into $sales->_car_id_partnum
car_id.partnum = part_numbers:car_id

前のページ | ホーム | 次のページ
->groupBy() | 上に戻る | ->getLink()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_Pager

DB_Pager は、PEAR::DB のクエリが返す結果をページ分けして表示するために必要な処理を担当します。 例えば、必要なデータだけを取得するようにしたり、 クエリの結果を HTML や GTK で表示する際に有用な情報を提供したりといったことを行います。

警告

注意: このパッケージは 非推奨 です。 代わりに Pager パッケージを使用してください。 特に、Pager に含まれる Pager_Wrapper の例に注目してください。また、 このパラグラフ や このチュートリアル も参照ください。

前のページ | ホーム | 次のページ
導入 | 上に戻る | DB_QueryTool

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_QueryTool

目次
導入 -- DB のデータを簡単に取得・変更するためのオブジェクト指向インターフェイス

このパッケージは、SQL クエリ言語をオブジェクト指向で抽象化したものです。 setWhere、setOrder、setGroup、setJoin などのメソッドを提供することで、 簡単にクエリを作成できるようにしています。

前のページ | ホーム | 次のページ
DB_Pager | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- DB のデータを簡単に取得・変更するためのオブジェクト指向インターフェイス

DB_QueryTool Description

このパッケージは、SQL クエリ言語をオブジェクト指向で抽象化したものです。 setWhere、setOrder、setGroup、setJoin などのメソッドを提供することで、 簡単にクエリを作成できるようにしています。 また、HTML フォームと連携するために、習得しやすいインターフェイスを提供しています。 これはカラムのデータを配列形式で格納したもので、更新や追加は DB で行います。 このパッケージは SQL-Builder をもとにしており、 SQL 文の作成や実行が簡単にできるようになります。

MDB_QueryTool のマニュアルにも、使用例やドキュメントなどの有用な情報があります。 そこに書かれている情報は、すべて DB_QueryTool にそのまま適用できます。もちろん、クラス名だけは別ですが。

前のページ | ホーム | 次のページ
DB_QueryTool | 上に戻る | DB_Table

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_Table

目次
導入 -- データベースのテーブルに対するオブジェクト指向インターフェイス

DB_Table は、データベースのテーブルに対するオブジェクト指向のインターフェイスです。

前のページ | ホーム | 次のページ
導入 | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- データベースのテーブルに対するオブジェクト指向インターフェイス

DB_Table について

DB_Table は、データベースのテーブルに対するオブジェクト指向のインターフェイスです。 PEAR DB クラスのラッパーとして動作し、 create、insert、update、delete および select の自動生成を補助するメソッドを提供します。 また、HTML_QuickForm を使用して入力フォームを自動生成するメソッドも提供します。

完全なオンラインドキュメントは、こちらです。

前のページ | ホーム | 次のページ
DB_Table | 上に戻る | MDB

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB

DB -- 本体クラス

説明

DB クラスは単なるコンテナクラスであり、DB オブジェクトを 作成するための静的メソッドを保持しています。

前のページ | ホーム | 次のページ
導入 - シーケンス | 上に戻る | DB::connect()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common

DB_common -- データベースへのアクセスのためのインターフェイス

説明

DB_common はインターフェイスを定義したクラスで、 指定したデータベースに問い合わせるためのすべてのメソッドを提供します。 各データベース固有のクラスのインスタンスは、 connect() メソッドから返されます。

前のページ | ホーム | 次のページ
DB::isError() | 上に戻る | DB_common::affectedRows()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::affectedRows()

DB_common::affectedRows() -- データ更新クエリによって変更された行の数を調べる

概要

integer affectedRows ()

説明

データを操作するクエリ (例えば INSERT、 UPDATE あるいは DELETE など) によって変更されて行の数を調べます。 SELECT クエリの場合は 0 を返します。

返り値

integer - 行数、あるいは失敗した場合は DB_Error オブジェクトを返します。

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応法
DB_ERROR_NOT_CAPABLE | DB backend not capable | データベースでこの機能がサポートされていません。 | もし本当にこの機能が必要なら、別のデータベースシステムに 変更してください。

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1affectedRows() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$res =& $db->query('DELETE * FROM clients');

if (PEAR::isError($res)) {
    die($res->getMessage());
}

echo 'clients から ' . $db->affectedRows() . ' 件のデータを削除しました';
?>

参照

numRows()、

numCols()、

query()、

execute()、

autoExecute()、

executeMultiple()

前のページ | ホーム | 次のページ
DB_common | 上に戻る | DB_common::autoCommit()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::autoCommit()

DB_common::autoCommit() -- 自動コミットの有効/無効を切り替える

概要

mixed autoCommit ([boolean $onoff = FALSE])

説明

自動コミットの有効/無効を切り替えます。

パラメータ

boolean $onoff

自動コミットを有効にする場合に TRUE、無効にする場合に FALSE を指定します。

返り値

integer - 成功した場合に DB_OK、 失敗した場合に DB_Error オブジェクトを返します。

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応法
すべてのエラーコード |  | データベース固有のエラー。 | PHP マニュアル のデータベース関連の部分を調べ、エラーの原因を判断してください。

注意

この関数は、スタティックにコールする ことはできません。

DBMS として MySQL を使用している場合は、対象テーブルが InnoDB 形式を使用している場合にのみトランザクションが使用できます。

例

例 33-1autocommit() の使用法

<?php
$db =& DB::connect('ibase(firebird)://user:pw@localhost/path/file');

$db->autoCommit(false);

$db->query('CREATE TABLE blah (a integer)');
$db->query('CREATE TABLE blue (b integer)');
$db->commit();

$db->query('INSERT INTO blah (a) VALUES (11)');
$db->query('INSERT INTO blah (a) VALUES (12)');

$res1 =& $db->query('SELECT a FROM blah');
if (DB::isError($res1)) {
    echo $res1->getMessage() . "\n";
}
$i = 1;
while ($res1->fetchInto($row, DB_FETCHMODE_ORDERED)) {
    echo "データ $row[0] を取得します\n";
    echo "数値 $i を挿入します...\n";
    $res2 =& $db->query("INSERT INTO blue (b) VALUES ($i)");
    if (DB::isError($res2)) {
        echo $res2->getMessage() . "\n";
    }
    $i++;
}
$res1->free();

$db->query('DROP TABLE blah');
$db->query('DROP TABLE blue');
$db->commit();
?>

参照

commit()、 rollback()

前のページ | ホーム | 次のページ
DB_common::affectedRows() | 上に戻る | DB_common::autoExecute()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::autoExecute()

DB_common::autoExecute() -- 指定した変数に基づいて、 INSERT 文あるいは UPDATE 文を準備・実行する

概要

integer autoExecute (string $table, array $fields_values [, integer $mode = DB_AUTOQUERY_INSERT [, string $where = FALSE]])

説明

INSERT あるいは UPDATE クエリを自動的に準備し、実行します。

このメソッドは、 autoPrepare() を使用して SQL 文を 組み立て、それを execute() を使用して実行します。

パラメータ

string $table

テーブルの名前。

array $fields_values

フィールド名をキーとし、フィールドの値を対応させた連想配列。

値は、現在の DBMS の 要求に応じて自動的にエスケープおよびクォートが行われます。

integer $mode

作成するクエリの型 (DB_AUTOQUERY_INSERT あるいは DB_AUTOQUERY_UPDATE)。

string $where

WHERE 句に使用する文字列。 $mode が DB_AUTOQUERY_UPDATE の場合にのみ使用されます。 この文字列は直接クエリに組み込まれます。そのため、DBMS の規約に 従ってリテラルのエスケープおよびクォートを行う必要があります。

返り値

integer - 成功した場合に DB_OK、 失敗した場合に DB_Error オブジェクトを返します。

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応法
DB_ERROR_NEED_MORE_DATA | insufficient data supplied | フィールド名および値を含む連想配列が空です。 | 連想配列の内容を調べ、修正します。
DB_ERROR_SYNTAX | syntax error | モードの指定が間違っています。 | INSERT クエリ用の DB_AUTOQUERY_INSERT、あるいは UPDATE クエリ用の DB_AUTOQUERY_UPDATE のみが指定可能です。
DB_ERROR_NODBSELECTED | no database selected | データベースが選択されていません。 | connect() の際の DSN を調べます。
その他のエラーコード |  | データベース固有のエラー。 | PHP マニュアル のデータベース関連の部分を調べ、エラーの原因を判断してください。

注意

この関数は、スタティックにコールする ことはできません。

警告

$data に渡す値は、リテラルである必要があります。 SQL 関数 (例えば CURDATE() など) を渡さないでください。 実行時に処理される SQL 関数は、プリペアドステートメント内に記述する 必要があります。

例

例 33-1insert モードでの autoExecute() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$table_name = 'user';

$fields_values = array(
    'id'      => 1,
    'name'    => 'Fabien',
    'country' => 'France'
);

$res = $db->autoExecute($table_name, $fields_values,
                        DB_AUTOQUERY_INSERT);

if (PEAR::isError($res)) {
    die($res->getMessage());
}
?>

例 33-2update モードでの autoExecute() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$table_name = 'user';

$fields_values = array(
    'country' => 'France',
);

$res = $db->autoExecute($table_name, $fields_values,
                        DB_AUTOQUERY_UPDATE, "country = 'Japan'");

if (PEAR::isError($res)) {
    die($res->getMessage());
}
?>

参照

"導入 - 準備と実行"、

"Intro - autoPrepare & autoExecute"、

prepare()、

execute()、

executeMultiple()、

autoPrepare()

前のページ | ホーム | 次のページ
DB_common::autoCommit() | 上に戻る | DB_common::autoPrepare()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::autoPrepare()

DB_common::autoPrepare() -- 指定した変数に基づいて、 INSERT 文あるいは UPDATE 文を準備する

概要

resource autoPrepare (string $table, array $table_fields, integer $mode = DB_AUTOQUERY_INSERT [, string $where = FALSE])

説明

SQL の INSERT 文あるいは UPDATE 文を自動的に組み立て、 execute() あるいは executeMultiple() で使用できるようにします。

パラメータ

string $table

テーブルの名前。

array $table_fields

フィールド名を含む配列。

これらのフィールドには ? プレースホルダが 割り当てられることに中いしましょう。そのため、 execute() で渡すデータは、現在の DBMS の 要求に応じて自動的にエスケープおよびクォートが行われます。

integer $mode

作成するクエリの型 (DB_AUTOQUERY_INSERT あるいは DB_AUTOQUERY_UPDATE)。

string $where

WHERE 句に使用する文字列。 $mode が DB_AUTOQUERY_UPDATE の場合にのみ使用されます。 この文字列は直接クエリに組み込まれます。そのため、DBMS の規約に 従ってリテラルのエスケープおよびクォートを行う必要があります。

返り値

resource - クエリのリソースハンドル、あるいは失敗した場合に DB_Error オブジェクトを返します。

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応法
DB_ERROR_NEED_MORE_DATA | insufficient data supplied | フィールド名を含む配列が空です。 | フィールド名の配列を調べ、修正します。
DB_ERROR_SYNTAX | syntax error | モードの指定が間違っています。 | INSERT クエリ用の DB_AUTOQUERY_INSERT、あるいは UPDATE クエリ用の DB_AUTOQUERY_UPDATE のみが指定可能です。
DB_ERROR_NODBSELECTED | no database selected | データベースが選択されていません。 | connect() の際の DSN を調べます。
その他のエラーコード |  | データベース固有のエラー。 | PHP マニュアル のデータベース関連の部分を調べ、エラーの原因を判断してください。

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1insert モードでの autoPrepare() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$table_name   = 'user';
$table_fields = array('name', 'country');
$table_values = array('Zoe', 'France');

$sth = $db->autoPrepare($table_name, $table_fields,
                        DB_AUTOQUERY_INSERT);

if (PEAR::isError($sth)) {
    die($sth->getMessage());
}

$res =& $db->execute($sth, $table_values);

if (PEAR::isError($res)) {
    die($res->getMessage());
}
?>

例 33-2update モードでの autoPrepare() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$table_name   = 'user';
$table_fields = array('name', 'country');
$table_values = array('Bob', 'USA');

$sth = $db->autoPrepare($table_name, $table_fields,
                        DB_AUTOQUERY_UPDATE, "country = 'Japan'");

if (PEAR::isError($sth)) {
    die($sth->getMessage());
}

$res =& $db->execute($sth, $table_values);

if (PEAR::isError($res)) {
    die($res->getMessage());
}
?>

参照

"導入 - 準備と実行"、

"導入 - autoPrepare & autoExecute"、

prepare()、

execute()、

executeMultiple()、

autoExecute()

前のページ | ホーム | 次のページ
DB_common::autoExecute() | 上に戻る | DB_common::commit()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::commit()

DB_common::commit() -- 現在のトランザクションをコミットする

概要

mixed commit ()

説明

現在のトランザクションをコミットします。

返り値

integer - 成功した場合に DB_OK、 失敗した場合に DB_Error オブジェクトを返します。

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応法
すべてのエラーコード |  | データベース固有のエラー。 | PHP マニュアル のデータベース関連の部分をチェックし、エラーの原因を見つけます。

注意

この関数は、スタティックにコールする ことはできません。

DBMS として MySQL を使用している場合は、対象テーブルが InnoDB 形式を使用している場合にのみトランザクションが使用できます。

例

例 33-1commit() の使用法

<?php
// $db という名前の DB オブジェクトが作成済みであると仮定します...

$db->autoCommit(false);

$db->query('CREATE TABLE blah (a integer)');
$db->commit();

$db->query('INSERT INTO blah (a) VALUES (11)');

$res =& $db->query('SELECT a FROM blah');
if (DB::isError($res)) {
    echo $res->getMessage() . "\n";
}
while ($res->fetchInto($row, DB_FETCHMODE_ORDERED)) {
    echo $row[0] . "\n";
}
$res->free();

$db->query('DROP TABLE blah');
$db->commit();
?>

参照

rollback()、 autoCommit()

前のページ | ホーム | 次のページ
DB_common::autoPrepare() | 上に戻る | DB_common::createSequence()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::createSequence()

DB_common::createSequence() -- 新しいシーケンスを作成する

概要

integer createSequence (string $seq_name)

説明

"導入 - シーケンス" を参照ください。

パラメータ

string $seq_name

作成するシーケンスの名前。

データベースの違いによる問題を避けるため、シーケンス名の 最初には英字のみを使用するようにし、またそれ以降も 英数字とアンダースコア文字のみを使用するようにしましょう。

返り値

integer - 成功した場合に DB_OK、 失敗した場合に DB_Error オブジェクトを返します。

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応法
すべてのエラーコード |  | データベース固有のエラー。 | シーケンス名をチェックします。もし正しければ、おそらく シーケンスの実装のバグでしょう。

注意

この関数は、スタティックにコールする ことはできません。

警告

PEAR DB のシーケンスメソッドを使用する場合には、シーケンスの作成も 含めたすべての処理にこれらのメソッドを用いることを強く推奨します。 DBMS で直接作成したシーケンスに対して PEAR DB のメソッドで アクセスすることは避けてください。完全な情報は、 "導入 - シーケンス" のページの警告を参照ください。

例

例 33-1createSequence() の使用

<?php
// $db という名前の DB オブジェクトが作成済みであると仮定します...
$tmp = $db->createSequence('mySequence');

if (PEAR::isError($tmp)) {
    die($tmp->getMessage());
}
?>

参照

"導入 - シーケンス"、 nextId()、 dropSequence()

前のページ | ホーム | 次のページ
DB_common::commit() | 上に戻る | DB_common::disconnect()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::disconnect()

DB_common::disconnect() -- データベースとの接続を切断する

概要

boolean disconnect ()

説明

データベースとの接続を切断します。

返り値

boolean - 成功時には TRUE 、 失敗時には FALSE を返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1disconnect() の使用法

<?php
require_once 'DB.php';

$db =& DB::connect('pgsql://someuser:apasswd@localhost/thedb');
if (PEAR::isError($db)) {
    die($db->getMessage());
}

$db->disconnect();
?>

参照

connect()、 "導入 - 接続"

前のページ | ホーム | 次のページ
DB_common::createSequence() | 上に戻る | DB_common::dropSequence()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::dropSequence()

DB_common::dropSequence() -- シーケンスを削除する

概要

integer dropSequence (string $seqName)

説明

"導入 - シーケンス" を参照ください。

パラメータ

string $seqName

削除するシーケンスの名前。

返り値

integer - DB_OK、あるいは 失敗した場合に DB_Error オブジェクトを返します。

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応法
すべてのエラーコード |  | データベース固有のエラー。 | シーケンス名をチェックします。もし正しければ、おそらく シーケンスの実装のバグでしょう。

注意

この関数は、スタティックにコールする ことはできません。

警告

PEAR DB のシーケンスメソッドを使用する場合には、シーケンスの作成も 含めたすべての処理にこれらのメソッドを用いることを強く推奨します。 DBMS で直接作成したシーケンスに対して PEAR DB のメソッドで アクセスすることは避けてください。完全な情報は、 "導入 - シーケンス" のページの警告を参照ください。

例

例 33-1dropSequence() の使用法

<?php
// $db という名前の DB オブジェクトが作成済みであると仮定します...
$tmp = $db->dropSequence('mySequence');

if (PEAR::isError($tmp)) {
    die($tmp->getMessage());
}
?>

参照

"導入 - シーケンス"、 createSequence()、 nextId()

前のページ | ホーム | 次のページ
DB_common::disconnect() | 上に戻る | DB_common::escapeSimple()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::escapeSimple()

DB_common::escapeSimple() -- 現在の DBMS の規則に基づいて文字列をエスケープする

概要

string escapeSimple (string $str)

説明

現在の DBMS の規則に基づいて文字列をエスケープします。

パラメータ

string $str

エスケープされる入力文字列。

返り値

string - エスケープされた文字列を返します。

注意

この関数は、スタティックにコールする ことはできません。

リリース 1.6.0 以降で使用可能です。

例

例 33-1escapeSimple() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$name = "all's well";
$sql  = "SELECT * FROM clients WHERE name = '"
        . $db->escapeSimple($name) . "'";

$res =& $db->query($sql);
?>

参照

quoteIdentifier()、 quoteSmart()

前のページ | ホーム | 次のページ
DB_common::dropSequence() | 上に戻る | DB_common::execute()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::execute()

DB_common::execute() -- 準備された SQL 文を実行する

概要

mixed &execute (resource $stmt [, mixed $data = array()])

説明

prepare() で指定した SQL 文に $data の情報を適用し、クエリを データベースに送信します。

パラメータ

resource $stmt

prepare() が返すクエリハンドル。

mixed $data

プリペアドステートメントに適用する配列・文字列あるいは数値のデータ。 渡す項目数は、文中のプレースホルダの数と一致していなければなりません。 プレースホルダがひとつだけの場合は配列でない値を指定し、 複数存在する場合は個々の値を要素にもつ配列を指定します。

返り値

mixed - 結果を返すクエリ (例えば SELECT クエリなど) の場合は新しい DB_result オブジェクト、 データを操作するクエリ (例えば INSERT クエリなど) の場合は DB_OK、 あるいは失敗した場合には DB_Error オブジェクトを返します。

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応法
DB_ERROR_INVALID | invalid | 有効な SQL 文ハンドルではありません。 | 現在実行している SQL 文と prepare() を調べます。 execute() に必要なのは、 prepare() が返すハンドルであって SQL 文自身ではないことに注意しましょう。
DB_ERROR_MISMATCH | mismatch | パラメータの数が、プリペアドステートメント中の プレースホルダの数と一致しません。 | $query に渡した prepare() 済みの文中の プレースホルダの数が、$params で渡した項目の数と一致するかどうかを調べます。
DB_ERROR_NODBSELECTED | no database selected | データベースが選択されていません。 | connect() の際の DSN を調べます。
その他のエラーコード |  | データベース固有のエラー。 | PHP マニュアル のデータベース関連の部分を調べ、エラーの原因を判断してください。 たいていの場合は SQL 文が間違っていることが原因です。例えば Oracle データベースに対して SQL で LIMIT を使用しているなどが 考えられます。

注意

この関数は、スタティックにコールする ことはできません。

警告

$data に渡す値は、リテラルである必要があります。 SQL 関数 (例えば CURDATE() など) を渡さないでください。 実行時に処理される SQL 関数は、プリペアドステートメント内に記述する 必要があります。

例

例 33-1execute() にスカラーを渡す

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$sth = $db->prepare('INSERT INTO numbers (number) VALUES (?)');
if (PEAR::isError($sth)) {
    die($sth->getMessage());
}

$res =& $db->execute($sth, 1);
if (PEAR::isError($res)) {
    die($res->getMessage());
}
?>

例 33-2execute() に配列を渡す

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$sth = $db->prepare('INSERT INTO numbers VALUES (?, ?, ?)');

$data = array(1, 'one', 'en');
$db->execute($sth, $data);
?>

参照

"導入 - 準備と実行"、 "導入 - autoPrepare & autoExecute"、 prepare()、 executeMultiple()

前のページ | ホーム | 次のページ
DB_common::escapeSimple() | 上に戻る | DB_common::executeMultiple()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::executeMultiple()

DB_common::executeMultiple() -- 配列の各要素内に準備された SQL 文を実行する

概要

integer executeMultiple (resource $stmt, array $data)

説明

$data (多次元の配列) の中の情報を自動的に execute() に渡し、 prepare() で指定した SQL 文を実行します。

パラメータ

resource $stmt

prepare() が返すクエリハンドル。

array $data

クエリに挿入するデータを含む配列。

返り値

integer - 成功した場合に DB_OK、 失敗した場合に DB_Error オブジェクトを返します。

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応法
DB_ERROR_INVALID | invalid | 有効な SQL 文ハンドルではありません。 | 現在実行している SQL 文と prepare() を調べます。 executeMultiple() に必要なのは、 prepare() が返すハンドルであって SQL 文自身ではないことに注意しましょう。
DB_ERROR_MISMATCH | mismatch | パラメータの数が、文中のプレースホルダの数と一致しません。 | $query に渡した prepare() 済みの文中の プレースホルダの数が、$params で渡した項目の数と一致するかどうかを調べます。
DB_ERROR_NODBSELECTED | no database selected | データベースが選択されていません。 | connect() の際の DSN を調べます。
その他のエラーコード |  | データベース固有のエラー。 | PHP マニュアル のデータベース関連の部分を調べ、エラーの原因を判断してください。 たいていの場合は SQL 文が間違っていることが原因です。例えば Oracle データベースに対して SQL で LIMIT を使用しているなどが 考えられます。

注意

この関数は、スタティックにコールする ことはできません。

警告

実行時にエラーが発生した場合は、この関数は停止します。 それ以降のデータは処理されません。

警告

$data に渡す値は、リテラルである必要があります。 SQL 関数 (例えば CURDATE() など) を渡さないでください。 実行時に処理される SQL 関数は、プリペアドステートメント内に記述する 必要があります。

例

例 33-1executeMultiple() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$sth = $db->prepare('INSERT INTO numbers VALUES (?, ?, ?)');

if (PEAR::isError($sth)) {
    die($sth->getMessage());
}

$alldata = array(array(1, 'one', 'en'),
                 array(2, 'two', 'to'),
                 array(3, 'three', 'tre'),
                 array(4, 'four', 'fire'));

$res =& $db->executeMultiple($sth, $alldata);

if (PEAR::isError($res)) {
    die($res->getMessage());
}
?>

参照

    "導入 - 準備と実行"、

    "導入 - autoPrepare & autoExecute"、

    prepare()、

    execute()、

    autoPrepare()、

\\    autoExecute()

前のページ | ホーム | 次のページ
DB_common::execute() | 上に戻る | DB_common::freePrepared()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::freePrepared()

DB_common::freePrepared() -- プリペアド SQL ステートメントに関連付けられたリソースを開放する

概要

boolean freePrepared (resource $stmt [, boolean $free_resource = true])

説明

プリペアド SQL ステートメントの内部表現を管理するために占有していた メモリを開放します。DB_result オブジェクト自身は削除 しません。

パラメータ

resource $stmt

prepare() から返される ステートメントリソース ID。

boolean $free_resource

PHP のリソースも開放しますか? 結果セットのデータをあとで使用する場合には false を設定します。

リリース 1.7.0 以降で使用可能です。

返り値

boolean - 成功時には TRUE 、 失敗時には FALSE を返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1freePrepared() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$sth = $db->prepare('INSERT INTO numbers (number) VALUES (?)');
$db->execute($sth, 1);
$db->freePrepared($sth);
?>

参照

prepare()、

autoPrepare()、

free()

前のページ | ホーム | 次のページ
DB_common::executeMultiple() | 上に戻る | DB_common::getAll()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::getAll()

DB_common::getAll() -- クエリを実行し、すべてのデータを配列として返す

概要

array &getAll (string $query [, array $params = array() [, integer $fetchmode = DB_FETCHMODE_DEFAULT]])

説明

指定したクエリを実行し、入れ子になった配列に結果セット全体を格納したあとで 結果セットを開放します。

パラメータ

string $query

SQL クエリあるいはプリペアドステートメント。

array $params

プリペアドステートメントの実行時に使用される配列。 配列の要素数は、クエリ内のプレースホルダの数と同じでなければなりません。

指定された場合は、 prepare()/ execute() が使用されます。

警告

このメソッドでは、この引数にスカラー値を指定することはできません。

integer $fetchmode

使用するフェッチモード。 デフォルトは DB_FETCHMODE_DEFAULT で、 これは DB の現在のフェッチモードを使用します。 DB の現在のデフォルトフェッチモードを変更するには setFetchMode() を使用します。 フェッチモードには、以下の値が指定できます。

  • DB_FETCHMODE_ORDERED

  • DB_FETCHMODE_ASSOC

  • DB_FETCHMODE_OBJECT

  • DB_FETCHMODE_ORDERED | DB_FETCHMODE_FLIPPED

  • DB_FETCHMODE_ASSOC | DB_FETCHMODE_FLIPPED

返り値

array - 入れ子になった配列、あるいは失敗した場合に DB_Error を返します。

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応法
DB_ERROR_INVALID | invalid | 準備された SQL 文が無効です。 | プレースホルダを使用する SQL 文を用いる場合は prepare() のドキュメント を参照ください。
DB_ERROR_MISMATCH | mismatch | パラメータの数が、プリペアドステートメント中の プレースホルダの数と一致しません。 | $query に渡した prepare() 済みの文中の プレースホルダの数が、$params で渡した項目の数と一致するかどうかを調べます。
DB_ERROR_NODBSELECTED | no database selected | データベースが選択されていません。 | connect() の際の DSN を調べます。
その他のエラーコード |  | データベース固有のエラー。 | PHP マニュアル のデータベース関連の部分を調べ、エラーの原因を判断してください。 たいていの場合は SQL 文が間違っていることが原因です。例えば Oracle データベースに対して SQL で LIMIT を使用しているなどが 考えられます。

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1 最初にデフォルトのフェッチモードを設定し、連想配列を返すための getAll() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$db->setFetchMode(DB_FETCHMODE_ASSOC);
$data =& $db->getAll('SELECT cf, nf, df FROM foo');

if (PEAR::isError($data)) {
    die($data->getMessage());
}

print_r($data);
?>

出力は、以下のようになります。

Array
(
    [0] => Array
        (
            [cf] => Juan
            [nf] => 5
            [df] => 1991-01-11 21:31:41
        )
    [1] => Array
        (
            [cf] => Kyu
            [nf] => 10
            [df] => 1992-02-12 22:32:42
        )
)

例 33-2 数値添字の配列を返す getAll() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getAll('SELECT cf, nf, df FROM foo',
        array(), DB_FETCHMODE_ORDERED);

if (PEAR::isError($data)) {
    die($data->getMessage());
}

print_r($data);
?>

出力は、以下のようになります。

Array
(
    [0] => Array
        (
            [0] => Juan
            [1] => 5
            [2] => 1991-01-11 21:31:41
        )
    [1] => Array
        (
            [0] => Kyu
            [1] => 10
            [2] => 1992-02-12 22:32:42
        )
)

例 33-3 入れ子になった数値添字配列を返す getAll() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getAll('SELECT cf, nf, df FROM foo',
        array(), DB_FETCHMODE_ORDERED | DB_FETCHMODE_FLIPPED);

if (PEAR::isError($data)) {
    die($data->getMessage());
}

print_r($data);
?>

出力は、以下のようになります。

Array
(
    [0] => Array
        (
            [0] => Juan
            [1] => Kyu
        )
    [1] => Array
        (
            [0] => 5
            [1] => 10
        )
    [2] => Array
        (
            [0] => 1991-01-11 21:31:41
            [1] => 1992-02-12 22:32:42
        )
)

例 33-4 連想配列を返す getAll() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getAll('SELECT cf, nf, df FROM foo',
        array(), DB_FETCHMODE_ASSOC);

if (PEAR::isError($data)) {
    die($data->getMessage());
}

print_r($data);
?>

出力は、以下のようになります。

Array
(
    [0] => Array
        (
            [cf] => Juan
            [nf] => 5
            [df] => 1991-01-11 21:31:41
        )
    [1] => Array
        (
            [cf] => Kyu
            [nf] => 10
            [df] => 1992-02-12 22:32:42
        )
)

例 33-5 入れ子になった連想配列を返す getAll() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getAll('SELECT cf, nf, df FROM foo',
        array(), DB_FETCHMODE_ASSOC | DB_FETCHMODE_FLIPPED);

if (PEAR::isError($data)) {
    die($data->getMessage());
}

print_r($data);
?>

出力は、以下のようになります。

Array
(
    [cf] => Array
        (
            [0] => Juan
            [1] => Kyu
        )
    [nf] => Array
        (
            [0] => 5
            [1] => 10
        )
    [df] => Array
        (
            [0] => 1991-01-11 21:31:41
            [1] => 1992-02-12 22:32:42
        )
)

例 33-6 オブジェクトの配列を返す getAll() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getAll('SELECT cf, nf, df FROM foo',
        array(), DB_FETCHMODE_OBJECT);

if (PEAR::isError($data)) {
    die($data->getMessage());
}

print_r($data);
?>

出力は、以下のようになります。

Array
(
    [0] => stdClass Object
        (
            [cf] => Juan
            [nf] => 5
            [df] => 1991-01-11 21:31:41
        )
    [1] => stdClass Object
        (
            [cf] => Kyu
            [nf] => 10
            [df] => 1992-02-12 22:32:42
        )
)

例 33-7 prepare/execute モードで連想配列を返すための getAll() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getAll('SELECT cf, nf, df FROM foo WHERE nf = ?',
        array(5), DB_FETCHMODE_ASSOC);

if (PEAR::isError($data)) {
    die($data->getMessage());
}

print_r($data);
?>

出力は、以下のようになります。

Array
(
    [0] => Array
        (
            [cf] => Juan
            [nf] => 5
            [df] => 1991-01-11 21:31:41
        )
)

参照

setFetchMode()、

getOne()、

getRow()、

getCol()、

getAssoc()、

query()、

"導入 - 準備と実行"

前のページ | ホーム | 次のページ
DB_common::freePrepared() | 上に戻る | DB_common::getAssoc()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::getAssoc()

DB_common::getAssoc() -- クエリを実行し、結果を配列として返す

概要

array &getAssoc (string $query [, boolean $force_array = FALSE [, mixed $params = array() [, integer $fetchmode = DB_FETCHMODE_DEFAULT [, boolean $group = FALSE]]]])

説明

指定したクエリを実行し、連想配列に結果セット全体を格納したあとで 結果セットを開放します。

結果セットにのカラム数が 2 つより多い場合は、2 番目のカラムから 最後のカラムまでの値の配列が、連想配列の値として返されます。 結果セットのカラム数が 2 つのみの場合は、2 番目のカラムの値を持つ スカラ値が、連想配列の値として返されます (パラメータ $force_array で、強制的に 配列を返すようにしている場合を除きます)。

パラメータ

string $query

SQL クエリあるいはプリペアドステートメント。

boolean $force_array

クエリが返すカラム数が 2 つの場合にのみ使用します。 TRUE を指定すると、返される結果がスカラではなく 要素がひとつの配列となります。

mixed $params

プリペアドステートメントに追加される、配列・文字列あるいは数値のデータ。 配列の要素数は、クエリ内のプレースホルダの数と同じでなければなりません。 配列以外を指定した場合はプレースホルダがひとつであることを意味し、 配列を指定した場合は配列の個々の要素がそれぞれのパラメータに対応します。

指定された場合は、 prepare()/ execute() が使用されます。

integer $fetchmode

使用するフェッチモード。 デフォルトは DB_FETCHMODE_DEFAULT で、 これは DB の現在のフェッチモードを使用します。 DB の現在のデフォルトフェッチモードを変更するには setFetchMode() を使用します。 フェッチモードには、以下の値が指定できます。

  • DB_FETCHMODE_ORDERED

  • DB_FETCHMODE_ASSOC

  • DB_FETCHMODE_OBJECT

boolean $group

TRUE の場合、返される連想配列の値がさらに別の配列の中に 組み込まれます。もし同一キー (最初のカラム) のデータが 繰り返し登場した場合は、その値が上書きされずに 配列に追記されていきます。

返り値

array - クエリ結果の連想配列、あるいは失敗した場合に DB_Error オブジェクトを返します。

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応法
DB_ERROR_INVALID | invalid | 準備された SQL 文が無効です。 | プレースホルダを使用する SQL 文を用いる場合は prepare() のドキュメント を参照ください。
DB_ERROR_MISMATCH | mismatch | パラメータの数が、プリペアドステートメント中の プレースホルダの数と一致しません。 | $query に渡した prepare() 済みの文中の プレースホルダの数が、$params で渡した項目の数と一致するかどうかを調べます。
DB_ERROR_NODBSELECTED | no database selected | データベースが選択されていません。 | connect() の際の DSN を調べます。
DB_ERROR_TRUNCATED | truncated | 結果セットのカラム数が 2 より少ないです。 | SQL クエリを調べ、必要なら別の get*() 関数を使用します。
その他のエラーコード |  | データベース固有のエラー。 | PHP マニュアル のデータベース関連の部分を調べ、エラーの原因を判断してください。 たいていの場合は SQL 文が間違っていることが原因です。例えば Oracle データベースに対して SQL で LIMIT を使用しているなどが 考えられます。

注意

この関数は、スタティックにコールする ことはできません。

例

すべての例で、以下のデータセットを使用します。
INSERT INTO foo VALUES ('Juan', 5, '1991-01-11 21:31:41');
INSERT INTO foo VALUES ('Kyu', 10, '1992-02-12 22:32:42');
INSERT INTO foo VALUES ('Kyu', 15, '1993-03-13 23:33:43');

2 つのカラムを持つ結果セット

2 つのカラムを持つ結果セットに対して $force_array = FALSE (デフォルト) で getAssoc() を使用する場合は、 $fetchmode を変更しても結果の配列の 形式には影響しません。

例 33-1 デフォルトモードでの getAssoc() の使用

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getAssoc('SELECT cf, df FROM foo');

if (PEAR::isError($data)) {
    die($data->getMessage());
}

print_r($data);
?>

出力は、以下のようになります。

Array
(
    [Juan] => 1991-01-11 21:31:41
    [Kyu] => 1993-03-13 23:33:43
)

例 33-2 $group = TRUE での getAssoc() の使用

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getAssoc('SELECT cf, df FROM foo',
        false, array(), DB_FETCHMODE_ORDERED, true);

if (PEAR::isError($data)) {
    die($data->getMessage());
}

print_r($data);
?>

出力は、以下のようになります。

Array
(
    [Juan] => Array
        (
            [0] => 1991-01-11 21:31:41
        )
    [Kyu] => Array
        (
            [0] => 1992-02-12 22:32:42
            [1] => 1993-03-13 23:33:43
        )
)

例 33-3 $force_array = TRUE および $fetchmode = DB_FETCHMODE_ORDERED での getAssoc() の使用

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getAssoc('SELECT cf, df FROM foo',
        true, array(), DB_FETCHMODE_ORDERED);

if (PEAR::isError($data)) {
    die($data->getMessage());
}

print_r($data);
?>

出力は、以下のようになります。

Array
(
    [Juan] => Array
        (
            [0] => 1991-01-11 21:31:41
        )
    [Kyu] => Array
        (
            [0] => 1993-03-13 23:33:43
        )
)

例 33-4 $force_array = TRUE および $fetchmode = DB_FETCHMODE_ASSOC での getAssoc() の使用

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getAssoc('SELECT cf, df FROM foo',
        true, array(), DB_FETCHMODE_ASSOC);

if (PEAR::isError($data)) {
    die($data->getMessage());
}

print_r($data);
?>

出力は、以下のようになります。

Array
(
    [Juan] => Array
        (
            [df] => 1991-01-11 21:31:41
        )
    [Kyu] => Array
        (
            [df] => 1993-03-13 23:33:43
        )
)

例 33-5 $force_array = TRUE および $fetchmode = DB_FETCHMODE_OBJECT での getAssoc() の使用

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getAssoc('SELECT cf, df FROM foo',
        true, array(), DB_FETCHMODE_OBJECT);

if (PEAR::isError($data)) {
    die($data->getMessage());
}

print_r($data);
?>

出力は、以下のようになります。

Array
(
    [Juan] => stdClass Object
        (
            [cf] => Juan
            [df] => 1991-01-11 21:31:41
        )
    [Kyu] => stdClass Object
        (
            [cf] => Kyu
            [df] => 1993-03-13 23:33:43
        )
)

例 33-6 $force_array = TRUE、 $fetchmode = DB_FETCHMODE_ORDERED および $group = TRUE での getAssoc() の使用

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getAssoc('SELECT cf, df FROM foo',
        true, array(), DB_FETCHMODE_ORDERED, true);

if (PEAR::isError($data)) {
    die($data->getMessage());
}

print_r($data);
?>

出力は、以下のようになります。

Array
(
    [Juan] => Array
        (
            [0] => Array
                (
                    [0] => 1991-01-11 21:31:41
                )
        )
    [Kyu] => Array
        (
            [0] => Array
                (
                    [0] => 1992-02-12 22:32:42
                )
            [1] => Array
                (
                    [0] => 1993-03-13 23:33:43
                )
        )
)

例 33-7 $force_array = TRUE、 $fetchmode = DB_FETCHMODE_ASSOC および $group = TRUE での getAssoc() の使用

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getAssoc('SELECT cf, df FROM foo',
        true, array(), DB_FETCHMODE_ASSOC, true);

if (PEAR::isError($data)) {
    die($data->getMessage());
}

print_r($data);
?>

出力は、以下のようになります。

Array
(
    [Juan] => Array
        (
            [0] => Array
                (
                    [df] => 1991-01-11 21:31:41
                )
        )
    [Kyu] => Array
        (
            [0] => Array
                (
                    [df] => 1992-02-12 22:32:42
                )
            [1] => Array
                (
                    [df] => 1993-03-13 23:33:43
                )
        )
)

例 33-8 $force_array = TRUE、 $fetchmode = DB_FETCHMODE_OBJECT および $group = TRUE での getAssoc() の使用

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getAssoc('SELECT cf, df FROM foo',
        true, array(), DB_FETCHMODE_OBJECT, true);

if (PEAR::isError($data)) {
    die($data->getMessage());
}

print_r($data);
?>

出力は、以下のようになります。

Array
(
    [Juan] => Array
        (
            [0] => stdClass Object
                (
                    [cf] => Juan
                    [df] => 1991-01-11 21:31:41
                )
        )
    [Kyu] => Array
        (
            [0] => stdClass Object
                (
                    [cf] => Kyu
                    [df] => 1992-02-12 22:32:42
                )
            [1] => stdClass Object
                (
                    [cf] => Kyu
                    [df] => 1993-03-13 23:33:43
                )
        )
)

2 つより多くのカラムを持つ結果セット

例 33-9 $fetchmode = DB_FETCHMODE_ORDERED での getAssoc() の使用

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getAssoc('SELECT cf, nf, df FROM foo',
        false, array(), DB_FETCHMODE_ORDERED);

if (PEAR::isError($data)) {
    die($data->getMessage());
}

print_r($data);
?>

出力は、以下のようになります。

Array
(
    [Juan] => Array
        (
            [0] => 5
            [1] => 1991-01-11 21:31:41
        )
    [Kyu] => Array
        (
            [0] => 15
            [1] => 1993-03-13 23:33:43
        )
)

例 33-10 $fetchmode = DB_FETCHMODE_ASSOC での getAssoc() の使用

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getAssoc('SELECT cf, nf, df FROM foo',
        false, array(), DB_FETCHMODE_ASSOC);

if (PEAR::isError($data)) {
    die($data->getMessage());
}

print_r($data);
?>

出力は、以下のようになります。

Array
(
    [Juan] => Array
        (
            [nf] => 5
            [df] => 1991-01-11 21:31:41
        )
    [Kyu] => Array
        (
            [nf] => 15
            [df] => 1993-03-13 23:33:43
        )
)

例 33-11 $fetchmode = DB_FETCHMODE_OBJECT での getAssoc() の使用

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getAssoc('SELECT cf, nf, df FROM foo',
        false, array(), DB_FETCHMODE_OBJECT);

if (PEAR::isError($data)) {
    die($data->getMessage());
}

print_r($data);
?>

出力は、以下のようになります。

Array
(
    [Juan] => stdClass Object
        (
            [cf] => Juan
            [nf] => 5
            [df] => 1991-01-11 21:31:41
        )
    [Kyu] => stdClass Object
        (
            [cf] => Kyu
            [nf] => 15
            [df] => 1993-03-13 23:33:43
        )
)

例 33-12 $fetchmode = DB_FETCHMODE_ORDERED および $group = TRUE での getAssoc() の使用

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getAssoc('SELECT cf, nf, df FROM foo',
        false, array(), DB_FETCHMODE_ORDERED, true);

if (PEAR::isError($data)) {
    die($data->getMessage());
}

print_r($data);
?>

出力は、以下のようになります。

Array
(
    [Juan] => Array
        (
            [0] => Array
                (
                    [0] => 5
                    [1] => 1991-01-11 21:31:41
                )
        )
    [Kyu] => Array
        (
            [0] => Array
                (
                    [0] => 10
                    [1] => 1992-02-12 22:32:42
                )
            [1] => Array
                (
                    [0] => 15
                    [1] => 1993-03-13 23:33:43
                )
        )
)

例 33-13 $fetchmode = DB_FETCHMODE_ASSOC および $group = TRUE での getAssoc() の使用

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getAssoc('SELECT cf, nf, df FROM foo',
        false, array(), DB_FETCHMODE_ASSOC, true);

if (PEAR::isError($data)) {
    die($data->getMessage());
}

print_r($data);
?>

出力は、以下のようになります。

Array
(
    [Juan] => Array
        (
            [0] => Array
                (
                    [nf] => 5
                    [df] => 1991-01-11 21:31:41
                )
        )
    [Kyu] => Array
        (
            [0] => Array
                (
                    [nf] => 10
                    [df] => 1992-02-12 22:32:42
                )
            [1] => Array
                (
                    [nf] => 15
                    [df] => 1993-03-13 23:33:43
                )
        )
)

例 33-14 $fetchmode = DB_FETCHMODE_OBJECT および $group = TRUE での getAssoc() の使用

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getAssoc('SELECT cf, nf, df FROM foo',
        false, array(), DB_FETCHMODE_OBJECT, true);

if (PEAR::isError($data)) {
    die($data->getMessage());
}

print_r($data);
?>

出力は、以下のようになります。

Array
(
    [Juan] => Array
        (
            [0] => stdClass Object
                (
                    [cf] => Juan
                    [nf] => 5
                    [df] => 1991-01-11 21:31:41
                )
        )
    [Kyu] => Array
        (
            [0] => stdClass Object
                (
                    [cf] => Kyu
                    [nf] => 10
                    [df] => 1992-02-12 22:32:42
                )
            [1] => stdClass Object
                (
                    [cf] => Kyu
                    [nf] => 15
                    [df] => 1993-03-13 23:33:43
                )
        )
)

準備 / 実行 モード

例 33-15 ひとつのプレースホルダでの getAssoc() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getAssoc('SELECT cf, df FROM foo WHERE nf = ?',
        false, 5);

if (PEAR::isError($data)) {
    die($data->getMessage());
}
?>

例 33-16 ふたつのプレースホルダでの getAssoc() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getAssoc('SELECT cf, df FROM foo WHERE nf IN (?, ?)',
        false, array(5, 10));

if (PEAR::isError($data)) {
    die($data->getMessage());
}
?>

参照

setFetchMode()、

getOne()、

getRow()、

getCol()、

getAll()、

query()、

"導入 - 準備と実行"

前のページ | ホーム | 次のページ
DB_common::getAll() | 上に戻る | DB_common::getCol()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::getCol()

DB_common::getCol() -- クエリを実行し、ひとつのカラムのデータを返す

概要

array &getCol (string $query [, mixed $col = 0 [, mixed $params = array()]])

説明

指定したクエリを実行し、データの最初のカラムを配列に格納したあとで 結果セットを開放します。

パラメータ

string $query

SQL クエリあるいはプリペアドステートメント。

mixed $col

どのカラムを返すか (integer [0 から始まるカラム番号] あるいは string [カラム名])。

mixed $params

プリペアドステートメントに追加される、配列・文字列あるいは数値のデータ。 配列の要素数は、クエリ内のプレースホルダの数と同じでなければなりません。 配列以外を指定した場合はプレースホルダがひとつであることを意味し、 配列を指定した場合は配列の個々の要素がそれぞれのパラメータに対応します。

指定された場合は、 prepare()/ execute() が使用されます。

返り値

array - 結果セットのカラムのデータを含む数値添字の配列、 あるいは失敗した場合に DB_Error オブジェクトを返します。 配列の添字は 0 から始まります。

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応法
DB_ERROR_INVALID | invalid | 準備された SQL 文が無効です。 | プレースホルダを使用する SQL 文を用いる場合は prepare() のドキュメント を参照ください。
DB_ERROR_MISMATCH | mismatch | パラメータの数が、プリペアドステートメント中の プレースホルダの数と一致しません。 | $query に渡した prepare() 済みの文中の プレースホルダの数が、$params で渡した項目の数と一致するかどうかを調べます。
DB_ERROR_NOSUCHFIELD | no such field | $col に渡したカラム番号あるいはカラム名が不正です。 | クエリ結果に存在するカラム番号あるいはカラム名を使用します。
DB_ERROR_NODBSELECTED | no database selected | データベースが選択されていません。 | connect() の際の DSN を調べます。
その他のエラーコード |  | データベース固有のエラー。 | PHP マニュアル のデータベース関連の部分を調べ、エラーの原因を判断してください。 たいていの場合は SQL 文が間違っていることが原因です。例えば Oracle データベースに対して SQL で LIMIT を使用しているなどが 考えられます。

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1 getCol() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getCol('SELECT cf, df FROM foo');

if (PEAR::isError($data)) {
    die($data->getMessage());
}

print_r($data);
?>

出力は、以下のようになります。

Array
(
    [0] => Juan
    [1] => Kyu
)

例 33-2 カラム番号で指定したカラムを取得するための getCol() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getCol('SELECT cf, df FROM foo', 1);

if (PEAR::isError($data)) {
    die($data->getMessage());
}

print_r($data);
?>

出力は、以下のようになります。

Array
(
    [0] => 1991-01-11 21:31:41
    [1] => 1992-02-12 22:32:42
)

例 33-3 カラム名で指定したカラムを取得するための getCol() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getCol('SELECT cf, df FROM foo', 'df');

if (PEAR::isError($data)) {
    die($data->getMessage());
}

print_r($data);
?>

出力は、以下のようになります。

Array
(
    [0] => 1991-01-11 21:31:41
    [1] => 1992-02-12 22:32:42
)

例 33-4 プレースホルダがひとつの場合の prepare/execute モードにおける getCol() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getCol('SELECT cf, df FROM foo WHERE nf = ?',
        'df', 5);

if (PEAR::isError($data)) {
    die($data->getMessage());
}

print_r($data);
?>

出力は、以下のようになります。

Array
(
    [0] => 1991-01-11 21:31:41
)

例 33-5 プレースホルダがふたつの場合の prepare/execute モードにおける getCol() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getCol('SELECT cf, df FROM foo WHERE nf IN (?, ?)',
        'df', array(5, 10));

if (PEAR::isError($data)) {
    die($data->getMessage());
}

print_r($data);
?>

出力は、以下のようになります。

Array
(
    [0] => 1991-01-11 21:31:41
    [1] => 1992-02-12 22:32:42
)

参照

getOne()、

getRow()、

getAssoc()、

getAll()、

query()、

"導入 - 準備と実行"

前のページ | ホーム | 次のページ
DB_common::getAssoc() | 上に戻る | DB_common::getListOf()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::getListOf()

DB_common::getListOf() -- データベースのシステム情報を表示する

概要

array getListOf (string $type)

説明

ユーザ・使用可能なデータベース・ビュー・関数など、データベースについての 情報を取得します。

パラメータ

string $type

取得したい情報の型。 $type に指定できる値はデータベースに依存し tables、 databases、users、 view、functions のいずれかです。

返り値

array - 指定したデータを含む数値添字の配列、 あるいは失敗した場合に DB_Error オブジェクトを返します。

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応法
DB_ERROR_UNSUPPORTED | not supported | 指定した情報が取得できません。 | ユーザの権限、およびデータベースがその情報を取得することを サポートしているかどうかを調べます。

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1getListOf() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data = $db->getListOf('tables');

if (PEAR::isError($data)) {
    die($data->getMessage());
}

echo implode("\n", $data);
?>
前のページ | ホーム | 次のページ
DB_common::getCol() | 上に戻る | DB_common::getOne()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::getOne()

DB_common::getOne() -- クエリを実行し、最初の行の最初のカラムを返す

概要

mixed &getOne (string $query [, mixed $params = array()])

説明

指定したクエリを実行し、結果の最初の行・最初のカラムのデータを返したあとで 結果セットを開放します。

パラメータ

string $query

SQL クエリあるいはプリペアドステートメント。

mixed $params

プリペアドステートメントに追加される、配列・文字列あるいは数値のデータ。 配列の要素数は、クエリ内のプレースホルダの数と同じでなければなりません。 配列以外を指定した場合はプレースホルダがひとつであることを意味し、 配列を指定した場合は配列の個々の要素がそれぞれのパラメータに対応します。

指定された場合は、 prepare()/ execute() が使用されます。

返り値

mixed - 最初のカラムのデータ、あるいは失敗した場合に DB_Error オブジェクトを返します。

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応法
DB_ERROR_INVALID | invalid | 準備された SQL 文が無効です。 | プレースホルダを使用する SQL 文を用いる場合は prepare() のドキュメント を参照ください。
DB_ERROR_MISMATCH | mismatch | パラメータの数が、プリペアドステートメント中の プレースホルダの数と一致しません。 | $query に渡した prepare() 済みの文中の プレースホルダの数が、$params で渡した項目の数と一致するかどうかを調べます。
DB_ERROR_NODBSELECTED | no database selected | データベースが選択されていません。 | connect() の際の DSN を調べます。
その他のエラーコード |  | データベース固有のエラー。 | PHP マニュアル のデータベース関連の部分を調べ、エラーの原因を判断してください。 たいていの場合は SQL 文が間違っていることが原因です。例えば Oracle データベースに対して SQL で LIMIT を使用しているなどが 考えられます。

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1getOne() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getOne('SELECT cf FROM foo');

if (PEAR::isError($data)) {
    die($data->getMessage());
}

echo "$data\n";
?>

例 33-2 プレースホルダがひとつの場合の getOne() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getOne('SELECT cf FROM foo WHERE nf = ?',
        5);

if (PEAR::isError($data)) {
    die($data->getMessage());
}

echo "$data\n";
?>

例 33-3 プレースホルダがふたつの場合の getOne() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getOne('SELECT cf FROM foo WHERE nf IN (?, ?)',
        array(5, 10));

if (PEAR::isError($data)) {
    die($data->getMessage());
}

echo "$data\n";
?>

参照

getRow()、

getCol()、

getAssoc()、

getAll()、

query()、

"導入 - 準備と実行"

前のページ | ホーム | 次のページ
DB_common::getListOf() | 上に戻る | DB_common::getOption()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::getOption()

DB_common::getOption() -- PEAR DB 設定オプションの現在の状態を取得する

概要

mixed getOption (string $option)

説明

PEAR DB 設定オプションの現在の状態を取得します。

パラメータ

string $option

調べたいオプションの名前。

返り値

mixed オプションの値を返します。

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応法
NULL | unknown option | 指定したオプションは存在しません。 | $option の記述ミスを調べます。

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1単純な getOption() の例

<?php
// $db という名前の DB オブジェクトを取得しているとします...
if ($db->getOption('autofree')) {
    // 何かの処理を行います...
}
?>
前のページ | ホーム | 次のページ
DB_common::getOne() | 上に戻る | DB_common::getRow()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::getRow()

DB_common::getRow() -- クエリを実行し、最初の行を返す

概要

array &getRow (string $query [, array $params = array() [, integer $fetchmode = DB_FETCHMODE_DEFAULT]])

説明

指定したクエリを実行し、結果の最初の行を配列に格納したあとで 結果セットを開放します。

パラメータ

string $query

SQL クエリあるいはプリペアドステートメント。

array $params

プリペアドステートメントの実行時に使用される配列。 配列の要素数は、クエリ内のプレースホルダの数と同じでなければなりません。

指定された場合は、 prepare()/ execute() が使用されます。

警告

このメソッドでは、この引数にスカラー値を指定することはできません。

integer $fetchmode

使用するフェッチモード。 デフォルトは DB_FETCHMODE_DEFAULT で、 これは DB の現在のフェッチモードを使用します。 DB の現在のデフォルトフェッチモードを変更するには setFetchMode() を使用します。 フェッチモードには、以下の値が指定できます。

  • DB_FETCHMODE_ORDERED

  • DB_FETCHMODE_ASSOC

  • DB_FETCHMODE_OBJECT

返り値

array - 最初の行のデータを含む配列、あるいは失敗した場合に DB_Error オブジェクトを返します。この配列が 通常の数値添字配列であるか連想配列であるかについては、 $fetchmode に依存します。数値添字の場合、 添字は 0 から始まります。

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応法
DB_ERROR_INVALID | invalid | 準備された SQL 文が無効です。 | プレースホルダを使用する SQL 文を用いる場合は prepare() のドキュメント を参照ください。
DB_ERROR_MISMATCH | mismatch | パラメータの数が、プリペアドステートメント中の プレースホルダの数と一致しません。 | $query に渡した prepare() 済みの文中の プレースホルダの数が、$params で渡した項目の数と一致するかどうかを調べます。
DB_ERROR_NODBSELECTED | no database selected | データベースが選択されていません。 | connect() の際の DSN を調べます。
その他のエラーコード |  | データベース固有のエラー。 | PHP マニュアル のデータベース関連の部分を調べ、エラーの原因を判断してください。 たいていの場合は SQL 文が間違っていることが原因です。例えば Oracle データベースに対して SQL で LIMIT を使用しているなどが 考えられます。

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1 $fetchmode = DB_FETCHMODE_ORDERED の場合の getRow() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getRow('SELECT cf, df FROM foo',
        array(), DB_FETCHMODE_ORDERED);

if (PEAR::isError($data)) {
    die($data->getMessage());
}

print_r($data);
?>

出力は、以下のようになります。

Array
(
    [0] => Juan
    [1] => 1991-01-11 21:31:41
)

例 33-2 $fetchmode = DB_FETCHMODE_ASSOC の場合の getRow() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getRow('SELECT cf, df FROM foo',
        array(), DB_FETCHMODE_ASSOC);

if (PEAR::isError($data)) {
    die($data->getMessage());
}

print_r($data);
?>

出力は、以下のようになります。

Array
(
    [cf] => Juan
    [df] => 1991-01-11 21:31:41
)

例 33-3 $fetchmode = DB_FETCHMODE_OBJECT の場合の getRow() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getRow('SELECT cf, df FROM foo',
        array(), DB_FETCHMODE_OBJECT);

if (PEAR::isError($data)) {
    die($data->getMessage());
}

print_r($data);
?>

出力は、以下のようになります。

stdClass Object
(
    [cf] => Juan
    [df] => 1991-01-11 21:31:41
)

例 33-4 プレースホルダがひとつの場合の getRow() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getRow('SELECT cf, df FROM foo WHERE nf = ?',
        array(5));

if (PEAR::isError($data)) {
    die($data->getMessage());
}
?>

例 33-5 プレースホルダがふたつの場合の getRow() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...

$data =& $db->getRow('SELECT cf, df FROM foo WHERE nf IN (?, ?)',
        array(5, 10));

if (PEAR::isError($data)) {
    die($data->getMessage());
}
?>

参照

setFetchMode()、

getOne()、

getCol()、

getAssoc()、

getAll()、

query()、

"導入 - 準備と実行"

前のページ | ホーム | 次のページ
DB_common::getOption() | 上に戻る | DB_common::limitQuery()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::limitQuery()

DB_common::limitQuery() -- データベースに LIMIT クエリを送信する

概要

mixed &limitQuery (string $query, integer $from, integer $count [, mixed $params = array()])

説明

SQL クエリを実行しますが、指定した行数のみしか取得しません。 MySQL の LIMIT オプションの挙動をエミュレートしたものです。

パラメータ

string $query

SQL クエリ。

integer $from

取得を開始する行。 最初の行が 0、2 番目の行が 1、といったようになることに 注意しましょう。

integer $count

取得する行数。

mixed $params

プリペアドステートメントに適用する配列・文字列あるいは数値のデータ。 渡す項目数は、文中のプレースホルダの数と一致していなければなりません。 プレースホルダがひとつだけの場合は配列でない値を指定し、 複数存在する場合は個々の値を要素にもつ配列を指定します。

返り値

mixed - 結果を返すクエリ (例えば SELECT クエリなど) の場合は新しい DB_result オブジェクト、 データを操作するクエリ (例えば INSERT クエリなど) の場合は DB_OK、 あるいは失敗した場合には DB_Error オブジェクトを返します。

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応法
DB_ERROR_NODBSELECTED | no database selected | データベースが選択されていません。 | connect() の際の DSN を調べます。
その他のエラーコード |  | データベース固有のエラー。 | PHP マニュアル のデータベース関連の部分を調べ、エラーの原因を判断してください。 たいていの場合は SQL 文が間違っていることが原因です。例えば Oracle データベースに対して SQL で LIMIT を使用しているなどが 考えられます。

注意

この関数は、スタティックにコールする ことはできません。

データベースの種類によっては、 query() に比べてそれほど速度が速くならないことも あります。limitQuery() の利点は、結果セット内の不要な行を できるだけ早いうちに削除しておけるという点にあります。これにより、メモリの 消費量を減らすことができます。

例

例 33-1limitQuery() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$res =& $db->limitQuery('SELECT * FROM foo', 49, 10);

if (PEAR::isError($res)) {
    die($res->getMessage());
}
?>

参照

query()

前のページ | ホーム | 次のページ
DB_common::getRow() | 上に戻る | DB_common::nextId()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::nextId()

DB_common::nextId() -- シーケンスの次の値を返す

概要

integer nextId (string $seq_name, boolean $onDemand = TRUE)

説明

シーケンスから、次に使用可能な値を返します。このメソッドが コールされるたびにシーケンスは自動的に加算されます。

詳細な説明は、"導入 - シーケンス" を参照ください。

パラメータ

string $seq_name

シーケンスの名前。

データベースの違いによる問題を避けるため、シーケンス名の 最初には英字のみを使用するようにし、またそれ以降も 英数字とアンダースコア文字のみを使用するようにしましょう。

boolean $onDemand

TRUE を設定すると、指定したシーケンスが存在しない場合には 自動的に作成されます。

この機能を使用するには、スクリプトで指定したデータベースユーザが テーブルやシーケンスを作成する権限を持っている必要があります。 必要な検眼は、使用している DBMS に依存します。

返り値

integer - 使用可能な ID 番号、あるいは 失敗した場合に DB_Error オブジェクトを返します。

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応法
DB_ERROR_NOT_CAPABLE | DB backend not capable | この機能は、データベースバックエンドではサポートされていません。 | もしほんとうにこの機能が必要であれば、 別のデータベースシステムを使用しましょう。
DB_ERROR_NOT_LOCKED | not locked | シーケンステーブルが見つけられません。 | データベース固有のエラーです。使用しているデータベースの ドキュメントを参照ください。
DB_ERROR_NOSUCHTABLE | no such table | シーケンステーブルが見つかりませんでした。 | 新しいシーケンスを作成してください。もしシーケンスが存在することが 確かなのであれば、データベースの状態を確認してみましょう。

注意

この関数は、スタティックにコールする ことはできません。

警告

PEAR DB のシーケンスメソッドを使用する場合には、シーケンスの作成も 含めたすべての処理にこれらのメソッドを用いることを強く推奨します。 DBMS で直接作成したシーケンスに対して PEAR DB のメソッドで アクセスすることは避けてください。完全な情報は、 "導入 - シーケンス" のページの警告を参照ください。

例

例 33-1nextId() の使用法

<?php
// $db という名前の DB オブジェクトが作成済みであると仮定します...
$id = $db->nextId('mySequence');
if (PEAR::isError($id)) {
    die($id->getMessage());
}

// INSERT クエリで ID を使用します
$res =& $db->query("INSERT INTO myTable (id, text) VALUES ($id, 'foo')");
?>

参照

"導入 - シーケンス"、 createSequence()、 dropSequence()

前のページ | ホーム | 次のページ
DB_common::limitQuery() | 上に戻る | DB_common::prepare()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::prepare()

DB_common::prepare() -- 後で実行するための SQL 文を準備する

概要

resource prepare (string $query)

説明

execute() で実行できるように、SQL 文を 準備します。

パラメータ

string $query

準備するクエリ。

返り値

resource - クエリのハンドル、あるいは失敗した場合に DB_Error オブジェクトを返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1prepare() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$sth = $db->prepare('INSERT INTO numbers (number) VALUES (?)');
if (PEAR::isError($sth)) {
    die($sth->getMessage());
}

$res =& $db->execute($sth, 1);
if (PEAR::isError($res)) {
    die($res->getMessage());
}
?>

参照

"導入 - 準備と実行"、 "導入 - autoPrepare & autoExecute"、 execute()、 executeMultiple()

前のページ | ホーム | 次のページ
DB_common::nextId() | 上に戻る | DB_common::provides()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::provides()

DB_common::provides() -- DBMS が特定の機能をサポートしているかどうかを調べる

概要

boolean provides (string $feature)

説明

選択されたデータベースで、その機能が使用可能であるかどうかを調べます。

パラメータ

string $feature

調べたい機能。

表 33-1指定できる値

$feature の値 | 意味
prepare | SQL 文の事前チェックを行います。
pconnect | 持続的接続をサポートします。
transactions | トランザクションをサポートします。
limit | SELECT の出力結果を制限する LIMIT をサポートしています。

返り値

boolean - 機能がサポートされている場合に TRUE を返します。

注意

この関数は、スタティックにコールする ことはできません。

警告

返される情報は、あくまでもヒントでしかありません。実際にサポートしている 機能については、使用するデータベースのドキュメントを参照ください。 例えば MySQL はトランザクションをサポートしてはいますが、すべての テーブル型についてサポートしているわけではありません。

例

例 33-1provides() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
if ($db->provides('pconnect')) {
    echo "持続的接続が許可されています。\n";
}
?>
前のページ | ホーム | 次のページ
DB_common::prepare() | 上に戻る | DB_common::query()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::query()

DB_common::query() -- データベースにクエリを送信する

概要

mixed &query (string $query [, mixed $params = array()])

説明

クエリを実行します。

パラメータ $params を指定しており、クエリ内で プレースホルダを使用している場合に、 prepare() および execute() の代わりに使用されます。 このモードについての詳細な情報は、 "導入 - 準備と実行" を参照ください。

パラメータ

string $query

SQL クエリあるいはプリペアドステートメント。

mixed $params

プリペアドステートメントに適用する配列・文字列あるいは数値のデータ。 渡す項目数は、文中のプレースホルダの数と一致していなければなりません。 プレースホルダがひとつだけの場合は配列でない値を指定し、 複数存在する場合は個々の値を要素にもつ配列を指定します。

返り値

mixed - 結果を返すクエリ (例えば SELECT クエリなど) の場合は新しい DB_result オブジェクト、 データを操作するクエリ (例えば INSERT クエリなど) の場合は DB_OK、 あるいは失敗した場合には DB_Error オブジェクトを返します。

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応法
DB_ERROR_INVALID | invalid | 準備された SQL 文が無効です。 | SQL 文でプレースホルダを使用したい場合は prepare() のドキュメント を参照ください。
DB_ERROR_MISMATCH | mismatch | パラメータの数が、プリペアドステートメント中のプレースホルダの数と 一致しません。 | $query に渡した prepare() 済みの文中の プレースホルダの数が、$params で渡した項目の数と一致するかどうかを調べます。
DB_ERROR_NODBSELECTED | no database selected | データベースが選択されていません。 | connect() の際の DSN を調べます。
その他のエラーコード |  | データベース固有のエラー。 | PHP マニュアル のデータベース関連の部分を調べ、エラーの原因を判断してください。 たいていの場合は SQL 文が間違っていることが原因です。例えば Oracle データベースに対して SQL で LIMIT を使用しているなどが 考えられます。

注意

この関数は、スタティックにコールする ことはできません。

参照

"導入 - 準備と実行"、 limitQuery()

前のページ | ホーム | 次のページ
DB_common::provides() | 上に戻る | DB_common::quote()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::quote()

DB_common::quote() -- 廃止予定: 文字列をクォートする

概要

string quote (string $string)

説明

データベースにあわせて文字列をクォートし、クエリ内で安全に使用できるようにします。

このメソッドは廃止予定です。かわりに quoteSmart() あるいは escapeSimple() を使用してください。

パラメータ

string $string

クォートする入力文字列。

返り値

string - クォートされた文字列を返します。

注意

この関数は、スタティックにコールする ことはできません。

警告

この関数は 非推奨の関数です。 今後、このパッケージの将来のバージョンでは、 サポートされないかもしれません。

リリース 1.6.0 で廃止されました。

参照

quoteSmart()、

escapeSimple()、

quoteIdentifier()

前のページ | ホーム | 次のページ
DB_common::query() | 上に戻る | DB_common::quoteIdentifier()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::quoteIdentifier()

DB_common::quoteIdentifier() -- 識別子として安全に使用できるように文字列を整形する

概要

string quoteIdentifier (string $str)

説明

入力文字列を整形し、クエリ内で識別子として安全に使用できるようにします。 識別子とは、テーブル名やカラム名のようなオブジェクトのことです。

返される整形結果は、使用しているデータベースの型に依存します。

以下のドライバで、識別子が正しく動作することが知られています。

mssql
mysql
mysqli
oci8
odbc(access)
odbc(db2)
pgsql
sqlite
sybase

InterBase については、PHP 4 ではうまく動作しないようです。 PHP 5 を使用すると正しく動作します。

パラメータ

string $str

クォートされる入力文字列。

返り値

string - 整形された文字列が返されます。

注意

この関数は、スタティックにコールする ことはできません。

リリース 1.6.0 以降で使用可能です。

警告

区切られた識別子が使用「できる」からといって、それを使用 「しなければならない」わけではありません。一般的に、これを使用すると 他の問題に遭遇することがありえます。

識別子で以下の文字を使用すると、可搬性が損なわれます。

バックティック (`) -- MySQL
ダブルクォート (") -- Oracle
ブラケット ([ or ]) -- Access

例

例 33-1quoteIdentifier() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$sql = 'SELECT ' . $db->quoteIdentifier('company name')
       . ', address FROM clients';

$res =& $db->query($sql);
?>

参照

quoteSmart()、 escapeSimple()

前のページ | ホーム | 次のページ
DB_common::quote() | 上に戻る | DB_common::quoteSmart()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::quoteSmart()

DB_common::quoteSmart() -- リテラルとして安全に使用できるように入力内容を整形する

概要

mixed quoteSmart (mixed $in)

説明

入力内容を整形し、クエリ内でリテラルとして安全に使用できるようにします。 リテラルとは文字列や数値のことで、SQL 文の WHERE、SET および VALUES 句で使用できるものです。

返される整形結果は、入力の PHP データ型 および使用しているデータベースの型に依存します。

パラメータ

mixed $in

クォートされる入力。

返り値

mixed - 整形された結果が返されます。

整形結果は、入力の PHP 型に依存します。

  • 入力の型 -> 返り値

  • NULL -> 文字列 NULL。

  • integer あるいは float -> クォートされない数値。

  • boolean -> 使用しているドライバに依存します。

    ほとんどのドライバでは、true の場合に 1、false の場合に 0 を返します。 中には、true の場合に文字列の TRUE、 false の場合に文字列の FALSE を返すものもあります。また、 true の場合に文字列の T、 false の場合に文字列の F を返すものもあります。以下に、各 DBMS についての返り値およびカラム型を 示します。

    • dbase -> T/F (Logical)

    • fbase -> TRUE/FALSE (BOOLEAN)

    • ibase -> 1/0 (SMALLINT) [1]

    • ifx -> 1/0 (SMALLINT) [1]

    • msql -> 1/0 (INTEGER)

    • mssql -> 1/0 (TINYINT)

    • mysql -> 1/0 (TINYINT(1))

    • mysqli -> 1/0 (TINYINT(1))

    • oci8 -> 1/0 (NUMBER(1))

    • odbc -> 1/0 (SMALLINT) [1]

    • pgsql -> TRUE/FALSE (BOOLEAN)

    • sqlite -> 1/0 (INTEGER)

    • sybase -> 1/0 (TINYINT)

    [1] BOOLEAN に対応していないバージョンが存在するため、 より無難なほうに対応させています。

  • その他 (文字列や、数値形式の文字列を含む) -> DBMS 固有の方法でエスケープされた文字列 ( escapeSimple() を使用します) の前後を単一引用符で囲んだもの。

注意

この関数は、スタティックにコールする ことはできません。

リリース 1.6.0 以降で使用可能です。

例

例 33-1quoteSmart() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$name   = "all's well";
$active = true;
$sql    = 'SELECT * FROM clients WHERE name = '
          . $db->quoteSmart($name)
          . ' AND active = '
          . $db->quoteSmart($active);

$res =& $db->query($sql);
?>

参照

quoteIdentifier()、 escapeSimple()

前のページ | ホーム | 次のページ
DB_common::quoteIdentifier() | 上に戻る | DB_common::rollback()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::rollback()

DB_common::rollback() -- 現在のトランザクションをロールバックする

概要

mixed rollback ()

説明

現在のトランザクションをロールバックします。

返り値

integer - 成功した場合に DB_OK、 失敗した場合に DB_Error オブジェクトを返します。

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応法
すべてのエラーコード |  | データベース固有のエラー。 | PHP マニュアル のデータベース関連の部分をチェックし、エラーの原因を見つけます。

注意

この関数は、スタティックにコールする ことはできません。

DBMS として MySQL を使用している場合は、対象テーブルが InnoDB 形式を使用している場合にのみトランザクションが使用できます。

例

例 33-1rollback() の使用法

<?php
// $db という名前の DB オブジェクトが作成済みであると仮定します...

$db->autoCommit(false);

$db->query('INSERT INTO blah (a) VALUES (11)');

$res =& $db->query('SELECT b FROM blue');
if (DB::isError($res)) {
    echo $res->getMessage() . "\n";
}
while ($res->fetchInto($row, DB_FETCHMODE_ORDERED)) {
    if ($row[0] == 'problem') {
        $db->rollback();
    }
}
$res->free();

$db->query('DROP TABLE blah');
$db->commit();
?>

参照

commit()、 autoCommit()

前のページ | ホーム | 次のページ
DB_common::quoteSmart() | 上に戻る | DB_common::setFetchMode()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::setFetchMode()

DB_common::setFetchMode() -- デフォルトのフェッチモードを設定する

概要

void setFetchMode (integer $fetchmode [, string $object_class = stdClass])

説明

fetch*() および get*() メソッドで 使用される、デフォルトのフェッチモードを設定します。

パラメータ

integer $fetchmode

DB_FETCHMODE_ORDERED、 DB_FETCHMODE_ASSOC あるいは DB_FETCHMODE_OBJECT。

詳細な情報は、下の 例 を参照ください。

string $object_class

$fetchmode が DB_FETCHMODE_OBJECT に設定されている場合に 使用されます。

このパラメータを DB_row に設定すると、 結果のデータを DB_row オブジェクトの新しいインスタンスに 格納することができます。

返り値

void - 成功した場合は何も返しません。 失敗した場合に DB_Error オブジェクトを返します。

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応法
NULL | invalid fetchmode mode | 指定したフェッチモードが存在しないか、使用中のバージョンの DB では実装されていません。 | 引数の記述内容、および使用中の DB のバージョンを調べます。

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1 DB_FETCHMODE_ORDERED (デフォルト)

数値添字の配列が返されます。要素の並び順は、SELECT 文の内容によって 決まります。

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$db->setFetchMode(DB_FETCHMODE_ORDERED);

$res =& $db->query('SELECT a, b FROM phptest WHERE a = 28');
$row =& $res->fetchRow();

print_r($row);
echo 'カラム a は ' . $row[0];
?>

出力は以下のようになります。

Array
(
    [0] => 28
    [1] => hi
)
カラム a は 28

例 33-2 DB_FETCHMODE_ASSOC

カラム名をキーとする連想配列が返されます。

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$db->setFetchMode(DB_FETCHMODE_ASSOC);

$res =& $db->query('SELECT a, b FROM phptest WHERE a = 28');
$row =& $res->fetchRow();

print_r($row);
echo 'カラム a は ' . $row['a'];
?>

出力は以下のようになります。

Array
(
    [a] => 28
    [b] => hi
)
カラム a は 28

例 33-3 DB_FETCHMODE_OBJECT

カラム名をプロパティとして持つオブジェクトが返されます。

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$db->setFetchMode(DB_FETCHMODE_OBJECT);

$res =& $db->query('SELECT a, b FROM phptest WHERE a = 28');
$row =& $res->fetchRow();

print_r($row);
echo 'カラム a は ' . $row->a;
?>

出力は以下のようになります。

stdClass Object
(
    [a] => 28
    [b] => hi
)
カラム a は 28

例 33-4 DB_FETCHMODE_OBJECT および DB_row

setFetchMode() のオプションのパラメータ $object_class が DB_row に設定されている場合は、DB_row オブジェクトが返されます。

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$db->setFetchMode(DB_FETCHMODE_OBJECT, 'DB_row');

$res =& $db->query('SELECT a, b FROM phptest WHERE a = 28');
$row =& $res->fetchRow();

print_r($row);
echo 'カラム a は ' . $row->a;
?>

出力は以下のようになります。

db_row Object
(
    [a] => 28
    [b] => hi
)
カラム a は 28

例 33-5 DB_FETCHMODE_OBJECT で独自のオブジェクトを使用する (PHP 4)

<?php
// $db という名前の DB オブジェクトを取得しているとします...

class SomeResult {
    function SomeResult($data) {
        foreach ($data as $key => $value) {
            $this->$key = $data[$key];
        }
    }
}

$db->setFetchMode(DB_FETCHMODE_OBJECT, 'SomeResult');

$res =& $db->query('SELECT a, b FROM phptest WHERE a = 28');
$row =& $res->fetchRow();

print_r($row);
echo 'カラム a は ' . $row->a;
?>

出力は以下のようになります。

SomeResult Object
(
    [a] => 28
    [b] => hi
)
カラム a は 28

例 33-6 DB_FETCHMODE_OBJECT で独自のオブジェクトを使用する (PHP 5)

<?php
// $db という名前の DB オブジェクトを取得しているとします...

class SomeResult {
    public $row_data;
    function __construct($data) {
        $this->row_data = $data;
    }
    function __get($variable) {
        return $this->row_data[$variable];
    }
}

$db->setFetchMode(DB_FETCHMODE_OBJECT, 'SomeResult');

$res =& $db->query('SELECT a, b FROM phptest WHERE a = 28');
$row =& $res->fetchRow();

print_r($row);
echo 'カラム a は ' . $row->a;
?>

出力は以下のようになります。

SomeResult Object
(
    [a] => 28
    [b] => hi
)
カラム a は 28
前のページ | ホーム | 次のページ
DB_common::rollback() | 上に戻る | DB_common::setOption()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::setOption()

DB_common::setOption() -- PEAR DB の実行時オプションを設定する

概要

integer setOption (string $option, mixed $value)

説明

PEAR DB の実行時オプションを設定します。

パラメータ

string $option

設定するオプションの名前。

mixed $value

オプションに設定する値。

表 33-1

オプション | データ型 | デフォルト値 | 説明
autofree | boolean | FALSE | 結果の行がなくなった場合、自動的に結果を開放しますか?
debug | integer | 0 | デバッグレベル
persistent | boolean | FALSE | 接続は持続的ですか?
portability | integer | DB_PORTABILITY_NONE | 移植性モードの定数。ビット演算で処理されます。機能を追加する際には | を、削除する際には ^ を使用します。詳細な情報は、以下の例と "導入 - 移植性" を参照ください。
seqname_format | string | %s_seq | シーケンス名に使用される、sprintf() の書式指定文字列。これは、 createSequence()、 nextID() および dropSequence() に渡されるシーケンス名に 適用されます。
ssl | boolean | FALSE | 接続に ssl を使用しますか?

返り値

integer - 成功した場合に DB_OK、 失敗した場合に DB_Error オブジェクトを返します。

例外・エラー

表 33-2PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応法
NULL | unknown option | 指定されたオプションは存在しません。 | $option の記述に間違いがないかを調べます。

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1単純な setOption() の例

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$db->setOption('autofree', true);
?>

例 33-2移植性モード「小文字化」および「トリム」を指定する

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$db->setOption('portability',
    DB_PORTABILITY_LOWERCASE | DB_PORTABILITY_RTRIM);
?>

例 33-3「トリム」以外のすべての移植性モードを指定する

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$db->setOption('portability',
    DB_PORTABILITY_ALL ^ DB_PORTABILITY_RTRIM);
?>
前のページ | ホーム | 次のページ
DB_common::setFetchMode() | 上に戻る | DB_common::tableInfo()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_common::tableInfo()

DB_common::tableInfo() -- テーブル内のカラムやクエリ結果についての情報を取得する

概要

array tableInfo (mixed $result [, integer $mode = NULL])

説明

テーブル内のカラムやクエリ結果についての情報を取得します。

パラメータ

mixed $result

クエリ結果の DB_result オブジェクト、あるいは テーブル名を表す文字列。

テーブル名を区切る必要がある場合 (すなわち、予約語や空白が 名前に含まれている場合) は、テーブル名に quoteIdentifier() メソッドを適用してから 渡します。

クエリ結果のリソース ID を指定することもできますが、推奨されません。

integer $mode

tableInfo モード定数のいずれか。

返り値

array - テーブルの情報を含む連想配列、あるいは失敗した場合に DB_Error オブジェクトを返します。

配列の内容は、パラメータ $mode に依存します。

ポータビリティ モード DB_PORTABILITY_LOWERCASE が有効な場合は、テーブル名およびカラム名は小文字に変換されます。

flags 要素には、カラムの追加情報が空白で区切られた 形式で含まれます。DBMS がカラムのデフォルト値を指定できる場合は、 その値は rawurlencode() を通してから渡されます。 これは、値に空白が含まれている際に発生する問題を避けるためです。

$result がテーブル名の場合、ほとんどの DBMS では table 要素および flags 要素しか返しません。クエリから完全な情報を 返すことができるのは、fbsql および mysql だけです。

type 要素には、DBMS から返される値の型が含まれます。 この内容は、DBMS によって違います。

tableInfo モード

この節では、関数のコール時に どんな $mode を使用すればどんな形式の 配列が返されるのかを説明します。

以下の例の結果は、このクエリに基づいています。
SELECT tblFoo.fldID, tblFoo.fldPhone, tblBar.fldId
  FROM tblFoo
  JOIN tblBar ON tblFoo.fldId = tblBar.fldId;

NULL あるいは 0

[0] => Array (
  [table] => tblFoo
  [name] => fldId
  [type] => int
  [len] => 11
  [flags] => primary_key not_null
)
[1] => Array (
  [table] => tblFoo
  [name] => fldPhone
  [type] => string
  [len] => 20
  [flags] =>
)
[2] => Array (
  [table] => tblBar
  [name] => fldId
  [type] => int
  [len] => 11
  [flags] => primary_key not_null
)

DB_TABLEINFO_ORDER

デフォルト出力に含まれる情報に加え、num_fields 要素でカラム数を返します。そして order 要素では カラム名をキー、場所インデックス (そのカラムがデフォルトで 出力される位置) を値とする配列を返します。

結果セット内に同じフィールド名のカラムがある場合は、最後に現れたものが 使用されます。

[num_fields] => 3
[order] => Array (
  [fldId] => 2
  [fldTrans] => 1
)

DB_TABLEINFO_ORDERTABLE

DB_TABLEINFO_ORDER と似ていますが、配列の次元を ひとつ増やし、テーブル名をキー・フィールド名をサブキーとしています。 これは、同名のカラムをもつ複数のテーブルを連結する際に有用です。

[num_fields] => 3
[ordertable] => Array (
  [tblFoo] => Array (
      [fldId] => 0
      [fldPhone] => 1
  )
  [tblBar] => Array (
      [fldId] => 2
  )
)

DB_TABLEINFO_FULL

DB_TABLEINFO_ORDER および DB_TABLEINFO_ORDERTABLE の両方の情報を含みます。

tableInfo モード定数はビット演算されます。そのため、複数指定する場合には | を使用します。

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応法
DB_ERROR_NOT_CAPABLE | DB backend not capable | ドライバがこの機能をサポートしていません。 | もしほんとうにこの機能が必要な場合は、別のデータベースシステムに 変更します。
DB_ERROR_NEED_MORE_DATA | insufficient data supplied | パラメータ $result に渡された内容が、 有効なテーブル名あるいは結果 ID ではありません。 | テーブル名のタイプミスがないか、あるいはクエリが正しく実行 されているかどうかを調べます。
DB_ERROR_NODBSELECTED | no database selected | データベースが選択されていません。 | connect() で指定した DSN を調べます。
can't distinguish duplicate field names |  | クエリ結果には同名のカラムが複数含まれています。PHP の Informix 拡張モジュールでは、このような場合に最初のカラムの情報が 上書きされてしまいます。そのため、 tableInfo() は結果セットを適切に表すことが できません。 | 同名のカラムにエイリアスを使用します。

注意

この関数は、スタティックにコールする ことはできません。

tableInfo() メソッドをサポートしていないドライバも あります。また、多くの DBMS ではクエリ結果からテーブル名を取得することが できませんし、データベースから返されるメタデータの形式は大きく異なります。 そのため、このメソッドを使用すると移植性が損なわれます。

例

例 33-1テーブルの情報を取得する

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$info = $db->tableInfo('tablename');
print_r($info);
?>

例 33-2クエリ結果の情報を取得する

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$res  =& $db->query('SELECT * FROM tablename');
$info =  $db->tableInfo($res);
print_r($info);
?>

警告

バージョン 1.6.0 より前は、tableInfo() は DB_result クラスに属しており、このようにコールする 必要がありました。

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$res  =& $db->query('SELECT * FROM tablename');
$info =  $res->tableInfo();  // <---- 古い書き方です
print_r($info);
?>

前のページ | ホーム | 次のページ
DB_common::setOption() | 上に戻る | DB_result

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_Error

DB_Error -- DB エラーオブジェクト

説明

処理に失敗した場合、DB の関数のほとんどは DB_Error オブジェクトを返します。ここにはエラーに関する情報が 含まれます。DB_Error は、PEAR_Error と同じ関数を提供します。

DB_Error::getMessage() から返されるメッセージの内容は、 DBMS にかかわらず共通です。

DB_Error::getCode() から返されるエラーコードの内容も、 DBMS にかかわらず共通です。返される数値は、DB.php で定義されている定数 DB_ERROR_* をもとにしています。

DB_Error::getDebugInfo() および DB_Error::getUserInfo() は、 DBMS 固有の完全なエラー情報を返します。

例 33-1エラーを捕捉し、何が起こったのかを調べる

<?php
require_once 'DB.php';

$db =& DB::connect('pgsql://wronguser:badpw@localhost/thedb');
if (PEAR::isError($db)) {
    /*
     * プログラムでほんとうにやりたいのは、こんなことではないかも
     * しれません。これは、たた単にエラーオブジェクトから返される
     * 情報がどのようなものかを説明するためだけのものです。
     */
    echo '標準のメッセージ: ' . $db->getMessage() . "\n";
    echo '標準のコード: ' . $db->getCode() . "\n";
    echo 'DBMS 固有のユーザメッセージ: ' . $db->getUserInfo() . "\n";
    echo 'DBMS 固有のデバッグメッセージ: ' . $db->getDebugInfo() . "\n";
    exit;
}
?>
前のページ | ホーム | 次のページ
DB_result::numRows() | 上に戻る | DB_DataObject

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_result

DB_result -- DB 結果セット

説明

DB_result には SQL クエリの結果セットが含まれます。 DB_common の多くのメソッドは、このクラスのインスタンスを返します。

前のページ | ホーム | 次のページ
DB_common::tableInfo() | 上に戻る | DB_result::fetchInto()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_result::fetchInto()

DB_result::fetchInto() -- 結果セットの行を変数に取得する

概要

integer fetchInto (array &$arr [, integer $fetchMode = DB_FETCHMODE_DEFAULT [, integer $rowNum = NULL]])

説明

結果セットからデータの行を取得し、指定した変数に保存した後で 結果ポインタを次の行に移動します。データの形式は、配列あるいは オブジェクトとなります。

パラメータ

mixed $arr

行の内容を保存する変数への参照。

integer $fetchMode

使用するフェッチモード。デフォルトは DB_FETCHMODE_DEFAULT で、この場合は DB の現在のフェッチモードを使用します。 DB の現在のデフォルトフェッチモードは、 setFetchMode() を使用して変更可能です。 とりうる値は以下のようになります。

  • DB_FETCHMODE_ORDERED

  • DB_FETCHMODE_ASSOC

  • DB_FETCHMODE_OBJECT

integer $rowNum

取得する行の番号。0 は最初の行、1 は 2 番目の行、などといったように なることに注意しましょう。

返り値

integer - 行が処理された場合に DB_OK、 結果セットの最後に到達した場合に NULL、 あるいは失敗した場合に DB_Error オブジェクトを返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1fetchInto() の使用法

<?php
// $db という名前の DB オブジェクトが作成済みであると仮定します...
$res =& $db->query('SELECT * FROM mytable');
while ($res->fetchInto($row)) {
    // DB のデフォルトフェッチモードが
    // DB_FETCHMODE_ORDERED であると仮定します
    echo $row[0] . "\n";
}
?>

参照

"導入 - 結果"、 setFetchMode()、 fetchRow()

前のページ | ホーム | 次のページ
DB_result | 上に戻る | DB_result::fetchRow()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_result::fetchRow()

DB_result::fetchRow() -- 結果セットから行を取得する

概要

mixed &fetchRow ([integer $fetchmode = DB_DEFAULT_MODE [, integer $rownum = NULL]])

説明

結果セットからデータの行を取得し、 結果ポインタを次の行に移動します。 データの形式は、配列あるいはオブジェクトとなります。

パラメータ

integer $fetchmode

使用するフェッチモード。デフォルトは DB_FETCHMODE_DEFAULT で、この場合は DB の現在のフェッチモードを使用します。 DB の現在のデフォルトフェッチモードは、 setFetchMode() を使用して変更可能です。 とりうる値は以下のようになります。

  • DB_FETCHMODE_ORDERED

  • DB_FETCHMODE_ASSOC

  • DB_FETCHMODE_OBJECT

integer $rownum

取得する行の番号。

返り値

mixed - 行のデータを含む配列あるいはオブジェクト、あるいは 結果セットの最後に到達した場合に NULL、 失敗した場合に DB_Error オブジェクトを返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1fetchRow() の使用法

<?php
// $db という名前の DB オブジェクトが作成済みであると仮定します...
$res =& $db->query('SELECT * FROM mytable');
while ($row =& $res->fetchRow()) {
    // DB のデフォルトフェッチモードが
    // DB_FETCHMODE_ORDERED であると仮定します
    echo $row[0] . "\n";
}
?>

参照

"導入 - 結果"、 setFetchMode()、 fetchInto()

前のページ | ホーム | 次のページ
DB_result::fetchInto() | 上に戻る | DB_result::free()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_result::free()

DB_result::free() -- 結果セットを開放する

概要

boolean free ()

説明

結果セットを削除し、結果セットが使用していたメモリを開放します。 DB_result オブジェクト自体は削除しません。

返り値

boolean - 成功時には TRUE 、 失敗時には FALSE を返します。

例

例 33-1free() の使用法

<?php
// $db という名前の DB オブジェクトが作成済みであると仮定します...
$res =& $db->query('SELECT name, address FROM clients');
while ($row =& $res->fetchRow()) {
    echo $row['name'] . ', ' . $row['address'] . "\n";
}
$res->free();
?>

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
DB_result::fetchRow() | 上に戻る | DB_result::nextResult()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_result::nextResult()

DB_result::nextResult() -- 複数のクエリから結果セットを取得する

概要

boolean nextResult ()

説明

データベースバックエンドの中には、同時に複数のクエリを実行することを サポートしているものもあります。 nextResult() を使用することで、そのような 結果セットに対応することが可能です。

警告

この関数は、 executeMultiple() とともに使用すると何も行いません。

返り値

boolean - DB_result が次の結果セットを保持している場合に TRUE、 結果セットがもうない場合に FALSE を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
DB_result::free() | 上に戻る | DB_result::numCols()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_result::numCols()

DB_result::numCols() -- 結果セットのカラム数を取得する

概要

integer numCols ()

説明

結果セット内の行のカラム数を取得します。

返り値

integer - カラム数、あるいは失敗した場合に DB_Error オブジェクトを返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1numCols() の使用法

<?php
// $db という名前の DB オブジェクトが作成済みであると仮定します...
$res =& $db->query('SELECT * FROM phptest');
echo $res->numCols();
?>

参照

numRows()、 affectedRows()

前のページ | ホーム | 次のページ
DB_result::nextResult() | 上に戻る | DB_result::numRows()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB_result::numRows()

DB_result::numRows() -- 結果セットの行数を取得する

概要

integer numRows ()

説明

結果セット内の行数を取得します。

警告

ibase、ifx および oci8 では、このメソッドは ポータビリティオプション DB_PORTABILITY_NUMROWS が有効な場合にのみ 動作します。さらに、ibase および ifx では PEAR DB のバージョンが 1.7.0 以降でなければなりません。

Microsoft Access では動作しません。

返り値

integer - 行数、あるいは失敗した場合に DB_Error オブジェクトを返します。

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応法
DB_ERROR_NOT_CAPABLE | DB backend not capable | ドライバがこの機能をサポートしていません。 | 別のデータベースシステムに変更するか、あるいは ポータビリティオプション DB_PORTABILITY_NUMROWS を有効にします。

注意

この関数は、スタティックにコールする ことはできません。

例

例 33-1numRows() の使用法

<?php
// $db という名前の DB オブジェクトが作成済みであると仮定します...
$res =& $db->query('SELECT * FROM phptest');
echo $res->numRows();
?>

参照

numCols()、 affectedRows()

前のページ | ホーム | 次のページ
DB_result::numCols() | 上に戻る | DB_Error

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB::connect()

DB::connect() -- データベースに接続する

概要

object connect (mixed $dsn [, array $options = array()])

説明

新しい DB 接続オブジェクトを作成し、指定したデータベースに接続します。

パラメータ

string あるいは array $dsn

データソース名。文字列形式については DSN の節、 配列形式については "導入 - 接続" の節で説明されています。

array $options

オプションの引数に、このパッケージのための実行時設定項目を 含めることができます。指定可能な項目の詳細は、 setOption() を参照ください。

返り値

object - 新しい DB オブジェクト、 あるいは失敗時には DB_Error オブジェクトを返します。

例外・エラー

表 33-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応法
DB_ERROR_NOT_FOUND | not found | 指定したデータベース用のクラスが見つかりませんでした。 | $dsn を確認してください。また、 DB-package を完全にインストールしており、 DB がそのデータベースをサポートしていることを確認してください。

注意

この関数は、スタティックにコール されます。

参照

disconnect()、 "導入 - 接続"

前のページ | ホーム | 次のページ
DB | 上に戻る | DB::isError()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DB::isError()

DB::isError() -- 変数が DB_Error オブジェクトかどうかを調べる

概要

boolean isError (mixed $value)

説明

DB メソッドから返された内容が DB_Error オブジェクトか そうでないかを調べます。

通常は、DB 固有の isError() ではなく PEAR::isError() を使用するほうがよいでしょう。

パラメータ

mixed $value

調べる変数。

返り値

boolean - $value が DB_Error オブジェクトの場合に TRUE を返します。

注意

この関数は、スタティックにコール されます。

例

例 33-1isError() の使用法

<?php
require_once 'DB.php';

$db =& DB::connect('pgsql://usr:pw@localhost/dbnam');
if (PEAR::isError($db)) {
    die($db->getMessage());
}
?>
前のページ | ホーム | 次のページ
DB::connect() | 上に戻る | DB_common

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入 - autoPrepare & autoExecute

導入 - autoPrepare & autoExecute -- SQL 文を自動で組み立て、実行する

説明

目的

autoPrepare() および autoExecute() を使用することで、あのうんざりするような INSERT 文や UPDATE 文を書く必要がなくなります。例えばテーブルにフィールドを 追加したような場合に、いちいち書き直す必要もなくなります。

3 つのフィールド (id、name そして country) を持つ 'user' というテーブルがあるとしましょう。 この場合、以下のような SQL クエリを書くことになるでしょう。
INSERT INTO table (id, name, country) VALUES (?, ?, ?)
UPDATE table SET id=?, name=?, country=? WHERE ...
もしフィールド (たとえば 'birthYesr') を追加したとすると、 このクエリを書き直す必要があります。これはあまりにつまらない作業であり、 バグを生み出しやすいものです (もしひとつだけクエリを書き換えるのを 忘れたりしたら?)。

autoPrepare

autoPrepare() を使用すると、insert クエリや update クエリを書く必要がなくなります。例えば、
<?php
// $db という名前の DB オブジェクトを取得しているとします...
$table_name   = 'user';
$table_fields = array('id', 'name', 'country');

$sth = $db->autoPrepare($table_name, $table_fields,
                        DB_AUTOQUERY_INSERT);

if (PEAR::isError($sth)) {
    die($sth->getMessage());
}
?>
この例では、 autoPrepare() は次の SQL クエリを組み立てます。
INSERT INTO user (id, name, country) VALUES (?, ?, ?)
その後、 prepare() をコールします。

レコードを追加するには、以下のようにして execute() あるいは executeMultiple() を使用する必要があります。
<?php
// ... 上の例の続きです...
$table_values = array(1, 'Fabien', 'France');

$res =& $db->execute($sth, $table_values);

if (PEAR::isError($res)) {
    die($res->getMessage());
}
?>
そう、もはや SQL の INSERT クエリを 一切書かなくてもよくなるのです! UPDATE クエリについても同様です。 柔軟性を高めるため、クエリの WHERE 句についてだけは自分で書く必要があります。たとえばこのようになります。
<?php
// $db という名前の DB オブジェクトを取得しているとします...
$table_name   = 'user';
$table_fields = array('name', 'country');
$table_values = array('Bob', 'USA');

$sth = $db->autoPrepare($table_name, $table_fields,
                        DB_AUTOQUERY_UPDATE, 'id = 1');

if (PEAR::isError($sth)) {
    die($sth->getMessage());
}

$res =& $db->execute($sth, $table_values);

if (PEAR::isError($res)) {
    die($res->getMessage());
}
?>
autoPrepare() は、 次のようなクエリを組み立てます。
UPDATE user SET name=?, country=? WHERE id=1
その後、 prepare() をコールします。

何も WHERE 句を指定しなかった場合は、 テーブルのすべてのレコードが更新されてしまうことに注意しましょう。

autoExecute

insert クエリや update クエリを実行する一番簡単な方法は、 autoExecute() を使用することです。 これは autoPrepare() および execute() を組み合わせたものです。

必要なのは、フィールド名をキーとしてフィールドの値を対応させた 連想配列のみでず。例えばこのようになります。
<?php
// $db という名前の DB オブジェクトを取得しているとします...
$table_name = 'user';

$fields_values = array(
    'id'      => 1,
    'name'    => 'Fabien',
    'country' => 'France'
);

$res = $db->autoExecute($table_name, $fields_values,
                        DB_AUTOQUERY_INSERT);

if (PEAR::isError($res)) {
    die($res->getMessage());
}
?>
たったこれだけです! これで、次のようなクエリが組み立てられ、 そして実行されます。
INSERT INTO user (id, name, country)
  VALUES (1, 'Fabien', 'France')

UPDATE クエリの場合も同様です。
<?php
// $db という名前の DB オブジェクトを取得しているとします...
$table_name = 'user';

$fields_values = array(
    'name'    => 'Fabien',
    'country' => 'France'
);

$res = $db->autoExecute($table_name, $fields_values,
                        DB_AUTOQUERY_UPDATE, 'id = 1');

if (PEAR::isError($res)) {
    die($res->getMessage());
}
?>
これは、次のようなクエリを組み立てて実行します。
UPDATE user SET name='Fabien', country='France'
  WHERE id = 1

何も WHERE 句を指定しなかった場合は、 テーブルのすべてのレコードが更新されてしまうことに注意しましょう。

警告

$data に渡す値は、リテラルである必要があります。 SQL 関数 (例えば CURDATE() など) を渡さないでください。 実行時に処理される SQL 関数は、プリペアドステートメント内に記述する 必要があります。

前のページ | ホーム | 次のページ
導入 - 準備と実行 | 上に戻る | 導入 - 移植性

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入 - 接続

導入 - 接続 -- 接続および接続の終了

説明

データベースに接続する際には、関数 connect()を使用します。 この関数は、有効なDSN を第 1 パラメータとして要求します。 このパラメータには、文字列あるいは配列のいずれかを指定できます。 配列を使用する場合、 指定した配列がデフォルト情報とマージされます。
$dsn = array(
    'phptype'  => false,
    'dbsyntax' => false,
    'username' => false,
    'password' => false,
    'protocol' => false,
    'hostspec' => false,
    'port'     => false,
    'socket'   => false,
    'database' => false,
);
パラメータで指定することでデフォルト値を上書きでき、 指定しなかった残りの要素はデフォルト値がそのまま使用されます。

第 2 パラメータは、 このパッケージのためのランタイム構成設定を含むことができるオプションの $options配列です。 利用可能な設定について、より詳細な情報は setOption()を参照してください。

成功時にデータベースクラスの新規インスタンスを取得出来ます。 isError() によりこの返り値を確認することを強く推奨します。

データベースクラスのインスタンスから接続を切断するには、関数 disconnect() を使用します。

例 33-1接続と切断

<?php
require_once 'DB.php';

$dsn = 'pgsql://someuser:apasswd@localhost/thedb';
$options = array(
    'debug'       => 2,
    'portability' => DB_PORTABILITY_ALL,
);

$db =& DB::connect($dsn, $options);
if (PEAR::isError($db)) {
    die($db->getMessage());
}

// ...

$db->disconnect();
?>

例 33-2配列を DSN 情報に使用して接続する

<?php
require_once 'DB.php';

$dsn = array(
    'phptype'  => 'pgsql,
    'username' => 'someuser',
    'password' => 'apasswd',
    'hostspec' => 'localhost',
    'database' => 'thedb',
);

$options = array(
    'debug'       => 2,
    'portability' => DB_PORTABILITY_ALL,
);

$db =& DB::connect($dsn, $options);
if (PEAR::isError($db)) {
    die($db->getMessage());
}
?>

DSN 配列を使用して SQLite に接続する場合、 mode 要素の値は文字列でなければいけません:
<?php
$dsn = array(
    'phptype'  => 'sqlite',
    'database' => 'thedb',
    'mode'     => '0644',
);
?>

例 33-3 配列を DSN 情報に使用し、SSL 経由で MySQLi に接続する

$options 配列の ssl 要素は、 SSL 作業をするために、TRUE に設定しなければなりません。 $dsn 配列(下記の例の cipher から key)の各追加要素はオプションです。

<?php
require_once 'DB.php';

$dsn = array(
    'phptype'  => 'mysqli',
    'username' => 'someuser',
    'password' => 'apasswd',
    'hostspec' => 'localhost',
    'database' => 'thedb',
    'key',     => 'client-key.pem',
    'cert'     => 'client-cert.pem',
    'ca'       => 'cacert.pem',
    'capath'   => '/path/to/ca/dir',
    'cipher'   => 'AES',
);

$options = array(
    'ssl' => true,
);

$db =& DB::connect($dsn, $options);
if (PEAR::isError($db)) {
    die($db->getMessage());
}
?>

例 33-4ソケット経由で PostgreSQL データベースに接続する

<?php
require_once 'DB.php';

$dsn = 'pgsql://someuser:apasswd@unix(/tmp)/thedb';
$options = array(
    'debug'       => 2,
    'portability' => DB_PORTABILITY_ALL,
);

$db =& DB::connect($dsn, $options);
if (PEAR::isError($db)) {
    die($db->getMessage());
}
?>

参照

DB_Error、 setOption()、 "導入 - 移植性"

前のページ | ホーム | 次のページ
導入 - DSN | 上に戻る | 導入 - クエリ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入 - DSN

導入 - DSN -- データソース名(The Data Source Name)

説明

PEAR::DB により、データベースに接続するには、有効な DSN - data source name を作成する必要があります。 この DSN は、以下の要素からなります。

phptype: PHP で使用されるデータベースバックエンドです (すなわち mysql や odbc 等)。
dbsyntax: SQL 構文等のデータベース関連構文です。 phptype として ODBC を使用する場合、 ODBC ドライバが接続している DBMS タイプにこれをセットしてください。 例: access・ db2・mssql・ navision・solid・その他
protocol: 使用する通信プロトコルです (すなわち、tcp・unix 等)。
hostspec: ホストの指定です (hostname[:port])。
database: DBMS サーバ上のデータベース使用方法です。
username: ログイン用ユーザ名です。
password: ログイン用のパスワードです。
proto_opts: protocol で使用されるオプションです。

DSN の形式を完全に指定する場合は以下のようになります。
phptype(dbsyntax)://username:password@protocol+hostspec/database?option=value
以下のように多くのバリエーションが許されています。
phptype://username:password@protocol+hostspec:110//usr/db_file.db
phptype://username:password@hostspec/database
phptype://username:password@hostspec
phptype://username@hostspec
phptype://hostspec/database
phptype://hostspec
phptype:///database?option=value&anotheroption=anothervalue
phptype(dbsyntax)
phptype
現在、サポートされているデータベースバックエンドは、 以下のとおりになります。
dbase  -> dBase
fbsql  -> FrontBase (DB 1.7.0 以降)
ibase  -> InterBase (DB 1.7.0 以降)
ifx    -> Informix
msql   -> Mini SQL (DB 1.7.0 以降)
mssql  -> Microsoft SQL Server (Sybase 用では「ありません」。--with-mssql をつけて PHP をコンパイルします)
mysql  -> MySQL (MySQL <= 4.0 用)
mysqli -> MySQL (MySQL >= 4.1 用) (PHP 5 以降) (DB 1.6.3 以降)
oci8   -> Oracle 7/8/9
odbc   -> ODBC (Open Database Connectivity)
pgsql  -> PostgreSQL
sqlite -> SQLite
sybase -> Sybase

最新版の DB では、 第2の DSN 形式を使用することが可能です。
phptype(syntax)://user:pass@protocol(proto_opts)/database

database、option の値や username あるいは password に DSN の区切り文字が使用されている場合は、URI エンコーディング方式で それをエスケープします。
: = %3a   / = %2f   @ = %40
+ = %2b   ( = %28   ) = %29
? = %3f   = = %3d   & = %26

警告

いくつかの機能は、 全てのデータベースバックエンドでサポートされていません。 どの機能がどのバックエンドでサポートされているかに関する詳細なリストを 取得するには /pear/base/dir/DB/doc/STATUS にある PEAR DB 拡張 のステータスドキュメントを参照して下さい。

例

例 33-1ソケットによりデータベースに接続する

mysql://user@unix(/path/to/socket)/pear

例 33-2標準以外のポートでデータベースに接続する

pgsql://user:pass@tcp(localhost:5555)/pear

例 33-3オプションを使用して Unix マシン上の SQLite に接続する

sqlite:////full/unix/path/to/file.db?mode=0666

例 33-4オプションを使用して Windows マシン上の SQLite に接続する

sqlite:///c:/full/windows/path/to/file.db?mode=0666

例 33-5SSL を用いて MySQLi に接続する

mysqli://user:pass@localhost/pear?key=client-key.pem&cert=client-cert.pem

例 33-6ユーザー名に admin を時々要求し、MS Access に接続する

odbc(access)://admin@/datasourcename

例 33-7カーソル指定で ODBC に接続

odbc(access)://admin@/datasourcename?cursor=SQL_CUR_USE_ODBC
前のページ | ホーム | 次のページ
DB | 上に戻る | 導入 - 接続

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入 - 準備と実行

導入 - 準備と実行 -- SQL 文を準備し、実行する

説明

目的

prepare() と execute*() により、 クエリ実行時に性能の向上と柔軟性の向上を得られます。 準備/実行モードは、ひとつの等しいクエリに さまざまな値を投入して何度も実行しなければならない場合 (例えばデータベースへのアドレスリストの追加など) に有用です。

準備/実行モードは、 SQL 構文の異なる複数のデータベースをサポートする際にも有用となります。 INSERT の構文が異なる二種類ののデータベースをサポートする場合を想像してみて下さい。
db1: INSERT INTO tbl_name (col1, col2) VALUES (expr1, expr2)
db2: INSERT INTO tbl_name SET col1=expr1, col2=expr2
スクリプトを複数の文法に対応させるために、 以下のようなクエリを有する配列を作成することが可能です。
$statement['db1']['INSERT_PERSON'] = 'INSERT INTO person
    (surname, name, age) VALUES (?, ?, ?)';

$statement['db2']['INSERT_PERSON'] = 'INSERT INTO person
    SET surname=?, name=?, age=?';

準備

上記の特徴を使用するために、2ステップ進まなければなりません。 ひとつめに命令文を準備することです。 ふたつめはそれを実行することです。

まずはじめに、汎用の SQL 文を prepare() しなければなりません。 汎用の命令文を作成する方法は、通常の SQL クエリを書く際と同様です。

SELECT surname, name, age
    FROM person
    WHERE name = 'name_to_find' AND age < age_limit
次に、実行時に渡されるリテラル値を "プレースホルダ" に置き換えます。
SELECT surname, name, age
    FROM person
    WHERE name = ? AND age < ?
次に、この SQL 文を prepare() に渡し、返される ステートメントハンドルを用いて、 execute() をコールします。

prepare() は、さまざまな型の プレースホルダ (ワイルドカードとも言われる) を処理できます。

? - (推奨されます) 文字列や数値のようなスカラー値を意味します。 データベースの要求に応じ、値のエスケープおよびクォートを 自動的に行います。
! - スカラー値を意味し、"そのまま"命令文に挿入されます。
& - 既存のファイル名を要求とし、このファイルの内容を命令文に含まれます。 (例えば、 データベース内にグラフィックファイルのバイナリデータを 保存するといった場合)

それらがプレースホールダーとして解釈されることは望まなければ、 プレースホールダー文字を回避するためにバックスラッシュを使用します。
UPDATE foo SET col=? WHERE col='over \& under'

実行

命令文を準備した後に、クエリを実行することができます。 これは、準備した文に変数を割り当てることを意味します。 これをするには、 execute() は prepare() から返される命令文ハンドル、値を割り当てた配列の 2 つの引数を要求します。

例 33-1execute() にスカラーを渡す

<?php
// $db という名前の DB オブジェクトが作成済みであると仮定します...
$sth = $db->prepare('INSERT INTO numbers (number) VALUES (?)');
$db->execute($sth, 1);
$db->execute($sth, 8);
?>

プリペアドステートメントに複数のプレースホルダが含まれる場合は、 その値を配列で execute() に渡さなければなりません。 配列の最初のエントリが最初のプレースホルダを、 ふたつめが 2 番目のプレースホルダを、といったようになります。 その順番は使用されたプレースホルダの型には依存しません。

例 33-2execute() に配列を渡す

<?php
// $db という名前の DB オブジェクトが作成済みであると仮定します...
$sth = $db->prepare('INSERT INTO numbers VALUES (?, ?, ?)');

$data = array(1, 'one', 'en');
$db->execute($sth, $data);
?>

警告

$data に渡す値は、リテラルである必要があります。 SQL 関数 (例えば CURDATE() など) を渡さないでください。 実行時に処理される SQL 関数は、プリペアドステートメント内に記述する 必要があります。同様に、識別子 (すなわち テーブル名およびカラム名) も渡すことはできません。なぜなら、それらの名前は準備の段階で 検証されるものだからです。

複数回の実行

DB には、複数のクエリを一度に実行する機能が含まれています。 それらを手動で実行するかわりに、以下のようにします。

例 33-3execute() に配列を渡す

// $db という名前の DB オブジェクトが作成済みであると仮定します...
$alldata = array(array(1, 'one', 'en'),
                 array(2, 'two', 'to'),
                 array(3, 'three', 'tre'),
                 array(4, 'four', 'fire'));
$sth = $db->prepare('INSERT INTO numbers VALUES (?, ?, ?)');
foreach ($alldata as $row) {
    $db->execute($sth, $row);
}
これは、4 件のクエリを発行します。
INSERT INTO numbers VALUES ('1', 'one', 'en')
INSERT INTO numbers VALUES ('2', 'two', 'to')
INSERT INTO numbers VALUES ('3', 'three', 'tre')
INSERT INTO numbers VALUES ('4', 'four', 'fire')
上の例のように foreach を明示的に行うことを避けるため、 executeMultiple() を使用することができます。

例 33-4 execute()の代わりに executeMultiple()を使用する

// $db という名前の DB オブジェクトが作成済みであると仮定します...
$alldata = array(array(1, 'one', 'en'),
                 array(2, 'two', 'to'),
                 array(3, 'three', 'tre'),
                 array(4, 'four', 'fire'));
$sth = $db->prepare('INSERT INTO numbers VALUES (?, ?, ?)');
$db->executeMultiple($sth, $alldata);

結果は同じです。 もしレコードの1つが失敗した場合、未実行のクエリは実行されません。

execute*() の返す値は、以下の 3 種類です。 結果を返すクエリ (例えば SELECT クエリなど) の場合は新しい DB_result オブジェクト、 データを操作するクエリ (例えば INSERT クエリなど) の場合は DB_OK、 あるいは失敗した場合には DB_Error オブジェクトを返します。

前のページ | ホーム | 次のページ
導入 - 結果 | 上に戻る | 導入 - autoPrepare & autoExecute

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入 - 結果

導入 - 結果 -- クエリ結果からデータを取得する

説明

クエリの結果から行を取得する

DB_result オブジェクトは、結果セットの行からデータを取得する関数を fetchRow() と fetchInto() の 2 種類提供します。

fetchRow() は、行のデータを返します。 fetchInto() は、指定した変数に行のデータを代入して DB_OK を返します。

これらのメソッドがコールされるたびに、結果ポインタが次の行に移動します。 結果セットの最後に到達した場合には NULL が返されます。

エラーが発生した場合には DB_Error が返されます。

例 33-1結果セットの取得

<?php
// プログラムの最初で、$db という名前の
// 有効な DB オブジェクトを作成します...
require_once 'DB.php';

$db =& DB::connect('pgsql://usr:pw@localhost/dbnam');
if (PEAR::isError($db)) {
    die($db->getMessage());
}

// 何らかのデータを取得します...
$res =& $db->query('SELECT * FROM mytable');

// 各行のデータの取得を、
// 最後の行に到達するまで続けます
while ($res->fetchInto($row)) {
    // DB のデフォルトのフェッチモードが DB_FETCHMODE_ORDERED であると仮定します
    echo $row[0] . "\n";
}

// あるいは、fetchRow() を使用して同じ処理を行うことも可能です
// while ($row =& $res->fetchRow()) {
//     // DB のデフォルトのフェッチモードが DB_FETCHMODE_ORDERED であると仮定します
//     echo $row[0] . "\n";
// }
?>

取得した行の形式

クエリ結果の行から取得されるデータの構造は、 数値添字の配列 (カラム番号をキーとする)・ 連想配列 (カラム名をキーとする)・ オブジェクト (カラム名をプロパティとする) の 3 種類のうちのいずれかとなります。

DB_FETCHMODE_ORDERED (デフォルト)
Array
(
    [0] => 28
    [1] => hi
)

DB_FETCHMODE_ASSOC
Array
(
    [a] => 28
    [b] => hi
)

DB_FETCHMODE_OBJECT
stdClass Object
(
    [a] => 28
    [b] => hi
)

注意: 同名のカラムがクエリ内に複数含まれており (例えば、同名のカラムを持つ複数のテーブルを連結した場合など)、 かつフェッチモードが DB_FETCHMODE_ASSOC あるいは DB_FETCHMODE_OBJECT の場合、その名前が最後に 現れたカラムのデータが返されます。この問題を回避するための 方法は、2 種類あります。

People.Name AS PersonName のように、クエリでエイリアスを使用する
フェッチモードを DB_FETCHMODE_ORDERED に変更する

豆知識: このような問題に遭遇する場合は、たいていデータベーススキーマの 設計に問題があります。データが不必要に重複していたり、 違う種類のデータに同じ名前をつけているなどが考えられます。

形式を設定する

フェッチメソッドをコールするたびに毎回フェッチモードを設定することも できますし、 setFetchMode() メソッドを使用して DB インスタンス全体に適用されるデフォルトのフェッチモードを 設定することもできます。

例 33-2フェッチモードを毎回設定する

<?php
// $db という名前の DB オブジェクトが作成済みであると仮定します...
$res =& $db->query('SELECT * FROM users');

while ($res->fetchInto($row, DB_FETCHMODE_ASSOC)) {
    echo $row['id'] . "\n";
}
?>

例 33-3デフォルトのフェッチモードを変更する

<?php
// $db という名前の DB オブジェクトが作成済みであると仮定します...
$db->setFetchMode(DB_FETCHMODE_ASSOC);

$res =& $db->query('SELECT * FROM users');

while ($res->fetchInto($row)) {
    echo $row['id'] . "\n";
}
?>

数字で行を取得する

PEAR DB のフェッチシステムは、ステートメントで追加のパラメータを 指定することもサポートしています。 このため、結果から番号により行を取得することが可能です。 これは、 (例えば、ページングを行う HTML リストを作成する場合のように) 結果全体の部分集合の表示のみを行いたい場合や、 特別な順番でレコードを取得する場合等に特に便利です。

例 33-4数字で取得する

<?php
// $db という名前の DB オブジェクトが作成済みであると仮定します...

// 取得を開始する行
$from = 50;

// ページ毎の結果の数
$resPage = 10;

// このページで最後に取得した行
$to = $from + $resPage;

foreach (range($from, $to) as $rowNum) {
    if (!$res->fetchInto($row, DB_FETCHMODE_ORDERED, $rowNum)) {
        break;
    }
    echo $row[0] . "\n";
}
?>

結果セット全体を取得する

DB_common オブジェクトでは、データの取得を簡単に行うための メソッドをいくつか提供しています。これは、指定したクエリ文字列を 実行し、返された情報を PHP のデータ形式に取得し、取得結果を開放する という手順を組み合わせて実行するもので、 getOne()、 getRow()、 getCol()、 getAssoc() および getAll() が該当します。

結果セットを解放する

結果セットを使用し終えた後、もしスクリプトをもうしばらく実行させる のであれば、メモリを節約するために結果セットを開放することを 推奨します。これを行うには free() を使用します。

例 33-5開放する

<?php
// $db という名前の DB オブジェクトが作成済みであると仮定します...
$res =& $db->query('SELECT name, address FROM clients');
while ($res->fetchInto($row)) {
    echo $row['name'] . ', ' . $row['address'] . "\n";
}
$res->free();
?>

クエリ結果から更に情報を取得する

DB には、クエリの結果セット自身についての有用な情報を 取得するための方法が 4 種類あります。

例 33-6 numRows() は、 SELECT クエリの結果に含まれる行の数を返します。

<?php
// $db という名前の DB オブジェクトが作成済みであると仮定します...
$res =& $db->query('SELECT * FROM phptest');
echo $res->numRows();
?>

例 33-7 numCols() は、 SELECT クエリの結果に含まれるカラムの数を返します。

<?php
// $db という名前の DB オブジェクトが作成済みであると仮定します...
$res =& $db->query('SELECT * FROM phptest');
echo $res->numCols();
?>

例 33-8 affectedRows() は、データを変更するクエリ (INSERT、 UPDATE あるいは DELETE) により変更された行の数を返します。

<?php
// この文は結果オブジェクトを返さないことを覚えておきましょう
$db->query('DELETE * FROM clients');
echo 'I have deleted ' . $db->affectedRows() . ' clients';
?>

例 33-9 tableInfo() は、 SELECT クエリの結果のカラムに関する情報を 連想配列で返します。

<?php
// $db という名前の DB オブジェクトが作成済みであると仮定します...
$res =& $db->query('SELECT * FROM phptest');
print_r($db->tableInfo($res));

// この方法は、 DB 1.6.0 以降で動作します。
// それより前のバージョンでは、下の構文を使用します。
print_r($res->tableInfo());
?>

エラーをチェックする

isError() を使用して、 返された処理結果が DB_Error オブジェクトでないかどうかを 確認することを忘れないようにしてください。

前のページ | ホーム | 次のページ
導入 - クエリ | 上に戻る | 導入 - 準備と実行

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入 - 移植性

導入 - 移植性 -- データベースの移植性に関する機能

説明

データベース管理システム(DBMS)は、 それぞれそれ独自の振る舞いを持っています。 例えば、いくつかのデータベースは、 それらの出力でのフィールド名を大文字化や小文字、 一方でそのままにしておきます。 これらのクセは、 別のサーバータイプにあなたのスクリプトの実装を困難にします。 あなたのプログラムが変更せずにDBMSの間で切りえられるように、 PEAR DBは差を克服するために努めます。

設定オプション portability を使用することで、 どのポータビリティモードが可能になるかを制御します。 設定オプションは、 connect() と setOption() で設定します。

ポータビリティモードはビット演算で、 |を結合に使用し、 ^で削除をすることが出来ます。 下記にあるこれらの使用例を参照してください。

ポータビリティモード定数

  • DB_PORTABILITY_ALL

    総てのポータビリティ機能を有効にします。

  • DB_PORTABILITY_DELETE_COUNT

    レコードの削除数を強制的に報告します。単純な DELETE FROM tablename のクエリを行なう時、削除された列の数を数えない DBMS も存在します。 このモードは、DELETE のクエリの最後に WHERE 1=1 を加えることにより、 カウントを知らせるように DBMS を騙します。 queries.

  • DB_PORTABILITY_ERRORS

    他の DBMS のものと互換性のあるドライバのエラーメッセージを作ります。

    表 33-1エラーコード再マップ

    ドライバ | 説明 | 旧定数 | 新定数
    mysql, mysqli | ユニークキーおよび主キー制約 | DB_ERROR_ALREADY_EXISTS | DB_ERROR_CONSTRAINT
    mysql, mysqli | 非 NULL 制約 | DB_ERROR_CONSTRAINT | DB_ERROR_CONSTRAINT_NOT_NULL
    odbc(access) | MS の ODBC ドライバは、'no_such_field' の際に誤って コード 07001 と報告します。 このコードは、実際には 'too few parameters' を意味します。 このオプションがオンの場合、そのコードは再マップされます。 | DB_ERROR_MISMATCH | DB_ERROR_NOSUCHFIELD

  • DB_PORTABILITY_LOWERCASE

    get*()、fetch*() と tableInfo() 使用する場合、 テーブルとフィールドの名前を小文字に変換します。

  • DB_PORTABILITY_NONE (デフォルト)

    ポータビリティ機能をすべて切ります。

  • DB_PORTABILITY_NULL_TO_EMPTY

    get*() および fetch*() によるデータ出力で NULL 値があった場合に、それを空の文字列に変換します。 大半の DBMS は空の文字列と NULL を区別しますが、Oracle は 空の文字列を NULL と解釈します。そのためにこの定数が必要となります。

  • DB_PORTABILITY_NUMROWS

    numRows() を Oracle で動作させるハックを有効にします。

  • DB_PORTABILITY_RTRIM

    get*() と fetch*() の出力を、 右トリミングします。

過去との互換性

この機能のうちいくつかは、廃止予定である optimize オプションによって処理されます。 過去との互換性を確保するため、もしこのオプションが portability に設定されていた場合は 以下のデータベースでこれらのポータビリティモードを有効にします。

  • oci8: DB_PORTABILITY_LOWERCASE および DB_PORTABILITY_DELETE_COUNT

  • fbsql, mysql, mysqli, sqlite: DB_PORTABILITY_DELETE_COUNT

optimize オプションが performance にセットされる場合、 ポータビリティモードは DB_PORTABILITY_NONE に切り替えられます。

例

例 33-1接続に移植性オプションをすべてつける

<?php
require_once 'DB.php';

$dsn = 'mysql://user:password@host/database'
$options = array(
    'debug'       => 2,
    'portability' => DB_PORTABILITY_ALL,
);

$db =& DB::connect($dsn, $options);
if (PEAR::isError($db)) {
    die($db->getMessage());
}
?>

例 33-2 ポータビリティオプションの小文字化とトリミングを可能にするために、 setOption()を使用する

<?php
// $db という名前の DB オブジェクトが作成済みであると仮定します...
$db->setOption('portability',
        DB_PORTABILITY_LOWERCASE | DB_PORTABILITY_RTRIM);
?>

例 33-3 トリミング以外のポータビリティオプションをすべて可能にするために、 setOption()を使用する

<?php
// $db という名前の DB オブジェクトが作成済みであると仮定します...
$db->setOption('portability',
        DB_PORTABILITY_ALL ^ DB_PORTABILITY_RTRIM);
?>
前のページ | ホーム | 次のページ
導入 - autoPrepare & autoExecute | 上に戻る | 導入 - シーケンス

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入 - クエリ

導入 - クエリ -- クエリを実行する

説明

PEAR DB は、データベースに対するクエリを実行するための方法をいくつか 提供しています。一番直接的な方法は query() です。これは SQL クエリ文字列を 引数として受け取ります。返される可能性のある値は以下の 3 種類です。 結果を返すクエリ (例えば SELECT クエリなど) の場合は新しい DB_result オブジェクト、 データを操作するクエリ (例えば INSERT クエリなど) の場合は DB_OK、 あるいは失敗した場合には DB_Error オブジェクトを返します。

例 33-1クエリを実行する

<?php
// プログラムの最初で、$db という名前の
// 有効な DB オブジェクトを作成します...
require_once 'DB.php';

$db =& DB::connect('pgsql://usr:pw@localhost/dbnam');
if (PEAR::isError($db)) {
    die($db->getMessage());
}

// クエリを実行します...
$res =& $db->query('SELECT * FROM clients');

// 結果がエラーでないか常にチェックして下さい
if (PEAR::isError($res)) {
    die($res->getMessage());
}
?>

パラメータ $params を指定しており、かつ
クエリでプレースホルダを使用している場合は、
query() は

 prepare() および

 execute() に代わるものとして使用されます。

例 33-2スカラパラメータを含むクエリを準備・実行モードで使用する方法

<?php
// $db という名前の DB オブジェクトが作成済みであると仮定します...
$sql  = 'select * from clients where clientid = ?';
$data = 53;

$res =& $db->query($sql, $data);

// 結果がエラーでないか常にチェックして下さい
if (PEAR::isError($res)) {
    die($res->getMessage());
}
?>

例 33-3配列パラメータを含むクエリを準備・実行モードで使用する方法

<?php
// $db という名前の DB オブジェクトが作成済みであると仮定します...
$sql  = 'select * from clients where clientid = ? and statusid = ?';
$data = array(53, 4);

$res =& $db->query($sql, $data);

// 結果がエラーでないか常にチェックして下さい
if (PEAR::isError($res)) {
    die($res->getMessage());
}
?>
前のページ | ホーム | 次のページ
導入 - 接続 | 上に戻る | 導入 - 結果

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入 - シーケンス

導入 - シーケンス -- シーケンスとオートインクリメント

説明

シーケンスは、データレコード用にユニークな ID を取得する手段です。 多くの業務を例えば MySQL で行っている場合、シーケンスは、 AUTO_INCREMENT を行う別の手段と考えであると考えて下さい。

シーケンス処理はかなり簡単で、最初に ID をリクエストし、 作成する新規レコードの ID フィールドに値を挿入します。 全てのテーブルに複数のシーケンスを有することが可能です。 ただし、特定のテーブルについては 同じシーケンスを常に使用する必要があることに注意して下さい。 このユニークな ID の値を取得するには、nextId() を使用してください。 もし、シーケンスが存在しない場合は、自動で作成されます。

シーケンスは、 nextId() がコールされるたびに 自動でインクリメントされます。

例 33-1シーケンスの使用法

<?php
// $db という名前の DB オブジェクトが作成済みであると仮定します...
$id = $db->nextId('mySequence');
if (PEAR::isError($id)) {
    die($id->getMessage());
}

// INSERT クエリで ID を使用します
$res =& $db->query("INSERT INTO myTable (id, text) VALUES ($id, 'foo')");
?>

注意

警告

PEAR DB のシーケンスメソッドを使用する場合には、シーケンスの作成も 含めたすべての処理にこれらのメソッドを用いることを強く推奨します。 DBMS で直接作成したシーケンスに対して PEAR DB のメソッドで アクセスすることは避けてください。

もし何らかの理由があってこれが避けられない場合には、 PEAR DB のすべてのシーケンスメソッドに渡される引数 $seq_name は、DB が元となる DBMS をコールする 前に変更されるということを知っておいてください。

$seq_name は、PHP の sprintf() 関数を使用して渡されます。この際に seqname_format オプションを sprintf() のフォーマット引数として使用します。 デフォルトの seqname_format は %s_seq です。例えば person_id_sequence を $seq_name に指定したとすると、シーケンスの 作成/アクセス/更新の際に PEAR DB はその名前を person_id_sequence_seq に変更します。

seqname_format は、 connect() の際か、あるいは setOption() を使用して変更可能です。

参照

createSequence()、

nextId()、

dropSequence()

前のページ | ホーム | 次のページ
導入 - 移植性 | 上に戻る | DB

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB

目次
Introduction - DSN -- The Data Source Name
Introduction - Connect -- Connecting and disconnecting a database
Introduction - Query -- Performing a query against a database.
Introduction - Fetch -- Fetching rows from the query
Introduction - Sequences -- Database sequences
Introduction - Execute -- Prepare & Execute/ExecuteMultiple
MDB -- Main class
MDB::connect() -- connects to database
MDB::isError() -- checks for an error
MDB_Common -- Interface for database access
MDB_Common::affectedRows() -- Number of affected rows
MDB_Common::createSequence() -- create a new sequence
MDB_Common::currId() -- returns the current free id of a sequence
MDB_Common::disconnect() -- disconnect from a database
MDB_Common::dropSequence() -- deletes a sequence
MDB_Common::execute() -- executes a prepared SQL statment
MDB_Common::executeQuery() -- executes a prepared SQL statment
MDB_Common::executeMultiple() -- repeated execution of a prepared SQL statment
MDB_Common::fetchAll() -- fetch result set as a nested array
MDB_Common::fetchCol() -- Fetch a single column
MDB_Common::fetchOne() -- fetch the first column of the first row
MDB_Common::fetchRow() -- fetch the first row
MDB_Common::fetchInto() -- fetch a row into a variable
MDB_Common::freeResult() -- delete the result set
MDB_Common::getAll() -- Fetch all rows
MDB_Common::getAssoc() -- fetch result set as associative array
MDB_Common::getCol() -- Fetch a single column
MDB_Common::getOne() -- fetch the first column of the first row
MDB_Common::getRow() -- fetch the first row
MDB_Common::getTextValue() -- quotes a string
MDB_Common::limitQuery() -- send a limited query to the database
MDB_Common::nextId() -- returns the next free id of a sequence
MDB_Common::numCols() -- get number of columns
MDB_Common::numRows() -- get number of rows
MDB_Common::prepareQuery() -- prepares a SQL statment
MDB_Common::query() -- send a query to the database
MDB_Common::queryAll() -- fetch result set as a nested array
MDB_Common::queryCol() -- Fetch a single column
MDB_Common::queryOne() -- fetch the first column of the first row
MDB_Common::queryRow() -- fetch the first row
MDB_Common::setFetchMode() -- sets the default fetch mode
MDB_Common::tableInfo() -- get table info from a query
MDB_Error -- MDB Error object

A unified API for accessing databases, based on user provided meta data.

前のページ | ホーム | 次のページ
導入 | 上に戻る | Introduction - DSN

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB2

目次
導入 -- 機能概要
DSN -- データソース名 (Data Source Name)
接続 -- データベースへの接続および接続の解除
クエリ -- クエリの実行
結果 -- クエリ結果からのデータの取得
クォートおよびエスケープ -- 値を適切にクォートしてクエリを作成する
準備と実行 -- プリペアドステートメント
トランザクション -- トランザクションの処理
モジュール -- モジュールの読み込みとコール
autoPrepare & autoExecute -- SQL 文を自動的に準備・実行する
可搬性 -- データベースの可搬性に関する機能
シーケンス -- シーケンスおよび自動採番
FAQ -- よくある質問

データベースへのアクセスおよび SQL の作成を データベースの違いにかかわらず同じように行うための、統一 API です。

前のページ | ホーム | 次のページ
MDB_Error | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


FAQ

FAQ -- よくある質問

エラーになります!

PEAR_Error (あるいは MDB2_Error オブジェクト) を受け取った場合は、まず getMessage() と getUserInfo() を試してみましょう。これらを使用すると、 エラーの原因についてのより詳細な情報が得られます。

"MDB2 Error: not found"

MDB2 のインスタンスを作成した後にこのエラーが発生した場合は、 MDB2 のデータベースドライバが何もインストールされていないことを意味します。 たいていの人は一種類のデータベースしか使用しないでしょうから、 15 のドライバファイルをすべてインストールする必要はありません。

たとえば SQLite を使用したい場合は、 pear install MDB2_Driver_sqlite とすれば動くようになります。

PEAR のパッケージ一覧で MDB2 のドライバを検索 してみましょう。

"pear/MDB2_Driver_XXX requires php extension XXX"

ドライバをインストールする際にこのエラーが発生した場合は、 そのインストーラが読み込んだ php.ini で "XXX" 拡張モジュールが見つからなかったことを表します。 単に拡張モジュールのインストールを忘れているだけなのか、 あるいは関連する php.ini でその拡張モジュールを有効にし忘れているかのどちらかでしょう。 通常は、CLI 用とその他の SAPI 用とでは別の php.ini を使用することに注意しましょう。

そのいずれでもない場合は、 pear install -nodeps MDB2_Driver_XXX とすればうまく動きます。

前のページ | ホーム | 次のページ
シーケンス | 上に戻る | MDB_QueryTool

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- 機能概要

MDB2 について

PEAR MDB2 は、PEAR DB と Metabase php データベース抽象化レイヤーを統合したものです。

サポートしている RDBMS に対する共通の API を提供します。 他のデータベース抽象化レイヤーとのもっとも大きな違いは、 MDB2 が可搬性をもっとも重視しているということです。 MDB2 の機能の中には、次のようなものがあります。

  • オブジェクト指向のクエリ API

  • データベースサーバを指定する方法として、 DSN (データソース名) あるいは配列を使用可能

  • データ型の抽象化および必要に応じたデータ型の変換

  • 可搬性の高いエラーコード

  • シーケンシャルあるいは非シーケンシャルな行の取得だけでなく、 大量データの一括取得も可能

  • クエリのバッファリング機能

  • 数値添字配列、あるいは連想配列形式での行の取得

  • プリペア/実行 (バインド) のエミュレーション

  • シーケンスのエミュレーション

  • Replace のエミュレーション

  • 限定的なサブクエリのエミュレーション

  • 取得行数の制限のサポート

  • トランザクションのサポート

  • ラージオブジェクトのサポート

  • インデックス/ユニークキーのサポート

  • 高度な機能を必要に応じて組み込むための、モジュール化されたフレームワーク

  • テーブル情報とのインターフェイス

  • RDBMS の管理用メソッド (create、drop、alter)

  • PEAR フレームワークとの完全な統合

  • PHPDoc 形式の API ドキュメント

現在は以下の RDBMS をサポートしています。

  • MySQL

  • MySQLi (PHP5 のみ)

  • PostgreSQL

  • Oracle

  • Frontbase (メンテナンスされていません)

  • Querysim

  • Interbase/Firebird (PHP5 のみ)

  • MSSQL

  • SQLite

外部のサポートリソース

  • 外部のドキュメント

前のページ | ホーム | 次のページ
MDB2 | 上に戻る | DSN

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


autoPrepare & autoExecute

autoPrepare & autoExecute -- SQL 文を自動的に準備・実行する

説明

目的

autoPrepare() および autoExecute() は、うんざりするような INSERT、UPDATE、DELETE や SELECT 文を書く手間を軽減します。 これらの SQL 文を使用していると、例えばテーブルにフィールドを追加した場合などの メンテナンスが大変ですよね? autoPrepare() および autoExecute() を使用するには、 Extended モジュールを 使用する必要があります。

'user' テーブルに次の 3 つのフィールド (id, name そして country) があるとしましょう。 きっと、こんな SQL クエリを書くことになるでしょう。
INSERT INTO table (id, name, country) VALUES (?, ?, ?)
UPDATE table SET id=?, name=?, country=? WHERE ...
ここでフィールドを追加 (例えば 'birthYear' など) したとすると、 クエリを書き直さなければなりません。これはうんざりするような作業であり、 (ひとつだけクエリの修正を忘れてしまうなどの) バグの元となります。

autoPrepare

autoPrepare() を使用すると、insert や update、delete そして select といったクエリを書く必要がなくなります。例を見てみましょう。
<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$table_name   = 'user';
$table_fields = array('id', 'name', 'country');
$types = array('integer', 'text', 'text');

$mdb2->loadModule('Extended');
$sth = $mdb2->extended->autoPrepare($table_name, $table_fields,
                        MDB2_AUTOQUERY_INSERT, null, $types);

if (PEAR::isError($sth)) {
    die($sth->getMessage());
}
?>
この例では、 autoPrepare() は以下の SQL クエリを作成します。
INSERT INTO user (id, name, country) VALUES (?, ?, ?)
それから、そのクエリを用いて prepare() をコールします。

レコードを追加するには execute() あるいは executeMultiple() を次のように使用します。
<?php
// ... 上の例からの続きです ...
$table_values = array(1, 'Fabien', 'France');

$res =& $sth->execute($table_values);

if (PEAR::isError($res)) {
    die($res->getMessage());
}
?>
どうです? SQL の INSERT 文を一切書く必要がないのです! そしてこれは UPDATE や DELETE でも同様に動作します。ただし、柔軟性を確保するため、クエリの WHERE 句だけは書かなければなりません。 例えばこのようになります。
<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$table_name   = 'user';

$mdb2->loadModule('Extended');
$sth = $mdb2->extended->autoPrepare($table_name, null,
                        MDB2_AUTOQUERY_DELETE, 'id = '.$mdb2->quote(1, 'integer'));

if (PEAR::isError($sth)) {
    die($sth->getMessage());
}

$res =& $mdb2->execute($sth, $table_values);

if (PEAR::isError($res)) {
    die($res->getMessage());
}
?>
autoPrepare() は、次のようなクエリを作成します。
UPDATE user SET name=?, country=? WHERE id=1
それから、そのクエリを使用して prepare() をコールします。

注意しなければならないのは、もし WHERE 句を指定しなければ、 テーブルの全レコードが更新されてしまうということです。

autoExecute

insert、update、delete あるいは select クエリを実行する最も簡単な方法が、 autoExecute() をコールすることです。 これは autoPrepare() と execute() を組み合わせたものです。

必要なのは連想配列だけです。連想配列のキーにフィールド名、 対応する値としてそのフィールドの値を指定します。 これは、insert や update クエリの場合にのみ影響します。 例を見てみましょう。
<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$table_name = 'user';

$fields_values = array(
    'id'      => 1,
    'name'    => 'Fabien',
    'country' => 'France'
);
$types = array('integer', 'text', 'text');

$mdb2->loadModule('Extended');
$affectedRows = $mdb2->extended->autoExecute($table_name, $fields_values,
                        MDB2_AUTOQUERY_INSERT, null, $types);

if (PEAR::isError($affectedRows)) {
    die($affectedRows->getMessage());
}
?>
たったこれだけです! これで、次のクエリが作成され、そして実行されます。
INSERT INTO user (id, name, country)
  VALUES (1, 'Fabien', 'France')

UPDATE クエリについても同様です。
<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$table_name = 'user';

$fields_values = array(
    'name'    => 'Fabien',
    'country' => 'France'
);
$types = array('text', 'text');

$mdb2->loadModule('Extended');
$affectedRows = $mdb2->extended->autoExecute($table_name, $fields_values,
                        MDB2_AUTOQUERY_UPDATE, 'id = '.$mdb2->quote(1, 'integer'), $types);

if (PEAR::isError($affectedRows)) {
    die($affectedRows->getMessage());
}
?>
これで、以下のクエリが作成され、そして実行されます。
UPDATE user SET name='Fabien', country='France'
  WHERE id = 1

注意しなければならないのは、もし WHERE 句を指定しなければ、 テーブルの全レコードが更新されてしまうということです。

これが DELETE クエリの例です。
<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$table_name = 'user';

$mdb2->loadModule('Extended');
$affectedRows = $mdb2->extended->autoExecute($table_name, null,
                        MDB2_AUTOQUERY_DELETE, 'id = '.$mdb2->quote(1, 'integer'));

if (PEAR::isError($affectedRows)) {
    die($affectedRows->getMessage());
}

?>
これで、以下のクエリが作成され、そして実行されます。
DELETE FROM user WHERE id = 1

最後に SELECT クエリの例を見てみましょう。
<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$table_name = 'user';

// 配列を指定しない場合は、'*' を使用してすべてのフィールドを取得します。
// その場合、この変数を true に設定すると自動的に型の判別を行います。
$result_types = array(
    'name'    => 'text',
    'country' => 'text'
);

$mdb2->loadModule('Extended');
$res = $mdb2->extended->autoExecute($table_name, null,
                        MDB2_AUTOQUERY_SELECT, 'id = '.$mdb2->quote(1, 'integer'),
                        null, true, $result_types);

if (PEAR::isError($res)) {
    die($res->getMessage());
}

$row = $res->fetchRow();

?>
これで、以下のクエリが作成され、そして実行されます。
SELECT name, country FROM user WHERE id = 1

警告

$data に渡す値はリテラルでなければなりません。 SQL の関数 (例えば CURDATE() など) を使用しないでください。 実行時に使用する SQL 関数は、プリペアドステートメントに 埋め込んでおく必要があります。

参照

"導入 - モジュール"

前のページ | ホーム | 次のページ
モジュール | 上に戻る | 可搬性

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


接続

接続 -- データベースへの接続および接続の解除

説明

データベースオブジェクトを作成するには、MDB2 のいくつかのメソッドを使用します。

表 33-1接続用の関数

関数 | 要点 | 説明
factory() | 効率的 (Efficient) | 新しい MDB2_Driver_Common のインスタンスを作成しますが、 必要になるまでデータベースには接続しません。 実際の接続を確立するのを、後に引き伸ばします。これを、怠惰な (lazy) 接続といいます。これを使用する価値があるのは、 たとえばアプリケーション内部で接続をキャッシュしており、 新たな接続を確立する必要がない場合などです。
connect() | 熱血型 (Eager) | 新しい MDB2_Driver_Common のインスタンスを作成し、 すぐにデータベースとの接続を確立します。 接続時に問題が発生した場合は、すぐにエラーが発生します。
singleton() | 使用可能 (Available) | MDB2_Driver_Common のインスタンスを返します。新しい MDB2_Driver_Common オブジェクトが作成されるのは最初に factory() を使用したときだけで、それ以降に singleton がコールされると 既存のオブジェクトへの参照が返されます。 このメソッドは、データベースオブジェクトをグローバルに使用したい場合にお勧めです。
データベースに接続するには、 factory()、 connect() あるいは singleton() のいずれかの関数を使用します。 これらの関数には、最初のパラメータとして DSN を指定しなければなりません。このパラメータは、 文字列あるいは配列のどちらの形式でも指定できます。 配列を使用する場合は、配列の内容がデフォルトの情報にマージされます。
$dsn = array(
    'phptype'  => false,
    'dbsyntax' => false,
    'username' => false,
    'password' => false,
    'protocol' => false,
    'hostspec' => false,
    'port'     => false,
    'socket'   => false,
    'database' => false,
    'new_ink'  => false,
);
あなたが設定した要素がこのデフォルトを上書きし、残りはデフォルトのままとなります。

二番目のパラメータは、オプションの配列 $options で、このパッケージ用の実行時設定を指定します。

表 33-2オプションの一覧

名前 | 型 | 説明
ssl | boolean | 接続に ssl を使用するかどうかを指定します。
field_case | integer | CASE_LOWER あるいは CASE_UPPER のいずれかで、 フィールド名/テーブル名を強制的に小文字/大文字に変換します。
disable_query | boolean | クエリを実行するかどうかを指定します。
result_class | string | 結果セットに使用するクラスです。
buffered_result_class | string | バッファリングした結果セットに使用するクラスで、デフォルトは MDB2_Result_Common です。
result_wrap_class | string | 結果セットをラップするクラスで、デフォルトは MDB2_Result_Common です。
result_buffering | boolean | 結果セットをバッファリングするかどうかを指定します。
fetch_class | string | フェッチモードオブジェクトを使用する場合に用いるクラスです。
persistent | boolean | 持続的な接続を使用するかどうかを指定します。
debug | integer | デバッグレベルを表す数値。
debug_handler | string | デバッグメッセージを受け取る関数/メソッド。
debug_expanded_output | boolean | 過去との互換性のためのオプションで、 デバッグハンドラに詳細な情報を送るかどうかを指定します。
default_text_field_length | integer | テキストフィールドのデフォルトの長さとして使用する値。
lob_buffer_length | integer | LOB バッファの長さ。
log_line_break | string | 改行のフォーマット。
idxname_format | string | インデックス名における '%s' に使用するパターン。
seqname_format | string | シーケンス名における '%s' に使用するパターン。
savepoint_format | string | 自動生成されるセーブポイント名における '%s' に使用するパターン。
seqcol_name | string | シーケンスカラムの名前。
quote_identifier | boolean | check_option の使用時に識別子のクォートを行うかどうか。
use_transactions | boolean | トランザクションを使用するかどうか。
decimal_places | integer | 小数点以下で処理する桁数。
portability | integer | 可搬性に関する定数。
modules | array | __call() で使用する、短いモジュール名と長いモジュール名との対応。
emulate_prepared | boolean | プリペアドステートメントを強制的にエミュレートします。
datatype_map | array | ユーザ定義のデータ型と、その他のプリミティブデータ型との対応。
'datatype_map_callback | array | コールされるコールバック関数/メソッド。

接続に成功すると、データベースクラスの新しいインスタンスを取得できます。 返される値を PEAR::isError() (これは、PEAR_Error およびそのサブクラスを検出します) あるいは MDB2_Driver_Common 独自の isError() で調べることを、強く推奨します。

接続を解除するには、データベースクラスのインスタンスの disconnect() メソッドを使用します。

例 33-1接続および接続の解除

<?php
require_once 'MDB2.php';

$dsn = 'pgsql://someuser:apasswd@localhost/thedb';
$options = array(
    'debug' => 2,
    'result_buffering' => false,
);

$mdb2 =& MDB2::factory($dsn, $options);
if (PEAR::isError($mdb2)) {
    die($mdb2->getMessage());
}

// ...

$mdb2->disconnect();
?>

例 33-2配列形式の DSN を使用した接続

<?php
require_once 'MDB2.php';

$dsn = array(
    'phptype'  => 'pgsql',
    'username' => 'someuser',
    'password' => 'apasswd',
    'hostspec' => 'localhost',
    'database' => 'thedb',
);

$options = array(
    'debug'       => 2,
    'portability' => MDB2_PORTABILITY_ALL,
);

// MDB2::factory() を使用して、インスタンスの作成と
// ホストへの接続を行います。
$mdb2 =& MDB2::connect($dsn, $options);
if (PEAR::isError($mdb2)) {
    die($mdb2->getMessage());
}
?>

SQLite に対して配列形式の DSN に接続する場合、 mode 要素の値は文字列でなければなりません。
<?php
$dsn = array(
    'phptype'  => 'sqlite',
    'database' => 'thedb',
    'mode'     => '0644',
);
?>

例 33-3 配列形式の DSN を使用した、SSL による MySQLi への接続

SSL を使用するには、 $options 配列の要素 ssl を TRUE にしなければなりません。 配列 $dsn の追加要素 (以下の例における key から cipher まで) は必須ではありません。。

<?php
require_once 'MDB2.php';

$dsn = array(
    'phptype'  => 'mysqli',
    'username' => 'someuser',
    'password' => 'apasswd',
    'hostspec' => 'localhost',
    'database' => 'thedb',
    'key'      => 'client-key.pem',
    'cert'     => 'client-cert.pem',
    'ca'       => 'cacert.pem',
    'capath'   => '/path/to/ca/dir',
    'cipher'   => 'AES',
);

$options = array(
    'ssl' => true,
);

// 同じ DSN で接続した既存のインスタンスを取得します。
// 存在しない場合は MDB2::factory() で新しいインスタンスを作成します。
$mdb2 =& MDB2::singleton($dsn, $options);
if (PEAR::isError($mdb2)) {
    die($mdb2->getMessage());
}
?>

例 33-4ソケットを使用した PostgreSQL データベースへの接続

<?php
require_once 'MDB2.php';

$dsn = 'pgsql://someuser:apasswd@unix(/tmp)/thedb';
$options = array(
    'debug'       => 2,
    'portability' => MDB2_PORTABILITY_ALL,
);

$mdb2 =& MDB2::factory($dsn, $options);
if (PEAR::isError($mdb2)) {
    die($mdb2->getMessage());
}
?>

例 33-5シングルトンを使用した接続

<?php
require_once 'MDB2.php';

$dsn = 'pgsql://someuser:apasswd@localhost/thedb';

$mdb2 =& MDB2::singleton($dsn);
if (PEAR::isError($mdb2)) {
    die($mdb2->getMessage());
}

$blah =& new blah();
// 既存のデータベース接続を使用することが可能です
$blah->foo();

$mdb2->disconnect();

class blah
{
    function foo() {
        // 既存のデータベースオブジェクトへの参照を取得します
        $mdb2 =& MDB2::singleton();
        // ...
    }
}
?>

参照

"導入 - 可搬性"、 options、 setOption()、 getOption()

前のページ | ホーム | 次のページ
DSN | 上に戻る | クエリ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DSN

DSN -- データソース名 (Data Source Name)

説明

PEAR::MDB2 でデータベースに接続するには、正しい DSN を作成しなければなりません。 この DSN は、以下のパーツから構成されています。

phptype: PHP で使用するデータベースバックエンド (例えば mysql や pgsql など)
dbsyntax: データベースで使用する SQL の構文など
protocol: 使用する通信プロトコル (例えば tcp や unix など)
hostspec: ホストの指定 (hostname[:port])
database: DBMS サーバ上で使用するデータベース
username: ログイン時のユーザ名
password: ログイン時のパスワード
proto_opts: おそらく protocol と組み合わせて使用する
option: 追加の接続オプションを、URI クエリ文字列形式で指定する。 複数存在する場合は & で連結する。以下の表は、 オプションの一部を示したものです。

表 33-1オプションの一覧

名前 | 説明
charset | クライアントの文字セットを指定できるバックエンドもあります。
new_link | 同じホストから複数回の接続があった場合に、新しい接続を作成しない RDBMS があります。このオプションは、 そのような場合に強制的に新しい接続を作成しようとします。

DSN は、連想配列あるいは文字列のいずれかの形式で指定することができます。 文字列形式で示した DSN は次のようになります。
phptype(dbsyntax)://username:password@protocol+hostspec/database?option=value

さまざまな変化形があります。
phptype://username:password@protocol+hostspec:110//usr/db_file.db
phptype://username:password@hostspec/database
phptype://username:password@hostspec
phptype://username@hostspec
phptype://hostspec/database
phptype://hostspec
phptype:///database
phptype:///database?option=value&anotheroption=anothervalue
phptype(dbsyntax)
phptype

現在サポートしているデータベースバックエンドは次のとおりです。
fbsql  -> FrontBase
ibase  -> InterBase (PHP 5 が必要です)
mssql  -> Microsoft SQL Server (Sybase 用ではありません。PHP を --with-mssql でコンパイルします)
mysql  -> MySQL
mysqli -> MySQL (新しい認証プロトコルをサポートしています) (PHP 5 が必要です)
oci8   -> Oracle 7/8/9
pgsql  -> PostgreSQL
querysim -> QuerySim
sqlite -> SQLite

このような DSN の書式もサポートしています。
phptype(syntax)://user:pass@protocol(proto_opts)/database

database、option の値、 username あるいは password に DSN の区切り文字として使用する文字が含まれている場合は、 それを URI の十六進エンコーディング方式でエスケープします。
: = %3a   / = %2f   @ = %40
+ = %2b   ( = %28   ) = %29
? = %3f   = = %3d   & = %26

警告

中には、すべてのデータベースバックエンドがサポートしているわけではない 機能もあることに注意しましょう。

例

例 33-1ソケットを使用したデータベースへの接続

mysql://user@unix(/path/to/socket)/pear

例 33-2標準以外のポートを使用したデータベースへの接続

pgsql://user:pass@tcp(localhost:5555)/pear

例 33-3Unix マシン上の SQLite への、オプションを使用した接続

sqlite:////full/unix/path/to/file.db?mode=0666

例 33-4Windows マシン上の SQLite への、オプションを使用した接続

sqlite:///c:/full/windows/path/to/file.db?mode=0666

例 33-5SSL を使用した MySQLi での接続

mysqli://user:pass@localhost/pear?key=client-key.pem&cert=client-cert.pem
前のページ | ホーム | 次のページ
導入 | 上に戻る | 接続

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


準備と実行

準備と実行 -- プリペアドステートメント

説明

目的

prepare() および execute() によって、より強力で柔軟性のあるクエリを実行することができます。 準備/実行 モードが有用なのは、 値が違うだけの同じクエリを何度も実行する場合です。 例えば、住所の一覧をデータベースに登録する場合などがこれにあたります。

それ以外に 準備/実行 が有用となる場面としては、 異なる SQL 構文を持つ複数データベースをサポートする場合が考えられます。 二種類のデータベースをサポートする必要があり、それらはそれぞれ INSERT の構文が異なっているとしましょう。
db1: INSERT INTO tbl_name (col1, col2) VALUES (expr1, expr2)
db2: INSERT INTO tbl_name SET col1=expr1, col2=expr2
それぞれに対応するスクリプトを作成するには、 このような形式でクエリを配列にします。
$statement['db1']['INSERT_PERSON'] = 'INSERT INTO person
    (surname, name, age) VALUES (?, ?, ?)';

$statement['db2']['INSERT_PERSON'] = 'INSERT INTO person
    SET surname=?, name=?, age=?';
さらに、Oracle 風の名前つきプレースホルダを使用することも可能です。 名前つきプレースホルダを使用すると、ひとつの文の中で 同じプレースホルダを複数回使用することができます。
$statement['db1']['INSERT_PERSON'] = 'INSERT INTO person
    (surname, name, age) VALUES (:surname, :lastname, :age)';

$statement['db2']['INSERT_PERSON'] = 'INSERT INTO person
    SET surname=:surname, name=:lastname, age=:age';
注意: 標準的でない SQL 構文の使用はお勧めしません。 上の例は、単に「プリペアドステートメントではこんなこともできますよ」 ということを示すためだけのものです。可搬性が高いからという理由で MDB2 を採用されるのなら、標準的な SQL 構文を使うようにしましょう (ヒント: この例の場合、db1 の INSERT のほうが正解です)。

準備 (Prepare)

上の機能を使用するには、二段階の手続きが必要です。まず最初に、 MDB2_Statement_Common クラスのインスタンスを返す文を 準備 (prepare) します。 次に、それを 実行 (execute) します。

最初にすることは、 prepare() を使用して汎用的な SQL 文を準備することです。 手始めに、まず普通の SQL を書いてみます。
SELECT surname, name, age
    FROM person
    WHERE name = 'name_to_find' AND age < age_limit
そして、実行時に指定するリテラル値にあたる部分を "プレースホルダ" に置き換えます。
SELECT surname, name, age
    FROM person
    WHERE name = ? AND age < ?
それから、この SQL 文を prepare() に渡します。 このメソッドはステートメントクラスのインスタンスを返すので、これを使用して execute() をコールします。

prepare() は、さまざまな形式のプレースホルダ (あるいはワイルドカード) をサポートしています。デフォルトでは、すべてのプレースホルダは 文字列として扱われます。しかし、二番目のパラメータとして データ型 の配列を渡すと、 各プレースホルダの型を指定できるようになります。

DML (data manipulation language - INSERT, UPDATE, DELETE) 文は、 データの取得に比べて異なる返り値を持っています。そのため、 prepare() は三番目のパラメータを受け付けます。 DML 文の場合は、これを MDB2_PREPARE_MANIP に設定しなければなりません。データを読み込む際には、 これを MDB2_PREPARE_RESULT あるいは TRUE のいずれかに設定しなければなりません。 MDB2_PREPARE_RESULT の場合は、結果セットの各カラムの データ型 を配列で指定します。 TRUE の場合には、結果セットのデータ型を自動判定させます。

実行 (Execute)

文を準備したら、次に実行します。実行とは、 プリペアドステートメントの変数に値を代入することです。 execute() へ渡す引数として、代入するスカラー値あるいは代入する値の配列を指定します。

例 33-1execute() にスカラーを渡す

<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$sth = $mdb2->prepare('INSERT INTO numbers (number) VALUES (?)', array('integer'), MDB2_PREPARE_MANIP);
$sth->execute(1);
$sth->execute(8);
?>

プリペアドステートメントに複数のプレースホルダが含まれる場合は、 値の配列を execute() に渡さなければなりません。 配列の最初のエントリが最初のプレースホルダ、 二番目のエントリが二番目のプレースホルダ、…… というように対応します。この順番は、使用するプレースホルダの型に依存しません。

例 33-2execute() に配列を渡す

<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$types = array('integer', 'text', 'text');
$sth = $mdb2->prepare('INSERT INTO numbers VALUES (?, ?, ?)', $types, MDB2_PREPARE_MANIP);

$data = array(1, 'one', 'en');
$affectedRows = $sth->execute($data);
?>

名前つきプレースホルダを使用する場合は、データの配列を 連想配列にしなければなりません。 連想配列のキーがプレースホルダの名前に対応します。

例 33-3execute() に配列を渡す

<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$types = array('integer', 'text', 'text');
$sth = $mdb2->prepare('INSERT INTO numbers VALUES (:id, :text, :lang)');

$data = array('id' => 1, 'name' => 'one', 'lang' => 'en');
$affectedRows = $sth->execute($data);
?>

名前つきプレースホルダを使用する場合は、データの配列を 連想配列にしなければなりません。 連想配列のキーがプレースホルダの名前に対応します。

例 33-4execute() に配列を渡す

<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$sth = $mdb2->prepare('SELECT name, lang FROM numbers WHERE id = ?', array('integer'), array('text', 'text'));

$result = $sth->execute(1);
?>

警告

$data に渡す値はリテラルでなければなりません。 SQL の関数 (例えば CURDATE() など) を使用しないでください。 実行時に使用する SQL 関数は、プリペアドステートメントに 埋め込んでおく必要があります。同様に、識別子 (テーブル名やカラム名) も使用できません。なぜなら、これらは準備 (prepare) の段階で処理されるものだからです。

ExecuteMultiple

MDB2 には、複数のクエリを一度に実行する仕組みがあります。 つまり、複数のクエリをひとつひとつ手動で実行するのではなく、このようにします。

例 33-5execute() に配列を渡す

// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$alldata = array(array(1, 'one', 'en'),
                 array(2, 'two', 'to'),
                 array(3, 'three', 'tre'),
                 array(4, 'four', 'fire'));
$sth = $mdb2->prepare('INSERT INTO numbers VALUES (?, ?, ?)');
foreach ($alldata as $row) {
    $mdb2->execute($sth, $row);
}
これは、次の 4 つのクエリを発行します。
INSERT INTO numbers VALUES ('1', 'one', 'en')
INSERT INTO numbers VALUES ('2', 'two', 'to')
INSERT INTO numbers VALUES ('3', 'three', 'tre')
INSERT INTO numbers VALUES ('4', 'four', 'fire')
executeMultiple() を使用すると、上の例のようにわざわざ foreach を使用する必要がなくなります。

例 33-6 Extended モジュールの executeMultiple() を execute() の代わりに使用する

// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$mdb->loadModule('Exended', null, false);
$alldata = array(array(1, 'one', 'en'),
                 array(2, 'two', 'to'),
                 array(3, 'three', 'tre'),
                 array(4, 'four', 'fire'));
$sth = $mdb2->prepare('INSERT INTO numbers VALUES (?, ?, ?)');
$mdb2->extended->executeMultiple($sth, $alldata);

結果は同じです。途中のクエリが失敗すると、 それ以降の未処理のクエリは実行されません。

execute() の返り値には三通りの可能性があります。 結果を返すクエリ (SELECT など) の場合に新しい MDB2_Result_Common オブジェクト、 データを操作するクエリ (INSERT など) の場合に整数値、そして失敗した場合には MDB2_Error オブジェクトが返されます。

データ型

MDB2 は、すべてのドライバにまたがる多くのデータ型をサポートしています。 プレースホルダを準備する際や結果セットに関連するメソッドなどで、 これを設定することができます。 サポートされるデータ型とその書式についての概要は こちら を参照ください。

プリペアドステートメントの開放

プリペアドステートメントの使用を終えた後にもしスクリプトの処理が続くのなら、 メモリを節約するためにプリペアドステートメントを開放するとよいでしょう。 そのために使用するのが free() です。

例 33-7開放

<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$sth = $mdb2->prepare('SELECT name, lang FROM numbers WHERE id = ?', array('integer'), array('text', 'text'));

$result = $sth->execute(1);

$sth->free();
?>

結果の行数の制限および途中の行からの読み込み

結果セットの限定された行数のみを読み書きしたい場合、あるいは 結果セットの途中の行から読み込みを開始したい場合などは setLimit() をコールしてから prepare() をコールします。 limit および　offset は、その次に実行するクエリ発行メソッド あるいはプリペアドステートメントメソッドに対してのみ有効となり、 その後は設定がリセットされます。 これは、MDB2 が内部的に発行するクエリに対しても適用されます。 limit 機能をエミュレートで実現している RDBMS については、 DML 文では limit が動作しないことに注意しましょう。また、 この場合に何のエラーも発生しないことにも注意が必要です。

例 33-8setLimit を使用した prepare

<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
// 10 行目から始め、20 行読み込みます
$mdb2->setLimit(20, 10);
$sth = $mdb2->prepare('SELECT name, lang FROM numbers WHERE group_id = ?', array('integer'), array('text', 'text'));

?>
前のページ | ホーム | 次のページ
クォートおよびエスケープ | 上に戻る | トランザクション

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


結果

結果 -- クエリ結果からのデータの取得

説明

クエリ結果からの個々の行の取得

MDB2_Result_Common オブジェクトには、結果セットの行からデータを取得するための
4 つのメソッドがあります。

 fetchOne()、

 fetchRow()、

 fetchCol() そして

 fetchAll() です。

fetchRow() および fetchOne() は、それぞれ行全体あるいは特定のカラムのフィールドを取得します。 結果ポインタは、これらのメソッドがコールされるたびに次の行に移動します。 結果セットの最後に達した場合は NULL が返されます。

fetchAll() および fetchCol() は、結果セットのすべての行を読み込んで結果ポインタを最後まで移動します。 fetchAll() は行全体のデータを読み込みますが、 fetchCol() は特定のカラムのみを読み込みます。

エラーが発生した場合は MDB2_Error が返されます。

例 33-1結果の取得

<?php
// まずプログラムの最初に、$mdb2 という名前の
// MDB2 オブジェクトを作成します
require_once 'MDB2.php';

$mdb2 =& MDB2::connect('pgsql://usr:pw@localhost/dbnam');
if (PEAR::isError($mdb2)) {
    die($mdb2->getMessage());
}

// 何らかのデータを取得します
$res =& $mdb2->query('SELECT * FROM mytable');

// 各行のデータを順に取得し、
// 行がなくなるまで続けます
while (($row = $res->fetchRow())) {
    // MDB2 のデフォルトのフェッチモードが MDB2_FETCHMODE_ORDERED であるとします
    echo $row[0] . "\n";
}

// while (($one = $res->fetchOne())) {
//     echo $one . "\n";
// }

?>

取得した行の形式

クエリの結果の行から取得したデータは、 数値添字配列 (カラム番号をキーとする)、 連想配列 (カラム名をキーとする) あるいは オブジェクト (カラム名をプロパティとする) の三種類のうちのいずれかの形式となります。

MDB2_FETCHMODE_ORDERED (デフォルト)
Array
(
    [0] => 28
    [1] => hi
)

MDB2_FETCHMODE_ASSOC
Array
(
    [a] => 28
    [b] => hi
)

MDB2_FETCHMODE_OBJECT
stdClass Object
(
    [a] => 28
    [b] => hi
)

注意: クエリの中に同名のカラムが複数含まれており (例えば、同じ名前のカラムがある複数テーブルを JOIN した場合など)、かつフェッチモードが MDB2_FETCHMODE_ASSOC あるいは MDB2_FETCHMODE_OBJECT の場合は、その名前を指定すると 最後に登場したカラムの値が返されます。 この問題を解決するとりあえずの方法としては、次のふたつがあります。

クエリの中で、例えば People.Name AS PersonName のようにエイリアスを使用する。
フェッチモードを MDB2_FETCHMODE_ORDERED に変更する。

豆知識: この問題が発生する場合、 データベースのスキーマに問題があることが多いです。 例えば同じデータが二重に管理されていたり、 異なる内容のデータに同じ名前をつけてしまっていたり といったことが考えられます。

書式設定の方法

fetch メソッドをコールするたびにフェッチモードを設定することもできますし、 MDB2 インスタンス全体のデフォルトのフェッチモードを設定することもできます。 デフォルトのフェッチモードを設定するには setFetchMode() メソッドを使用します。

例 33-2コールのたびにフェッチモードを設定する

<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$res =& $mdb2->query('SELECT * FROM users');

while ($row = $res->fetchRow(MDB2_FETCHMODE_ASSOC)) {
    echo $row['id'] . "\n";
}
?>

例 33-3デフォルトのフェッチモードの変更

<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$mdb2->setFetchMode(MDB2_FETCHMODE_ASSOC);

$res =& $mdb2->query('SELECT * FROM users');

while ($row = $res->fetchRow()) {
    echo $row['id'] . "\n";
}
?>

行番号による行の取得

PEAR MDB2 のフェッチシステムでは、 fetch 文に対して追加のパラメータを指定することができます。 これにより、結果から行番号を指定して行を取得することができます。 これは、結果セットの一部を表示したり (例えば複数ページにまたがる HTML のリストなど)、特別な順番で行を取得する場合などに有用です。

例 33-4番号指定による行の取得

<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします

// 取得を開始する行
$from = 50;

// 1 ページあたりの結果の数
$resPage = 10;

// このページに表示する最後の行
$to = $from + $resPage;

foreach (range($from, $to) as $rowNum) {
    if (!($row = $res->fetchRow(MDB2_FETCHMODE_ORDERED, $rowNum))) {
        break;
    }
    echo $row[0] . "\n";
}
?>

結果セット全体の取得

MDB2_Result_Common オブジェクトには、 結果セット全体を読み込むためのメソッド群が用意されています。それが fetchCol() および fetchAll() です。

結果セットの開放

結果セットの使用を終えた後にもしスクリプトの処理が続くのなら、 メモリを節約するために結果セットを開放するとよいでしょう。 そのために使用するのが free() です。

例 33-5開放

<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$res =& $mdb2->query('SELECT name, address FROM clients');
while ($row = $res->fetchRow(MDB2_FETCHMODE_ASSOC)) {
    echo $row['name'] . ', ' . $row['address'] . "\n";
}
$res->free();
?>

生の結果リソースの取得

あなたが読み込まなければならないデータの形式がまだ MDB2 で実装されていない場合は、 getResource() メソッドでネイティブな結果セットを取得し、 それに対して PHP の各拡張モジュールの関数を直接コールすることができます (それによって、当然コードの可搬性は下がります)。

例 33-6ネイティブな結果リソース

<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$res =& $mdb2->query('SELECT name, address FROM clients');
$native_result = $res->getResource();
?>

クエリの結果からより詳細な情報を取得する

MDB2 には、クエリの結果セットの情報を取得するための 4 種類の方法があります。

例 33-7 numRows() は、SELECT クエリの結果の行数を返します。

<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$res =& $mdb2->query('SELECT * FROM phptest');
if ($mdb2->getOption('result_buffering')) {
    echo $res->numRows();
} else {
    echo '"result_buffering" が無効になっている場合は、結果セットの行数は取得できません';
}
?>

例 33-8 numCols() は、SELECT クエリの結果に含まれるカラムの数を返します。

<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$res =& $mdb2->query('SELECT * FROM phptest');
echo $res->numCols();
?>

例 33-9 rowCount() は、内部的な行ポインタが、現在何行目を指しているかを返します。

<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$res =& $mdb2->query('SELECT * FROM phptest');
$res->fetchRow();
// 結果セットに 2 行以上のデータがある場合、これは 2 を返します
echo $res->rowCount();

?>

例 33-10 getColumnNames() は、連想配列を返します。 結果セットのカラム名が連想配列のキー、 結果セット内でのカラムの位置が連想配列の値となります。

<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$res =& $mdb2->query('SELECT * FROM phptest');
print_r($res->getColumnNames());

?>

例 33-11 seek() は、結果セット内の特定の行まで移動します。 既に読み込んだ後の行に戻ることができるのは、'result_buffering' オプションが有効な場合のみであることに注意しましょう。 それ以外の場合は、先へ進むことしかサポートしていません。

<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$res =& $mdb2->query('SELECT * FROM phptest');
// 結果セットの 10 番目の行まで移動します
$res->seek(10));

?>

例 33-12 nextResult() 複数のクエリから返された複数の結果セットを順に処理します。

<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$multi_query = $this->db->setOption('multi_query', true);
// multi_query が有効かどうかを調べます
if (!PEAR::isError($multi_query)) {
    $res =& $mdb2->query('SELECT * FROM phptest; SELECT * FROM phptest2;');
    $data1 = $res->fetchAll();
    // 結果ポインタを、次の結果セットに移動します
    $res->nextResult();
    $data2 = $res->fetchAll();
} else {
    echo 'multi_query オプションがサポートされていません';
}

?>

例 33-13 bindColumn() は、ユーザ変数への参照を結果セット内の特定のフィールドにバインドします。 つまり、次の行を取得すると、その変数の内容も連動して更新されます。

<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$name = $address = null;
$res =& $mdb2->query('SELECT id, name, address FROM clients', array('id' => 'integer'));
$res->bindColumn('id', $id);
// query() のコールに含まれていない、カラムの型を指定します
$res->bindColumn('name', $name, 'text');
// 型の指定は、MDB2 においては常に任意です
$res->bindColumn('address', $address);
while ($res->fetchRow()) {
    echo "'$name' (ユーザ ID '$id') さんの住所は '$address' です\n";
}
?>

一回のコールによるクエリ実行とデータ取得

すべてのフェッチメソッドには、クエリの実行も同時に行うバージョンのメソッドがあります。それが

 queryOne()、

 queryRow()、

 queryCol() および

 queryAll() です。

例 33-14

<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$data = $mdb2->queryAll('SELECT * FROM phptest');
print_r($data);

?>

プリペアドステートメントを使用したい場合は、

Extended モジュールのメソッド

 getOne()、

 getRow()、

 getCol()、

 getAll() および

 getAssoc() を使用します。

例 33-15

<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$mdb2->loadModule('Extended');
$query = 'SELECT * FROM phptest WHERE id = ?';
$data = $mdb2->extended->getRow($query, null, array(1), array('integer'));
print_r($data);

?>

データ型

MDB2 は、すべてのドライバにまたがる多くのデータ型をサポートしています。 クエリの実行やプリペアの際にこれらを結果セットに設定するには、 setResultTypes() メソッドを使用します。 サポートされるデータ型とその書式についての概要は こちら を参照ください。

エラーチェック

isError() を使用して、MDB2_Error オブジェクトが返されていないかどうか調べることを忘れないようにしましょう。

前のページ | ホーム | 次のページ
クエリ | 上に戻る | クォートおよびエスケープ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


モジュール

モジュール -- モジュールの読み込みとコール

説明

MDB2 はモジュール化を意識して設計されています。 基本機能であるクエリの実行や結果セットの読み込み以外の機能は、 モジュールで提供しています。現在使用可能なモジュールは以下のとおりです。

  • Datatype モジュール - データ型を MDB2_Datatype_Common クラスで抽象化します。

  • Extended モジュール - さまざまな高レベルのメソッドを MDB2_Extended クラスで提供します。

  • Function モジュール - SQL の関数を MDB2_Function_Common クラスで抽象化します。

  • Manager モジュール - データ定義言語 (DDL) の抽象化および スキーマ一覧の取得を MDB2_Manager_Common クラスで行います。

  • Native モジュール - RDBMS 固有の関数を MDB2_Native_Common クラスで扱います。

  • Reverse モジュール - スキーマのリバースエンジニアリングを MDB2_Reverse_Common クラスで抽象化します。

モジュールを読み込むには loadModule() メソッドを使用します。 このメソッドはモジュールのインスタンスを返しますが、 それだけでなくそのインスタンスをプロパティとして保持します。 プロパティ名は、最初のパラメータで指定したモジュール名を小文字にしたものか、 あるいはオプションで指定した 2 番目のパラメータと同じものになります。 オプションの 3 番目のパラメータを使用すると、 特定の RDBMS に依存するモジュール (例えば Datatype モジュール) と依存しないモジュール (例えば Extended モジュール) を区別することができます。 このメソッドを使用して、インストールされている独自のモジュールを読み込むことも可能です。

警告

3 番目のパラメータを省略した場合は、自動的に検出されます。 しかし、'safe_mode' が有効になっているホストでは、 この自動検出に失敗します。検出の際に fopen() を使用しているからです。それに応じたエラー処理を行う必要があります。

例 33-1モジュールの読み込み

<?php
require_once 'MDB2.php';

$dsn = 'pgsql://someuser:apasswd@localhost/thedb';
$options = array(
    'debug' => 2,
    'result_buffering' => false,
);

$mdb2 =& MDB2::connect($dsn, $options);
if (PEAR::isError($mdb2)) {
    die($mdb2->getMessage());
}

// ...

$mdb2->loadModule('Manager');
// これから読み込むモジュールが RDBMS に依存しないことを宣言します。
// これにより、不要な内部関数のコールを回避します。
$mdb2->loadModule('Extended', null, false);
?>

例 33-2RDBMS に依存しない独自モジュールの読み込み

<?php
/ ...

// ファイルが [peardir]/MDB2/MyModule.php に存在する必要があります
class MyModule extends MDB2_Module
{
  function myMethod()
  {
    $db =& $this->getDBInstance();
    if (PEAR::isError($db)) {
        return $db;
    }
    ...
  }
}
?>

<?php
/ ...

// ファイルが [peardir]/MDB2/MyModule.php に存在する必要があります
$mdb2->loadModule('MyModule');

?>

例 33-3RDBMS に依存する独自モジュールの読み込み

<?php
/ ...

// ファイルが [peardir]/MDB2/Driver/MyRDBMSModule/pgsql.php に存在する必要があります。
// これは、MDB2 PostgreSQL インスタンスが読み込むためのクラスです。
// 他のバックエンド用の同等のクラスも実装する必要があります。
// 一般的には共通の基底クラスを用意することになるでしょう。
class MyRDBMSModule_Driver_pgsql extends MDB2_Module
{
  function myRDBMSMethod()
  {
    $db =& $this->getDBInstance();
    if (PEAR::isError($db)) {
        return $db;
    }
    ...
  }
}
?>

<?php
/ ...

// ファイルが [peardir]/MDB2/Driver/MyRDBMSModule/[phptype].php
// に存在する必要があります。
$mdb2->loadModule('MyRDBMSModule');

?>

例 33-4読み込んだモジュールの使用

<?php
/ ...

// デフォルトの名前での読み込み
$mdb2->loadModule('Manager');
$tables = $mdb2->manager->listTables();

// 標準とは異なる名前の $foo というプロパティとしての読み込み
$mdb2->loadModule('Function', 'foo');
$tables = $mdb2->foo->concat($str1, $str2);

?>

PHP5 では、オーバーロードを使用してモジュールの読み込みとコールを行うことができます。

例 33-5'modules' オプションで PHP5 のオーバーロードを利用する

<?php
require_once 'MDB2.php';

$dsn = 'pgsql://someuser:apasswd@localhost/thedb';
$options = array(
    'debug' => 2,
    'result_buffering' => false,
);

$mdb2 =& MDB2::connect($dsn, $options);
if (PEAR::isError($mdb2)) {
    die($mdb2->getMessage());
}

// ...

$module_shorthands = $mdb2->getOptions('modules');

// モジュール名の短縮形を、メソッド名の先頭に付加します。
// そして元のメソッド名の最初の文字を大文字にします。
$tables = $mdb2->mgListTables();
?>

例 33-6PHP5 のオーバーロードを使用して、読み込んだモジュールのメソッドをコールする

<?php
require_once 'MDB2.php';

$dsn = 'pgsql://someuser:apasswd@localhost/thedb';
$options = array(
    'debug' => 2,
    'result_buffering' => false,
);

$mdb2 =& MDB2::connect($dsn, $options);
if (PEAR::isError($mdb2)) {
    die($mdb2->getMessage());
}

// ...

$mdb2->loadModule('Manager');

// manager モジュールが読み込まれているので、
// listTable() メソッドをコールすることができます。
$tables = $mdb2->listTables();
?>
前のページ | ホーム | 次のページ
トランザクション | 上に戻る | autoPrepare & autoExecute

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


可搬性

可搬性 -- データベースの可搬性に関する機能

説明

それぞれのデータベース管理システム (DBMS) には固有のクセがあります。 例えば、出力時にフィールド名を大文字に変換するものもあれば、 逆に小文字に変換するものもあります。 また変換せずにそのまま出力するものもあります。これらの違いのせいで、 作成したスクリプトを他のサーバで実行することが難しくなっています。 PEAR MDB2 はこれらの違いを乗りこえることに力を入れているので、 あなたが作成したプログラムは何の変更もなしで他の DBMS に移行できることでしょう。

可搬性に関するモードのうち、どれを有効にするかについては 設定オプション portability で制御します。オプションは factory() および setOption() で設定します。

可搬性に関するモードはビット単位で指定するので、組み合わせる場合には |、取り除く場合には ^ を使用します。 実際の方法については、以下の例を参照ください。

可搬性に関するモードの定数

  • MDB2_PORTABILITY_ALL (デフォルト)

    すべての可搬性機能を有効にします。デフォルト設定です。

  • MDB2_PORTABILITY_DELETE_COUNT

    削除された行数を強制的に取得します。 単純な DELETE FROM tablename クエリを実行した場合に、削除された行数を返さない DBMS があります。 このモードは、そんな DBMS から削除された行数を取得するために、 DELETE クエリの最後に WHERE 1=1 を追加します。

  • MDB2_PORTABILITY_EMPTY_TO_NULL

    入出力データの空文字列を null に変換します。 Oracle は空の文字列を null と判断するため、これが必要になります。 一方、他の大半の DBMS は空の文字列と null を区別します。

  • MDB2_PORTABILITY_ERRORS

    特定のドライバのエラーメッセージを、他の DBMS と互換性のあるものに変換します。

    表 33-1エラーコードの対応表

    ドライバ | 説明 | 変更前の定数 | 変更後の定数
    mysql, mysqli | ユニークキーおよび主キー制約 | MDB2_ERROR_ALREADY_EXISTS | MDB2_ERROR_CONSTRAINT
    mysql, mysqli | NOT NULL 制約 | MDB2_ERROR_CONSTRAINT | MDB2_ERROR_CONSTRAINT_NOT_NULL

  • MDB2_PORTABILITY_FIX_ASSOC_FIELD_NAMES

    これは、連想配列のキーからすべての修飾子を取り除きます。 例えば SQLite のデフォルト設定では、修飾子つきのクエリで結果を取得すると カラム名の修飾子が付加されます。

  • MDB2_PORTABILITY_FIX_CASE

    すべてのメソッドにおいて、テーブルやフィールドの名前を 小文字あるいは大文字に変換します。どちらに変換するのかは、 オプション 'field_case' の設定に依存します。このオプションは CASE_LOWER (デフォルト) あるいは CASE_UPPER を指定します。

  • MDB2_PORTABILITY_NONE

    すべての可搬性に関する機能を無効にします。

  • MDB2_PORTABILITY_NUMROWS

    numRows() を Oracle で動作させるハックを有効にします。

  • MDB2_PORTABILITY_RTRIM

    取得したデータの右側にある空白をすべて取り除きます。 これは、固定長文字列の右側を自動的にトリムするような RDBMS には適用されません。たとえ可変長文字列で右側がトリムされていなくても同じです。

例

例 33-1接続の際に、可搬性に関する機能をすべて無効にする

<?php
require_once 'MDB2.php';

$dsn = 'mysql://user:password@host/database'
$options = array(
    'debug'       => 2,
    'portability' => MDB2_PORTABILITY_NONE,
);

$mdb2 =& MDB2::connect($dsn, $options);
if (PEAR::isError($mdb2)) {
    die($mdb2->getMessage());
}
?>

例 33-2 setOption() を使用して、 小文字変換と空白除去の機能を有効にする

<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$mdb2->setOption('field_case', CASE_LOWER);
$mdb2->setOption('portability',
        MDB2_PORTABILITY_FIX_CASE | MDB2_PORTABILITY_RTRIM);
?>

例 33-3 setOption() を使用して、 空白除去以外のすべての可搬性機能を有効にする

<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$mdb2->setOption('portability',
        MDB2_PORTABILITY_ALL ^ MDB2_PORTABILITY_RTRIM);
?>
前のページ | ホーム | 次のページ
autoPrepare & autoExecute | 上に戻る | シーケンス

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


クエリ

クエリ -- クエリの実行

説明

PEAR MDB2 では、データベースに対するクエリを実行するために いくつかのメソッドを用意しています。いちばん直接的なメソッドは query() です。これは、SQL クエリ文字列を引数として受け取ります。返り値には二通りの可能性があります。 結果を返すクエリ (SELECT など) が成功した場合には新しい MDB2_Result オブジェクト、失敗した場合には MDB2_Error オブジェクトを返します。 このメソッドは、データを操作するような文 (INSERT など) に対して使用してはいけません。

例 33-1クエリの実行

<?php
// まずプログラムの最初に、$mdb2 という名前の
// MDB2 オブジェクトを作成します
require_once 'MDB2.php';

$mdb2 =& MDB2::connect('pgsql://usr:pw@localhost/dbnam');
if (PEAR::isError($mdb2)) {
    die($mdb2->getMessage());
}

// クエリを実行します
$res =& $mdb2->query('SELECT * FROM clients');

// 結果がエラーでないかどうかを常にチェックします
if (PEAR::isError($res)) {
    die($res->getMessage());
}
?>

exec() は、 データを操作するクエリに対して使用します。 返り値には二通りの可能性があります。 データを操作する文 (INSERT など) によって変更された行数を表す整数値か、失敗した際には MDB2_Error オブジェクトを返します。 このメソッドは、結果を返すような文 (SELECT など) に対して使用してはいけません。

例 33-2exec を使用してデータを操作する

<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$sql  = "INSERT INTO clients (name, address) VALUES ($name, $address)";

$affected =& $mdb2->exec($sql);

// 結果がエラーでないかどうかを常にチェックします
if (PEAR::isError($affected)) {
    die($affected->getMessage());
}
?>

データ型

MDB2 は、すべてのドライバにまたがる多くのデータ型をサポートしています。 これらは、それぞれ適切なメソッドを使用して結果セットに設定されます。 サポートされるデータ型とその書式についての概要は こちら を参照ください。

結果の行数の制限および途中の行からの読み込み

結果セットの限定された行数のみを読み書きしたい場合、あるいは 結果セットの途中の行から読み込みを開始したい場合などは setLimit() をコールしてからクエリを発行します。 limit および　offset は、その次に実行するクエリ発行メソッド あるいはプリペアドステートメントメソッドに対してのみ有効となり、 その後は設定がリセットされます。 これは、MDB2 が内部的に発行するクエリに対しても適用されます。 limit 機能をエミュレートで実現している RDBMS については、 DML 文では limit が動作しないことに注意しましょう。また、 この場合に何のエラーも発生しないことにも注意が必要です。

例 33-3setLimit を使用した query および exec

<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします

$sql = "SELECT * FROM clients";
// 10 行目から始め、20 行読み込みます
$mdb2->setLimit(20, 10);
$affected =& $mdb2->exec($sql);

$sql = "DELETE FROM clients";
if ($mdb2->supports('limit_queries') === 'emulated') {
    echo 'offset の設定は無視されました'
}
// 10 行だけを削除します
$mdb2->setLimit(10);
$affected =& $mdb2->exec($sql);

?>
前のページ | ホーム | 次のページ
接続 | 上に戻る | 結果

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


クォートおよびエスケープ

クォートおよびエスケープ -- 値を適切にクォートしてクエリを作成する

説明

MDB2 が提供する quote() メソッドを使用すると、DBMS にあわせて値をクォートし、 適切な形式でクエリを作成することができます。 このメソッドのパラメータは次の四つです (必須なのは最初のひとつだけです)。 まずクォートされる値、そしてその データ型、 値をクォートするかどうか、最後にワイルドカードをクォートするかどうかです。 データ型を指定しなかった場合は、値から推測します。

例 33-1クエリでの値のクォート

<?php
// プログラムの最初で、$mdb2 という名前の
// 有効な MDB2 オブジェクトを作成します...
require_once 'MDB2.php';

$mdb2 =& MDB2::connect('pgsql://usr:pw@localhost/dbnam');
if (PEAR::isError($mdb2)) {
    die($mdb2->getMessage());
}

// 挿入する値の例
$id = 1;
$name = 'sample item';
$time = date('Y-m-d H:i:s');

// クエリを実行します...
$query = 'INSERT INTO tablename (id, itemname, saved_time) VALUES ('
    . $mdb2->quote($id,   'integer')   .', '
    . $mdb2->quote($name, 'text')      .', '
    . $mdb2->quote($time, 'timestamp') .')';
$res =& $mdb2->query($query);
?>

プリペアドステートメント を使用する場合は、このクォート処理が自動的に行われます。 そのため自分でクォートする必要はありません。

識別子

データベースの識別子 (テーブル名やフィールド名) を quoteIdentifier() でクォートすることができます。この方式は、使用しているデータベースドライバに依存します。 注意: 識別子をクォート「できる」からといって、必ずしもクォート 「しなければならない」というわけではありません。たいていの場合は、 クォートすることで解決する問題よりもクォートすることで新たに起こる問題のほうが大きくなります。 とはいえ、たとえばフィールド名に予約語を使用したい場合などは、 クォートが必要になるでしょう (このような場合は、 できる限りフィールド名を変更することをお勧めします)。

エスケープ

値をクォートで囲まずにエスケープしたい場合は escape() メソッドを使用します。ワイルドカード (_ や %) もエスケープしたい場合は、二番目のパラメータを TRUE に設定します。

値の中のワイルドカードのみをエスケープしたい場合は、 escapePattern() メソッドを使用します。

前のページ | ホーム | 次のページ
結果 | 上に戻る | 準備と実行

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


シーケンス

シーケンス -- シーケンスおよび自動採番

説明

シーケンスとは、データの行に一意な ID を与えるための手法です。 もしあなたが MySQL を常用しているのなら、シーケンスとは AUTO_INCREMENT を実現するための別の方法と考えればよいでしょう。

簡単な話です。まず最初に ID を要求し、新しく作成した行の ID フィールドの値の値としてそれを使用します。すべてのテーブルに対して、 いくつでもシーケンスを保持することができます。ただ、 ひとつのテーブルに対しては常に同じシーケンスを使用するようにしましょう。 この一意な ID の値を取得するには、 nextID() を使用します。 もしシーケンスが存在しない場合は、自動的に作成されます。

シーケンスは、 nextID() がコールされるたびに自動的に加算されます。

例 33-1シーケンスの使用

<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$id = $mdb2->nextID('mySequence');
if (PEAR::isError($id)) {
    die($id->getMessage());
}

// INSERT クエリで ID を使用します
$res =& $mdb2->query("INSERT INTO myTable (id, text) VALUES ($id, 'foo')");
?>

注意

警告

PEAR MDB2 のシーケンスメソッドを使用するなら、 シーケンスの作成も含めてすべての場面でそれを使用することを推奨します。 DBMS で直接作成したシーケンスに対して MDB2 のメソッドを使用しないでください。

このアドバイスを守れない理由があるなら、以下の点に注意してください。 PEAR MDB2 のシーケンス関連のメソッドに渡す引数 $seq_name の値は、MDB2 がバックエンドの DBMS のメソッドをコールする前に更新されます。

$seq_name は、PHP の sprintf() 関数に渡されます。 sprintf() のフォーマット文字列には、 オプション seqname_format の値が用いられます。 デフォルトの seqname_format は %s_seq です。つまり、例えば $seq_name として person_id_sequence を指定したなら、 シーケンスを作成/シーケンスにアクセス/シーケンスを更新 する際に PEAR MDB2 はその名前を person_id_sequence_seq に変換します。

また、PEAR DB でシーケンスのエミュレートに使用しているテーブルの デフォルトのレイアウトと PEAR MDB2 のものとは少し異なることにも注意しましょう。 PEAR DB では "id" という名前のカラムを使用していましたが、PEAR MDB2 ではその代わりに "sequence" を使用するようにし、 その目的をより明確にしています。過去との互換性のため、これは seqcol_name オプションで制御できるようになっています。

seqname_format および seqcol_name は、接続の際かあるいは setOption() で変更できます。

直近に挿入された ID の取得

AUTO_INCREMENT を使用するほうがお好みなら、 lastInsertID() メソッドを使用して 直近に作成された値を取得するという方法もあります。このメソッドは、 PostgreSQL の SERIAL 型の書式を使用して現在のシーケンス ID を取得することもサポートしています。 MDB2 は、自動インクリメントをサポートしていない RDBMS に対してその振る舞いをエミュレートすることができます。 そのためには、 createTable() メソッドを使用してテーブルを作成します。

例 33-2lastInsertID() の使用法

<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
$res =& $mdb2->query("INSERT INTO myTable (id, text) VALUES (NULL, 'foo')");

// オプションでテーブル名とフィールド名を渡します。
// これは、自動インクリメントがサポートされていない環境で
// nextID() がコールされた際に使用します。
$id = $mdb2->lastInsertId('myTable', 'id');
if (PEAR::isError($id)) {
    die($id->getMessage());
}

?>

現在の ID の取得

シーケンスの現在の値を取得するには、 currID() メソッドを使用します。

例 33-3currID() の使用法

<?php

// シーケンスの現在の値を取得します
$id = $mdb2->currID('myseq');
if (PEAR::isError($id)) {
    die($id->getMessage());
}

?>

エミュレーションについて

もし RDBMS がネイティブにサポートしている機能を使用したいのなら、 Extended モジュールの getBeforeID() および getAfterID() メソッドを使用します。 この方法では、AUTO_INCREMENT がネイティブにサポートされている場合に MDB2 が自動的にそれを使用します。 サポートされていない場合は、MDB2 は代わりにシーケンスを使用して次の ID を取得します。

例 33-4getBeforeID()/getAfterID() の使用法

<?php
// すでに $mdb2 という名前の MDB2 オブジェクトが存在するものとします
// $id は、クォートされた整数値あるいは php の null です
$id = $mdb2->getBeforeID('myTable', 'id', true, true);
if (PEAR::isError($id)) {
    die($id->getMessage());
}

$res =& $mdb2->query("INSERT INTO myTable (id, text) VALUES ($id, 'foo')");

// $id は、挿入されたデータの id フィールドの値と等しくなります
$id = $mdb2->getAfterID($id, 'myTable', 'id');
if (PEAR::isError($id)) {
    die($id->getMessage());
}

?>

参照

createSequence()、

dropSequence()、

listSequences()

前のページ | ホーム | 次のページ
可搬性 | 上に戻る | FAQ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


トランザクション

トランザクション -- トランザクションの処理

説明

PEAR MDB2 は、デフォルトですべてのクエリについて自動コミットを行います。 しかし、 beginTransaction() を使用することで新たなトランザクションを開始し、それを commit() および rollback() で終了させることも可能です。 これらの 3 つのメソッドは、すべてオプションでセーブポイント文字列を指定することが可能です。 これを使用することで、対応する場所での開放やロールバックが可能となります。 inTransaction() メソッドを使用すると、 現在トランザクションがオープンしているのかどうかを調べることができます。

例 33-1トランザクションの実行

<?php
// まずプログラムの最初に、$mdb2 という名前の
// MDB2 オブジェクトを作成します
require_once 'MDB2.php';

$mdb2 =& MDB2::connect('pgsql://usr:pw@localhost/dbnam');
if (PEAR::isError($mdb2)) {
    die($mdb2->getMessage());
}

// このドライバでトランザクションがサポートされているかどうかを調べます
if (!$mdb2->supports('transactions')) {
    exit();
}

// トランザクションをオープンします
$res = $mdb2->beginTransaction();

..

// トランザクション処理中かどうか、そして
// セーブポイントがサポートされているかどうかを調べます
if ($mdb2->inTransaction() && $mdb2->supports('savepoints')) {
    // セーブポイントを設定します
    $savepoint = 'MYSAVEPOINT';
    $res = $mdb2->beginTransaction($savepoint);

    ..

    // セーブポイントを開放するか、そこまでロールバックするかを判断します
    if ($error_condition) {
        $res = $mdb2->rollback($savepoint);
    } else {
        $res = $mdb2->commit($savepoint);
    }
}

..

// コミットするかロールバックするかを判断します
if ($error_condition) {
    $res = $mdb2->rollback();
} else {
    $res = $mdb2->commit();
}

?>

警告

PEAR MDB2 は、トランザクションやセーブポイントの エミュレートは行いません。つまり、MDB2 でトランザクションが使用できるといっても それはバックエンドの RDBMS (そして MySQL の場合は 使用するストレージエンジン) に依存するということです。 また、一部の RDBMS では DDL 文を実行すると 暗黙的にトランザクションがコミットされてしまうことにも注意しましょう (明白な例外は Oracle および PostgreSQL です)。

MDB2 は "入れ子状の" トランザクションもサポートしています。これを利用するには beginNestedTransaction() メソッドを使用します。 実際のところこれは、例えば Interbase でネイティブにサポートされているような 真の入れ子状トランザクションではありません。 MDB2 は、入れ子のトランザクションが何件オープンしているのかのカウンタを内部で管理します。 completeNestedTransaction() のコールによってトランザクションが終了すると、このカウンタを 1 減らします。 RDBMS がセーブポイントをサポートしている場合は、初回以外の beginNestedTransaction() メソッドのコール時に MDB2 が自動的にセーブポイントを設定し、その名前を返します。 このセーブポイントは、 completeNestedTransaction() メソッドによって自動的に開放されます。自動生成されるセーブポイントの名前は、 オプション "savepoint_format" (デフォルトは 'MDB2_SAVEPOINT_%s') とトランザクションカウンタの値によって決まります。

入れ子状のトランザクションを最初にオープンした後で MDB2 インスタンスが予期せぬ PEAR エラーを発生させた場合は、 トランザクションがロールバックされます。それ以外の場合はこの場所でコミットされます。 getNestedTransactionError() メソッドを使用すると、トランザクション内でエラーが発生したかどうかを調べることができます。 あるいは、 failNestedTransaction() で強制的にロールバックさせることも可能です。 このメソッドはオプションのパラメータを指定することができます。これは getNestedTransactionError() メソッドがコールされた際に返されるエラーとなります。 また二番目の boolean のパラメータとして強制的にロールバックさせるかどうかを指定します。

例 33-2入れ子状のトランザクションのエミュレート

<?php

$mdb2->beginNestedTransaction(); # トランザクションをオープンします

$query = "INSERT INTO autoinc (id) VALUES (?)";
$stmt = $mdb2->prepare($query);

$stmt->execute(array(1));

$savepoint = $mdb2->beginNestedTransaction(); # 無視されます / セーブポイントを設定します

..

// この例では決して true にはなりません
if (false) {
    // エラーを発生させます
    $error = $mdb2->raiseError(MDB2_ERROR, null, null, 'kaboom');
    $mdb2->failNestedTransaction();
}

if(($error = $mdb2->getNestedTransactionError())) {
    die($error->getUserinfo());
}

$mdb2->completeNestedTransaction(); # 無視されます / セーブポイントを開放します

$stmt->execute(array(2));

$mdb2->completeNestedTransaction(); # コミットします

?>

最後に、MDB2 は SQL 92 標準にしたがったトランザクション分離レベルの設定を サポートしています。この設定には setTransactionIsolation() メソッドを使用します。 使用している RDBMS がその分離レベルをサポートしていないが、 より厳しい分離レベルをサポートしているという場合は、MDB2 は黙ってその厳しい分離レベルを使用します。 いくつかの RDBMS では追加のオプションをサポートしていますが、 MDB2 でサポートしていないものについては黙って無視されます。

例 33-3トランザクション分離レベルの設定

<?php

$options = array('wait' => 'WAIT', 'rw' => 'READ WRITE');
$options = array('wait' => 'NO WAIT', 'rw' => 'READ ONLY');

$isolation_level = READ UNCOMMITTED # (ダーティリードを許可します)
$isolation_level = READ COMMITTED # (ダーティリードを防ぎます)
$isolation_level = REPEATABLE READ # (再読み込み不可能な読み込みを防ぎます)
$isolation_level = SERIALIZABLE # (ファントムリードを防ぎます)
$mdb2->setTransactionIsolation($isolation_level, $options);

?>
前のページ | ホーム | 次のページ
準備と実行 | 上に戻る | モジュール

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_QueryTool

目次
導入 -- DB のデータを簡単に取得・変更するためのオブジェクト指向インターフェイス
API クイックリファレンス -- 利用できるメソッドの概要。詳細は、API ドキュメントを参照すること

このパッケージは、SQL クエリ言語をオブジェクト指向で抽象化したものです。 setWhere、setOrder、setGroup、setJoin などのメソッドを提供することで、 簡単にクエリを作成できるようにしています。

前のページ | ホーム | 次のページ
FAQ | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


API クイックリファレンス

API クイックリファレンス -- 利用できるメソッドの概要。詳細は、API ドキュメントを参照すること

MDB_QueryTool で使用できるメソッド

MDB_QueryTool は以下のメソッドを提供しています。

  • autoJoin($tables)

    指定したテーブルを連結します。連結方法はカラム名から自動で判断します。 つまり、table1 に "table2_id" というカラムがあったとすると、 このメソッドは "WHERE table1.table2_id=table2.id" とします。 ここで作成される結合条件は、すべて AND で連結されます。

  • getDbInstance

    PEAR::DB オブジェクトを返します。

  • setDbInstance

    既存の PEAR::DB オブジェクトを MDB_QueryTool に渡します。

  • get($id, $column)

    単一のエントリのデータを取得します。 二番目のパラメータにカラムをひとつだけ指定した場合は、 結果は配列ではなく直接返されます!

  • getMultiple($ids, $column)

    get() と同じですが、 配列 $ids に対応するすべてのデータを取得します。

  • getAll()

    データベースのすべてのエントリを取得します。

  • getCol($column)

    このメソッドはひとつのカラムのみを返すので、結果は一次元の配列となります。 つまり、setSelect() を使用する場合は、 取得したいそのカラムに対して「のみ」設定しなければならないということです。 一般的な使用法は次のようになります。
    $table->setSelect('id');
$ids = $table->getCol();
// あるいは
$ids = $table->getCol('id');
    こうすると、ids はすべての id からなる配列となります。

  • getCount()

    エントリの数を取得します。

  • getDefaultValues()

    DB 内のカラムに対応する要素にすべて空の要素が格納された配列を返します。

  • getQueryString()

    現在のクエリを文字列として返します。

  • save($data)

    update() あるいは add() のいずれかをコールしてデータを保存します。データ中で primaryCol が指定されていた場合は、このメソッドは渡されたデータが更新されるべきものである (update() をコールする) と判断します。 それ以外の場合は add() メソッドをコールします。 この挙動が気に入らない場合は、直接 add() および update() を使用し、このメソッドは無視してください。このメソッドは、 新規登録時と更新時の両方で入力チェックを行う場合などに有用です。 このメソッドをオーバーライドしてここでチェックを行うようにすれば、 どちらの場合でもチェック処理が行われます。

  • update($data)

    データセットのメンバを更新します。

  • add($data)

    新しいメンバをデータベースに追加します。

  • addMultiple($data)

    複数の新しいメンバをデータベースに追加します。

  • remove($data, $whereCol)

    データベースからメンバを削除します。 data は、削除されるカラムの値です (integer/string)。配列を指定する場合は、一致する条件を指定する 複数のカラムを設定しなければなりません (この場合、 二番目のパラメータは無視されます)。 $whereCol は、data と比較するカラムです。 data が配列でない場合にのみ用いられます。

  • removeAll()

    テーブルを空にします。

  • removeMultiple($ids, $colName)

    指定した id のデータセットを削除します。colName を指定した場合は、それを主キーのカラム名として使用します。

  • removePrimary($ids, $colName, $atLeastOneObject)

    メンバをデータベースから削除し、指定したオブジェクトの remove() メソッドをコールします。 これにより、このテーブルを参照している別のテーブルの行がすべて削除されます。

  • setLimit($from=0, $count=0)

    その後のクエリでの取得件数の制限を設定します。

  • getLimit()

    その後のクエリでの取得件数の制限値を取得します。

  • setWhere($whereCondition)

    現在のインスタンスで使用する where 条件を設定します。

  • getWhere()

    現在のインスタンスで使用する where 条件を取得します。

  • addWhere($whereCondition, $condition)

    where 句に文字列を追加します。デフォルトの condition は AND です。

  • addWhereSearch($column, $stringToSearch, $condition)

    where-like 句を追加します。指定した文字列に対する like 検索を行います。つまり、
    $this->addWhereSearch('name', 'otto hans')
    のようにコールすると、
    UPPER(name) LIKE "%OTTO%HANS%"
    のような where 句が作成され、指定した文字列に対する検索が行われます。

  • setOrder($orderCondition, $desc=FALSE)

    現在のインスタンスで使用する order 条件を設定します。

  • getOrder()

    現在のインスタンスで使用する order 条件を取得します。

  • addOrder($orderCondition, $desc=FALSE)

    クエリで使用する order パラメータを追加します。

  • setHaving($havingCondition)

    現在のインスタンスで使用する having 条件を設定します。

  • getHaving()

    現在のインスタンスで使用する having 条件を取得します。

  • addHaving($what, $connectString)

    クエリで使用する having パラメータを追加します。

  • setJoin($table, $where, $joinType)

    現在のインスタンスで使用する join 条件を設定します。

  • setLeftJoin($table, $where)

    $this->table に対する left join を設定します。

  • addLeftJoin($table, $where, $type)

    クエリに left join を追加します。

  • setRightJoin($table, $where)

    $this->table に対する right join を設定します。

  • getJoin($what)

    join 条件を取得します。

  • addJoin($table, $where, $type)

    join で使用するテーブルと where 条件を追加します。
    setJoin(array(table1, table2), '<where clause1> AND <where clause2>');
    とコールするかわりに、
    setJoin(table1,'<where clause1>');
addJoin(table2,'<where clause2>');
    とコールすることもできます。

  • setTable($table)

    このクラスで現在作業中のテーブルを設定します。

  • getTable()

    このクラスで現在作業中のテーブルを取得します。

  • setGroup($group)

    group-by 条件を設定します。

  • getGroup()

    group-by 条件を取得します。

  • setSelect($what)

    what で指定したカラムのみを結果で返すようにします。

  • addSelect($what, $connectString)

    クエリの select 部に使用する文字列を追加します。既存の文字列に対して connectString を使用して連結されます。 このパラメータのデフォルトは、カンマです ("SELECT xxx FROM..." における xxx が、クエリの select 部です)。

  • getSelect()

    クエリの select 部を取得します。

  • setDontSelect($what)

    結果セットに含めないカラムを設定します。

  • getDontSelect()

    結果セットに含めないカラムを取得します。

  • reset($what)

    set* で設定した内容をすべてリセットします。パラメータを指定しなかった場合はすべてをリセットします。

  • setOption($option, $value)

    クラスの動作モードを設定します。'raw' モードは、 クエリを作成する際にデータをクォートしません。

  • getOption($option)

    指定したオプションを取得します。

  • debug($string)

    このメソッドをオーバーライドし、queryString を表示することでクエリの内容を確認したりします。

  • getTableShortName($table)

    テーブルの短縮名を取得します。

  • execute($query, $method)

    クエリを実行します (query が null の場合は現在のクエリが実行されます)。

  • writeLog($text)

    イベントをログファイルに書き込みます。 それ以外に時間の計測などの作業も行います。追加のドキュメントを参照ください。

  • returnResult($result)

    選択した結果の型を返します。

  • setIndex($key)

    結果をフォーマットし、key でインデックス化します。 注意: これを使用する際には、同じ名前のインデックスを複数指定しないように気をつけましょう。 同じキーを複数回指定することはできないので、その場合はデータを失ってしまいます! 結果を 'brother' や 'sister' といった値を持つキー ('relationtoMe') でインデックス化すると、次のような結果が返されます。
    $res['brother'] = array('name' => 'xxx');
$res['sister']  = array('name' => 'xxx');
    しかし、もしカラム 'relationtoMe' が 'brother' というエントリを複数持っていた場合は、返されるデータセットにはそのうちひとつしか含まれません。 どれが返されるのかは、さまざまな条件に依存します。たとえば order の指定、データベース内のデータの格納方法などです。 2 つのカラムに依存するインデックスを設定することもできます。そのためには、 'table1.id,table2.id' のようにパラメータを渡します。 これは、インデックス化する際の文字列として使用されます。インデックスは 2 つの値をもとに作成されるので、たとえば '1,2' や '2108,29389' といった形になります。 この方法により、2 つの主キーからなるデータにアクセスできるようになります。 インデックスは文字列であることに注意しましょう!

  • getIndex()

    インデックスを取得します。

  • useResult($type)

    返される結果の型を選択します ('array'、'object'、'none')。

  • setErrorCallback($param)

    両方のコールバックを設定します。

  • setErrorLogCallback($param)

    エラーログ用のコールバックを設定します。

  • setErrorSetCallback($param)

    エラーを設定するコールバックを設定します。

前のページ | ホーム | 次のページ
導入 | 上に戻る | 日付と時間 (Date and Time)

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- DB のデータを簡単に取得・変更するためのオブジェクト指向インターフェイス

MDB_QueryTool Description

このパッケージは、SQL クエリ言語をオブジェクト指向で抽象化したものです。 setWhere、setOrder、setGroup、setJoin などのメソッドを提供することで、 簡単にクエリを作成できるようにしています。 また、HTML フォームと連携するために、習得しやすいインターフェイスを提供しています。 これはカラムのデータを配列形式で格納したもので、更新や追加は DB で行います。 このパッケージは SQL-Builder をもとにしており、 SQL 文の作成や実行が簡単にできるようになります。 MDB がサポートするすべてのデータベースエンジンで利用できます。

これは DB_QueryTool をそのまま移植したものなので、 同じ API が使用できます。違うのはクラス名だけです (当然、コンストラクタの名前も違います)。 残念ながら、完全なドキュメントはまだ用意できていません。

例 1

MDB_QueryTool の利用法としてお勧めなのは、 それを継承したクラスを作成することです。以下に例を示します。
require_once 'MDB/QueryTool.php';
define('TABLE_CARS', 'cars');
$dsn = 'mysql://user:pass@host/dbname';

/**
 * "car" テーブルに、以下のフィールドがあるものとします
 * (id, model, hp, color, clima, price)
 */
class Car extends MDB_QueryTool
{
    var $table        = TABLE_CARS;
    var $sequenceName = TABLE_CARS;

    // デフォルトでこうなりますが、一応書いておきます……
    var $primaryCol =   'id';

    /**
     * ここでは、テーブル名に対応する短縮名を割り当てています。
     * これは、テーブル名が変わった際などの対策として必要です。
     * たとえば、プロバイダの db にアプリケーションを配置する際などに
     * 各テーブル名に強制的にプレフィックスをつけられてしまうことがあるかも
     * しれません。そんな場合でも、あなたのアプリケーション内で
     * テーブルの結合条件を指定している部分などを書き換える必要はありません。
     * 実際のテーブル名のかわりに、ここで指定した短縮名が用いられるからです。
     */
    var $tableSpec = array(
        array('name'  => TABLE_CARS, 'shortName' =>  'cars'),
        //array('name'  => TABLE_TIME, 'shortName' =>  'time'),
    );
}

// Car クラスのインスタンスを作成します
$car = new Car($dsn);

// 3 番の車を取得します
$car->reset();     // クエリビルダをリセットします。where 条件や order
                   // などが初期化されます
$res = $car->get(3);
var_dump($res);

// すべての車を取得します
$car->reset();     // クエリビルダをリセットします。where 条件や order
                   // などが初期化されます
$res = $car->getAll();
var_dump($res);

// 最初の 10 台の車を取得します
$car->reset();     // クエリビルダをリセットします。where 条件や order
                   // などが初期化されます
$res = $car->getAll(0, 10);
var_dump($res);

// 色が赤で、快適な車をすべて取得し、価格順に並べます
$car->reset();
$car->setWhere('color="red"');
$car->setWhere('clima=1');
$car->setOrder('price');
$res = $car->getAll();
var_dump($res);

// 新しい車をデータベースに追加します
$data = array(
    'model' => 'Super Trooper',
    'hp'    => 140,
    'color' => 'black',
    'clima' => 0,
    'price' => 19000
);
$newCarId = $car->save($data);
var_dump($newCarId);

// 既存の車の情報を更新します
$data = array(
    'id'    => $newCarId,
    'clima' => 1,
    'price' => 20000,
);
$res = $car->save($data);   // $car->update($data); と同じです
var_dump($res);

// データベースから車を削除します
$res = $car->remove($newCarId);
var_dump($res);

前のページ | ホーム | 次のページ
MDB_QueryTool | 上に戻る | API クイックリファレンス

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction - Connect

Introduction - Connect -- Connecting and disconnecting a database

Description

To connect to a database you have to use the function MDB::connect() , which requires a valid DSN as parameter and optional a boolean value, which determines wether to use a persistent connection or not. In case of success you get a new instance of the database class. It is strongly recommened to check this return value with MDB::isError() . To disconnect use the method disconnect() from your database class instance.

例 33-1Connect and disconnect

<?php
require_once 'MDB.php';

$user = 'foo';
$pass = 'bar';
$host = 'localhost';
$db_name = 'clients_db';

// Data Source Name: This is the universal connection string
$dsn = "mysql://$user:$pass@$host/$db_name";

// MDB::connect will return a PEAR MDB object on success
// or an PEAR MDB Error object on error

$db = MDB::connect($dsn);

// With MDB::isError you can differentiate between an error or
// a valid connection.
if (MDB::isError($db)) {
    die ($db->getMessage());
}

....
// close conection
$db->disconnect();
?>
前のページ | ホーム | 次のページ
Introduction - DSN | 上に戻る | Introduction - Query

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction - DSN

Introduction - DSN -- The Data Source Name

Description

To connect to a database through PEAR::MDB, you have to create a valid DSN - data source name. This DSN consists in the following parts:

phptype: Database backend used in PHP (i.e. mysql , odbc etc.)
dbsyntax: Database used with regards to SQL syntax etc.
protocol: Communication protocol to use ( i.e. tcp, unix etc.)
hostspec: Host specification (hostname[:port])
database: Database to use on the DBMS server
username: User name for login
password: Password for login
proto_opts: Maybe used with protocol

The format of the supplied DSN is in its fullest form:
phptype(dbsyntax)://username:password@protocol+hostspec/database
Most variations are allowed:
phptype://username:password@protocol+hostspec:110//usr/db_file.mdb
phptype://username:password@hostspec/database_name
phptype://username:password@hostspec
phptype://username@hostspec
phptype://hostspec/database
phptype://hostspec
phptype(dbsyntax)
phptype
The currently supported database backends are:
mysql  -> MySQL
pgsql  -> PostgreSQL
ibase  -> InterBase
mssql  -> Microsoft SQL Server
oci8   -> Oracle 7/8/8i
fbsql  -> FrontBase

With an up-to-date version of MDB, you can use a second DSN format
phptype(syntax)://user:pass@protocol(proto_opts)/database

例 33-1Connect to database through a socket

mysql://user@unix(/path/to/socket)/pear

例 33-2Connect to database on a non standard port

pgsql://user:pass@word@tcp(localhost:5555)/pear

警告

Please note, that some features may be not supported by all database backends. Please refer to the PEAR MDB extensions status document located at: <pear base dir>/MDB/STATUS to get a detailed list about what features are supported by which backend.

前のページ | ホーム | 次のページ
MDB | 上に戻る | Introduction - Connect

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction - Execute

Introduction - Execute -- Prepare & Execute/ExecuteMultiple

Description

Purpose

prepareQuery() and executeQuery*() give you more power and flexibilty for query execution. You can use them, if you have to do more than one equal query (i.e. adding a list of adresses to a database) or if you want to support different databases, which have different implementations of the SQL standard.

Imagine you want to support two databases with different INSERT syntax:
db1 : INSERT INTO tbl_name ( col1, col2 ... ) VALUES ( expr1, expr2 ... )
db2 : INSERT INTO tbl_name SET col1=expr1, col2=expr2 ...
Corresponding to create multi-lingual scripts you can create a array with queries like this:
$statement['db1']['INSERT_PERSON'] = "INSERT INTO person ( surname, name, age ) VALUES ( ?, ?, ? )" ;
$statement['db2']['INSERT_PERSON'] = "INSERT INTO person SET surname=?, name=?, age=?" ;

Prepare

To use the features above, you have to do two steps. Step one is to prepareQuery the statement and the second is to executeQuery it.

Prepare() has to be called with the generic statement at least once. It returns a handle for the statement.

To create a generic statement is simple. Write the SQL query as usual, i.e.
SELECT surname, name, age FROM person
   WHERE name = 'name_to_find' AND age < 'age_limit'
Now check which parameters should be replaced while script runtime. Substitute this parameters with a placeholder.
SELECT surname, name, age FROM person WHERE name = ? AND age < ?
So, thats all! Now you have a generic statement, required by prepareQuery() .

prepareQuery() can handle different types of placeholders or wildcards.

? - (recommended) stands for a scalar value like strings or numbers, the value will be quoted depending of the database
! - stands for a scalar value and will inserted into the statement "as is".
& - requires an existing filename, the content of this file will be included into the statement (i.e. for saving binary data of a graphic file in a database)

Execute/ ExecuteMultiple

After preparing the statement, you can execute the query. This means to assign the variables to the prepared statement. To do this, executeQuery() requires two arguments, the statement handle of prepareQuery() and an array with the values to assign. The array has to be numerically ordered. The first entry of the array represents the first wildcard, the second the second wildcard etc. The order is independent from the used wildcard char.

例 33-1Inserting data into a datebase

$alldata = array(  array(1, 'one', 'en'),
                   array(2, 'two', 'to'),
                   array(3, 'three', 'tre'),
                   array(4, 'four', 'fire'));
$sth = $dbh->prepareQuery("INSERT INTO numbers VALUES(?,?,?)");
foreach ($alldata as $row) {
    $dbh->executeQuery($sth, $row);
}
In the example the query is done four times:
INSERT INTO numbers VALUES( '1', 'one', 'en')
INSERT INTO numbers VALUES( '2', 'two', 'to')
INSERT INTO numbers VALUES( '3', 'three', 'tre')
INSERT INTO numbers VALUES( '4', 'four', 'fire')
executeMultiple() works in the same way, but requires a two dimensional array. So you can avoid the explicit foreach in the eample above.

例 33-2 Using executeMultiple() instead of executeQuery()

...
$alldata = array(  array(1, 'one', 'en'),
                   array(2, 'two', 'to'),
                   array(3, 'three', 'tre'),
                   array(4, 'four', 'fire'));
$sth = $dbh->prepareQuery("INSERT INTO numbers VALUES(?,?,?)");
$dbh->executeMultiple($sth, $alldata);
}
The result is the same. If one of the records failed, the unfinished records will not be executed.

If executeQuery*() fails a MDB_Error, else MDB_OK will returned.

前のページ | ホーム | 次のページ
Introduction - Sequences | 上に戻る | MDB

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction - Fetch

Introduction - Fetch -- Fetching rows from the query

Description

Fetch functions

In order to fetch data from a result resource you can use one if the following methods: fetchInto() , fetchOne() . , fetchRow() . , fetchCol() . and fetchAll() . All above mentioned methods except fetchOne() return the requested data encapsuled into a (multi-dimensional-)array, NULL on no more data or a MDB_Error , when an error occurs. All method prefixed with fetch() automatically free the result set.

例 33-1Fetching a result set

<?php
...
$db = MDB::connect($dsn);
$res = $db->query("SELECT * FROM mytable");

// Get each row of data on each iteration until
// there are no more rows
while ($row = $db->fetchInto($res)) {
    $id = $row[0];
}

// If we are just interested in the first column of the first row
$id = $db->fetchOne($res);

// Since the fetch methods always free the result set
// we cannot loop across the result set but instead
// need to choose the proper fetch method
$data = $db->getAll($res);
foreach($data as $row)
{
    $id = $row[0];
}
?>

Select the format of the fetched row

The fetch modes supported are:

  • MDB_FETCHMODE_ORDERED (default)

    The fetch*() returns an ordered array. The order is taken from the select statment.

    例 33-2Fetch a ordered array

    <?php
$res = $db->query('SELECT id, name, email FROM users');
$row = $db->fetchRow($res, MDB_FETCHMODE_ORDERED);
/*
$row will contain:
array (
    0 => <column "id" data>,
    1 => <column "name" data>,
    2 => <column "email" data>
)
*/
// Access the data with:
$id    = $row[0];
$name  = $row[1];
$email = $row[2];
?>

  • MDB_FETCHMODE_ASSOC

    Returns an associative array with the column names as the array keys

    例 33-3Fetch a assoc. array

    <?php
$res = $db->query('SELECT id, name, email FROM users');
$row = $db->fetchRow($res, MDB_FETCHMODE_ASSOC);
/*
$row will contain:
array (
    'id'    => <column "id" data>,
    'name'  => <column "name" data>,
    'email' => <column "email" data>
)
*/
// Access the data with:
$id    = $row['id'];
$name  = $row['name'];
$email = $row['email'];
?>

Set the format of the fetched row

You can set the fetch mode per result call or for your whole MDB instance.

例 33-4Per call

while ($row = $db->fetchInto($res, MDB_FETCHMODE_ASSOC)) {
    $id = $row['id'];
}

例 33-5Once per instance

$db = MDB::connect($dsn);
// this will set a default fetchmode for this Pear MDB instance
// (for all queries)
$db->setFetchMode(MDB_FETCHMODE_ASSOC);

$result = $db->query(...);

while ($row = $db->fetchRow($res)) {
    $id = $row['id'];
}

Fetch rows by number

The PEAR MDB fetch system also supports an extra parameter to the fetch statement. So you can fetch rows from a result by number. This is especially helpful if you only want to show sets of an entire result (for example in building paginated HTML lists), fetch rows in an special order, etc.

例 33-6Fetching by number

...
// the row to start fetching
$from = 50;

// how many results per page
$resPage = 10;

// the last row to fetch for this page
$to = $from + $resPage;

foreach (range($from, $to) as $rowNum) {
if (!$row = $db->fetchInto($res, $fetchmode, $rowNum)) {
        break;
    }
    $id = $row[0];
    ....
}

Freeing the result set

It is recommended to finish the result set after processing in order to to save memory. Use freeResult() to do this.

例 33-7Freeing

...
$res = $db->query('SELECT * FROM clients');
while ($row = $res->fetchInto($res)) {
...
}
$db->freeResult($res);

Quick data retrieving

MDB provides some special ways to retrieve information from a query without the need of using fetch*() and loop throw results.

queryOne() retrieves the first result of the first column from a query
$numrows = $db->queryOne('select count(id) from clients');

queryRow() returns the first row and returns it as an array.
$sql = 'select name, address, phone from clients where id=1';
if (is_array($row = $db->queryRow($sql))) {
    list($name, $address, $phone) = $row;
}

queryCol() returns an array with the data of the selected column. It accepts the column number to retrieve as the second parameter.
$all_client_names = $db->queryCol('SELECT name FROM clients');
The above sentence could return for example:
$all_client_names = array('Stig', 'Jon', 'Colin');

getAll() fetches all the rows returned from a query. This method also has some advanced parameters still will also enable you to return the data as an associative array using the first column as the key.
$data = getAll('SELECT id, text, date FROM mytable');
/*
Will return:
array(
   1 => array('4', 'four', '2004'),
   2 => array('5', 'five', '2005'),
   3 => array('6', 'six', '2006')
)
*/

The query*() family methods will do all the dirty job for you, this is: launch the query, fetch the data and free the result. Please note that as all PEAR MDB functions they will return a MDB_Error object on errors.

Getting more information from query results

With MDB you have many ways to retrieve useful information from query results. These are:

  • numRows() : Returns the total number of rows returned from a "SELECT" query.
    // Number of rows
echo $db->numRows($res);

  • numCols() : Returns the total number of columns returned from a "SELECT" query.
    // Number of cols
echo $db->numCols($res);

  • affectedRows() : Returns the number of rows affected by a data manipulation query ("INSERT", "UPDATE" or "DELETE").
    // remember that this statement won't return a result object
$db->query('DELETE * FROM clients');
echo 'I have deleted ' . $db->affectedRows() . ' clients';

  • tableInfo() : Returns an associative array with information about the returned fields from a "SELECT" query.
    // Table Info
print_r($db->tableInfo($res));

Don't forget to check if the returned result from your action is a MDB_Error object. If you get a error message like "MDB_Error: database not capable", means that your database backend doesn't support this action.

前のページ | ホーム | 次のページ
Introduction - Query | 上に戻る | Introduction - Sequences

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction - Query

Introduction - Query -- Performing a query against a database.

Description

To perform a query against a database, you have to use the function query(), that takes the query string as an argument. On failure you get a MDB_Error object. Be sure to check it with MDB::isError(). On success, you get MDB_OK or when you set a SELECT-statment a result resource handle

例 33-1A simple MDB query

<?php
// Once you have a valid MDB object...
$sql = "select * from clients";

$result = $db->query($sql);

// Always check that $result is not an error
if (MDB::isError($result)) {
    die ($result->getMessage());
}

// Continue on with your script
?>
前のページ | ホーム | 次のページ
Introduction - Connect | 上に戻る | Introduction - Fetch

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction - Sequences

Introduction - Sequences -- Database sequences

Description

Sequences are a way of offering unique IDs for data rows. If you do most of your work with e.g. MySQL, think of sequences as another way of doing AUTO_INCREMENT. It's quite simple, first you request an ID, and then you insert that value in the ID field of the new row you're creating. You can have more than one sequence for all your tables, just be sure that you always use the same sequence for any particular table. To get the value of this unique ID use nextId() , if a sequence doesn't exists, it will be created automaticlly.

例 33-1Using a sequence

...
$id = $db->nextId('mySequence');
// Use the ID in your INSERT query
$res = $db->query("INSERT INTO myTable (id,text) VALUES ($id,'foo')");
...

前のページ | ホーム | 次のページ
Introduction - Fetch | 上に戻る | Introduction - Execute

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB

MDB -- Main class

説明

The main MDB class is simply a container class with some static methods for creating MDB objects.

前のページ | ホーム | 次のページ
Introduction - Execute | 上に戻る | MDB::connect()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common

MDB_Common -- Interface for database access

説明

MDB_Common is an interface class; that provides all methods to query a specific database. An instance of a database specific class will be returned by the MDB::connect() method.

前のページ | ホーム | 次のページ
MDB::isError() | 上に戻る | MDB_Common::affectedRows()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::affectedRows()

MDB_Common::affectedRows() -- Number of affected rows

概要

require_once 'MDB.php';

integer affectedRows ()

説明

Number of affected rows by a query

返り値

integer - number of rows or MDB_Error when fail

例外・エラー

表 33-1PEAR_Error の値

Error code | Error message | Reason | Solution
MDB_ERROR_NOT_CAPABLE | NULL | Function is not supported by the database backend | Switch to another database system, if you really need this feature.

注意

この関数は、スタティックにコールする ことはできません。

参照

query()

前のページ | ホーム | 次のページ
MDB_Common | 上に戻る | MDB_Common::createSequence()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::createSequence()

MDB_Common::createSequence() -- create a new sequence

概要

require_once 'MDB.php';

integer createSequence (string $seq_name, integer $start)

説明

See "Introduction - Sequences"

パラメータ

string $seq_name

name of the new sequence to create

integer $start

starting value of the sequence

返り値

integer - MDB_OK or MDB_Error, if fail

例外・エラー

表 33-1PEAR_Error の値

Error code | Error message | Reason | Solution
every error code |  | Database specific error | Check the name of the sequence. If correct, probably a bug in the sequence implementation

注意

この関数は、スタティックにコールする ことはできません。

参照

MDB::nextId() , MDB::dropSequence()

前のページ | ホーム | 次のページ
MDB_Common::affectedRows() | 上に戻る | MDB_Common::currId()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::currId()

MDB_Common::currId() -- returns the current free id of a sequence

概要

require_once 'MDB.php';

resource currId (string $seq_name)

説明

See "Introduction - Sequences"

パラメータ

string $seq_name

name of the sequence

返り値

resource - a free id or a MDB_Error, if fail

例外・エラー

表 33-1PEAR_Error の値

Error code | Error message | Reason | Solution
MDB_ERROR_NOT_CAPABLE | NULL | Function is not supported by the database backend | Switch to another database system, if you really need this feature.
MDB_ERROR_NOT_LOCKED | NULL | Locking of sequence table fails | Database specific, check documention of your database,
MDB_ERROR_NOSUCHTABLE | NULL | Sequence table was not found | Try to create a new sequence or if you are sure, a sequence was already create, check database integrity

注意

この関数は、スタティックにコールする ことはできません。

参照

createSequence() , dropSequence()

前のページ | ホーム | 次のページ
MDB_Common::createSequence() | 上に戻る | MDB_Common::disconnect()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::disconnect()

MDB_Common::disconnect() -- disconnect from a database

概要

require_once 'MDB.php';

boolean MDB::disconnect ()

説明

Disconnects from a database

返り値

boolean - 成功時には TRUE 、 失敗時には FALSE を返します。

注意

この関数は、スタティックにコールする ことはできません。

参照

MDB::connect() , Tutorial - Connect()

前のページ | ホーム | 次のページ
MDB_Common::currId() | 上に戻る | MDB_Common::dropSequence()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::dropSequence()

MDB_Common::dropSequence() -- deletes a sequence

概要

require_once 'MDB.php';

integer dropSequence (string $seqName)

説明

See "Introduction - Sequences"

パラメータ

string $seqName

name of the sequence to delete

返り値

  • integer - MDB_OK or MDB_Error, if fail

例外・エラー

表 33-1PEAR_Error の値

Error code | Error message | Reason | Solution
every error code |  | Database specific error | Check the name of the sequence. If correct, probably a bug in the sequence implementation.

注意

この関数は、スタティックにコールする ことはできません。

参照

MDB_Common::createSequence() , MDB_Common::nextId()

前のページ | ホーム | 次のページ
MDB_Common::disconnect() | 上に戻る | MDB_Common::execute()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::execute()

MDB_Common::execute() -- executes a prepared SQL statment

概要

require_once 'MDB.php';

mixed execute (resource $stmt, array [$types = NULL], array [$params = array()], array [$param_types = NULL])

説明

execute() joins the prepared SQL statment from prepareQuery() with the given data and executes the SQL query.

パラメータ

resource $stmt

query handle from prepareQuery()

array $types

if supplied, the types of the columns in the result set will be set for fetching

array $params

a numeric array containing the data to insert into the query

array $param_types

if supplied, the values in $param will automatically be set to the passed datatypes

返り値

mixed - a resource id/MDB_OK or a MDB_Error, if fail

例外・エラー

表 33-1PEAR_Error の値

Error code | Error message | Reason | Solution
MDB_ERROR_INVALID | NULL | SQL statment handle is not valid. | Check correct processing of the SQL statment with prepareQuery() . Note that execute() requires a handle to the statement returned by prepareQuery() , not the statment itself.
MDB_ERROR_NEED_MORE_DATA | NULL | To less data for filling the prepared SQL statment. | Check the number of wild cards given in the SQL statment for prepareQuery() . Check the count of entries in the array for $data. The count of entries have to be equal to the number of wild cards.
MDB_ERROR_NO_DB_SELECTED | NULL | No database was choosen. | Check the DSN in connect() .
every other error code |  | Database specific error | Check the database related section of PHP-Manual to detect the reason for this error. In the most cases a misformed SQL statment. Ie. using LIMIT in a SQL-Statment for an Oracle database.

注意

この関数は、スタティックにコールする ことはできません。

参照

prepareQuery() , executeMultiple()

前のページ | ホーム | 次のページ
MDB_Common::dropSequence() | 上に戻る | MDB_Common::executeQuery()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::executeMultiple()

MDB_Common::executeMultiple() -- repeated execution of a prepared SQL statment

概要

require_once 'MDB.php';

mixed executeMultiple (resource $stmt, array [$types = NULL], array [$params = array()], array [$param_types = NULL], array $data)

説明

executeMultiple() joins the prepared SQL statment from prepareQuery() with the given data and does the SQL query for every "row" in the $data array.

パラメータ

resource $stmt

query handle from prepareQuery()

array $types

if supplied, the types of the columns in the result set will be set for fetching

array $params

if supplied, prepareQuery()/ executeQuery() will be used with this array as execute parameters

array $param_types

if supplied, the values in $param will automatically set to the passed datatypes

array array $data

a numeric array containing the data to insert into the query

返り値

mixed - a resource id/MDB_OK or a MDB_Error, if fail

例外・エラー

表 33-1PEAR_Error の値

Error code | Error message | Reason | Solution
MDB_ERROR_INVALID | NULL | SQL statment handle is not valid. | Check correct processing of the SQL statment with prepareQuery() . Note that executeMultiple() requires a handle to the statement returned by prepareQuery() , not the statment itself.
MDB_ERROR_NEED_MORE_DATA | NULL | To less data for filling the prepared SQL statment. | Check the number of wild cards given in the SQL statment for prepareQuery() . Check the count of entries in the array for $data. The count of entries have to be equal to the number of wild cards.
MDB_ERROR_NO_DB_SELECTED | NULL | No database was choosen. | Check the DSN in connect() .
every other error code |  | Database specific error | Check the database related section of PHP-Manual to detect the reason for this error. In the most cases a misformed SQL statment. Ie. using LIMIT in a SQL-Statment for an Oracle database.

注意

この関数は、スタティックにコールする ことはできません。

警告

If an error occurs during execution, the function will be stopped. Possible remaining data will be unprocessed.

See Introduction - Execute for general using and an example.

参照

prepareQuery() , executeQuery()

前のページ | ホーム | 次のページ
MDB_Common::executeQuery() | 上に戻る | MDB_Common::fetchAll()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::executeQuery()

MDB_Common::executeQuery() -- executes a prepared SQL statment

概要

require_once 'MDB.php';

mixed executeQuery (resource $stmt, array [$types = NULL])

説明

executeQuery() joins the prepared SQL statment from prepareQuery() with the data that was set using one of the setParam() methods and executes the SQL query.

パラメータ

resource $stmt

query handle from prepareQuery()

array $types

if supplied, the types of the columns in the result set will be set for fetching

返り値

mixed - a resource id/MDB_OK or a MDB_Error, if fail

例外・エラー

表 33-1PEAR_Error の値

Error code | Error message | Reason | Solution
MDB_ERROR_INVALID | NULL | SQL statment handle is not valid. | Check correct processing of the SQL statment with prepareQuery() . Note that executeQuery() requires a handle to the statement returned by prepareQuery() , not the statment itself.
MDB_ERROR_NEED_MORE_DATA | NULL | To less data for filling the prepared SQL statment. | Check the number of wild cards given in the SQL statment for prepareQuery() . Check the count of entries in the array for $data. The count of entries have to be equal to the number of wild cards.
MDB_ERROR_NO_DB_SELECTED | NULL | No database was choosen. | Check the DSN in connect() .
every other error code |  | Database specific error | Check the database related section of PHP-Manual to detect the reason for this error. In the most cases a misformed SQL statment. Ie. using LIMIT in a SQL-Statment for an Oracle database.

注意

この関数は、スタティックにコールする ことはできません。

See Introduction - Execute for general using and an example.

参照

prepareQuery() , executeMultiple()

前のページ | ホーム | 次のページ
MDB_Common::execute() | 上に戻る | MDB_Common::executeMultiple()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::fetchAll()

MDB_Common::fetchAll() -- fetch result set as a nested array

概要

require_once 'MDB.php';

array &fetchAll (resource $result, integer [$fetchmode = MDB_FETCHMODE_DEFAULT], boolean [$rekey = FALSE], boolean [$force_array = FALSE], boolean [$group = FALSE])

説明

Fetch the entire result set of a result set and return it into a nested array and free the result set.

パラメータ

resource $result

a valid resource returned by query() or executeQuery()

integer $fetchmode

the fetch mode to use

boolean $rekey

if set to TRUE the array result be modified as follows: If the result set contains more than two columns, the value will be an array of the values from column 2 to n. If the result set contains only two columns, the returned value will be a scalar with the value of the second column (unless forced to an array with the $force_array parameter).

boolean $force_array

used only if the query returns exactly two columns. If TRUE, the values of the returned array will be one-element arrays instead of scalars.

boolean boolean $group

if TRUE, the values of the returned array is wrapped in another array. If the same key value (in the first column) repeats itself, the values will be appended to this array instead of overwriting the existing values.

返り値

array - an nested array or a MDB_Error, if fail.

例外・エラー

表 33-1PEAR_Error の値

Error code | Error message | Reason | Solution
MDB_ERROR_TRUNCATED | NULL | The result set contains fewer then two columns | Check the SQL fetch or choose another fetch*() function
every other error code |  | Database specific error | Check the database related section of PHP-Manual to detect the reason for this error. In the most cases a misformed SQL statment. Ie. using LIMIT in a SQL-Statment for an Oracle database.

注意

この関数は、スタティックにコールする ことはできません。

参照

 query()
,

 limitQuery()
,

 prepareQuery()
,

 executeQuery()

  ,
 fetchRow()

  ,
 fetchOne()

  ,
 fetchCol()

前のページ | ホーム | 次のページ
MDB_Common::executeMultiple() | 上に戻る | MDB_Common::fetchCol()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::fetchCol()

MDB_Common::fetchCol() -- Fetch a single column

概要

require_once 'MDB.php';

array &fetchCol (resource $result, mixed [$colnum = 0])

説明

Fetch a single column from a result set of a result set and free the result set.

パラメータ

resource $result

a valid resource returned by query() or executeQuery()

array $params

if supplied, prepareQuery()/ executeQuery() will be used with this array as execute parameters

mixed $colnum

which column to return (integer [column number, starting at 0] or string [column name])

返り値

array - the first row of results as an array indexed from 0 or a MDB_Error, if fail

例外・エラー

表 33-1PEAR_Error の値

Error code | Error message | Reason | Solution
MDB_ERROR_TRUNCATED | NULL | The result set contains fewer then two columns | Check the SQL query or choose another query*() function
every other error code |  | Database specific error | Check the database related section of PHP-Manual to detect the reason for this error. In the most cases a misformed SQL statment. Ie. using LIMIT in a SQL-Statment for an Oracle database.

注意

この関数は、スタティックにコールする ことはできません。

参照

 query()
,

 limitQuery()
,

 prepareQuery()
,

 executeQuery()

  ,
 fetchRow()

  ,
 fetchOne()

  ,
 fetchAll()

前のページ | ホーム | 次のページ
MDB_Common::fetchAll() | 上に戻る | MDB_Common::fetchOne()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::fetchInto()

MDB_Common::fetchInto() -- fetch a row into a variable

概要

require_once 'MDB.php';

mixed fetchInto (resource $result [, integer $fetchMode MDB_FETCHMODE_DEFAULT [, integer $rownum = NULL]])

説明

Fetch a row and return data in an array.

パラメータ

resource $result

result identifier

integer $fetchMode

format of fetched row

integer $rownum

the row number to fetch

返り値

mixed - an array or NULL, if no more rows

前のページ | ホーム | 次のページ
MDB_Common::fetchRow() | 上に戻る | MDB_Common::freeResult()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::fetchOne()

MDB_Common::fetchOne() -- fetch the first column of the first row

概要

require_once 'MDB.php';

mixed &fetchOne (resource $result)

説明

Fetch the first column of the first row of data returned from a result set and free the result set.

パラメータ

resource $result

a valid resource returned by query() or executeQuery()

返り値

mixed - the returned value or a MDB_Error, if fail

例外・エラー

表 33-1PEAR_Error の値

Error code | Error message | Reason | Solution
every other error code |  | Database specific error | Check the database related section of PHP-Manual to detect the reason for this error. In the most cases a misformed SQL statment. Ie. using LIMIT in a SQL-Statment for an Oracle database.

注意

この関数は、スタティックにコールする ことはできません。

参照

 query()
,

 limitQuery()
,

 prepareQuery()
,

 executeQuery()
,

 fetchRow()

  ,
 fetchCol()

  ,
 fetchCol()

前のページ | ホーム | 次のページ
MDB_Common::fetchCol() | 上に戻る | MDB_Common::fetchRow()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::fetchRow()

MDB_Common::fetchRow() -- fetch the first row

概要

require_once 'MDB.php';

array &fetchRow (resource $result, integer [$fetchmode = MDB_FETCHMODE_DEFAULT] [, integer $rownum = NULL])

説明

Fetch the first row of data returned from a result set and free the result set.

パラメータ

resource $result

a valid resource returned by query() or executeQuery()

integer $fetchmode

the fetch mode to use, default is MDB_FETCHMODE_DEFAULT

integer $rownum

the row number to fetch

返り値

array - the first row of results as an array indexed from 0 or a MDB_Error, if fail

例外・エラー

表 33-1PEAR_Error の値

Error code | Error message | Reason | Solution
every other error code |  | Database specific error | Check the database related section of PHP-Manual to detect the reason for this error. In the most cases a misformed SQL statment. Ie. using LIMIT in a SQL-Statment for an Oracle database.

注意

この関数は、スタティックにコールする ことはできません。

参照

query() , limitQuery() , prepareQuery() executeQuery() , fetchCol() , fetchRow()

前のページ | ホーム | 次のページ
MDB_Common::fetchOne() | 上に戻る | MDB_Common::fetchInto()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::freeResult()

MDB_Common::freeResult() -- delete the result set

概要

require_once 'MDB.php';

boolean freeResult (resource $result)

説明

Deletes the result set and frees the memory occupied by the result set.

パラメータ

resource $result

A valid resource returned by query() or executeQuery()

返り値

  • boolean - 成功時には TRUE 、 失敗時には FALSE を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
MDB_Common::fetchInto() | 上に戻る | MDB_Common::getAll()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::getAll()

MDB_Common::getAll() -- Fetch all rows

概要

require_once 'MDB.php';

array &getAll (string $query, array [$types = NULL], array [$params = array()], array [$param_types = NULL], integer [$fetchmode = MDB_FETCHMODE_DEFAULT])

説明

Fetch the entire result set of a query and return it into a nested array. The function takes care of doing the query and freeing the results when finished.

パラメータ

string $query

the SQL query

array $types

if supplied, the types of the columns in the result set will be set for fetching

array $params

if supplied, prepareQuery()/ executeQuery() will be used with this array as execute parameters

array $param_types

if supplied, the values in $param will automatically set to the passed datatypes

integer $fetchmode

the fetch mode to use, default is MDB_FETCHMODE_DEFAULT

返り値

  • array - an nested array or a MDB_Error, if fail

例外・エラー

表 33-1PEAR_Error の値

Error code | Error message | Reason | Solution
MDB_ERROR_INVALID | NULL | SQL statment for preparing is not valid. | See the prepareQuery() documentation, if you want to use a SQL statemt using wildcards.
MDB_ERROR_NEED_MORE_DATA | NULL | To less data for filling the prepared SQL statment. | Check the number of wild cards given in the SQL statment prepareQuery() . Check the count of entries in the array for $params. The count of entries have to be equal to the number of wild cards.
MDB_ERROR_NO_DB_SELECTED | NULL | No database was choosen. | Check the DSN in connect() .
every other error code |  | Database specific error | Check the database related section of PHP-Manual to detect the reason for this error. In the most cases a misformed SQL statment. Ie. using LIMIT in a SQL-Statment for an Oracle database.

注意

この関数は、スタティックにコールする ことはできません。

参照

 query()
,

 limitQuery()
,

 prepareQuery()

 executeQuery()
,

 getCol()

  ,
 getRow()

  ,
 getAssoc()

  ,
 getOne()

前のページ | ホーム | 次のページ
MDB_Common::freeResult() | 上に戻る | MDB_Common::getAssoc()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::getAssoc()

MDB_Common::getAssoc() -- fetch result set as associative array

概要

require_once 'MDB.php';

array &getAssoc (string $query, array [$types = NULL], array [$params = array()], array [$param_types = NULL], integer [$fetchmode = MDB_FETCHMODE_DEFAULT], boolean [$force_array = FALSE], boolean [$group = FALSE])

説明

Fetch the entire result set of a query and return it as an associative array using the first column as the key. The function takes care of doing the query and freeing the results when finished. If the result set contains more than two columns, the value will be an array of the values from column 2 to n. If the result set contains only two columns, the returned value will be a scalar with the value of the second column (unless forced to an array with the $force_array parameter).

パラメータ

string $query

the SQL query

array $types

if supplied, the types of the columns in the result set will be set for fetching

array $params

if supplied, prepareQuery()/ executeQuery() will be used with this array as execute parameters

array $param_types

if supplied, the values in $param will automatically set to the passed datatypes

integer $fetchmode

the fetch mode to use

boolean $force_array

used only if the query returns exactly two columns. If TRUE, the values of the returned array will be one-element arrays instead of scalars.

boolean boolean $group

if TRUE, the values of the returned array is wrapped in another array. If the same key value (in the first column) repeats itself, the values will be appended to this array instead of overwriting the existing values.

返り値

array - associative array with results from the query.

例外・エラー

表 33-1PEAR_Error の値

Error code | Error message | Reason | Solution
MDB_ERROR_INVALID | NULL | SQL statment for preparing is not valid. | See the prepareQuery() documentation, if you want to use a SQL statemt using wildcards.
MDB_ERROR_NEED_MORE_DATA | NULL | To less data for filling the prepared SQL statment. | Check the number of wild cards given in the SQL statment prepareQuery() . Check the count of entries in the array for $params. The count of entries have to be equal to the number of wild cards.
MDB_ERROR_NO_DB_SELECTED | NULL | No database was choosen. | Check the DSN in connect() .
MDB_ERROR_TRUNCATED | NULL | The result set contains fewer then two columns | Check the SQL query or choose another get*() function
every other error code |  | Database specific error | Check the database related section of PHP-Manual to detect the reason for this error. In the most cases a misformed SQL statment. Ie. using LIMIT in a SQL-Statment for an Oracle database.

注意

この関数は、スタティックにコールする ことはできません。

参照

 query()
,

 limitQuery()
,

 prepareQuery()
,

 executeQuery()

  ,
 getRow()

  ,
 getOne()

  ,
 getCol()

前のページ | ホーム | 次のページ
MDB_Common::getAll() | 上に戻る | MDB_Common::getCol()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::getCol()

MDB_Common::getCol() -- Fetch a single column

概要

require_once 'MDB.php';

array &getCol (string $query, string [$type = NULL], array [$params = array()], array [$param_types = NULL], mixed [$colnum = 0])

説明

Fetch a single column from a result set of a query. The function takes care of doing the query and freeing the results when finished.

パラメータ

string $query

the SQL query

string $type

if supplied, the type of the column in the result set will be set for fetching

array $params

if supplied, prepareQuery()/ executeQuery() will be used with this array as execute parameters

array $param_types

if supplied, the values in $param will automatically set to the passed datatypes

mixed $colnum

which column to return (integer [column number, starting at 0] or string [column name])

返り値

array - the first row of results as an array indexed from 0 or a MDB_Error, if fail

例外・エラー

表 33-1PEAR_Error の値

Error code | Error message | Reason | Solution
MDB_ERROR_INVALID | NULL | SQL statment for preparing is not valid. | See the prepareQuery() documentation, if you want to use a SQL statemt using wildcards.
MDB_ERROR_NEED_MORE_DATA | NULL | To less data for filling the prepared SQL statment. | Check the number of wild cards given in the SQL statment prepareQuery() . Check the count of entries in the array for $params. The count of entries have to be equal to the number of wild cards.
MDB_ERROR_NO_DB_SELECTED | NULL | No database was choosen. | Check the DSN in connect() .
MDB_ERROR_TRUNCATED | NULL | The result set contains fewer then two columns | Check the SQL query or choose another get*() function
every other error code |  | Database specific error | Check the database related section of PHP-Manual to detect the reason for this error. In the most cases a misformed SQL statment. Ie. using LIMIT in a SQL-Statment for an Oracle database.

注意

この関数は、スタティックにコールする ことはできません。

参照

 query()
,

 limitQuery()
,

 prepareQuery()
,

 executeQuery()

  ,
 getRow()

  ,
 getOne()

  ,
 getAssoc()

前のページ | ホーム | 次のページ
MDB_Common::getAssoc() | 上に戻る | MDB_Common::getOne()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::getOne()

MDB_Common::getOne() -- fetch the first column of the first row

概要

require_once 'MDB.php';

mixed &getOne (string $query, string [$type = NULL], array [$params = array()], array [$param_types = NULL])

説明

Fetch the first column of the first row of data returned from a query. The function takes care of doing the query and freeing the results when finished.

パラメータ

string $query

the SQL query or the statement to prepare

string $type

if supplied, the type of the column in the result set will be set for fetching

array $params

if supplied, prepareQuery()/ executeQuery() will be used with this array as execute parameters

array $param_types

if supplied, the values in $param will automatically set to the passed datatypes

返り値

mixed - the returned value or a MDB_Error, if fail

例外・エラー

表 33-1PEAR_Error の値

Error code | Error message | Reason | Solution
MDB_ERROR_INVALID | NULL | SQL statment for preparing is not valid. | See the prepareQuery() documentation, if you want to use a SQL statemt using wildcards.
MDB_ERROR_NEED_MORE_DATA | NULL | To less data for filling the prepared SQL statment. | Check the number of wild cards given in the SQL statment prepareQuery() . Check the count of entries in the array for $params. The count of entries have to be equal to the number of wild cards.
MDB_ERROR_NO_DB_SELECTED | NULL | No database was choosen. | Check the DSN in connect() .
every other error code |  | Database specific error | Check the database related section of PHP-Manual to detect the reason for this error. In the most cases a misformed SQL statment. Ie. using LIMIT in a SQL-Statment for an Oracle database.

注意

この関数は、スタティックにコールする ことはできません。

参照

 query()
,

 limitQuery()
,

 prepareQuery()
,

 executeQuery()
,

 getRow()

  ,
 getCol()

  ,
 getCol()

  ,
 getCol()

前のページ | ホーム | 次のページ
MDB_Common::getCol() | 上に戻る | MDB_Common::getRow()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::getRow()

MDB_Common::getRow() -- fetch the first row

概要

require_once 'MDB.php';

array &getRow (string $query, array [$types = NULL], array [$params = array()], array [$param_types = NULL], integer [$fetchmode = MDB_FETCHMODE_DEFAULT])

説明

Fetch the first row of data returned from a query. The function takes care of doing the query and freeing the results when finished.

パラメータ

string $query

the SQL query

array $types

if supplied, the types of the columns in the result set will be set for fetching

array $params

if supplied, prepareQuery()/ executeQuery() will be used with this array as execute parameters

array $param_types

if supplied, the values in $param will automatically set to the passed datatypes

integer $fetchmode

the fetch mode to use, default is MDB_FETCHMODE_DEFAULT

返り値

array - the first row of results as an array indexed from 0 or a MDB_Error, if fail

例外・エラー

表 33-1PEAR_Error の値

Error code | Error message | Reason | Solution
MDB_ERROR_INVALID | NULL | SQL statment for preparing is not valid. | See the prepareQuery() documentation, if you want to use a SQL statemt using wildcards.
MDB_ERROR_NEED_MORE_DATA | NULL | To less data for filling the prepared SQL statment. | Check the number of wild cards given in the SQL statment prepareQuery() . Check the count of entries in the array for $params. The count of entries have to be equal to the number of wild cards.
MDB_ERROR_NO_DB_SELECTED | NULL | No database was choosen. | Check the DSN in connect() .
every other error code |  | Database specific error | Check the database related section of PHP-Manual to detect the reason for this error. In the most cases a misformed SQL statment. Ie. using LIMIT in a SQL-Statment for an Oracle database.

注意

この関数は、スタティックにコールする ことはできません。

参照

 query()
,

 limitQuery()
,

 prepareQuery()

 executeQuery()
,

 getCol()

  ,
 getRow()

  ,
 getAssoc()

前のページ | ホーム | 次のページ
MDB_Common::getOne() | 上に戻る | MDB_Common::getTextValue()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::getTextValue()

MDB_Common::getTextValue() -- quotes a string

概要

require_once 'MDB.php';

string MDB::getTextValue (string $string)

説明

Quotes a string database-dependent, so it can be safely used in a query

パラメータ

string $string

the input string to quote

返り値

string - the quoted string.

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
MDB_Common::getRow() | 上に戻る | MDB_Common::limitQuery()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::limitQuery()

MDB_Common::limitQuery() -- send a limited query to the database

概要

require_once 'MDB.php';

mixed &limitQuery (string $query, array [$types], integer $from, integer $count)

説明

Executes a SQL query, but fetches only the the specificed count of rows. It is an emulation of the MySQL LIMIT option.

パラメータ

string $query

the SQL query

array $types

if supplied, the types of the columns in the result set will be set for fetching

integer $from

the row to start to fetch

integer $count

the numbers of rows to fetch

返り値

mixed - a new a resource id/MDB_OK or a MDB_Error, if fail

例外・エラー

表 33-1PEAR_Error の値

Error code | Error message | Reason | Solution
MDB_ERROR_NO_DB_SELECTED | NULL | No database was choosen. | Check the DSN in connect() .
every other error code |  | Database specific error | Check the database related section of PHP-Manual to detect the reason for this error. In the most cases a misformed SQL statment. Ie. using LIMIT in a SQL-Statment for an Oracle database.

注意

この関数は、スタティックにコールする ことはできません。

警告

このモジュールは、 実験的 なものです。 これらの関数の動作・関数名を含めここに書かれていることすべてが このパッケージの将来のリリースで予告なく変更される可能性があります。 注意を喚起するとともに、使用者のリスクでこのモジュールを使用してください。

Depending on the database you will not really get more speed compared to query() . The advantage of limitQuery() is the deleting of unneeded rows in the resultset, as early as possible. So this can decrease memory usage.

参照

query()

前のページ | ホーム | 次のページ
MDB_Common::getTextValue() | 上に戻る | MDB_Common::nextId()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::nextId()

MDB_Common::nextId() -- returns the next free id of a sequence

概要

require_once 'MDB.php';

resource nextId (string $seq_name, boolean $onDemand = TRUE)

説明

See "Introduction - Sequences"

パラメータ

string $seq_name

name of the sequence

boolean $onDemand

when TRUE the sequence is automatic created, if it not exists.

返り値

resource - a free id or a MDB_Error, if fail

例外・エラー

表 33-1PEAR_Error の値

Error code | Error message | Reason | Solution
MDB_ERROR_NOT_CAPABLE | NULL | Function is not supported by the database backend | Switch to another database system, if you really need this feature.
MDB_ERROR_NOT_LOCKED | NULL | Locking of sequence table fails | Database specific, check documention of your database,
MDB_ERROR_NOSUCHTABLE | NULL | Sequence table was not found | Try to create a new sequence or if you are sure, a sequence was already create, check database integrity

注意

この関数は、スタティックにコールする ことはできません。

参照

createSequence() , dropSequence()

前のページ | ホーム | 次のページ
MDB_Common::limitQuery() | 上に戻る | MDB_Common::numCols()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::numCols()

MDB_Common::numCols() -- get number of columns

概要

require_once 'MDB.php';

integer numCols (resource $result)

説明

Get the number of columns of the rows in a result set.

パラメータ

resource $result

a valid resource returned by query() or executeQuery()

返り値

integer - number of columns

注意

この関数は、スタティックにコールする ことはできません。

参照

MDB_Common::numRows()

前のページ | ホーム | 次のページ
MDB_Common::nextId() | 上に戻る | MDB_Common::numRows()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::numRows()

MDB_Common::numRows() -- get number of rows

概要

require_once 'MDB.php';

integer numRows (resource $result)

説明

Get the number of rows in a result set.

パラメータ

resource $result

a valid resource returned by query() or executeQuery()

返り値

integer - number of rows

注意

この関数は、スタティックにコールする ことはできません。

参照

MDB_Common::numCols()

前のページ | ホーム | 次のページ
MDB_Common::numCols() | 上に戻る | MDB_Common::prepareQuery()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::prepareQuery()

MDB_Common::prepareQuery() -- prepares a SQL statment

概要

require_once 'MDB.php';

resource prepareQuery (string $query)

説明

Prepares a query for execution with executeQuery() .

パラメータ

string $query

the query to prepareQuery

返り値

resource - the query handle

注意

この関数は、スタティックにコールする ことはできません。

See Introduction - Execute for general using and an example.

参照

executeQuery() , executeQuery()

前のページ | ホーム | 次のページ
MDB_Common::numRows() | 上に戻る | MDB_Common::query()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::query()

MDB_Common::query() -- send a query to the database

概要

require_once 'MDB.php';

mixed &query (string $query, array [$types])

説明

Executes a SQL query

パラメータ

string $query

the SQL query

array $types

if supplied, the types of the columns in the result set will be set for fetching

返り値

mixed - a new a resource id/MDB_OK or a MDB_Error, if fail

例外・エラー

表 33-1PEAR_Error の値

Error code | Error message | Reason | Solution
MDB_ERROR_NO_DB_SELECTED | NULL | No database was choosen. | Check the DSN in connect() .
every other error code |  | Database specific error | Check the database related section of PHP-Manual to detect the reason for this error. In the most cases a misformed SQL statment. Ie. using LIMIT in a SQL-Statment for an Oracle database.

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
MDB_Common::prepareQuery() | 上に戻る | MDB_Common::queryAll()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::queryAll()

MDB_Common::queryAll() -- fetch result set as a nested array

概要

require_once 'MDB.php';

array &queryAll (string $query, array [$types = NULL], integer [$fetchmode = MDB_FETCHMODE_DEFAULT], boolean [$rekey = FALSE], boolean [$force_array = FALSE], boolean [$group = FALSE])

説明

Fetch the entire result set of a query and return it into a nested array. The function takes care of doing the query and freeing the results when finished.

パラメータ

string $query

the SQL query

array $types

if supplied, the types of the columns in the result set will be set for fetching

integer $fetchmode

the fetch mode to use

boolean $rekey

if set to TRUE the array result be modified as follows: If the result set contains more than two columns, the value will be an array of the values from column 2 to n. If the result set contains only two columns, the returned value will be a scalar with the value of the second column (unless forced to an array with the $force_array parameter).

boolean $force_array

used only if the query returns exactly two columns. If TRUE, the values of the returned array will be one-element arrays instead of scalars.

boolean boolean $group

if TRUE, the values of the returned array is wrapped in another array. If the same key value (in the first column) repeats itself, the values will be appended to this array instead of overwriting the existing values.

返り値

array - an nested array or a MDB_Error, if fail.

例外・エラー

表 33-1PEAR_Error の値

Error code | Error message | Reason | Solution
MDB_ERROR_NO_DB_SELECTED | NULL | No database was choosen. | Check the DSN in connect() .
MDB_ERROR_TRUNCATED | NULL | The result set contains fewer then two columns | Check the SQL query or choose another query*() function
every other error code |  | Database specific error | Check the database related section of PHP-Manual to detect the reason for this error. In the most cases a misformed SQL statment. Ie. using LIMIT in a SQL-Statment for an Oracle database.

注意

この関数は、スタティックにコールする ことはできません。

参照

 query()
,

 limitQuery()
,

 prepareQuery()
,

 executeQuery()

  ,
 queryRow()

  ,
 queryOne()

  ,
 queryCol()

前のページ | ホーム | 次のページ
MDB_Common::query() | 上に戻る | MDB_Common::queryCol()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::queryCol()

MDB_Common::queryCol() -- Fetch a single column

概要

require_once 'MDB.php';

array &queryCol (string $query, string [$type = NULL], mixed [$colnum = 0])

説明

Fetch a single column from a result set of a query. The function takes care of doing the query and freeing the results when finished.

パラメータ

string $query

the SQL query

string $type

if supplied, the type of the column in the result set will be set for fetching

array $params

if supplied, prepareQuery()/ executeQuery() will be used with this array as execute parameters

array $param_types

if supplied, the values in $param will automatically set to the passed datatypes

mixed $colnum

which column to return (integer [column number, starting at 0] or string [column name])

返り値

array - the first row of results as an array indexed from 0 or a MDB_Error, if fail

例外・エラー

表 33-1PEAR_Error の値

Error code | Error message | Reason | Solution
MDB_ERROR_NO_DB_SELECTED | NULL | No database was choosen. | Check the DSN in connect() .
MDB_ERROR_TRUNCATED | NULL | The result set contains fewer then two columns | Check the SQL query or choose another query*() function
every other error code |  | Database specific error | Check the database related section of PHP-Manual to detect the reason for this error. In the most cases a misformed SQL statment. Ie. using LIMIT in a SQL-Statment for an Oracle database.

注意

この関数は、スタティックにコールする ことはできません。

参照

 query()
,

 limitQuery()
,

 prepareQuery()
,

 executeQuery()

  ,
 queryRow()

  ,
 queryOne()

  ,
 queryAll()

前のページ | ホーム | 次のページ
MDB_Common::queryAll() | 上に戻る | MDB_Common::queryOne()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::queryOne()

MDB_Common::queryOne() -- fetch the first column of the first row

概要

require_once 'MDB.php';

mixed &queryOne (string $query, string [$type = NULL])

説明

Fetch the first column of the first row of data returned from a query. The function takes care of doing the query and freeing the results when finished.

パラメータ

string $query

the SQL query or the statement to prepare

string $type

if supplied, the type of the cell in the result set will be set for fetching

返り値

mixed - the returned value or a MDB_Error, if fail

例外・エラー

表 33-1PEAR_Error の値

Error code | Error message | Reason | Solution
MDB_ERROR_NO_DB_SELECTED | NULL | No database was choosen. | Check the DSN in connect() .
every other error code |  | Database specific error | Check the database related section of PHP-Manual to detect the reason for this error. In the most cases a misformed SQL statment. Ie. using LIMIT in a SQL-Statment for an Oracle database.

注意

この関数は、スタティックにコールする ことはできません。

参照

 query()
,

 limitQuery()
,

 prepareQuery()
,

 executeQuery()
,

 queryRow()

  ,
 queryCol()

  ,
 queryCol()

前のページ | ホーム | 次のページ
MDB_Common::queryCol() | 上に戻る | MDB_Common::queryRow()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::queryRow()

MDB_Common::queryRow() -- fetch the first row

概要

require_once 'MDB.php';

array &queryRow (string $query, array [$types = NULL], integer [$fetchmode = MDB_FETCHMODE_DEFAULT] [, integer $rownum = NULL])

説明

Fetch the first row of data returned from a query. The function takes care of doing the query and freeing the results when finished.

パラメータ

string $query

the SQL query

array $types

if supplied, the types of the columns in the result set will be set for fetching

integer $fetchmode

the fetch mode to use, default is MDB_FETCHMODE_DEFAULT

integer $rownum

the row number to fetch

返り値

array - the first row of results as an array indexed from 0 or a MDB_Error, if fail

例外・エラー

表 33-1PEAR_Error の値

Error code | Error message | Reason | Solution
MDB_ERROR_NO_DB_SELECTED | NULL | No database was choosen. | Check the DSN in connect() .
every other error code |  | Database specific error | Check the database related section of PHP-Manual to detect the reason for this error. In the most cases a misformed SQL statment. Ie. using LIMIT in a SQL-Statment for an Oracle database.

注意

この関数は、スタティックにコールする ことはできません。

参照

query() , limitQuery() , prepareQuery() executeQuery() , queryCol() , queryRow()

前のページ | ホーム | 次のページ
MDB_Common::queryOne() | 上に戻る | MDB_Common::setFetchMode()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::setFetchMode()

MDB_Common::setFetchMode() -- sets the default fetch mode

概要

require_once 'MDB.php';

void setFetchMode (integer $fetchmode, string [$object_class = NULL])

説明

Sets the fetch mode used by default on queries for the connection.

パラメータ

integer $fetchmode

MDB_FETCHMODE_ORDEREDor MDB_FETCHMODE_ASSOC, all possibly bit-wise OR'ed with MDB_FETCHMODE_FLIPPED. See "Introduction - Fetch" for further information.

返り値

void - NULL, if ok(!)

例外・エラー

表 33-1PEAR_Error の値

Error code | Error message | Reason | Solution
NULL | invalid fetchmode mode | The given fetch mode does not exists or is not implement in your MDB_Error version. | Check writing of the argument and your used version of MDB.

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
MDB_Common::queryRow() | 上に戻る | MDB_Common::tableInfo()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Common::tableInfo()

MDB_Common::tableInfo() -- get table info from a query

概要

require_once 'MDB.php';

boolean tableInfo (resource $result [, int $mode = NULL])

説明

Fetch table information from result query.

返り値

Returns an associative array of table and field information.

警告

この関数については、現在のところ文書化されていません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
MDB_Common::setFetchMode() | 上に戻る | MDB_Error

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB_Error

MDB_Error -- MDB Error object

説明

In case of failure, most of the MDB functions return a MDB_Error object which contains information about the error. MDB_Error offers the same functions as PEAR_Error.

前のページ | ホーム | 次のページ
MDB_Common::tableInfo() | 上に戻る | MDB2

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB::connect()

MDB::connect() -- connects to database

概要

require_once 'MDB.php';

object MDB::connect (string $dsn, boolean [$options = FALSE])

説明

Creates a new MDB connection object and connect to the specified database

パラメータ

string $dsn

Data Source Name. See the "DSN" section for further information.

boolean $options

If $options is TRUE the connection will be persistent (requires support by database driver). Default is FALSE. In future releases, this parameter will be an array and take different options depending on the database.

返り値

object - the created MDB connection object, or a MDB_Error object on error.

例外・エラー

表 33-1PEAR_Error の値

Error code | Error message | Reason | Solution
MDB_ERROR_NOT_FOUND | NULL | The database specific class was not found. | Check the $dsn and make sure to have an complete installation of the MDB-package and that you database is supported by MDB.

注意

この関数は、スタティックにコール されます。

参照

MDB::disconnect() , Tutorial - Connect()

前のページ | ホーム | 次のページ
MDB | 上に戻る | MDB::isError()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MDB::isError()

MDB::isError() -- checks for an error

概要

require_once 'MDB.php';

boolean MDB::isError (mixed $value)

説明

Checks whether a result code from a MDB method is a MDB_Error object or not.

パラメータ

mixed $value

Variable to check

返り値

boolean - TRUE, if $value is a MDB_Error object

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
MDB::connect() | 上に戻る | MDB_Common

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar

目次
導入 -- どのようなことがカレンダークラスでできるのか
インストール -- PEAR::Calendar のインストール方法
お急ぎの方用 -- お湯をかけるだけのように...
パッケージ概要 -- カレンダークラスの概要
メソッドの概要 -- Calendar API の要約
カレンダーデコレータ -- Calendar_Decorator とは
FAQ -- よくある質問とその答え
カレンダー -- カレンダーベースクラス
constructor Calendar::Calendar() -- Calendar を作成する
Calendar::adjust() -- 日付を調整する (ヘルパーメソッド)
Calendar::build() -- カレンダーオブジェクトの子オブジェクトを作成するための抽象メソッド
Calendar::fetch() -- Calendar のサブクラスである子オブジェクトを順に取得するためのイテレータメソッド (例えば「時間」オブジェクトから「分」オブジェクトを取得する)。 最後の要素に達した後は、false を返してコレクションをリセットする
Calendar::fetchAll() -- 現在のオブジェクトの子オブジェクトをすべて取得する
Calendar::getTimestamp() -- 現在の日付/時刻の値からタイムスタンプを返す
Calendar::getValidator() -- Calendar_Validator のインスタンスを返す
Calendar::isSelected() -- カレンダークラスのサブクラスのオブジェクトが選択されている (例: 今日) 場合に True を返す
Calendar::isValid() -- この日付が有効かどうかを調べる
Calendar::nextDay() -- 翌日の値を返す
Calendar::nextHour() -- 次の時間の値を返す
Calendar::nextMinute() -- 次の分の値を返す
Calendar::nextMonth() -- 翌月の値を返す
Calendar::nextSecond() -- 次の秒の値を返す
Calendar::nextYear() -- 翌年の値を返す
Calendar::prevDay() -- 前日の値を返す
Calendar::prevHour() -- 前の時間の値を返す
Calendar::prevMinute() -- 前の分の値を返す
Calendar::prevMonth() -- 前月の値を返す
Calendar::prevSecond() -- 前の秒の値を返す
Calendar::prevYear() -- 前年の値を返す
Calendar::setSelected() -- カレンダーオブジェクトを選択状態 (例えば「今日」など) にする
Calendar::setSelection() -- 選択された日付オブジェクトのための抽象メソッドで、build からコールされる
Calendar::setTimestamp() -- カレンダーの値を Unix タイムスタンプで設定する
Calendar::size() -- 内部に保持している Calendar サブクラスのオブジェクトの数を返す
Calendar::thisDay() -- 今日の値を返す
Calendar::thisHour() -- この時間の値を返す
Calendar::thisMinute() -- この分の値を返す
Calendar::thisMonth() -- 今月の値を返す
Calendar::thisSecond() -- この秒の値を返す
Calendar::thisYear() -- 今年の値を返す
Calendar_Year -- Calendar_Year API
constructor Calendar_Year::Calendar_Year() -- Calendar_Year を作成する
Calendar_Year::build() -- その年の月オブジェクトを作成する
Calendar_Month -- Calendar_Month API
constructor Calendar_Month::Calendar_Month() -- Calendar_Month を作成する
Calendar_Month::build() -- その月の日付を表すため、 必要なだけ Calendar_Day オブジェクトを作成する
Calendar_Month_Weekdays -- Calendar_Month_Weekdays API
constructor Calendar_Month_Weekdays::Calendar_Month_Weekdays() -- Calendar_Month_Weekdays を作成する
Calendar_Month_Weekdays::build() -- 表形式で使用するための日付オブジェクトを作成する。 その週の最初の日付が月の初日と一致しない場合には空のセルを用意し、 月間カレンダーを表示できるようにする
Calendar_Month_Weeks -- Calendar_Month_Weeks API
constructor Calendar_Month_Weeks::Calendar_Month_Weeks() -- Calendar_Month_Weeks を作成する
Calendar_Month_Weeks::build() -- その月の Calendar_Week オブジェクトを作成する
Calendar_Week -- Calendar_Week API
constructor Calendar_Week::Calendar_Week() -- Week を作成する
Calendar_Week::build() -- この週の Calendar_Day オブジェクトを作成する
Calendar_Week::nextWeek() -- 翌週の値を、指定した書式で取得する
Calendar_Week::prevWeek() -- 前の週の値を、指定した書式で取得する
Calendar_Week::thisWeek() -- 現在の週の値を、指定した書式で取得する
Calendar_Day -- Calendar_Day API
constructor Calendar_Day::Calendar_Day() -- Calendar_Day を作成する
Calendar_Day::build() -- その日の時間オブジェクトを作成する
Calendar_Day::isEmpty() --
Calendar_Day::isFirst() -- Day オブジェクトが週の最初の日である場合に true を返す
Calendar_Day::isLast() -- Day オブジェクトが週の最後の日である場合に true を返す
Calendar_Hour -- Calendar_Hour API
constructor Calendar_Hour::Calendar_Hour() -- Calendar_Hour を作成する
Calendar_Hour::build() -- その時間内の分オブジェクトを作成する
Calendar_Minute -- Calendar_Minute API
constructor Calendar_Minute::Calendar_Minute() -- Minute を作成する
Calendar_Minute::build() -- Calendar_Second オブジェクトを作成する
Calendar_Second -- Calendar_Second API
constructor Calendar_Second::Calendar_Second() -- Second を作成する
Calendar_Second::build() -- build を上書きする
Calendar_Second::fetch() -- fetch を上書きする
Calendar_Second::fetchAll() -- fetchAll を上書きする
Calendar_Second::size() -- size を上書きする
Calendar_Validation_Error -- Calendar_Validation_Error API
constructor Calendar_Validation_Error::Calendar_Validation_Error() -- Calendar_Validation_Error を作成する
Calendar_Validation_Error::getMessage() -- エラーメッセージを返す
Calendar_Validation_Error::getUnit() -- 日付の単位を返す
Calendar_Validation_Error::getValue() -- その単位の値を返す
Calendar_Validation_Error::toString() -- 単位、値そしてエラーメッセージを含む文字列を返す
Calendar_Validator -- Calendar_Validator API
constructor Calendar_Validator::Calendar_Validator() -- Calendar_Validator を作成する
Calendar_Validator::fetch() -- 任意の検証エラーを順に処理する
Calendar_Validator::isValid() -- バリデータの、その他の isValidXXX() 系メソッドをすべてコールする
Calendar_Validator::isValidDay() -- 日が有効かどうかを調べる
Calendar_Validator::isValidHour() -- 時間が有効かどうかを調べる
Calendar_Validator::isValidMinute() -- 分が有効かどうかを調べる
Calendar_Validator::isValidMonth() -- 月が有効かどうかを調べる
Calendar_Validator::isValidSecond() -- 秒が有効かどうかを調べる
Calendar_Validator::isValidYear() -- 年が有効かどうかを調べる
Calendar の定数 -- Calendar によって定義されている、または使用されている定数

カレンダーデータの構造化

この章ではPEAR::Calendarクラスの使い方を説明します。

前のページ | ホーム | 次のページ
日付と時間 (Date and Time) | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


カレンダー

カレンダー -- カレンダーベースクラス

説明

Calendar の API です。

前のページ | ホーム | 次のページ
FAQ | 上に戻る | constructor Calendar::Calendar()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Day

Calendar_Day -- Calendar_Day API

説明

Calendar_Day の API です。

前のページ | ホーム | 次のページ
Calendar_Week::thisWeek() | 上に戻る | constructor Calendar_Day::Calendar_Day()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Day::build

PEAR マニュアル
前のページ 次のページ

Calendar_Day::build()

Calendar_Day::build() -- その日の時間オブジェクトを作成する

概要

require_once 'Day.php';

boolean Calendar_Day::build ([array $sDates = array()])

説明

このパッケージに関する文書は、未作成です。

パラメータ

array $sDates

(オプション) 選択された日を表す Calendar_Hour オブジェクト。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor Calendar_Day::Calendar_Day() | 上に戻る | Calendar_Day::isEmpty()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor Calendar_Day::Calendar_Day

PEAR マニュアル
前のページ 次のページ

constructor Calendar_Day::Calendar_Day()

constructor Calendar_Day::Calendar_Day() -- Calendar_Day を作成する

概要

require_once 'Day.php';

void constructor Calendar_Day::Calendar_Day (int $y, int $m, int $d)

説明

このパッケージに関する文書は、未作成です。

パラメータ

integer $y

年。例: 2003

integer $m

月。例: 8

integer $d

日。例: 15

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Day | 上に戻る | Calendar_Day::build()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Day::isEmpty

PEAR マニュアル
前のページ 次のページ

Calendar_Day::isEmpty()

Calendar_Day::isEmpty() --

概要

require_once 'Day.php';

boolean Calendar_Day::isEmpty ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Day::build() | 上に戻る | Calendar_Day::isFirst()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Day::isFirst

PEAR マニュアル
前のページ 次のページ

Calendar_Day::isFirst()

Calendar_Day::isFirst() -- Day オブジェクトが週の最初の日である場合に true を返す

概要

require_once 'Day.php';

boolean Calendar_Day::isFirst ()

説明

Day オブジェクトが Calendar_Month_Weekdays::build() で作成されたものである場合にのみ意味を持ちます。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Day::isEmpty() | 上に戻る | Calendar_Day::isLast()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Day::isLast

PEAR マニュアル
前のページ 次のページ

Calendar_Day::isLast()

Calendar_Day::isLast() -- Day オブジェクトが週の最後の日である場合に true を返す

概要

require_once 'Day.php';

boolean Calendar_Day::isLast ()

説明

Day オブジェクトが Calendar_Month_Weekdays::build() で作成されたものである場合にのみ意味を持ちます。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Day::isFirst() | 上に戻る | Calendar_Hour

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Hour

Calendar_Hour -- Calendar_Hour API

説明

Calendar_Hour の API です。

前のページ | ホーム | 次のページ
Calendar_Day::isLast() | 上に戻る | constructor Calendar_Hour::Calendar_Hour()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Hour::build

PEAR マニュアル
前のページ 次のページ

Calendar_Hour::build()

Calendar_Hour::build() -- その時間内の分オブジェクトを作成する

概要

require_once 'Hour.php';

boolean Calendar_Hour::build ([array $sDates = array()])

説明

このパッケージに関する文書は、未作成です。

パラメータ

array $sDates

(オプション) 選択された分を表す Calendar_Minute オブジェクト。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor Calendar_Hour::Calendar_Hour() | 上に戻る | Calendar_Minute

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor Calendar_Hour::Calendar_Hour

PEAR マニュアル
前のページ 次のページ

constructor Calendar_Hour::Calendar_Hour()

constructor Calendar_Hour::Calendar_Hour() -- Calendar_Hour を作成する

概要

require_once 'Hour.php';

void constructor Calendar_Hour::Calendar_Hour (int $y, int $m, int $d, int $h)

説明

このパッケージに関する文書は、未作成です。

パラメータ

integer $y

年。例: 2003

integer $m

月。例: 5

integer $d

日。例: 11

integer $h

時。例: 13

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Hour | 上に戻る | Calendar_Hour::build()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Minute

Calendar_Minute -- Calendar_Minute API

説明

Calendar_Minute の API です。

前のページ | ホーム | 次のページ
Calendar_Hour::build() | 上に戻る | constructor Calendar_Minute::Calendar_Minute()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Minute::build

PEAR マニュアル
前のページ 次のページ

Calendar_Minute::build()

Calendar_Minute::build() -- Calendar_Second オブジェクトを作成する

概要

require_once 'Minute.php';

boolean Calendar_Minute::build ([array $sDates = array()])

説明

このパッケージに関する文書は、未作成です。

パラメータ

array $sDates

(オプション) 選択された秒を表す Calendar_Second オブジェクト。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor Calendar_Minute::Calendar_Minute() | 上に戻る | Calendar_Second

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor Calendar_Minute::Calendar_Minute

PEAR マニュアル
前のページ 次のページ

constructor Calendar_Minute::Calendar_Minute()

constructor Calendar_Minute::Calendar_Minute() -- Minute を作成する

概要

require_once 'Minute.php';

void constructor Calendar_Minute::Calendar_Minute (int $y, int $m, int $d, int $h, int $i)

説明

このパッケージに関する文書は、未作成です。

パラメータ

integer $y

年。例: 2003

integer $m

月。例: 5

integer $d

日。例: 11

integer $h

時。例: 13

integer $i

分。例: 31

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Minute | 上に戻る | Calendar_Minute::build()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Month

Calendar_Month -- Calendar_Month API

説明

Calendar_Month の API です。

前のページ | ホーム | 次のページ
Calendar_Year::build() | 上に戻る | constructor Calendar_Month::Calendar_Month()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Month_Weekdays

Calendar_Month_Weekdays -- Calendar_Month_Weekdays API

説明

Calendar_Month_Weekdays の API です。

前のページ | ホーム | 次のページ
Calendar_Month::build() | 上に戻る | constructor Calendar_Month_Weekdays::Calendar_Month_Weekdays()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Month_Weekdays::build

PEAR マニュアル
前のページ 次のページ

Calendar_Month_Weekdays::build()

Calendar_Month_Weekdays::build() -- 表形式で使用するための日付オブジェクトを作成する。 その週の最初の日付が月の初日と一致しない場合には空のセルを用意し、 月間カレンダーを表示できるようにする

概要

require_once 'MonthWeekdays.php';

boolean Calendar_Month_Weekdays::build ([array $sDates = array()])

説明

このパッケージに関する文書は、未作成です。

パラメータ

array $sDates

(オプション) 選択された日付を表す Calendar_Day オブジェクト。

例外・エラー

例外はスローされません。

参照

Calendar_Day_Base::isLast()

Calendar_Day_Base::isFirst()

Calendar_Day::isEmpty()

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor Calendar_Month_Weekdays::Calendar_Month_Weekdays() | 上に戻る | Calendar_Month_Weeks

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor Calendar_Month_Weekdays::Calendar_Month_Weekdays

PEAR マニュアル
前のページ 次のページ

constructor Calendar_Month_Weekdays::Calendar_Month_Weekdays()

constructor Calendar_Month_Weekdays::Calendar_Month_Weekdays() -- Calendar_Month_Weekdays を作成する

概要

require_once 'MonthWeekdays.php';

void constructor Calendar_Month_Weekdays::Calendar_Month_Weekdays (int $y, int $m [, int $firstDay = FALSE])

説明

このパッケージに関する文書は、未作成です。

パラメータ

integer $y

年。例: 2003

integer $m

月。例: 5

integer $firstDay

(オプション) 週の最初の曜日 (例: 日曜日なら 0、火曜日なら 2 など)。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Month_Weekdays | 上に戻る | Calendar_Month_Weekdays::build()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Month_Weeks

Calendar_Month_Weeks -- Calendar_Month_Weeks API

説明

Calendar の API です。

前のページ | ホーム | 次のページ
Calendar_Month_Weekdays::build() | 上に戻る | constructor Calendar_Month_Weeks::Calendar_Month_Weeks()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Month_Weeks::build

PEAR マニュアル
前のページ 次のページ

Calendar_Month_Weeks::build()

Calendar_Month_Weeks::build() -- その月の Calendar_Week オブジェクトを作成する

概要

require_once 'MonthWeeks.php';

boolean Calendar_Month_Weeks::build ([array $sDates = array()])

説明

表形式における Calendar_Day オブジェクトを作成します (Calendar_Day->empty を考慮します)。

パラメータ

array $sDates

(オプション) 選択された日付を表す Calendar_Week オブジェクト。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor Calendar_Month_Weeks::Calendar_Month_Weeks() | 上に戻る | Calendar_Week

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor Calendar_Month_Weeks::Calendar_Month_Weeks

PEAR マニュアル
前のページ 次のページ

constructor Calendar_Month_Weeks::Calendar_Month_Weeks()

constructor Calendar_Month_Weeks::Calendar_Month_Weeks() -- Calendar_Month_Weeks を作成する

概要

require_once 'MonthWeeks.php';

void constructor Calendar_Month_Weeks::Calendar_Month_Weeks (int $y, int $m [, int $firstDay = FALSE])

説明

このパッケージに関する文書は、未作成です。

パラメータ

integer $y

年。例: 2003

integer $m

月。例: 5

integer $firstDay

(オプション) 週の最初の曜日 (例: 日曜日なら 0、火曜日なら 2 など)。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Month_Weeks | 上に戻る | Calendar_Month_Weeks::build()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Month::build

PEAR マニュアル
前のページ 次のページ

Calendar_Month::build()

Calendar_Month::build() -- その月の日付を表すため、 必要なだけ Calendar_Day オブジェクトを作成する

概要

require_once 'Month.php';

boolean Calendar_Month::build ([array $sDates = array()])

説明

その月の日付を作成します。

パラメータ

array $sDates

(オプション) 選択された日付を表す Calendar_Day オブジェクト。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor Calendar_Month::Calendar_Month() | 上に戻る | Calendar_Month_Weekdays

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor Calendar_Month::Calendar_Month

PEAR マニュアル
前のページ 次のページ

constructor Calendar_Month::Calendar_Month()

constructor Calendar_Month::Calendar_Month() -- Calendar_Month を作成する

概要

require_once 'Month.php';

void constructor Calendar_Month::Calendar_Month (int $y, int $m [, int $firstDay = NULL])

説明

このパッケージに関する文書は、未作成です。

パラメータ

integer $y

年。例: 2003

integer $m

月。例: 5

integer $firstDay

(オプション) このクラスでは使用しません。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Month | 上に戻る | Calendar_Month::build()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Second

Calendar_Second -- Calendar_Second API

説明

Calendar_Second の API です。

前のページ | ホーム | 次のページ
Calendar_Minute::build() | 上に戻る | constructor Calendar_Second::Calendar_Second()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Second::build

PEAR マニュアル
前のページ 次のページ

Calendar_Second::build()

Calendar_Second::build() -- build を上書きする

概要

require_once 'Second.php';

NULL Calendar_Second::build ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor Calendar_Second::Calendar_Second() | 上に戻る | Calendar_Second::fetch()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor Calendar_Second::Calendar_Second

PEAR マニュアル
前のページ 次のページ

constructor Calendar_Second::Calendar_Second()

constructor Calendar_Second::Calendar_Second() -- Second を作成する

概要

require_once 'Second.php';

void constructor Calendar_Second::Calendar_Second (int $y, int $m, int $d, int $h, int $i, int $s)

説明

このパッケージに関する文書は、未作成です。

パラメータ

integer $y

年。例: 2003

integer $m

月。例: 5

integer $d

日。例: 11

integer $h

時間。例: 13

integer $i

分。例: 31

integer $s

秒。例: 45

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Second | 上に戻る | Calendar_Second::build()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Second::fetch

PEAR マニュアル
前のページ 次のページ

Calendar_Second::fetch()

Calendar_Second::fetch() -- fetch を上書きする

概要

require_once 'Second.php';

NULL Calendar_Second::fetch ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Second::build() | 上に戻る | Calendar_Second::fetchAll()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Second::fetchAll

PEAR マニュアル
前のページ 次のページ

Calendar_Second::fetchAll()

Calendar_Second::fetchAll() -- fetchAll を上書きする

概要

require_once 'Second.php';

NULL Calendar_Second::fetchAll ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Second::fetch() | 上に戻る | Calendar_Second::size()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Second::size

PEAR マニュアル
前のページ 次のページ

Calendar_Second::size()

Calendar_Second::size() -- size を上書きする

概要

require_once 'Second.php';

NULL Calendar_Second::size ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Second::fetchAll() | 上に戻る | Calendar_Validation_Error

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Validation_Error

Calendar_Validation_Error -- Calendar_Validation_Error API

説明

Calendar_Validation_Error の API です。

前のページ | ホーム | 次のページ
Calendar_Second::size() | 上に戻る | constructor Calendar_Validation_Error::Calendar_Validation_Error()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor Calendar_Validation_Error::Calendar_Validation_Error

PEAR マニュアル
前のページ 次のページ

constructor Calendar_Validation_Error::Calendar_Validation_Error()

constructor Calendar_Validation_Error::Calendar_Validation_Error() -- Calendar_Validation_Error を作成する

概要

require_once 'Validator.php';

void constructor Calendar_Validation_Error::Calendar_Validation_Error (string $unit, int $value, string $message)

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $unit

日付の単位 (例: month,hour,second)

integer $value

エラーとなった値。

string $message

エラーメッセージ。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Validation_Error | 上に戻る | Calendar_Validation_Error::getMessage()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Validation_Error::getMessage

PEAR マニュアル
前のページ 次のページ

Calendar_Validation_Error::getMessage()

Calendar_Validation_Error::getMessage() -- エラーメッセージを返す

概要

require_once 'Validator.php';

string Calendar_Validation_Error::getMessage ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor Calendar_Validation_Error::Calendar_Validation_Error() | 上に戻る | Calendar_Validation_Error::getUnit()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Validation_Error::getUnit

PEAR マニュアル
前のページ 次のページ

Calendar_Validation_Error::getUnit()

Calendar_Validation_Error::getUnit() -- 日付の単位を返す

概要

require_once 'Validator.php';

string Calendar_Validation_Error::getUnit ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Validation_Error::getMessage() | 上に戻る | Calendar_Validation_Error::getValue()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Validation_Error::getValue

PEAR マニュアル
前のページ 次のページ

Calendar_Validation_Error::getValue()

Calendar_Validation_Error::getValue() -- その単位の値を返す

概要

require_once 'Validator.php';

int Calendar_Validation_Error::getValue ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Validation_Error::getUnit() | 上に戻る | Calendar_Validation_Error::toString()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Validation_Error::toString

PEAR マニュアル
前のページ 次のページ

Calendar_Validation_Error::toString()

Calendar_Validation_Error::toString() -- 単位、値そしてエラーメッセージを含む文字列を返す

概要

require_once 'Validator.php';

string Calendar_Validation_Error::toString ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Validation_Error::getValue() | 上に戻る | Calendar_Validator

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Validator

Calendar_Validator -- Calendar_Validator API

説明

Calendar_Validator の API です。

前のページ | ホーム | 次のページ
Calendar_Validation_Error::toString() | 上に戻る | constructor Calendar_Validator::Calendar_Validator()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor Calendar_Validator::Calendar_Validator

PEAR マニュアル
前のページ 次のページ

constructor Calendar_Validator::Calendar_Validator()

constructor Calendar_Validator::Calendar_Validator() -- Calendar_Validator を作成する

概要

require_once 'Validator.php';

void constructor Calendar_Validator::Calendar_Validator (object subclass &$calendar)

説明

このパッケージに関する文書は、未作成です。

パラメータ

object subclass; &$calendar

Calendar のサブクラス。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Validator | 上に戻る | Calendar_Validator::fetch()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Validator::fetch

PEAR マニュアル
前のページ 次のページ

Calendar_Validator::fetch()

Calendar_Validator::fetch() -- 任意の検証エラーを順に処理する

概要

require_once 'Validator.php';

mixed Calendar_Validator::fetch ()

説明

このパッケージに関する文書は、未作成です。

返り値

Calendar_Validation_Error あるいは false を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor Calendar_Validator::Calendar_Validator() | 上に戻る | Calendar_Validator::isValid()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Validator::isValid

PEAR マニュアル
前のページ 次のページ

Calendar_Validator::isValid()

Calendar_Validator::isValid() -- バリデータの、その他の isValidXXX() 系メソッドをすべてコールする

概要

require_once 'Validator.php';

boolean Calendar_Validator::isValid ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Validator::fetch() | 上に戻る | Calendar_Validator::isValidDay()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Validator::isValidDay

PEAR マニュアル
前のページ 次のページ

Calendar_Validator::isValidDay()

Calendar_Validator::isValidDay() -- 日が有効かどうかを調べる

概要

require_once 'Validator.php';

boolean Calendar_Validator::isValidDay ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Validator::isValid() | 上に戻る | Calendar_Validator::isValidHour()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Validator::isValidHour

PEAR マニュアル
前のページ 次のページ

Calendar_Validator::isValidHour()

Calendar_Validator::isValidHour() -- 時間が有効かどうかを調べる

概要

require_once 'Validator.php';

boolean Calendar_Validator::isValidHour ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Validator::isValidDay() | 上に戻る | Calendar_Validator::isValidMinute()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Validator::isValidMinute

PEAR マニュアル
前のページ 次のページ

Calendar_Validator::isValidMinute()

Calendar_Validator::isValidMinute() -- 分が有効かどうかを調べる

概要

require_once 'Validator.php';

boolean Calendar_Validator::isValidMinute ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Validator::isValidHour() | 上に戻る | Calendar_Validator::isValidMonth()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Validator::isValidMonth

PEAR マニュアル
前のページ 次のページ

Calendar_Validator::isValidMonth()

Calendar_Validator::isValidMonth() -- 月が有効かどうかを調べる

概要

require_once 'Validator.php';

boolean Calendar_Validator::isValidMonth ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Validator::isValidMinute() | 上に戻る | Calendar_Validator::isValidSecond()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Validator::isValidSecond

PEAR マニュアル
前のページ 次のページ

Calendar_Validator::isValidSecond()

Calendar_Validator::isValidSecond() -- 秒が有効かどうかを調べる

概要

require_once 'Validator.php';

boolean Calendar_Validator::isValidSecond ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Validator::isValidMonth() | 上に戻る | Calendar_Validator::isValidYear()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Validator::isValidYear

PEAR マニュアル
前のページ 次のページ

Calendar_Validator::isValidYear()

Calendar_Validator::isValidYear() -- 年が有効かどうかを調べる

概要

require_once 'Validator.php';

boolean Calendar_Validator::isValidYear ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Validator::isValidSecond() | 上に戻る | Calendar の定数

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Week

Calendar_Week -- Calendar_Week API

説明

Calendar_Week の API です。

前のページ | ホーム | 次のページ
Calendar_Month_Weeks::build() | 上に戻る | constructor Calendar_Week::Calendar_Week()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Week::build

PEAR マニュアル
前のページ 次のページ

Calendar_Week::build()

Calendar_Week::build() -- この週の Calendar_Day オブジェクトを作成する

概要

require_once 'Week.php';

boolean Calendar_Week::build ([array $sDates = array()])

説明

このパッケージに関する文書は、未作成です。

パラメータ

array $sDates

(オプション) 選択された日付を表す Calendar_Day オブジェクト。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor Calendar_Week::Calendar_Week() | 上に戻る | Calendar_Week::nextWeek()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor Calendar_Week::Calendar_Week

PEAR マニュアル
前のページ 次のページ

constructor Calendar_Week::Calendar_Week()

constructor Calendar_Week::Calendar_Week() -- Week を作成する

概要

require_once 'Week.php';

void constructor Calendar_Week::Calendar_Week (int $y, int $m, int $d [, int $firstDay = FALSE])

説明

このパッケージに関する文書は、未作成です。

パラメータ

integer $y

年。例: 2003

integer $m

月。例: 5

integer $d

作成したい週の日付。

integer $firstDay

(オプション) 週の最初の曜日 (例: 日曜日なら 0、火曜日なら 2 など)。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Week | 上に戻る | Calendar_Week::build()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Week::nextWeek

PEAR マニュアル
前のページ 次のページ

Calendar_Week::nextWeek()

Calendar_Week::nextWeek() -- 翌週の値を、指定した書式で取得する

概要

require_once 'Week.php';

mixed Calendar_Week::nextWeek (string $format)

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $format

['timestamp' | 'n_in_month' | 'n_in_year' | 'array']

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Week::build() | 上に戻る | Calendar_Week::prevWeek()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Week::prevWeek

PEAR マニュアル
前のページ 次のページ

Calendar_Week::prevWeek()

Calendar_Week::prevWeek() -- 前の週の値を、指定した書式で取得する

概要

require_once 'Week.php';

mixed Calendar_Week::prevWeek (string $format)

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $format

['timestamp' | 'n_in_month' | 'n_in_year' | 'array']

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Week::nextWeek() | 上に戻る | Calendar_Week::thisWeek()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Week::thisWeek

PEAR マニュアル
前のページ 次のページ

Calendar_Week::thisWeek()

Calendar_Week::thisWeek() -- 現在の週の値を、指定した書式で取得する

概要

require_once 'Week.php';

mixed Calendar_Week::thisWeek ([string $format = 'n_in_month'])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $format

['timestamp' | 'n_in_month' | 'n_in_year' | 'array']

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Week::prevWeek() | 上に戻る | Calendar_Day

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Year

Calendar_Year -- Calendar_Year API

説明

Calendar_Year の API です。

前のページ | ホーム | 次のページ
Calendar::thisYear() | 上に戻る | constructor Calendar_Year::Calendar_Year()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar_Year::build

PEAR マニュアル
前のページ 次のページ

Calendar_Year::build()

Calendar_Year::build() -- その年の月オブジェクトを作成する

概要

require_once 'Year.php';

boolean Calendar_Year::build ([array$sDates = array() [, int$firstDay = NULL]])

説明

注意: 定数 CALENDAR_MONTH_STATE を定義することで、どの形式の Calendar_Month を作成するのかを決められます。
1  require_once 'Calendar/Calendar_Year.php';
    2  define ('CALENDAR_MONTH_STATE',CALENDAR_USE_MONTH_WEEKDAYS); // Calendar_Month_Weekdays を使用します
    3  // define ('CALENDAR_MONTH_STATE',CALENDAR_USE_MONTH_WEEKS); // Calendar_Month_Weeks を使用します
    4
デフォルトでは Calendar_Month オブジェクトを作成します。

パラメータ

array $sDates

(オプション) 選択された月を表す Calendar_Month オブジェクトの配列。

integer $firstDay

(オプション) 週の最初の曜日 (例: 日曜日なら 0、火曜日なら 2 など)

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor Calendar_Year::Calendar_Year() | 上に戻る | Calendar_Month

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor Calendar_Year::Calendar_Year

PEAR マニュアル
前のページ 次のページ

constructor Calendar_Year::Calendar_Year()

constructor Calendar_Year::Calendar_Year() -- Calendar_Year を作成する

概要

require_once 'Year.php';

void constructor Calendar_Year::Calendar_Year (int $y)

説明

このパッケージに関する文書は、未作成です。

パラメータ

integer $y

年。例: 2003

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar_Year | 上に戻る | Calendar_Year::build()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::adjust

PEAR マニュアル
前のページ 次のページ

Calendar::adjust()

Calendar::adjust() -- 日付を調整する (ヘルパーメソッド)

概要

require_once 'Calendar.php';

void Calendar::adjust ()

説明

ヘルパーメソッドです。呼び出し元のオブジェクトの日付を mktime と同じように調整します。例えば、 (2003, 11, -1) は (2003, 10, 31) に変換されます。 このメソッドにより、日付に対する数学的な演算が可能となります。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor Calendar::Calendar() | 上に戻る | Calendar::build()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::build

PEAR マニュアル
前のページ 次のページ

Calendar::build()

Calendar::build() -- カレンダーオブジェクトの子オブジェクトを作成するための抽象メソッド

概要

require_once 'Calendar.php';

boolean Calendar::build ([array $sDates = array()])

説明

サブクラスで実装します。

パラメータ

array $sDates

選択するカレンダーオブジェクト (オプション)。

abstract

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar::adjust() | 上に戻る | Calendar::fetch()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor Calendar::Calendar

PEAR マニュアル
前のページ 次のページ

constructor Calendar::Calendar()

constructor Calendar::Calendar() -- Calendar を作成する

概要

require_once 'Calendar.php';

void constructor Calendar::Calendar ([int $y = 2000 [, int $m = 1 [, int $d = 1 [, int $h = 0 [, int $i = 0 [, int $s = 0]]]]]])

説明

このパッケージに関する文書は、未作成です。

パラメータ

integer $y

年。

integer $m

月。

integer $d

日。

integer $h

時。

integer $i

分。

integer $s

秒。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
カレンダー | 上に戻る | Calendar::adjust()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::fetch

PEAR マニュアル
前のページ 次のページ

Calendar::fetch()

Calendar::fetch() -- Calendar のサブクラスである子オブジェクトを順に取得するためのイテレータメソッド (例えば「時間」オブジェクトから「分」オブジェクトを取得する)。 最後の要素に達した後は、false を返してコレクションをリセットする

概要

require_once 'Calendar.php';

mixed Calendar::fetch ()

説明

このパッケージに関する文書は、未作成です。

返り値

Calendar のサブクラスのオブジェクト、あるいは false を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar::build() | 上に戻る | Calendar::fetchAll()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::fetchAll

PEAR マニュアル
前のページ 次のページ

Calendar::fetchAll()

Calendar::fetchAll() -- 現在のオブジェクトの子オブジェクトをすべて取得する

概要

require_once 'Calendar.php';

array Calendar::fetchAll ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar::fetch() | 上に戻る | Calendar::getTimestamp()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::getTimestamp

PEAR マニュアル
前のページ 次のページ

Calendar::getTimestamp()

Calendar::getTimestamp() -- 現在の日付/時刻の値からタイムスタンプを返す

概要

require_once 'Calendar.php';

int Calendar::getTimestamp ()

説明

タイムスタンプの書式は、使用する Calendar_Engine の実装に依存します。

返り値

タイムスタンプを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar::fetchAll() | 上に戻る | Calendar::getValidator()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::getValidator

PEAR マニュアル
前のページ 次のページ

Calendar::getValidator()

Calendar::getValidator() -- Calendar_Validator のインスタンスを返す

概要

require_once 'Calendar.php';

Calendar_Validator& Calendar::getValidator ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar::getTimestamp() | 上に戻る | Calendar::isSelected()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::isSelected

PEAR マニュアル
前のページ 次のページ

Calendar::isSelected()

Calendar::isSelected() -- カレンダークラスのサブクラスのオブジェクトが選択されている (例: 今日) 場合に True を返す

概要

require_once 'Calendar.php';

boolean Calendar::isSelected ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar::getValidator() | 上に戻る | Calendar::isValid()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::isValid

PEAR マニュアル
前のページ 次のページ

Calendar::isValid()

Calendar::isValid() -- この日付が有効かどうかを調べる

概要

require_once 'Calendar.php';

boolean Calendar::isValid ()

説明

Calendar_Engine で定義された閾値の範囲にこの日付が収まっているかどうかを調べます。 Calendar_Validator::isValid に処理が渡されます。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar::isSelected() | 上に戻る | Calendar::nextDay()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::nextDay

PEAR マニュアル
前のページ 次のページ

Calendar::nextDay()

Calendar::nextDay() -- 翌日の値を返す

概要

require_once 'Calendar.php';

int Calendar::nextDay ([string $format = 'int'])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $format

'int'、'timestamp'、'array' あるいは 'object'。

返り値

例えば 12 あるいはタイムスタンプを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar::isValid() | 上に戻る | Calendar::nextHour()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::nextHour

PEAR マニュアル
前のページ 次のページ

Calendar::nextHour()

Calendar::nextHour() -- 次の時間の値を返す

概要

require_once 'Calendar.php';

int Calendar::nextHour ([string $format = 'int'])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $format

'int'、'timestamp'、'array' あるいは 'object'。

返り値

例えば 14 あるいはタイムスタンプを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar::nextDay() | 上に戻る | Calendar::nextMinute()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::nextMinute

PEAR マニュアル
前のページ 次のページ

Calendar::nextMinute()

Calendar::nextMinute() -- 次の分の値を返す

概要

require_once 'Calendar.php';

int Calendar::nextMinute ([string $format = 'int'])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $format

'int'、'timestamp'、'array' あるいは 'object'。

返り値

例えば 25 あるいはタイムスタンプを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar::nextHour() | 上に戻る | Calendar::nextMonth()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::nextMonth

PEAR マニュアル
前のページ 次のページ

Calendar::nextMonth()

Calendar::nextMonth() -- 翌月の値を返す

概要

require_once 'Calendar.php';

int Calendar::nextMonth ([string $format = 'int'])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $format

'int'、'timestamp'、'array' あるいは 'object'。

返り値

例えば 6 あるいはタイムスタンプを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar::nextMinute() | 上に戻る | Calendar::nextSecond()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::nextSecond

PEAR マニュアル
前のページ 次のページ

Calendar::nextSecond()

Calendar::nextSecond() -- 次の秒の値を返す

概要

require_once 'Calendar.php';

int Calendar::nextSecond ([string $format = 'int'])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $format

'int'、'timestamp'、'array' あるいは 'object'。

返り値

例えば 45 あるいはタイムスタンプを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar::nextMonth() | 上に戻る | Calendar::nextYear()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::nextYear

PEAR マニュアル
前のページ 次のページ

Calendar::nextYear()

Calendar::nextYear() -- 翌年の値を返す

概要

require_once 'Calendar.php';

int Calendar::nextYear ([string $format = 'int'])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $format

'int'、'timestamp'、'array' あるいは 'object'。

返り値

例えば 2004 あるいはタイムスタンプを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar::nextSecond() | 上に戻る | Calendar::prevDay()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::prevDay

PEAR マニュアル
前のページ 次のページ

Calendar::prevDay()

Calendar::prevDay() -- 前日の値を返す

概要

require_once 'Calendar.php';

int Calendar::prevDay ([string $format = 'int'])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $format

'int'、'timestamp'、'array' あるいは 'object'。

返り値

例えば 10 あるいはタイムスタンプを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar::nextYear() | 上に戻る | Calendar::prevHour()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::prevHour

PEAR マニュアル
前のページ 次のページ

Calendar::prevHour()

Calendar::prevHour() -- 前の時間の値を返す

概要

require_once 'Calendar.php';

int Calendar::prevHour ([string $format = 'int'])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $format

'int'、'timestamp'、'array' あるいは 'object'。

返り値

例えば 13 あるいはタイムスタンプを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar::prevDay() | 上に戻る | Calendar::prevMinute()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::prevMinute

PEAR マニュアル
前のページ 次のページ

Calendar::prevMinute()

Calendar::prevMinute() -- 前の分の値を返す

概要

require_once 'Calendar.php';

int Calendar::prevMinute ([string $format = 'int'])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $format

'int'、'timestamp'、'array' あるいは 'object'。

返り値

例えば 23 あるいはタイムスタンプを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar::prevHour() | 上に戻る | Calendar::prevMonth()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::prevMonth

PEAR マニュアル
前のページ 次のページ

Calendar::prevMonth()

Calendar::prevMonth() -- 前月の値を返す

概要

require_once 'Calendar.php';

int Calendar::prevMonth ([string $format = 'int'])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $format

'int'、'timestamp'、'array' あるいは 'object'。

返り値

例えば 4 あるいは Unix タイムスタンプを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar::prevMinute() | 上に戻る | Calendar::prevSecond()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::prevSecond

PEAR マニュアル
前のページ 次のページ

Calendar::prevSecond()

Calendar::prevSecond() -- 前の秒の値を返す

概要

require_once 'Calendar.php';

int Calendar::prevSecond ([string $format = 'int'])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $format

'int'、'timestamp'、'array' あるいは 'object'。

返り値

例えば 43 あるいはタイムスタンプを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar::prevMonth() | 上に戻る | Calendar::prevYear()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::prevYear

PEAR マニュアル
前のページ 次のページ

Calendar::prevYear()

Calendar::prevYear() -- 前年の値を返す

概要

require_once 'Calendar.php';

int Calendar::prevYear ([string $format = 'int'])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $format

'int'、'timestamp'、'array' あるいは 'object'。

返り値

例えば 2002 あるいはタイムスタンプを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar::prevSecond() | 上に戻る | Calendar::setSelected()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::setSelected

PEAR マニュアル
前のページ 次のページ

Calendar::setSelected()

Calendar::setSelected() -- カレンダーオブジェクトを選択状態 (例えば「今日」など) にする

概要

require_once 'Calendar.php';

void Calendar::setSelected ([boolean $state = TRUE])

説明

このパッケージに関する文書は、未作成です。

パラメータ

boolean $state

Calendar サブクラスの状態。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar::prevYear() | 上に戻る | Calendar::setSelection()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::setSelection

PEAR マニュアル
前のページ 次のページ

Calendar::setSelection()

Calendar::setSelection() -- 選択された日付オブジェクトのための抽象メソッドで、build からコールされる

概要

require_once 'Calendar.php';

boolean Calendar::setSelection (array $sDates)

説明

このパッケージに関する文書は、未作成です。

パラメータ

array $sDates

abstract

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar::setSelected() | 上に戻る | Calendar::setTimestamp()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::setTimestamp

PEAR マニュアル
前のページ 次のページ

Calendar::setTimestamp()

Calendar::setTimestamp() -- カレンダーの値を Unix タイムスタンプで設定する

概要

require_once 'Calendar.php';

void Calendar::setTimestamp (int $ts)

説明

カレンダの値を Unix タイムスタンプで設定し、コンストラクタで渡された値を上書きします。

パラメータ

integer $ts

Unix タイムスタンプ。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar::setSelection() | 上に戻る | Calendar::size()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::size

PEAR マニュアル
前のページ 次のページ

Calendar::size()

Calendar::size() -- 内部に保持している Calendar サブクラスのオブジェクトの数を返す

概要

require_once 'Calendar.php';

int Calendar::size ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar::setTimestamp() | 上に戻る | Calendar::thisDay()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::thisDay

PEAR マニュアル
前のページ 次のページ

Calendar::thisDay()

Calendar::thisDay() -- 今日の値を返す

概要

require_once 'Calendar.php';

int Calendar::thisDay ([string $format = 'int'])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $format

'int'、'timestamp'、'array' あるいは 'object'。

返り値

例えば 11 あるいはタイムスタンプを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar::size() | 上に戻る | Calendar::thisHour()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::thisHour

PEAR マニュアル
前のページ 次のページ

Calendar::thisHour()

Calendar::thisHour() -- この時間の値を返す

概要

require_once 'Calendar.php';

int Calendar::thisHour ([string $format = 'int'])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $format

'int'、'timestamp'、'array' あるいは 'object'。

返り値

例えば 14 あるいはタイムスタンプを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar::thisDay() | 上に戻る | Calendar::thisMinute()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::thisMinute

PEAR マニュアル
前のページ 次のページ

Calendar::thisMinute()

Calendar::thisMinute() -- この分の値を返す

概要

require_once 'Calendar.php';

int Calendar::thisMinute ([string $format = 'int'])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $format

'int'、'timestamp'、'array' あるいは 'object'。

返り値

例えば 24 あるいはタイムスタンプを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar::thisHour() | 上に戻る | Calendar::thisMonth()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::thisMonth

PEAR マニュアル
前のページ 次のページ

Calendar::thisMonth()

Calendar::thisMonth() -- 今月の値を返す

概要

require_once 'Calendar.php';

int Calendar::thisMonth ([string $format = 'int'])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $format

'int'、'timestamp'、'array' あるいは 'object'。

返り値

例えば 5 あるいはタイムスタンプを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar::thisMinute() | 上に戻る | Calendar::thisSecond()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::thisSecond

PEAR マニュアル
前のページ 次のページ

Calendar::thisSecond()

Calendar::thisSecond() -- この秒の値を返す

概要

require_once 'Calendar.php';

int Calendar::thisSecond ([string $format = 'int'])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $format

'int'、'timestamp'、'array' あるいは 'object'。

返り値

例えば 44 あるいはタイムスタンプを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar::thisMonth() | 上に戻る | Calendar::thisYear()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar::thisYear

PEAR マニュアル
前のページ 次のページ

Calendar::thisYear()

Calendar::thisYear() -- 今年の値を返す

概要

require_once 'Calendar.php';

int Calendar::thisYear ([string $format = 'int'])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $format

'int'、'timestamp'、'array' あるいは 'object'。

返り値

例えば 2003 あるいはタイムスタンプを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Calendar::thisSecond() | 上に戻る | Calendar_Year

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Calendar の定数

Calendar の定数 -- Calendar によって定義されている、または使用されている定数

定数一覧

Calendar.php で定義されている定数

表 34-1Calendar.php で定義されている定数

名前 | 値 | 行番号
CALENDAR_ENGINE | 'UnixTS' | 39
CALENDAR_ROOT | 'Calendar'.DIRECTORY_SEPARATOR | 32

Validator.php で定義されている定数

表 34-2Validator.php で定義されている定数

名前 | 値 | 行番号
CALENDAR_VALUE_TOOLARGE | 'Too large: max = ' | 34
CALENDAR_VALUE_TOOSMALL | 'Too small: min = ' | 31

Year.php で定義されている定数

表 34-3Year.php で定義されている定数

名前 | 値 | 行番号
CALENDAR_USE_MONTH | 1 | 43
CALENDAR_USE_MONTH_WEEKDAYS | 2 | 44
CALENDAR_USE_MONTH_WEEKS | 3 | 45

前のページ | ホーム | 次のページ
Calendar_Validator::isValidYear() | 上に戻る | Date_Holidays

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


FAQ

FAQ -- よくある質問とその答え

なぜ HTML を生成しないのですか?

WML とか SOAP、PDF、GIF、コマンドライン、…… これらの立場は? PEAR::Calendar を使用すれば、 どんな出力でも生成することができます (SOAP および WML の例を参照ください)。 特定の出力に縛られてしまうと、使用の幅が制限されてしまいます (今まで私が見てきたパブリックドメインの PHP カレンダーライブラリは、 ことごとくこの問題にハマっています)。そのような目的のためには、 PEAR::Calendar を利用する PEAR::HTML_Calendar を開発するとよいでしょう。

何でこんなにたくさんのオブジェクトやクラスやファイルがあるんでしょう。あり得ない!

Sourceforge のサーバ (ここはいつも負荷が高い状態です) にあるサンプルを実行してみてください。 example 3.php をレンダリングするのにかかる時間は 0.1 秒以下 (通常はその半分くらい) です。このライブラリのコードは高度に最適化されており、 いわゆる「裏ワザ」のたぐいを駆使しています。これにより、 本当に必要なロジックだけを PHP が読み込めるようにしているのです。 もしそれが信じられないっていうのなら、ためしに Cache_Lite で出力 HTML をキャッシュしてみるといいでしょう。

カレンダーの計算に Unix タイムスタンプを使用しているということは、 出力できる日付の範囲に制限があるということですよね。 これを変更することはできますか?

内部での計算は、すべて Calendar_Engine インターフェイスを実装したクラスで処理されています。デフォルトの実装は PHP の date() および mktime() 関数にもとづくものです (そのため、このエンジンでは Unix タイムスタンプが必要になります)。これとは別に、 PEAR::Date を使用するエンジンも存在します。 これは少し処理速度が劣りますが、Unix タイムスタンプの範囲の制限を受けません。 エンジンの変更は、定数 CALENDAR_ENGINE を用いて次のように行います。
// デフォルトの Unix タイムスタンプエンジン (この定義は不要です)
// define('CALENDAR_ENGINE', 'UnixTs');

// PEAR::Date エンジンに変更します
define('CALENDAR_ENGINE', 'PearDate');
PearDate エンジンを使用するには PEAR::Date のバージョン 1.4 以降が必要であることに注意しましょう。

この例では曜日や月の名前が英語になっていますが、これを変更することはできますか?

PEAR::Calendar の内部では、単に十進数の計算を行っているだけです。 月の名前や曜日名は、カレンダーのレンダリング時に (あなたが) 生成するものです。 あなたがすべきことは、単に setlocale() で PHP のロケールを設定して strftime() 関数を使用するだけです。例えば次のようになります。
$Day = & new Calendar_Day(2003, 10, 23);

setlocale (LC_TIME, 'de_DE'); // ドイツ語

echo strftime('%A %d %B %Y', $Day->getTimeStamp());
Calendar_Decorator_Textual が生成する月名や曜日名は、 使用しているカレンダーエンジンが何であるかとは無関係です。これは、 setlocale() によって変更することができます。

空の日付とは?

PEAR::Calendar を使用すると、 以下のような表形式のカレンダー (人間がよく使う形式) を簡単に出力することができます。

October 2003
M T W T F S S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

ここで、カレンダーの左上と右下に注目してみましょう。 この部分が「空の日付」です。空の日付が作られるのは、 Calendar_Month_Weekdays および Calendar_Week のふたつのクラスのみです。例えば Calendar_Month_Weekdays を使用した場合の例は次のようになります。
require_once 'Calendar/Month/Weekdays.php';

$Month = & new Calendar_Month_Weekdays(2003, 10);
$Month->build();

while ($Day = & $Month->fetch()) {
    if ($Day->isFirst()) // 週の最初の日付かどうかを調べます
        echo "\n";

    if ($Day->isEmpty()) // 空の日付かどうかを調べます
        echo "\t";
    else
        echo $Day->thisDay()."\t";

    if ($Day->isLast()) // 週の最後の日付かどうかを調べます
        echo "\n";
}
空の日付であっても、値を返します。返される値は、本来その位置にあるはずの (前月あるいは翌月の) 日付となります。空の日付を取得する可能性があるのは Calendar_Month_Weekdays および Calendar_Week です。 Calendar_Week を使用した場合は 7 日ぶんしか構築できない (Calendar_Week オブジェクトを構築するためには Calendar_Month_Weeks を使用します) ので、 isFirst() メソッドおよび isLast() メソッドは使用できません。

複数の日付を選択する方法は?

すべてのカレンダーオブジェクト (Calendar_Second は 「子オブジェクト」を持たないので例外です) には build() メソッドがあり、そのオブジェクトの「子オブジェクト」を作成します。 例えば Calendar_Year::build() は Calendar_Month オブジェクトを作成し、 Calendar_Hour::build() は Calendar_Minute オブジェクトを作成します。 カレンダーオブジェクトの配列をオプションとしてこのメソッドに渡すと、 作成された子オブジェクトの中から該当するものを「選択」することができます。 使用例は次のようになります。
$Month = & new Calendar_Month(2003, 10); // Oct 2003

$SelectedDay1 = & new Calendar_Day(2003, 10, 5);  // 2003 年 10 月  5 日
$SelectedDay2 = & new Calendar_Day(2003, 10, 21); // 2003 年 10 月 21 日

// 配列に格納します...
$selection = array($SelectedDay1, $SelectedDay2);

$Month->build($selection);

while ($Day = & $Month->fetch()) {
    if ($Day->isSelected())
        echo  $Day->thisYear().' '.$Day->thisMonth().' '.$Day->thisDay().' が選択されています'."\n";
}
注意: build() メソッドに渡した日付オブジェクトは、 実際にこのメソッドが作成したオブジェクトを上書きします。 つまり、独自に作成した Calendar_Decorator のサブクラスをこのメソッドに渡すと、カレンダーのレンダリングループ内で その追加機能を使用できるようになります。例えば、何らかの「イベントデータベース」 から取得した予定をカレンダーに反映させる場合などにこの手法が使用できるでしょう。

なぜ build() を明示的にコールしないといけないのですか? 子オブジェクトが自動的に作成されればいいのに。

最大の理由は、高速に動作させるためです。 子オブジェクトの作成は負荷がかかる処理であり、 それらの子オブジェクトが常に必要となるわけではありません。 そのため、このような処理は明示的にコールするようにすべきです。 さもないと、単に月を作成するために $Year->build() をコールしたつもりが、 その内部では 月が日を作り、日が時間を作り、時間が分を作り、…… といったはめになってしまいます。 また、build() を明示的にコールするようにすることで、 一部の子オブジェクトを「選択」することができるようになるという利点もあります。

日付の妥当性を検証するには?

日付や時刻の妥当性の検証については、あなたが使用している Calendar_Engine で定義されています (例えば $Month = & new Month(2003, 2, 29); は無効です。だって 2003 年はうるう年ではないのだから)。手っ取り早く検証を行いたい場合は、 任意の日付オブジェクトに対して isValid() メソッドをコールします。もしそのオブジェクトに何らかの問題があった場合は FALSE が返されます。もっと詳細な検証を行い、結果を詳しく知りたい場合は、 任意の日付オブジェクトに対して getValidator() メソッドをコールしましょう。これは、次の例のように Calendar_Validator クラスのインスタンスを返します。
$Month = & new Month(2003, 2, 29); // 2003 年 2 月 29 日 (???)
if (!$Month->isValid()) {
    $Validator = & $Month->getValidator();
    while ($Error = $Validator->fetch()) {
        echo $Error->toString();
    }
}
検証を行うには、まず getValidator() をコールした後で、 isValidYear()、isValidMonth()、 isValidDay()、isValidHour()、 isValidMinute() および isValidSecond() (あるいは単に isValid() を実行すると、 isValidxxx 系のすべてのメソッドがコールされます) のいずれかをコールするという方法もあります。

無効な日付を調整することはできますか?

URL を指定してカレンダーを移動できるように設定している場合に calendar.php?year=2003&month=13 のような URL が指定されたとしましょう。このような場合にエラーを表示する代わりに、 対応するカレンダーオブジェクトの Calendar::adjust() メソッドをコールすることができます。先ほどの例の場合、このメソッドを使用すると 2004 年 1 月に移動できます。これは、Unix タイムスタンプエンジンでは mktime() の機能によって実現されており、 PearDate エンジンにも同等の機能が組み込まれています。

build() をコールした後で 特定のひとつのオブジェクトだけを取得したいのですが、 そのためにいちいちループさせないといけないのでしょうか?

任意の日付オブジェクトに対して fetchAll() メソッドを使用すると、 作成されたすべての子オブジェクトが配列として取得できます。 この配列を直接操作するとよいでしょう。ただし、配列の添字には注意が必要です。 添字が [0] から始まるものもあれば、中には添字が [1] から始まるものもあります。 作成された日付オブジェクトの型によって、[0] と [1] のどちらから始まるかが決まります。
$Month = & new Calendar_Month(2003, 10);
$Month->build();

$days = & $Month->fetchAll(); // ここでは、すべてが配列に入っています
echo $days[1]->thisDay(); // 最初の日付の添字は 1 です

$Hour = & new Calendar_Hour(2003, 10, 25, 15); // 2003 年 10 月 25 日 午後 3 時
$Hour->build();

$hours = & $Hour->fetchAll(); // ここでは、すべてが配列に入っています
echo $hours[0]->thisHour(); // 最初の時間の添字は 0 です
次のクラスについては、常に最初の添字が 1 となります。 Calendar_Month、 Calendar_Month_Weekdays、 Calendar_Month_Weeks、 Calendar_Week および Calendar_Day。 一方、 Calendar_Hour、 Calendar_Minute および Calendar_Second については、常に最初の添字が 0 となります。 build() がコールされた後には、任意の日付オブジェクトに対して size() メソッドが使用できることも覚えておきましょう。 これを使用すると、子オブジェクトの数が取得できます。

PEAR::Calendar における「週」とはそもそも何なのでしょう?

週は「擬似的な」日付で、エンドユーザ向けのインターフェイスを作成するのに便利なものです。 週オブジェクトのインスタンスを作成する際には、年と月、そして日を指定します。 週オブジェクトから取得できる内容は、そのタイムスタンプ (これは、週の最初の日付のタイムスタンプと同じになります)、 表形式の月における位置づけ (上にある、空の日付について参照ください)、その年の中での位置づけ (これは ISO-8601 で定義されている年間の週番号です。週は月曜日から始まります)、 あるいは数値形式の年、月および週の開始日 (その月の第何日めか) を含む配列となります。例えば次のように使用します。
$Week = & new Calendar_Week(2003, 10, 15);

$Week = new Calendar_Week(2003, 10, 15);

echo $Week->thisWeek(); // 2 を表示します (2003 年 10 月の第 2 週)
echo $Week->thisWeek('n_in_month'); // 2 を表示します - 上と同じです

echo $Week->thisWeek('n_in_year');  // 41 を表示します (2003 年の第 41 週)

echo $Week->thisWeek('timestamp');  // 使用しているエンジンによって、Unix タイムスタンプ
                                    // あるいは ISO-8601 形式の日付 (YYYY-MM-DD HH:MM:SS)
                                    // のいずれかを表示します

print_r $Week->thisWeek('array');   // [year] => 2003 [month] => 10 [day] => 12

Calendar_Year から、デフォルトの Calendar_Month オブジェクトではなく Calendar_Month_Weekdays や Calendar_Month_Weeks を作成する方法は?

Calendar_Year を使用する際には、定数 CALENDAR_MONTH_STATE を設定することで 作成されるオブジェクトを変更することができます。 CALENDAR_MONTH_STATE に CALENDAR_USE_MONTH_WEEKDAYS あるいは CALENDAR_USE_MONTH_WEEKS を設定すると、それぞれ Calendar_Month_Weekdays クラスあるいは Calendar_Month_Week クラスが作成されます。

週の始まりが月曜日になっているようですが、これを変更できますか?

もちろん。「週」の概念がかかわってくるクラスでは、 週の最初の曜日を指定する値を渡すことができます。 タイムスタンプを使用したデフォルトのカレンダーエンジンでは、 これは 0 から 6 までの数で表されます。0 が日曜日、6 が土曜日です。 この値を、次のように指定します。
$Year = new Calendar_Year(2003);
$selection = array();
$Year->build($selection, 0); // 第 2 引数は、週の最初の曜日です (ここでは日曜日)

$MonthWeekdays = new Calendar_Month_Weekdays(2003, 10, 6); // 第 3 引数 - 土曜日

$MonthWeeks = new Calendar_Month_Weekdays(2003, 10, 2); // 第 3 引数 - 火曜日

$Week = new Calendar_Week(2003, 10, 15, 5) // 第 4 引数 - 金曜日

前のページ | ホーム | 次のページ
カレンダーデコレータ | 上に戻る | カレンダー

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


カレンダーデコレータ

カレンダーデコレータ -- Calendar_Decorator とは

カレンダーデコレータ

Calendar_Decorator を使用すると、 既存のカレンダーオブジェクトに機能を追加する際に、 カレンダーオブジェクトのサブクラスを作成する必要がなくなります。 これは、さまざまな場面で役立ちます。例えば、 データベースへのクエリの結果を用いてカレンダーをレンダリングしたり、 カレンダークラスのメソッドからの返り値を変更したり (よくあるのは、数字で返された月を文字列形式に変換するなど) などがあげられます。

PEAR::Calendar では、 デコレータの具象クラスがいくつか提供されています。これは、 このライブラリを使用するにあたって問題となるであろう問題に対応するためのものです。 万人向けのものではなく、個々の問題領域に特化したものになっています。 コードの中で明示的にインクルードしない限り、これらのコードは PHP エンジンによってパースされることはありません。 デコレータがいかに便利なものであるのかを、以下の例で示します。
require_once 'Calendar/Day.php';
require_once 'Calendar/Decorator.php';

class WorkingDay extends Calendar_Decorator {
    function WorkingDay(& $Calendar) {
        parent::Calendar_Decorator($Calendar);
    }

    // カレンダーオブジェクトのデフォルトの fetch メソッドを上書きします
    function fetch() {
        if ($Hour = parent::fetch()) {

            // 再帰的なフェッチにより、午前 8 時から午後 6 時までのみを返します
            if ($Hour->thisHour() < 8 || $Hour->thisHour() > 18) {
                return $this->fetch();
            } else {
                return $Hour;
            }
        } else {
            // 本来の fetch メソッドが何も返さなかった場合、あるいは
            // 無限ループに陥った場合に、確実に FALSE を返すようにします
            return FALSE;
        }
    }
}

// 通常の日付オブジェクトを作成し、時間オブジェクトを構築します
$Day = new Calendar_Day(date('Y'), date('n'), date('d'));
$Day->build();

// デコレータを作成し、通常の日付オブジェクトを渡します
$WorkingDay = new WorkingDay($Day);

// 勤務時間中の時間のみが表示されます...
while ($Hour = $WorkingDay->fetch()) {
    echo $Hour->thisHour().'<br />';
}

基底クラス Calendar_Decorator

基底クラスである Calendar_Decorator は、 Calendar のすべてのサブクラスの API を組み合わせたものを「ミラー」しています。このクラスは、 コンストラクタでカレンダーオブジェクトを受け取り、その API を 「継承」します。これで、カレンダーオブジェクトのメソッドを直接コールするのではなく 継承した API 経由で使用できるようになります。 Calendar_Decorator は、 デコレート対象のカレンダーオブジェクトに対するコールを横取りし、 適切な処理を施してその結果を返します。

デコレータおよび日付選択

デコレータの主要な使用法のひとつは、カレンダーをレンダリングするループ内にデータを 「注入」することです。これは、データベースに登録されている何らかの「イベント」 情報を取得してカレンダーに反映させるのに便利です。選択範囲の配列を何らかの build() メソッドに渡すと、 デフォルトのオブジェクトが選択された日付オブジェクトで置き換えられます。 また、fetch() ループ内で isSelected() メソッドを使用すると、その内容を取得することができます。 PEAR::Calendar をダウンロードすると、その中に使用例が含まれています。 必要なイベントデータは、常に 1 回のクエリで取得できるようにしておくべきです...

バンドルされているデコレータ

PEAR::Calendar には、いくつかのデコレータがバンドルされています。

  • Calendar_Decorator_Textual

    月名や曜日のテキスト表記の取得を補助するデコレータ。

  • Calendar_Decorator_Uri

    カレンダーを移動するための HTML リンクの作成を補助するデコレータ。

  • Calendar_Decorator_Weekday

    曜日を取得するデコレータ。

  • Calendar_Decorator_Wrapper

    別のデコレータの子オブジェクトの構築をラップするデコレータ。

Calendar_Decorator_Textual の例

このデコレータでは、月名や曜日名を処理するのに便利なメソッドを定義しています。

  • monthNames($format='long')

    月名の配列を返します。返される月の書式は format パラメータ (one、two、short あるいは long) に依存します。

  • weekdayNames($format='long')

    曜日名の配列を返します。返される曜日の書式は format パラメータ (one、two、short あるいは long) に依存します。

  • prevMonthName($format='long')

    デコレート対象のカレンダーオブジェクトの、前月のテキスト表現を返します。

  • thisMonthName($format='long')

    デコレート対象のカレンダーオブジェクトの、当月のテキスト表現を返します。

  • nextMonthName($format='long')

    デコレート対象のカレンダーオブジェクトの、翌月のテキスト表現を返します。

  • prevDayName($format='long')

    デコレート対象のカレンダーオブジェクトの、前日のテキスト表現を返します。

  • thisDayName($format='long')

    デコレート対象のカレンダーオブジェクトの、当日のテキスト表現を返します。

  • nextDayName($format='long')

    デコレート対象のカレンダーオブジェクトの、翌日のテキスト表現を返します。

  • orderedWeekdays($format='long')

    デコレート対象のカレンダーオブジェクトで定義されている順番で、 曜日を返します。Calendar_Month_Weekdays、 Calendar_Month_Weeks および Calendar_Week でのみ有用です。それ以外の場合は、常に日曜日から始まる配列が返されます。

Calendar_Decorator_Uri の例

このデコレータで定義されているメソッドは次のとおりです。

  • setFragments($y, $m=null, $d=null, $h=null, $i=null, $s=null)

    各日付要素に対して URI 変数の名前を設定します。

  • setSeparator($separator)

    区切り文字を、例えば '/' のように指定します (デフォルトは &)。

  • setScalar(boolean $state=TRUE)

    Uri デコレータを「スカラーモード」に移行します。 URI 変数の名前は返されません。

  • prev($method)

    ひとつ前 (年、月、週、日など) のカレンダーの URI 文字列を取得します。

  • this($method)

    現在 (年、月、週、日など) のカレンダーの URI 文字列を取得します。

  • next($method)

    ひとつ先 (年、月、週、日など) のカレンダーの URI 文字列を取得します。

簡単な使用例を示します。
$Day = new Calendar_Day(2003, 10, 23);
$Uri = & new Calendar_Decorator_Uri($Day);
$Uri->setFragments('year', 'month', 'day');
echo $Uri->prev('day');
// year=2003&month=10&day=22 と表示されます。

Calendar_Decorator_Weekday の例

このデコレータで定義されているメソッドは次のとおりです。

  • setFirstDay($firstDay)

    週の最初の曜日を設定します (0 = 日曜日, 1 = 月曜日 [デフォルト] など)

  • prevWeekDay($format='int')

    週の前日を返します。$format パラメータの内容 (int, array, object, timestamp) によって書式が変わります。

  • thisWeekDay($format='int')

    週の当日を返します。$format パラメータの内容 (int, array, object, timestamp) によって書式が変わります。

  • nextWeekDay($format='int')

    週の翌日を返します。$format パラメータの内容 (int, array, object, timestamp) によって書式が変わります。

使用例は次のようになります。
$Day = new Calendar_Day(2003, 10, 23);
$Weekday = & new Calendar_Decorator_Weekday($Day);
$Weekday->setFirstDay(0); // 一週間を日曜日から始めるようにします (デフォルトは月曜日からです)
echo $Weekday->thisWeekDay(); // 5 (日曜日から数えて 5 日め) を表示します

Calendar_Decorator_Wrapper の例

require_once 'Calendar/Month.php';
require_once 'Calendar/Decorator.php'; // 必須ではありませんが、わかりやすくするために追加しています
require_once 'Calendar/Decorator/Wrapper.php';

class MyBoldDecorator extends Calendar_Decorator
{
    function MyBoldDecorator(&$Calendar)
    {
        parent::Calendar_Decorator($Calendar);
    }

    function thisDay()
    {
        return '<b>'.parent::thisDay().'</b>';
    }
}

$Month = new Calendar_Month(date('Y'), date('n'));

$Wrapper = & new Calendar_Decorator_Wrapper($Month);
$Wrapper->build();

echo '<h2>ラッパーデコレータ</h2>';
echo '<i>日付が太字でレンダリングされます</i><br /> <br />';
while ($DecoratedDay = $Wrapper->fetch('MyBoldDecorator')) {
    echo $DecoratedDay->thisDay().'<br />';
}

前のページ | ホーム | 次のページ
メソッドの概要 | 上に戻る | FAQ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


お急ぎの方用

お急ぎの方用 -- お湯をかけるだけのように...

お急ぎの方用

require_once 'Calendar/Month/Weekdays.php';

$Month = new Calendar_Month_Weekdays(date('Y'), date('n'));

$Month->build();

echo "<table>\n";

while ($Day = $Month->fetch()) {
    if ($Day->isFirst()) {
        echo "<tr>\n";
    }

    if ($Day->isEmpty()) {
        echo "<td>&nbsp;</td>\n";
    } else {
        echo '<td>'.$Day->thisDay()."</td>\n";
    }

    if ($Day->isLast()) {
        echo "</tr>\n";
    }
}

echo "</table>\n";

前のページ | ホーム | 次のページ
インストール | 上に戻る | パッケージ概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


インストール

インストール -- PEAR::Calendar のインストール方法

インストール

  • もしまだインストールしていない場合は、まず PEAR パッケージマネージャーをセットアップします。

  • pear install Calendar とタイプします (コマンドラインのマネージャーを使用します)。 manager)

  • これで PEAR::Calendar がインストールされました。

前のページ | ホーム | 次のページ
導入 | 上に戻る | お急ぎの方用

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


パッケージ概要

パッケージ概要 -- カレンダークラスの概要

パッケージ概要

PEAR::Calendar には全部で 12 のクラスがあり、あなたが解決しようとしている問題に応じてそれらを使い分けます。 これらのクラスは日付クラス、表形式の日付クラス、バリデーションクラス、デコレーションクラスに分類できます。

日付クラス

基本的で日常的な日付を提供します。これらはすべて Calendar のサブクラスで、以下のメソッドが提供されています。

  • Calendar_Year - 年を表すクラスで、Calendar_Month, Calendar_Month_Weekdays と Calendar_Month_Weeks オブジェクトを構築することができます。

    require_once 'Calendar/Year.php';
    で組み込みます。

  • Calendar_Month - 月を表すクラスで、Calendar_Day オブジェクトを構築することができます。

    require_once 'Calendar/Month.php';
    で組み込みます。

  • Calendar_Day - 日を表すクラスで、Calendar_Hour オブジェクトを構築することができます。.

    require_once 'Calendar/Day.php';
    で組み込みます。

  • Calendar_Hour - 時間を表すのクラスで、Calendar_Minute オブジェクトを構築することができます。

    require_once 'Calendar/Hour.php';
    で組み込みます。

  • Calendar_Minute - 分を表すクラスで、Calendar_Second オブジェクトを構築することができます。

    require_once 'Calendar/Minute.php';
    で組み込みます。

  • Calendar_Second - 秒を表すクラスです。他のオブジェクトは構築しません。

    require_once 'Calendar/Second.php';
    で組み込みます。

表形式の日付クラス

表形式で整形されたカレンダーを構築します。これらはすべてCalendar のサブクラスで、以下のメソッドが提供されています。

  • Calendar_Month_Weekdays - Calendar_Day オブジェクトを構築し、isFirst(), isLast() と isEmpty() の状態を設定します。表形式のフォームで月を表示するために使用されます。

    require_once 'Calendar/Month/Weekdays.php';
    で組み込みます。

  • Calendar_Month_Weeks - Calendar_Weekを構築します。週を表す表で、一ヶ月を表します(どのような週の表現があるかは FAQ を参照してください)。

    require_once 'Calendar/Month/Weeks.php';
    で組み込みます。

  • Calendar_Week - 7 つの Calendar_Day オブジェクトを構築します。Calendar_Month_Weeks オブジェクトに継承された場合は、その月の週を表形式で表し、必要なら isEmpty() の状態を設定します。

    require_once 'Calendar/Week.php';
    で組み込みます。

バリデーションクラス

日付の妥当性を検証するために使用します。Calendar の提供する検証メソッドは 2 種類あります。isValid() は、任意の日付に対する簡単なチェックを行います。getValidator() は、より詳細な検証を行うための Calendar_Validator のインスタンスを返します。

  • Calendar_Validator - これはあなたのコードで直接インスタンスを作成するものではありません (明確に include し、それを作成する必要があります)。しかし Calendar::getValidator() からの返値のかわりに、Calendar の任意のサブクラスを呼び出せます。このクラスは日付を細かくvalidatし、正確にどこが悪かったかを検出するのに使用できます (単純な検証なら、日付オブジェクトや表形式日付オブジェクトに対して isValid() メソッドを呼び出すことだけで、正しい値で作成されたかどうかを知ることができます)。

  • Calendar_Validation_Error - 検証エラーを表します。このクラスはどこが悪かったのかを検出するメソッドを提供します。利用できるメソッドは getUnit() (たとえば年あるいは月を返します)、getValue() (失敗している値を返します)、getMessage() (検証エラーメッセージを返します) およびここまでに述べた 3 つのメソッドをまとめた値を返す toString() です。デフォルトの検証エラーメッセージは英語ですが、定数 CALENDAR_VALUE_TOOSMALL と CALENDAR_VALUE_TOOLARGE についてはコードの中で再定義できます。

デコレータ

カレンダーオブジェクトの本体 (Calendar を継承したクラス) に機能を追加するものです。明示的にそれらを拡張する必要がなくなり、フィールドを偶然に上書きしてしまうリスクも回避できます。デコレータを作成するときは、そのコンストラクタにカレンダーオブジェクトのインスタンスを渡します。すると、オリジナルのカレンダーオブジェクトを呼び出すのとまったく同じようにデコレータを呼び出すことができるようになります。これによってカレンダーのメソッドを "上書き" することができるようになります。またそれだけではなく、新しいメソッドを追加したり、同一カレンダーオブジェクトに複数のデコレータを適用したりすることもできるようになります。デコレータを使用する場面としては、カレンダーがレンダリングされるループに (選択、あるいは Calendar_Decorator_Wrapper デコレータを使用して)「注入」したり、出力内容を変更したり (例えば 1 => January のように月の表現法を数字から文字に変換する) といったものがあります。

PEAR::Calendar では、ありがちな問題に対応するためのデコレータの実装をいくつか提供しています。これらは万人向けに設計されているわけではなく、必要に応じて使用できるようにオプションのコードとして提供されています (これにより、使いもしないコードをパースするために速度が低下してしまうといった現象を避けています)。

  • Calendar_Decorator - デコレータの基底クラスです。これを直接使用するのではなく、このクラスを拡張して使用しなければなりません。デコレート対象のカレンダークラスと同じ API を提供し、このクラスを通じてカレンダーをコールします。例えば次のようになります。
    require_once 'Calendar/Decorator.php';

class ChristmasDecorator extends Calendar_Decorator
{
    function ChristmasDecorator(&$Calendar)
    {
        parent::Calendar_Decorator($Calendar);
    }
    // 追加する何らかのメソッド
    function getDaysToChristmas()
    {
        $today = parent::thisDay(true);
        $Christmas = new Calendar_Day(date('Y'), 12, 25);
        $xmasday = $Christmas->thisDay(TRUE);
        $diff = $xmasday - $today;
        if ($diff < 0) {
            $NextChristmas = new Calendar_Day($Christmas->nextYear(), 12, 25);
            $nextxmasday = $NextChristmas->thisDay(true);
            $diff = $today - $nextxmasday;
        }
        return ($diff / 86400);
    }
}

  • Calendar_Decorator_Uri - URL (例えば「次」や「前」を表す URL など) の作成を補助するデコレータです。

    require_once 'Calendar/Decorator/Uri.php';
    で組み込みます。

  • Calendar_Decorator_Textual - カレンダーオブジェクトから文字の月名と曜日を取得することを助けます。

    require_once 'Calendar/Decorator/Textual.php';
    で組み込みます。

  • Calendar_Decorator_Wrapper - あなたが使用しているカレンダーオブジェクトの子クラスにデコレートを追加することを補助するためのクラスです。build() の後で fetch() または fetchAll() がコールされた際に、指定したオブジェクトの子オブジェクトをラップします。

    require_once 'Calendar/Decorator/Wrapper.php';
    で組み込みます。

前のページ | ホーム | 次のページ
お急ぎの方用 | 上に戻る | メソッドの概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


メソッドの概要

メソッドの概要 -- Calendar API の要約

メソッドの概要

メインとなるカレンダーのクラス (Calendar のサブクラス) はすべて共通 API (共通のクラスメソッド) を共有しています。あるクラスでは細かなバリエーションがありますが、なにが利用できるかを一度知ってしまえば、直感的に理解し、容易に思い出すことができるでしょう。このセクションでは共通のメソッドを要約し、このバリエーションを強調します。詳しい情報は API のドキュメントをみてください。

コンストラクタ

データクラスのコンストラクタは日付の数値を引数にとります。年のはじまり (左側) から秒 (右側) までです。これはあなたの利用するクラスに依存します。たとえば、
// 普通のカレンダークラス
$Year = new Calendar_Year(2003);                         // 2003
$Month = new Calendar_Month(2003, 10);                   // 2003年10月
$Day = new Calendar_Day(2003, 10, 25);                   // 2003年10月25日
$Hour = new Calendar_Hour(2003, 10, 25, 13);             // 2003年10月25日 13:00:00
$Minute = new Calendar_Minute(2003, 10, 25, 13, 31);     // 2003年10月25日 13:31:00
$Second = new Calendar_Second(2003, 10, 25, 13, 31, 45); // 2003年10月25日 13:31:45

// 表形式のカレンダークラス
$Month = new Calendar_Month_Weekdays(2003, 10);          // 2003年10月
$Month = new Calendar_Month_Weeks(2003, 10);             // 2003年10月
$Week = new Calendar_Week(2003, 10, 25);                 // 2003年10月25日を含む週
表形式のクラスである Calendar_Month_Weekdays と Calendar_Month_Weeks は、どちらもオプションで 3 番目の引数をとることに注意しましょう。この引数 (integer) は週の最初の曜日を決定し、表形式の表示を調整します (デフォルトは月曜日(1)です - 例えば、数値を 0 に変更すると日曜日が週の最初の曜日になります)。Calendar_Week は、コンストラクタの 4 番目の引数で週の最初の曜日を引数として受け取ることができます。

位置づけ用メソッド

すべての日付クラス・表形式日付クラスは、抽象基本クラスの Calendar で定義されたメソッドを共有しています。これらの中にはオブジェクト自体の日付を識別するメソッドや以前の日付、次の日付を識別するメソッドがあります。例えば、
// 日の作成
$Day = new Calendar_Day(2003, 10, 1); // 2003年10月1日

echo $Day->thisDay(); // 1日を表示
echo $Day->prevDay(); // 30日を表示 (9月30日)
echo $Day->nextDay(); // 2日を表示

echo $Day->thisMonth(); // 10月を表示
echo $Day->prevMonth(); // 9月を表示
echo $Day->nextMonth(); // 11月を表示
$Day からは、日付だけではなく月 (あるいは年/時間/分/秒) も取得できることに注目しましょう。また、前日が 9 月であることをきちんと考慮したうえで、prevDay() が 30 を返していることにも注目しましょう。this***()、prev***() と next***() メソッドは、年・月・日・時・分・秒のそれぞれに対応するものが存在します。

これらのメソッドに TRUE を渡すと、タイムスタンプ形式で結果をかえします (タイムスタンプの形式は使用しているカレンダーエンジンによります。FAQ を参照ください)。例えば、
// 秒の作成
$Second = new Calendar_Second(2003, 10, 25, 13, 32, 44);

echo $Second->thisYear(TRUE);     // 1041375600 を表示
echo $Second->thisMonth(TRUE);    // 1064959200 を表示
echo $Second->thisDay(TRUE);      // 1067032800 を表示
echo $Second->thisHour(TRUE);     // 1067079600 を表示
echo $Second->thisMinute(TRUE);   // 1067081520 を表示
echo $Second->thisSecond(TRUE);   // 1067081564 を表示
取得するために呼び出されたメソッドによって、タイムスタンプの増加量が異なることに注目しましょう。最初の値は thisYear(TRUE)() によって得られたタイムスタンプで、2003 年のはじまり (つまり 2003 年 1 月 1 日) のものです。一方で、3 つめのものは thisDay(TRUE)() によって得られたタイムスタンプで、2003 年 10 月 25 日のものです。

警告

prev***()とnext***()からはじまるメソッドは、現在使用中のカレンダーオブジェクトのとの相対的な値を計算して返します。上記の例では、次の日(2003年10月2日)の日と月の値を得たい際に nextDay()を呼びだして、nextMonth()を呼び出すこと、10 月ではなく 11 月 2 日の値を得ることになってしまいます。 そうではなく、nextDay() に引数 TRUE を指定してコールすることで、次の日のタイムスタンプを取得することができます。次へ/前へのリンクを作成することを助けるように設計された Calendar_Decorator_Uri も見てください。

thisWeek(), prevWeek() および nextWeek() といったメソッドもあります。これらのメソッドはCalendar_Week のインスタンスを使用している場合のみ利用することができます。返される値のフォーマットは'timestamp', 'n_in_month', 'n_in_year' あるいは 'array' の中から選択することができます。'n_in_month' を選択した場合に、月のはじまりか終わりになってしまった場合には NULL 値が返されることに注意してください。

最後になりますが、すべてのカレンダーオブジェクトは getTimeStamp() と setTimeStamp() メソッドを提供します。前者はあなたが利用しているカレンダーエンジンのフォーマットでのタイムスタンプを返します (例えば、もしデフォルトの Unix タイムエンジンを使用しているなら、Unix 形式のYYYY-MM-DD HH:MM:SS というフォーマットのタイムスタンプです)。後者はカレンダーオブジェクトが構築した値を変換するのに用いたタイムスタンプを除外します。

構築および取得

すべての日付クラス、表形式の日付クラスは、データオブジェクトの子供を作るためのbuild() メソッドを持っています。たとえば、Calendar_Month は月の"子供"の存在である Calendar_Day オブジェクトをビルドします。

一度 build() が呼び出されると、子供は単純な fetch() イテレータを使用して日付オブジェクトから取り出すことができます。例えば、
$Month = new Calendar_Month(2003, 10);

$Month->build();

while ($Day = $Month->fetch()) {
    echo $Day->thisDay()."<br />\n";
}
fetch()メソッドは、日付の昇順で 1 回に 1 つの子供を返します。もうそれ以上子供が見つからない場合には FALSE を返します。そして自動的に内部の子供の集合がリセットされます。よって好きな回数だけこれらをループさせて使用することができます。

もしあなたがこのようなイテレータを好まず、独自のものを使用したいと望むなら、単純に子供を fetchAll() メソッド (子供の日付オブジェクトをインデックス化された配列で返します) で取り出し、size()　でその数をチェックすることができます。fetchAll() で返されるインデックスに注意してください。Calendar_Year, Calendar_Month, Calendar_Month_Weekdays, Calendar_Month_Weeks そして Calendar_Weekではインデックスの最初の値は 1 です。一方で、Calendar_Day, Calendar_Hour, Calendar_Minute そして Calendar_Second ではインデックスの最初の値は 0 です。なぜでしょうか? 次のような表記を考えてみてください。 2003-1-1 00:00:00 ...

注意: Calendar_Second::build() は実際には何もしません。これは子要素をもたないからです。

子要素の選択

カレンダーのレンダリングを簡単にするために、build() メソッドは子供のオブジェクトと比較する日付オブジェクトの配列を受け取ることができます (どの日付のオブジェクトやtabular日付のオブジェクトでも利用することができます)。配列のオブジェクトが子要素とマッチする場合は、その要素が選択状態となり、isSelected()メソッド (これはあらゆる日付オブジェクト・表形式日付オブジェクトで使用可能です) は TRUE を返します。例えば、
$Month = new Calendar_Month(2003, 10);

$DayX = new Calendar_Day(2003, 10, 15);
$DayY = new Calendar_Day(2003, 10, 23);
$selection = array($DayX, $DayY);

$Month->build($selection);

while ($Day = $Month->fetch()) {
    if ($Day->isSelected()) {
        echo $Day->thisDay()."<br />\n"; // 15 あるいは 23 を表示
    }
}
上の例では、2003 年 10 月 15 日と 2003 年 10 月 23 日だけが表示されます。

build() に渡したオブジェクトのうち、子要素とマッチするオブジェクトは子要素を置き換えます (つまり、マッチした要素については、その要素がそのまま戻されます)。これをうまく利用すると、オブジェクトをループの中に "組み込む" ことができるようになります。一般的には、これは Calendar_Decorator を拡張することによって行います。

注意: Calendar_Year::build() メソッドは 2 番目の引数に週のはじまりの曜日をとります (コンストラクタに関する上の記述を参照ください)。

表形式の日付

Calendar_Day クラスは 3 つの独自のメソッドを持っています。これらのメソッドは他のクラスには存在せず、純粋に表形式カレンダーを作成するために用いられます。isEmpty() は日にちが空白かどうかを判断するために用いられます (FAQ の空白の日にちの説明を参照してください)。isFirst() と isLast() は週のはじまりと終わりを区別するために使用されます。

あなたがこれらのメソッドを使用する必要があるかどうかは、日付オブジェクトを構築するするのにどのクラスを使用したかによります。もし、日付オブジェクトが Calendar_Month_Weekdays によって構築されたのなら、これら 3 つのメソッドのどれもを利用することができます (空の日付があってもかまいません。Calendar_Month_Weekdays で完全な月を作成し、それぞれの週のはじまりとおわりが区切られるので、isFirst() と isLast() によって判断することができます)。Calendar_Week によって日付が作られれたなら、isEmpty() メソッドだけが利用できます (月の最初と最後の週には空白の日付が含まれる可能性があります)。他の方法で日付オブジェクトが作成された場合、isEmpty(), isFirst() と isLast() は無意味です。

バリデーション

すべての日付オブジェクトと表オブジェクト (週を除く) は、自分自身の妥当性を検証する機能をもっています。デフォルトではどのような引数もコンストラクタに渡すことができますが、isValid() メソッドを用いて日付を検証することができます。例えば、
$Day = new Calendar_Day(2003, 10, 32);

if (!$Day->isValid()) {
    die ('無効な日付です');
}
より精密に検査するには、最初に getValidator() メソッドを呼び出し、Calendar_Validator のインスタンスを受け取ってから検証エラーを調べます。
$Day = new Calendar_Day(2003, 10, 32);

if (!$Day->isValid()) {
    $Validator = & $Day->getValidator();
    while ($Error = $Validator->fetch()) {
        echo $Error->getUnit().' は無効です<br>';
    }
}
あるいは、
$Day = new Calendar_Day(2003, 10, 32);

$Validator = & $Day->getValidator();
if (!$Validator->isValid()) {
    while ($Error = $Validator->fetch()) {
        echo $Error->toString().'<br>';
    }
}

日付を検査するよりは、むしろ adjust() メソッドを使って日付を自動的に調整するほうがよいことに注意してください。
$Day = new Calendar_Day(2003, 10, 32);

$Day->adjust();

echo $Day->thisYear();      // 2003
echo $Day->thisMonth();     // 11 (翌月に移動)
echo $Day->thisDay();       // 1  (月初)

ここでは、PEAR::Calendar で利用できるメソッドのうち、Decorator クラスによって提供されるものを除くすべてをまとめました。

前のページ | ホーム | 次のページ
パッケージ概要 | 上に戻る | カレンダーデコレータ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- どのようなことがカレンダークラスでできるのか

導入

警告

PEAR::Calendar のいくつかのクラスは、 PEAR::Date がを必要とします。 PEAR::Date 1.3.1beta は、 いくつかのファイルが足りないために動作しないでしょう。 確実に動作させるためには、 PEAR::Date 1.4 以降がインストールされていなければなりません。

PEAR::Calendar は、 構造化されたデータとして何種類かの形式のカレンダーを 提供するパッケージです。 このパッケージは、コンテンツのレンダリングをしたり 既存のデータに依存したりすることがありません。 そのために様々な分野の問題に応用することができます。 同時に、レンダリングを行う簡単な API を提供します。 たとえば、HTML のカレンダーを作成するのも非常に簡単です。 また、このカレンダーをあなたのデータと連動させることも可能です。

PEAR::Calendar を開発した理由は、PHP に似たものが無かったからです。 パブリックドメインのカレンダーユーティリティやクラスは多く存在します。 しかし、その多くは特定の出力形式に制限されていたり (よくあるのはコードを書き直さないとカスタマイズできない HTML 形式です)、 あらかじめ整形されたデータ構造で (たとえば MySQL みたいな) データベースに保存されたデータに依存したりしています。 このために、 利用しようとする際にかなり制限されてしまうという問題があります。 対称的に、PEAR::Calendar はカレンダーを作成する作業から 数学的な要素を除くことに焦点をあてています。 エンドユーザは、これによって簡単にデータ構造を処理できるようになります。

PEAR::Calendar の持つ利点と特徴は、次のようになります。

  • 出力形式を自由にレンダリングすることができます (例. (X)HTML, WML, SOAP, XML-RPC, コマンドラインの ASCII など、何でも)。

  • カレンダーの作成は、 データベースのクエリでの結果をループさせることと似ています。

  • 年から秒まですべての「データオブジェクト」を表せます (例. 月と日からなる完全な1年間のカレンダーや週ごとや、 日別の日記を同じようにレンダリングすることができます)。

  • "表形式"のカレンダーが簡単にできます。

  • 日付の妥当性検証が簡単にできます (2003 年 2 月 29 日ってありましたっけ?)。

  • ガリガリコードを書かないですむ、 オブジェクト指向APIが利用できます。

  • カレンダーに容易にナビゲーションを追加することができます (例. 2004 年 1 月 1 日から 2003 年 12 月 31 日へのリンクを作るのも簡単です)。

  • すべての呼び出しで数値を返します。このことで利用時に制限がなくなります。たとえば月の英語での名前をなどを一致させないでも利用できます。概して、これらは strftime() や setlocale() のような PHP 関数を利用することで生成することができます。

  • 日付の表現は、人が読みやすい数字の形式やタイムスタンプ形式 (例. Unix タイムスタンプ) で得ることができます。これらは使用するカレンダーエンジンに依存します。

  • デコレータ (Decorator) を作成することでカレンダーに独自の機能を付け加えることができます。

  • 階層化された N 階層アプリケーションを書くことができます。

  • このカレンダーの「計算エンジン」は、グレゴリオ暦だけに限られるものではありません。もし望むならトールキンのカレンダーを記述することもできます。現状では「エンジン」は Unix タイムスタンプ (デフォルト) と PEAR::Date に基づいて実装されています。

例 34-1単純な例

require_once 'Calendar/Month.php';

$Month = new Calendar_Month(2003, 10); // 2003年10月

$Month->build(); // その次の日付を作成します

// 日ごとにループ処理します
while ($Day = $Month->fetch()) {
    echo $Day->thisDay().'<br />';
}
注意: PEAR::Calendar パッケージのファイル中には、さまざまな例が含まれています。

前のページ | ホーム | 次のページ
Calendar | 上に戻る | インストール

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Date_Holidays

目次
導入 -- Date_Holidays にできること
例 -- Date_Holidays の使用例

休日の算出用パッケージです。

ここでは、PEAR::Date_Holidays の使用法を説明します。

前のページ | ホーム | 次のページ
Calendar の定数 | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


例

例 -- Date_Holidays の使用例

基本的な例

この例は、2004 年の復活祭の日付を計算するものです。

require_once "Date/Holidays.php";
$germany = &Date_Holidays::factory('Germany', 2004, 'en_EN');
if (Date_Holidays::isError($germany)) {
    die('ファクトリでドライバオブジェクトを作成できませんでした');
}
$easter = &$germany->getHoliday('easter', 'de_DE');
if (!Date_Holidays::isError($easter)) {
    print_r($easter->toArray());
}

これは、次のような配列を返します。

Array
(
    [internalName] => easter
    [title] => Easter Sunday
    [date] => date Object
        (
            [year] => 2004
            [month] => 04
            [day] => 11
            [hour] => 0
            [minute] => 0
            [second] => 0
            [tz] => date_timezone Object
                (
                    [id] => UTC
                    [longname] => Coordinated Universal Time
                    [shortname] => UTC
                    [hasdst] =>
                    [dstlongname] => Coordinated Universal Time
                    [dstshortname] => UTC
                    [offset] => 0
                    [default] =>
                )

        )

)
前のページ | ホーム | 次のページ
導入 | 上に戻る | 暗号化 (Encryption)

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- Date_Holidays にできること

導入

Date_Holidays は、ドライバベースで動作する休日算出パッケージです。 特定の国や地域において、指定した日付が休日であるかどうかを調べることを助けます。 さらに、ドライバがサポートしている国、地域あるいは宗教における 任意の休日の日付を求めることが可能です。

現在、以下のドライバがサポートされています。

  • Christian ... キリスト教の休日を算出します (その他のドライバの基底ドライバとなります)。

  • Germany ... ドイツの休日を算出します。

  • Jewish ... ユダヤ教の休日を算出します。

  • Sweden ... スウェーデンの休日を算出します。

  • USA ... アメリカ合衆国の休日を算出します。

  • UNO ... 国連の休日を算出します。

  • Composite ... 複数のドライバを組み合わせて、一度に問い合わせるためのドライバ。

Date_Holidays で使用できるその他のドライバを書かれたかたで、 もしそれをこのパッケージに同梱してもいいというかたは、 パッケージのメンテナに連絡するか、バグ報告フォームにパッチを投稿してください。

Date_Holidays は、各国語での休日名をそれぞれの言語用の INI ファイルに格納することで国際化をサポートしています。 これらのファイルは、PEAR のデータディレクトリに保存されます。

前のページ | ホーム | 次のページ
Date_Holidays | 上に戻る | 例

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- DataObject クラスから HTML フォームを作成するパッケージ

DB_DataObject_FormBuilder について

DB_DataObject_FormBuilder は、DB_DataObject および HTML_QuickForm によるアプリケーションの開発を手早く行うためのものです。 とりあえず動作するプロトタイプを手っ取り早く作成するためには、 まずデータベースを設計し、DataObject の createTable スクリプトを実行し、 できあがったオブジェクトを FormBuilder クラスに渡すようなスクリプトを書けばいいのです。 FormBuilder は、単純ながらきちんと動作する HTML_QuickForm オブジェクトを自動生成します。 それを用いてあなたのアプリケーションをテストすることができます。 また、フォームの送信ボタンが押された際に、insert() と update() のどちらのコマンドを実行するかを自動で検出するメソッドも提供します。 DataObject の links.ini ファイルを作っておけば、それを自動的に認識します。 外部キーに対応する項目は、リンク先のテーブルの内容を元にした select となります。 さまざまなオプションパラメータを DataObjects.ini に記述することもできますし、 派生クラスのプロパティとして設定することもできます。これらを使用することで、 生成されるフォームをよりよくすることができます。 プロトタイプをもとに徐々に機能を追加していけば、 完全な機能を実装したフォームを得ることができます。 基本的な使用法はこのようになります。
$do =& new MyDataObject();
// ここに "$do->get($some_id);" を書いて、新規オブジェクトではなく
// 既存のオブジェクトを利用することもできます
$fg =& DB_DataObject_FormBuilder::create($do);
$form =& $fg->getForm();
if ($form->validate()) {
    $form->process(array(&$fg,'processForm'), false);
$form->freeze();
}
$form->display();

前のページ | ホーム | 次のページ
DB_DataObject_FormBuilder | 上に戻る | DB_Pager

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ Cache_Lite_File::Cache_Lite_File

PEAR マニュアル
前のページ 次のページ

コンストラクタ Cache_Lite_File::Cache_Lite_File()

コンストラクタ Cache_Lite_File::Cache_Lite_File() -- コンストラクタ

概要

require_once 'Cache/Lite/File.php';

void constructor Cache_Lite_File::Cache_Lite_File (array $options)

説明

Cache_Lite_File クラスのコンストラクタです。 様々なオプションを設定するために、 引数として連想配列を与えることができます。

パラメータ

array $options

様々なオプションを設定するための連想配列を指定します (詳細は Cache_Lite のコンストラクタを参照ください)。 Cache_Lite_File の場合は、以下の表にある "必須オプション" が追加されていることに注意しましょう。

表 30-1

オプション | データ型 | デフォルト値 | 詳細
[...] | [...] | [...] | この表以外のオプションは Cache_Lite のコンストラクタを参照ください。
masterFile [必須] | string | '' | キャッシュの生存期間を制御するために使用されるファイルの絶対パスを指定します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Cache_Lite_Function::drop() | 上に戻る | Cache_Lite_File::get()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor Cache_Lite_Function::Cache_Lite_Function

PEAR マニュアル
前のページ 次のページ

constructor Cache_Lite_Function::Cache_Lite_Function()

constructor Cache_Lite_Function::Cache_Lite_Function() -- コンストラクタ

概要

require_once 'Cache/Lite/Function.php';

void constructor Cache_Lite_Function::Cache_Lite_Function ([array $options = array(NULL)])

説明

Cache_Lite_Output クラスのコンストラクタです。 様々なオプションを設定するために、 引数として連想配列を与えることができます。

パラメータ

array $options

様々なオプションを設定するための連想配列を指定します (詳細は Cache_Lite のコンストラクタを参照ください)。 Cache_Lite_Function の場合は、(Cache_Lite と比較して) "必須オプション" が追加されていることに注意しましょう。 追加のオプションについては次の表で示します。

表 30-1

オプション | データ型 | デフォルト値 | 詳細
[...] | [...] | [...] | この表以外のオプションは Cache_Lite のコンストラクタを参照ください。
defaultGroup | string | Cache_Lite_Function | 関数キャッシュのための、デフォルトのキャッシュグループ。
debugCacheLiteFunction | boolean | FALSE | キャッシュ処理をデバッグするかどうかを指定します。
dontCacheWhenTheOutputContainsNOCACHE | boolean | FALSE | 出力に "NOCACHE" という文字列が含まれている場合は、メソッドコールをキャッシュしません。 true を設定すると、メソッドの出力が表示されなくなります (キャッシュの制御用に出力が使用されるからです)。
dontCacheWhenTheResultIsFalse | boolean | FALSE | 結果が false の場合は、メソッドコールをキャッシュしません。
dontCacheWhenTheResultIsNull | boolean | FALSE | 結果が null の場合は、メソッドコールをキャッシュしません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Cache_Lite_Output::end() | 上に戻る | Cache_Lite_Function::call()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Cache_Lite_Function::call

PEAR マニュアル
前のページ 次のページ

Cache_Lite_Function::call()

Cache_Lite_Function::call() -- キャッシュ可能な関数あるいはメソッドをコールする (あるいはすでにキャッシュされている場合はコールしない)

概要

require_once 'Cache/Lite/Function.php';

mixed Cache_Lite_Function::call (string$functionName, mixed$arg1, mixed$arg2, mixed$arg3, mixed...)

説明

もしキャッシュがなければ、引数と共に与えられた関数をコールします ; もしくは、関数の出力がキャッシュから読み込まれた場合はブラウザに送信し、 また、値がキャッシュから読み込まれ返された場合、その値を返します。

返り値

returns 関数/メソッドの結果

注意

この関数は、スタティックにコールする ことはできません。

例

例 30-1典型的な関数の使用法

<?php

require_once('Cache/Lite/Function.php');

$options = array(
    'cacheDir' => '/tmp/',
    'lifeTime' => 3600
);

$cache = new Cache_Lite_Function($options);

$cache->call('function_to_bench', 12, 45);

function function_to_bench($arg1, $arg2)
{
    echo "This is the output of the function function_to_bench($arg1, $arg2) !<br>";
    return "This is the result of the function function_to_bench($arg1, $arg2) !<br>";
}

?>

例

例 30-2典型的なメソッドの使用法

<?php

require_once('Cache/Lite/Function.php');

$options = array(
    'cacheDir' => '/tmp/',
    'lifeTime' => 3600
);

$cache = new Cache_Lite_Function($options);

$obj = new bench();
$obj->test = 666;

$cache->call('obj->method_to_bench', 12, 45);

class bench
{
    var $test;

    function method_to_bench($arg1, $arg2)
    {
        echo "\$obj->test = $this->test and this is the output of the method \$obj->method_to_bench($arg1, $arg2) !<br>";
        return "\$obj->test = $this->test and this is the result of the method \$obj->method_to_bench($arg1, $arg2) !<br>";
    }

}

?>

もし、Cache_Lite_Function で $this オブジェクト (例えば $cache->call('this->method',...) を使用したい場合、 まずこのページの最後の例を参照ください。

例

例 30-3典型的な静的メソッドの使用法

<?php

require_once('Cache/Lite/Function.php');

$options = array(
    'cacheDir' => '/tmp/',
    'lifeTime' => 3600
);

$cache = new Cache_Lite_Function($options);

$cache->call('bench::static_method_to_bench', 12, 45);

class bench
{
    var $test;

    function static_method_to_bench($arg1, $arg2) {
        echo "This is the output of the function static_method_to_bench($arg1, $arg2) !<br>";
        return "This is the result of the function static_method_to_bench($arg1, $arg2) !<br>";
    }
}

?>

例

例 30-4このメソッドの別の使用法 (キャッシュの $this->method() コールを使用する方法)

<?php

// Cache_Lite-1.7.0beta2 以降で使用可能です

require_once('Cache/Lite/Function.php');

$options = array(
    'cacheDir' => '/tmp/',
    'lifeTime' => 3600
);

$obj = new foo($options);

class foo
{

    var $test;

    function foo($options)
    {
        $cache = new Cache_Lite_Function($options);
        $this->test = 'foobar';
        $cache->call(array(&$this, 'method_bar'), 12, 45);
    }

    function method_bar($arg1, $arg2)
    {
        echo "\$this->test = $this->test and this is the output of the method \$this->method_bar($arg1, $arg2) !<br>";
        return "\$this->test = $this->test and this is the result of the method \$this->method_bar($arg1, $arg2) !<br>";
    }

}

?>

つまり、メソッドのコールについてのいちばんよい方法は、最初の引数として array(&$object, 'nameOfTheMethod') を使用することです。 '$object->nameOfTheMethod' を使用すると、例えば "$this" ではうまく動作しません。

前のページ | ホーム | 次のページ
constructor Cache_Lite_Function::Cache_Lite_Function() | 上に戻る | Cache_Lite_Function::drop()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Cache_Lite_Function::drop

PEAR マニュアル
前のページ 次のページ

Cache_Lite_Function::drop()

Cache_Lite_Function::drop() -- キャッシュファイルを削除する

概要

require_once 'Cache/Lite/Function.php';

boolean Cache_Lite_Function::drop (string$functionName, mixed$arg1, mixed$arg2, mixed$arg3, mixed...)

説明

[Cache_Lite 1.6.0beta1 以降] 指定した引数による関数コールに対応するキャッシュファイルを削除します。

返り値

returns 成功した場合に true を返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 30-1関数の標準的な使用法

<?php

require_once('Cache/Lite/Function.php');

$options = array(
    'cacheDir' => '/tmp/',
    'lifeTime' => 3600
);

$cache = new Cache_Lite_Function($options);

$cache->call('function_to_bench', 12,45);
$cache->call('function_to_bench', 12,45);

// 対応するキャッシュファイルを削除します
$cache->drop('function_to_bench', 12, 45);

function function_to_bench($arg1, $arg2)
{
    echo "これは、関数 function_to_bench($arg1, $arg2) の出力です!<br>";
    return "これは、関数 function_to_bench($arg1, $arg2) の返り値です!<br>";
}

?>
前のページ | ホーム | 次のページ
Cache_Lite_Function::call() | 上に戻る | コンストラクタ Cache_Lite_File::Cache_Lite_File()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor Cache_Lite_Output::Cache_Lite_Output

PEAR マニュアル
前のページ 次のページ

constructor Cache_Lite_Output::Cache_Lite_Output()

constructor Cache_Lite_Output::Cache_Lite_Output() -- コンストラクタ

概要

require_once 'Cache/Lite/Output.php';

void constructor Cache_Lite_Output::Cache_Lite_Output (array $options)

説明

Cache_Lite_Output クラスのコンストラクタです。 様々なオプションを設定するために、 引数として連想配列を与えることができます。

パラメータ

array $options

様々なオプションを設定するための連想配列を指定します (詳細は Cache_Lite のコンストラクタを参照ください)。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Cache_Lite::extendLife() | 上に戻る | Cache_Lite_Output::start()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Cache_Lite_Output::end

PEAR マニュアル
前のページ 次のページ

Cache_Lite_Output::end()

Cache_Lite_Output::end() -- start() メソッドで開始された出力バッファリングを停止し、出力をキャッシュファイルに保存する

概要

require_once 'Cache/Lite/Output.php';

void Cache_Lite_Output::end ()

説明

start() メソッドで開始された出力バッファリングを停止し、出力をキャッシュファイルに保存します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 30-1使用法

<?php
require_once "Cache/Lite/Output.php";

$options = array(
    'cacheDir' => '/tmp/',
    'lifeTime' => 7200,
    'pearErrorMode' => CACHE_LITE_ERROR_DIE
);
$cache = Cache_Lite_Output($options);

if (!($cache->start('id_of_the_page'))) {

    // キャッシュがヒットしなかった !
    // 全ての出力は end() メソッドまでバッファされる
    // (...)

    $cache->end(); // バッファされた出力がキャッシュファイルに保存される

}

?>
前のページ | ホーム | 次のページ
Cache_Lite_Output::start() | 上に戻る | constructor Cache_Lite_Function::Cache_Lite_Function()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Cache_Lite_Output::start

PEAR マニュアル
前のページ 次のページ

Cache_Lite_Output::start()

Cache_Lite_Output::start() -- キャッシュが有効かどうかをテストし、(有効であれば) ブラウザにそれを返す。あるいは出力バッファリングが有効になる

概要

require_once 'Cache/Lite/Output.php';

boolean Cache_Lite_Output::start (string $id [, string $group = 'default' [, boolean $doNotTestCacheValidity = FALSE]])

説明

キャッシュが有効かどうかをテストし、(有効であれば) ブラウザにそれを返します。あるいは出力バッファリングが有効になります。

パラメータ

string $id

キャッシュIDを指定します

string $group

キャッシュグループ名を指定します

boolean $doNotTestCacheValidity

TRUE の場合、キャッシュの妥当性はチェックされません

返り値

returns キャッシュがヒットすれば true (そうでなければ false)

注意

この関数は、スタティックにコールする ことはできません。

例

例 30-1classical using

<?php
require_once "Cache/Lite/Output.php";

$options = array(
    'cacheDir' => '/tmp/',
    'lifeTime' => 7200,
    'pearErrorMode' => CACHE_LITE_ERROR_DIE
);
$cache = new Cache_Lite_Output($options);

if (!($cache->start('id_of_the_page'))) {

    // キャッシュがヒットしなかった !
    // 全ての出力は end() メソッドまでバッファされる
    // (...)

    $cache->end();

}

?>
前のページ | ホーム | 次のページ
constructor Cache_Lite_Output::Cache_Lite_Output() | 上に戻る | Cache_Lite_Output::end()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_DICOM::dumpImage

PEAR マニュアル
前のページ 次のページ

File_DICOM::dumpImage()

File_DICOM::dumpImage() -- Dumps the contents of the image inside the DICOM file (element 0x0010 from group 0x7FE0) to a PGM (Portable Gray Map) file.

概要

require_once 'File/DICOM.php';

mixed File_DICOM::dumpImage (string $filename)

説明

Use with Caution!!. For a 8.5MB DICOM file on a P4 it takes 28 seconds to dump it's image.

パラメータ

string $filename

The file where to save the image

返り値

returns true on success, PEAR_Error on failure.

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_DICOM::setValue() | 上に戻る | File_Fstab

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor File_DICOM::File_DICOM

PEAR マニュアル
前のページ 次のページ

constructor File_DICOM::File_DICOM()

constructor File_DICOM::File_DICOM() -- Constructor.

概要

require_once 'File/DICOM.php';

void constructor File_DICOM::File_DICOM ()

説明

It creates a File_DICOM object.

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Introduction | 上に戻る | File_DICOM::parse()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_DICOM::getValue

PEAR マニュアル
前のページ 次のページ

File_DICOM::getValue()

File_DICOM::getValue() -- Gets the value for a DICOM element.

概要

require_once 'File/DICOM.php';

mixed File_DICOM::getValue (mixed $group_or_name [, integer $element = null])

説明

Gets the value for a DICOM element of a given group from the parsed DICOM file

パラメータ

mixed $group_or_name

The group the DICOM element belongs to (integer), or its name (string)

integer $element

The identifier for the DICOM element (unique inside a group). Optional

返り値

returns The value for the DICOM element on success, PEAR_Error on failure

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1Using getValue()

require_once('File/DICOM.php');

$dicom_file = new File_DICOM();
$res = $dicom_file->parse('test.dcm');

// check for errors
if (PEAR::isError($res)) {
    die($res->getMessage());
}

echo 'this value: '.$dicom_file->getValue('PatientName')."\n";
echo 'Should be the same as this value: '.$dicom_file->getValue(0x0010, 0x0010)."\n";
前のページ | ホーム | 次のページ
File_DICOM::write() | 上に戻る | File_DICOM::setValue()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_DICOM::parse

PEAR マニュアル
前のページ 次のページ

File_DICOM::parse()

File_DICOM::parse() -- Parse a DICOM file.

概要

require_once 'File/DICOM.php';

mixed File_DICOM::parse (string $infile)

説明

Parse a DICOM file and get all of its header members.

パラメータ

string $infile

The DICOM file to parse

返り値

returns true on success, PEAR_Error on failure

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor File_DICOM::File_DICOM() | 上に戻る | File_DICOM::write()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_DICOM::setValue

PEAR マニュアル
前のページ 次のページ

File_DICOM::setValue()

File_DICOM::setValue() -- Sets the value for a DICOM element.

概要

require_once 'File/DICOM.php';

void File_DICOM::setValue (integer $gp, integer $el, mixed $value)

説明

Sets the value for a DICOM element. Only works with strings now.

パラメータ

integer $gp

The group the DICOM element belongs to

integer $el

The identifier for the DICOM element (unique inside a group)

mixed $value

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_DICOM::getValue() | 上に戻る | File_DICOM::dumpImage()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_DICOM::write

PEAR マニュアル
前のページ 次のページ

File_DICOM::write()

File_DICOM::write() -- Write current contents to a DICOM file.

概要

require_once 'File/DICOM.php';

mixed File_DICOM::write ([string $outfile = ''])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $outfile

The name of the file to write. If not given it assumes the name of the file parsed. If no file was parsed and no name is given returns a PEAR_Error

返り値

returns true on success, PEAR_Error on failure

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_DICOM::parse() | 上に戻る | File_DICOM::getValue()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Crypt_CHAP

目次
導入 -- 暗号化
Crypt_CHAP::generateChallenge() -- 新しいランダムなチャレンジを作成する
Crypt_CHAP_MD5::Crypt_CHAP_MD5() -- コンストラクタ
Crypt_CHAP_MD5::challengeResponse() -- チャレンジ-レスポンス パケットを作成する
Crypt_CHAP_MSCHAPv1::Crypt_CHAP_MSCHAPv1() -- コンストラクタ
Crypt_CHAP_MSCHAPv1::challengeResponse() -- チャレンジ-レスポンス パケットを作成する
Crypt_CHAP_MSCHAPv1::lmChallengeResponse() -- LAN-Manager ハッシュを使用して、チャレンジ-レスポンス パケットを作成する
Crypt_CHAP_MSCHAPv1::ntChallengeResponse() -- NT ハッシュを使用して、チャレンジ-レスポンス パケットを作成する
Crypt_CHAP_MSCHAPv1::ntPasswordHash() -- 指定した平文パスワードから NT ハッシュを作成する
Crypt_CHAP_MSCHAPv1::lmPasswordHash() -- 指定した平文パスワードから LAN-Manager ハッシュを作成する
Crypt_CHAP_MSCHAPv1::str2unicode() -- 文字列を unicode に変換する
Crypt_CHAP_MSCHAPv1::response() -- レスポンスパケットを作成する
Crypt_CHAP_MSCHAPv2::Crypt_CHAP_MSCHAPv2() -- コンストラクタ
Crypt_CHAP_MSCHAPv2::challengeHash() -- チャレンジ-ハッシュを作成する
Crypt_CHAP_MSCHAPv2::ntPasswordHashHash() -- NT ハッシュをもとにして MD4 ハッシュを作成する

さまざまな CHAP プロトコル用のパケットを作成するクラス群です。

前のページ | ホーム | 次のページ
暗号化 (Encryption) | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Crypt_CHAP_MD5::Crypt_CHAP_MD5()

Crypt_CHAP_MD5::Crypt_CHAP_MD5() -- コンストラクタ

概要

require_once 'Crypt/CHAP.php';

void Crypt_CHAP_MD5::Crypt_CHAP_MD5 ()

説明

CHAP-MD5 に準拠したパケットを作成するための新しいオブジェクトを生成します。

前のページ | ホーム | 次のページ
Crypt_CHAP::generateChallenge() | 上に戻る | Crypt_CHAP_MD5::challengeResponse()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Crypt_CHAP_MD5::challengeResponse()

Crypt_CHAP_MD5::challengeResponse() -- チャレンジ-レスポンス パケットを作成する

概要

string Crypt_CHAP_MD5::challengeResponse ()

説明

このメソッドは、チャレンジ-レスポンス パケットを作成します。 md5(ID + Password + Challenge) を使用します。

返り値

string - チャレンジ-レスポンス パケットを文字列で返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 35-1Crypt_CHAP_MD5::challengeResponse() の使用

<?php
require_once 'Crypt/CHAP.php';

$cr = new Crypt_CHAP_MD5();
$cr->password = 'MyPw';
echo bin2hex($cr->challengeResponse());

?>
前のページ | ホーム | 次のページ
Crypt_CHAP_MD5::Crypt_CHAP_MD5() | 上に戻る | Crypt_CHAP_MSCHAPv1::Crypt_CHAP_MSCHAPv1()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Crypt_CHAP_MSCHAPv1::Crypt_CHAP_MSCHAPv1()

Crypt_CHAP_MSCHAPv1::Crypt_CHAP_MSCHAPv1() -- コンストラクタ

概要

require_once 'Crypt/CHAP.php';

void Crypt_CHAP_MSCHAPv1::Crypt_CHAP_MSCHAPv1 ()

説明

MS-CHAPv1 に準拠したパケットを作成するための新しいオブジェクトを生成します。

注意

このクラスを使用するには、mhash 拡張モジュールが必要です。

前のページ | ホーム | 次のページ
Crypt_CHAP_MD5::challengeResponse() | 上に戻る | Crypt_CHAP_MSCHAPv1::challengeResponse()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Crypt_CHAP_MSCHAPv1::challengeResponse()

Crypt_CHAP_MSCHAPv1::challengeResponse() -- チャレンジ-レスポンス パケットを作成する

概要

string Crypt_CHAP_MSCHAPv1::challengeResponse ()

説明

このメソッドは、チャレンジ-レスポンス パケットを作成します。

返り値

string - チャレンジ-レスポンス パケットを文字列で返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 35-1Crypt_CHAP_MSCHAPv1::challengeResponse() の使用

<?php
require_once 'Crypt/CHAP.php';

$cr = new Crypt_CHAP_MSCHAPv1();
$cr->chapid = 1;
$cr->password = 'MyPw';
echo bin2hex($cr->challengeResponse());

?>
前のページ | ホーム | 次のページ
Crypt_CHAP_MSCHAPv1::Crypt_CHAP_MSCHAPv1() | 上に戻る | Crypt_CHAP_MSCHAPv1::lmChallengeResponse()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Crypt_CHAP_MSCHAPv1::lmChallengeResponse()

Crypt_CHAP_MSCHAPv1::lmChallengeResponse() -- LAN-Manager ハッシュを使用して、チャレンジ-レスポンス パケットを作成する

概要

string Crypt_CHAP_MSCHAPv1::lmChallengeResponse ()

説明

このメソッドは、LAN-Manager ハッシュを使用してチャレンジ-レスポンス パケットを作成します。

返り値

string - チャレンジ-レスポンスを文字列で返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 35-1Crypt_CHAP_MSCHAPv1::lmChallengeResponse() の使用

<?php
require_once 'Crypt/CHAP.php';

$cr = new Crypt_CHAP_MSCHAPv1();
$cr->password = 'MyPw';
echo bin2hex($cr->lmChallengeResponse());

?>
前のページ | ホーム | 次のページ
Crypt_CHAP_MSCHAPv1::challengeResponse() | 上に戻る | Crypt_CHAP_MSCHAPv1::ntChallengeResponse()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Crypt_CHAP_MSCHAPv1::lmPasswordHash()

Crypt_CHAP_MSCHAPv1::lmPasswordHash() -- 指定した平文パスワードから LAN-Manager ハッシュを作成する

概要

string Crypt_CHAP_MSCHAPv1::lmPasswordHash ([string $password = ''])

説明

このメソッドは、指定した平文パスワードあるいはパスワードプロパティから LAN-Manager ハッシュを作成します。

パラメータ

  • string $password - ハッシュするパスワード。

返り値

string - LAN-Manager ハッシュを文字列で返します。

注意

この関数は、スタティックにコールする ことはできません。

LAN-Manager ハッシュは強力ではないので、使用すべきではありません。

例

例 35-1Crypt_CHAP_MSCHAPv1::lmPasswordHash() の使用

<?php
require_once 'Crypt/CHAP.php';

$cr = new Crypt_CHAP_MSCHAPv1();
$cr->password = 'MyPw';
echo bin2hex($cr->lmPasswordHash());

// あるいは
echo bin2hex($cr->lmPasswordHash('MySecret'));

?>
前のページ | ホーム | 次のページ
Crypt_CHAP_MSCHAPv1::ntPasswordHash() | 上に戻る | Crypt_CHAP_MSCHAPv1::str2unicode()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Crypt_CHAP_MSCHAPv1::ntChallengeResponse()

Crypt_CHAP_MSCHAPv1::ntChallengeResponse() -- NT ハッシュを使用して、チャレンジ-レスポンス パケットを作成する

概要

string Crypt_CHAP_MSCHAPv1::ntChallengeResponse ()

説明

このメソッドは、NT ハッシュを使用してチャレンジ-レスポンス パケットを作成します。

返り値

string - チャレンジ-レスポンスを文字列で返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 35-1Crypt_CHAP_MSCHAPv1::ntChallengeResponse() の使用

<?php
require_once 'Crypt/CHAP.php';

$cr = new Crypt_CHAP_MSCHAPv1();
$cr->password = 'MyPw';
echo bin2hex($cr->ntChallengeResponse());

?>
前のページ | ホーム | 次のページ
Crypt_CHAP_MSCHAPv1::lmChallengeResponse() | 上に戻る | Crypt_CHAP_MSCHAPv1::ntPasswordHash()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Crypt_CHAP_MSCHAPv1::ntPasswordHash()

Crypt_CHAP_MSCHAPv1::ntPasswordHash() -- 指定した平文パスワードから NT ハッシュを作成する

概要

string Crypt_CHAP_MSCHAPv1::ntPasswordHash ([string $password = ''])

説明

このメソッドは、指定した平文パスワードあるいはパスワードプロパティから LAN-Manager ハッシュを作成します。NT ハッシュは md4(str2unicode(plaintext)) のようにして計算します。

パラメータ

  • string $password - ハッシュするパスワード。

返り値

string - NT ハッシュを文字列で返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 35-1Crypt_CHAP_MSCHAPv1::ntPasswordHash() の使用

<?php
require_once 'Crypt/CHAP.php';

$cr = new Crypt_CHAP_MSCHAPv1();
$cr->password = 'MyPw';
echo bin2hex($cr->ntPasswordHash());

// あるいは
echo bin2hex($cr->ntPasswordHash('MySecret'));

?>
前のページ | ホーム | 次のページ
Crypt_CHAP_MSCHAPv1::ntChallengeResponse() | 上に戻る | Crypt_CHAP_MSCHAPv1::lmPasswordHash()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Crypt_CHAP_MSCHAPv1::response()

Crypt_CHAP_MSCHAPv1::response() -- レスポンスパケットを作成する

概要

string Crypt_CHAP_MSCHAPv1::response (bool $lm = FALSE)

説明

このメソッドは、レスポンスパケットを作成します。 このパケットには NT チャレンジ-レスポンスや LM チャレンジ-レスポンス が含まれます。デフォルトでは、LM チャレンジ-レスポンスは含まれません。

パラメータ

  • bool $lm - LM チャレンジ-レスポンス を含めるかどうか。

返り値

string - パケットを文字列で返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 35-1Crypt_CHAP_MSCHAPv1::response() の使用

<?php
require_once 'Crypt/CHAP.php';

$cr = new Crypt_CHAP_MSCHAPv1();
$cr->password  = 'MyPw';
echo bin2hex($cr->response());

?>
前のページ | ホーム | 次のページ
Crypt_CHAP_MSCHAPv1::str2unicode() | 上に戻る | Crypt_CHAP_MSCHAPv2::Crypt_CHAP_MSCHAPv2()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Crypt_CHAP_MSCHAPv1::str2unicode()

Crypt_CHAP_MSCHAPv1::str2unicode() -- 文字列を unicode に変換する

概要

string Crypt_CHAP_MSCHAPv1::str2unicode (string $str)

説明

このメソッドは、指定した文字列を unicode に変換します。

パラメータ

  • string $str - unicode 化する文字列。

返り値

string - 指定した文字列を unicode 変換したものを返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 35-1Crypt_CHAP_MSCHAPv1::str2unicode() の使用

<?php
require_once 'Crypt/CHAP.php';

$cr = new Crypt_CHAP_MSCHAPv1();
echo bin2hex($cr->str2unicode('MyPw'));

?>
前のページ | ホーム | 次のページ
Crypt_CHAP_MSCHAPv1::lmPasswordHash() | 上に戻る | Crypt_CHAP_MSCHAPv1::response()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Crypt_CHAP_MSCHAPv2::Crypt_CHAP_MSCHAPv2()

Crypt_CHAP_MSCHAPv2::Crypt_CHAP_MSCHAPv2() -- コンストラクタ

概要

require_once 'Crypt/CHAP.php';

void Crypt_CHAP_MSCHAPv2::Crypt_CHAP_MSCHAPv2 ()

説明

MS-CHAPv2 に準拠したパケットを作成するための新しいオブジェクトを生成します。 このバージョンの CHAP は Peer-Challenge を使用し、LM ハッシュは使用されません。 このコンストラクタは、自動的に Peer-Challenge と Authenticator-Challenge を作成します。

前のページ | ホーム | 次のページ
Crypt_CHAP_MSCHAPv1::response() | 上に戻る | Crypt_CHAP_MSCHAPv2::challengeHash()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Crypt_CHAP_MSCHAPv2::challengeHash()

Crypt_CHAP_MSCHAPv2::challengeHash() -- チャレンジ-ハッシュを作成する

概要

string Crypt_CHAP_MSCHAPv2::challengeHash ()

説明

このメソッドは、(SHA1) チャレンジ-ハッシュを作成します。 このハッシュには、認証符号やピアチャレンジ、そしてユーザ名が含まれます。

返り値

string - チャレンジ-ハッシュを文字列で返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 35-1Crypt_CHAP_MSCHAPv2::challengeHash() の使用

<?php
require_once 'Crypt/CHAP.php';

$cr = new Crypt_CHAP_MSCHAPv2();
$cr->username = 'billy';
$cr->peerChallenge = $peerChallenge;
$cr->authChallenge = $authChallenge;
echo bin2hex($cr->challengeHash());

?>
前のページ | ホーム | 次のページ
Crypt_CHAP_MSCHAPv2::Crypt_CHAP_MSCHAPv2() | 上に戻る | Crypt_CHAP_MSCHAPv2::ntPasswordHashHash()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Crypt_CHAP_MSCHAPv2::ntPasswordHashHash()

Crypt_CHAP_MSCHAPv2::ntPasswordHashHash() -- NT ハッシュをもとにして MD4 ハッシュを作成する

概要

string Crypt_CHAP_MSCHAPv2::ntPasswordHashHash (string $nthash)

説明

このメソッドは、指定した NT ハッシュから MD4 ハッシュを作成します。

パラメータ

  • string $nthash - ハッシュの対象となる NT ハッシュ。

返り値

string - NT ハッシュを文字列で返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 35-1Crypt_CHAP_MSCHAPv2::ntPasswordHashHash() の使用

<?php
require_once 'Crypt/CHAP.php';

$cr = new Crypt_CHAP_MSCHAPv2();
$nthash = $cr->ntPasswordHash('MyPw');
echo bin2hex($cr->ntPasswordHashHash($nthash));

?>
前のページ | ホーム | 次のページ
Crypt_CHAP_MSCHAPv2::challengeHash() | 上に戻る | イベント

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Crypt_CHAP::generateChallenge()

Crypt_CHAP::generateChallenge() -- 新しいランダムなチャレンジを作成する

概要

string Crypt_CHAP::generateChallenge ([string $varname = 'challenge' [, int $size = 8]])

説明

このメソッドは、新しいランダムなチャレンジを作成し、 それを指定したプロパティに保存します。 チャレンジのデフォルトの大きさは 8 バイトです。

パラメータ

  • string $varname - チャレンジを保存するプロパティの名前。

  • int $size - チャレンジの大きさ。

返り値

string - チャレンジを文字列で返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 35-1Crypt_CHAP::generateChallenge() の使用

<?php
require_once 'File/SMBPasswd.php';

$cr = new Crypt_CHAP_MD5();
echo bin2hex($cr->challenge);
// あるいは新しいチャレンジを作成します
echo bin2hex(echo $cr->generateChallenge());

?>
前のページ | ホーム | 次のページ
導入 | 上に戻る | Crypt_CHAP_MD5::Crypt_CHAP_MD5()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- 暗号化

CHAP - チャレンジハンドシェイク認証プロトコル (Challenge Handshake Authentication Protocol)

CHAP は通常は PPP (Point-to-Point Protocol) ソフトウェアに認証サブシステムとして組み込まれています。 CHAP を使用すると、平文のパスワードを危険なリンク上に送信することが防げます。 伝統的な CHAP-MD5 は、パスワードを平文でサーバ上に保存しなければなりません。 MS-CHAP ではこの必要はありませんが、やはりパスワードを NT ハッシュや LAN-Manager ハッシュで保存しなければなりません。 LAN-Manager ハッシュは強力でないため、使用すべきではありません。

このパッケージは 3 つのクラスから構成されます。

Crypt_CHAP::Crypt_CHAP_MD5() - CHAP-MD5 (RFC 1994) に準拠したパケットを作成します。
Crypt_CHAP::Crypt_MSCHAPv1() - MS-CHAPv1 (RFC 2433) に準拠したパケットを作成します。
Crypt_CHAP::Crypt_MSCHAPv2() - MS-CHAPv2 (RFC 2759) に準拠したパケットを作成します。

Crypt_CHAP::Crypt_CHAP は、抽象基底クラスです。

MS-CHAP* を使用するには、mhash 拡張モジュールが必要です。

前のページ | ホーム | 次のページ
Crypt_CHAP | 上に戻る | Crypt_CHAP::generateChallenge()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Event_Dispatcher

目次
導入 -- Event_Dispatcher の導入
例 -- Event_Dispatcher の使用例
Event_Dispatcher::getInstance() -- 新規 Event_Dispatcher オブジェクトを生成する
Event_Dispatcher::getName() -- ディスパッチャの名前を取得する
Event_Dispatcher::addObserver() -- 新規オブザーバを追加する
Event_Dispatcher::removeObserver() -- オブザーバを削除する
Event_Dispatcher::setNotificationClass() -- 通知として使用するクラスを設定する
Event_Dispatcher::post() -- 通知をポストする
Event_Dispatcher::addNestedDispatcher() -- ネストしたディスパッチャを追加する
Event_Dispatcher::removeNestedDispatcher() -- ネストしたディスパッチャを削除する
Event_Notification -- 通知のためのコンテナクラス
Event_Notification::Event_Notification() -- 新規通知オブジェクトを作成する
Event_Notification::getNotificationName() -- 通知名を取得する
Event_Notification::getNotificationObject() -- 通知を送信したオブジェクトを取得する
Event_Notification::getNotificationInfo() -- 通知からの追加情報を取得する
Event_Notification::getNotificationCount() -- 通知されたオブザーバの数を取得する
Event_Notification::cancelNotification() -- 通知をキャンセルする
Event_Notification::isNotificationCancelled() -- 通知がキャンセルされたかどうかをチェックする

PHP コールバックを利用して通知をディスパッチします。

前のページ | ホーム | 次のページ
イベント | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Event_Dispatcher::addNestedDispatcher

PEAR マニュアル
前のページ 次のページ

Event_Dispatcher::addNestedDispatcher()

Event_Dispatcher::addNestedDispatcher() -- ネストしたディスパッチャを追加する

概要

require_once 'Event/Dispatcher.php';

void Event_Dispatcher::addNestedDispatcher (object Event_Dispatcher &$dispatcher)

説明

ネストしたディスパッチャをディスパッチャに追加します。

ネストしたディスパッチャにより、JavaScript で実装されるような連続するイベントを生成することができます。 あるイベントがディスパッチャの全オブザーバにポストされた後、 全てのネストしたディスパッチャに送信されます。

もし独自のフレームワークでコンポーネントのイベントを送信する ディスパッチャや、フレームワーク自身によって引き起こされる グローバルなイベントを送信するディスパッチャがある場合、 コンポーネントディスパッチャによってポストされたイベントは グローバルなディスパッチャにも送信されますので、 これらのディスパッチャをネストさせることは道理にかなっています。

パラメータ

  • object Event_Dispatcher &$dispatcher

    ネストしたディスパッチャとして現在のディスパッチャに追加する ディスパッチャを指定します

返り値

void

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Event_Dispatcher::post() | 上に戻る | Event_Dispatcher::removeNestedDispatcher()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Event_Dispatcher::addObserver

PEAR マニュアル
前のページ 次のページ

Event_Dispatcher::addObserver()

Event_Dispatcher::addObserver() -- 新規オブザーバを追加する

概要

require_once 'Event/Dispatcher.php';

void Event_Dispatcher::addObserver (mixed $callback [, string $nName = EVENT_DISPATCHER_GLOBAL [, string $class = '']])

説明

ディスパッチャに新規オブザーバを追加します。

オブザーバは PHP コールバックです。これは関数名を文字列、もしくは オブジェクトやクラスとコールするメソッドを含む配列のいずれかで渡す 事を意味します。

コールバックはオブザーバのための署名として使用されます。 これにより removeObserver() に同一のパラメータを渡すことでオブザーバを削除することができます。

パラメータ

  • mixed $callback

    通知のためのコールバックで、グローバル関数名を含むを文字列、もしくは クラスやオブジェクトとコールするメソッド名を含む配列のいずれかを 指定します。

  • string $nName = EVENT_DISPATCHER_GLOBAL

    フィルターとして動作し、 通知名がこのパラメータで渡された名前と一致する場合のみ オブザーバに通知します。 オブザーバが通知名に関わらず通知させる場合は EVENT_DISPATCHER_GLOBAL を使用してください。

  • string $class = ''

    フィルターとして動作し、 通知を送信したのがこのパラメータで渡されたクラスにマッチする場合のみ オブザーバに通知します。

返り値

void

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Event_Dispatcher::getName() | 上に戻る | Event_Dispatcher::removeObserver()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Event_Dispatcher::getInstance

PEAR マニュアル
前のページ 次のページ

Event_Dispatcher::getInstance()

Event_Dispatcher::getInstance() -- 新規 Event_Dispatcher オブジェクトを生成する

概要

require_once 'Event/Dispatcher.php';

object Event_Dispatcher Event_Dispatcher::getInstance ([string $name = '__default'])

説明

新規 Event_Dispatcher オブジェクトを生成します。

Event_Dispatcher はシングルトンパターンを使用しているので、 Event_Dispatcher の新規インスタンスを生成するために new 演算子を使用してはいけません。代わりに getInstance() を使用してください。

複数の Event_Dispatcher インスタンスが必要な場合、 このメソッドに異なる名前を渡してください。

パラメータ

  • string $name = '__default'

返り値

object Event_Dispatcher Event_Dispatcher インスタンス

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
例 | 上に戻る | Event_Dispatcher::getName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Event_Dispatcher::getName

PEAR マニュアル
前のページ 次のページ

Event_Dispatcher::getName()

Event_Dispatcher::getName() -- ディスパッチャの名前を取得する

概要

require_once 'Event/Dispatcher.php';

string Event_Dispatcher::getName ()

説明

ディスパッチャの名前を取得します。

ディスパッチャの名前は、一意な識別子として使用されます。 この事は、getInstance() や removeNestedDispatcher() メソッドに対して重要です。

返り値

string ディスパッチャの名前

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Event_Dispatcher::getInstance() | 上に戻る | Event_Dispatcher::addObserver()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Event_Dispatcher::post

PEAR マニュアル
前のページ 次のページ

Event_Dispatcher::post()

Event_Dispatcher::post() -- 通知をポストする

概要

require_once 'Event/Dispatcher.php';

object Event_Notification Event_Dispatcher::post (object &$object, string $nName [, mixed $info = array() [, bool $pending = TRUE [, bool $bubble = TRUE]]])

説明

新規通知を全てにオブザーバにポストします。

パラメータ

  • object &$object

    通知をポストするオブジェクトへの参照を指定します (送信者)。 おそらく、コールバック内で通知にフィルタをかけるために使用されます。

  • string $nName

    通知名を指定します

  • mixed $info = array()

    通知についての追加情報を指定します

  • bool $pending = TRUE

    通知はデフォルトでは保留されている通知リストに追加されます。 これにより、ポストされたときまでにオブザーバが登録されていない場合、 オブザーバとして追加されたときに通知されます。

    この動作は、 登録されたオブザーバのみが通知されるよう無効にすることができます。

  • bool $bubble = TRUE

    デフォルトで通知は addNestedDispatcher() を使用して追加されたあらゆるネストしたディスパッチャに対して 広範囲に追加されます。

    この動作は、ポスト中のディスパッチャに追加されたオブザーバのみが 通知されるよう無効にすることができます。 これにより、グローバルな通知とローカルな通知を区別することができます。

返り値

object Event_Notification 通知オブジェクト

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Event_Dispatcher::setNotificationClass() | 上に戻る | Event_Dispatcher::addNestedDispatcher()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Event_Dispatcher::removeNestedDispatcher

PEAR マニュアル
前のページ 次のページ

Event_Dispatcher::removeNestedDispatcher()

Event_Dispatcher::removeNestedDispatcher() -- ネストしたディスパッチャを削除する

概要

require_once 'Event/Dispatcher.php';

boolean Event_Dispatcher::removeNestedDispatcher (object Event_Dispatcher &$dispatcher)

説明

ディスパッチャからネストしたディスパッチャを削除します。

ネストしたディスパッチャのリストからディスパッチャを削除するには、 removeNestedDispatcher() に同一のオブジェクトを渡します。

パラメータ

  • object Event_Dispatcher &$dispatcher

    ネストしたディスパッチャのリストから削除するディスパッチャを指定します。

返り値

boolean ディスパッチャが削除された場合 TRUE、 さもなければ FALSE 。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Event_Dispatcher::addNestedDispatcher() | 上に戻る | Event_Notification

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Event_Dispatcher::removeObserver

PEAR マニュアル
前のページ 次のページ

Event_Dispatcher::removeObserver()

Event_Dispatcher::removeObserver() -- オブザーバを削除する

概要

require_once 'Event/Dispatcher.php';

bool Event_Dispatcher::removeObserver (mixed $callback [, string $nName = EVENT_DISPATCHER_GLOBAL [, string $class = '']])

説明

ディスパッチャからオブザーバを削除します。

オブザーバを削除するには、addObserver() をコールした際に使用した同一のパラメータを指定します。

パラメータ

  • mixed $callback

    通知のためのコールバックで、グローバル関数名を含むを文字列、もしくは クラスやオブジェクトとコールするメソッド名を含む配列のいずれかを 指定します。

  • string $nName = EVENT_DISPATCHER_GLOBAL

    フィルターとして動作し、 通知名がこのパラメータで渡された名前と一致する場合のみ オブザーバに通知します。 オブザーバが通知名に関わらず通知させる場合は EVENT_DISPATCHER_GLOBAL を使用してください。

  • string $class = ''

    フィルターとして動作し、 通知を送信したのがこのパラメータで渡されたクラスにマッチする場合のみ オブザーバに通知します。

返り値

bool オブザーバが削除された場合 TRUE、 さもなければ FALSE 。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Event_Dispatcher::addObserver() | 上に戻る | Event_Dispatcher::setNotificationClass()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Event_Dispatcher::setNotificationClass

PEAR マニュアル
前のページ 次のページ

Event_Dispatcher::setNotificationClass()

Event_Dispatcher::setNotificationClass() -- 通知として使用するクラスを設定する

概要

require_once 'Event/Dispatcher.php';

bool Event_Dispatcher::setNotificationClass (string $class)

説明

post() メソッドがコールされた際に 通知オブジェクトとして使用するクラス名を設定します。

単一のディスパッチャに対するクラスを変更する、 もしくは生成される全てのディスパッチャに対するデフォルトを 静的に設定するためにこのメソッドをコールします。

パラメータ

  • string $class

    post() メソッドがコールされた際に 通知オブジェクトとして使用するクラス名を指定します。 このクラスが通知クラスとして使用される前にロードされることを 確認してください。

返り値

このメソッドは常に true を返します。

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
Event_Dispatcher::removeObserver() | 上に戻る | Event_Dispatcher::post()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Event_Notification

Event_Notification -- 通知のためのコンテナクラス

説明

Event_Notification クラスはイベント情報のためのコンテナとして動作します。 これは、 内包された情報にアクセスするためのセッタメソッドとゲッタメソッドを提供します。

もしイベントに関する追加情報をストアしたり機能の追加が必要な場合、 Event_Dispatcher が使用しているクラスを変更することもできますが、 Event_Notification を継承することが推奨されます。

前のページ | ホーム | 次のページ
Event_Dispatcher::removeNestedDispatcher() | 上に戻る | Event_Notification::Event_Notification()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Event_Notification::cancelNotification

PEAR マニュアル
前のページ 次のページ

Event_Notification::cancelNotification()

Event_Notification::cancelNotification() -- 通知をキャンセルする

概要

require_once 'Event/Notification.php';

void Event_Notification::cancelNotification ()

説明

通知をキャンセルします。

通知がキャンセルされた場合、オブザーバは通知を受けなくなります。

返り値

void

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Event_Notification::getNotificationCount() | 上に戻る | Event_Notification::isNotificationCancelled()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Event_Notification::Event_Notification

PEAR マニュアル
前のページ 次のページ

Event_Notification::Event_Notification()

Event_Notification::Event_Notification() -- 新規通知オブジェクトを作成する

概要

require_once 'Event/Notification.php';

object Event_Notification Event_Notification::Event_Notifcation (object &$object, string $nName [, mixed $info = array()])

説明

Event_Notification クラスのコンストラクタです。

Event_Dispatcher::post() メソッドによって自動的に生成されるため、ほとんどの場合、 独自に通知オブジェクトを生成する必要はないでしょう。

パラメータ

  • object &$object

    通知をポストするオブジェクトへの参照を指定します (送信者)。 おそらく、コールバック内で通知にフィルタをかけるために使用されます。

  • string $nName

    通知名を指定します。

  • mixed $info = array()

    通知についての追加情報を指定します

返り値

string 通知名

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Event_Notification | 上に戻る | Event_Notification::getNotificationName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Event_Notification::getNotificationCount

PEAR マニュアル
前のページ 次のページ

Event_Notification::getNotificationCount()

Event_Notification::getNotificationCount() -- 通知されたオブザーバの数を取得する

概要

require_once 'Event/Notification.php';

int Event_Notification::getNotificationCount ()

説明

通知によって通知されたオブザーバの数を取得します。

返り値

int 通知されたオブザーバの数

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Event_Notification::getNotificationInfo() | 上に戻る | Event_Notification::cancelNotification()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Event_Notification::getNotificationInfo

PEAR マニュアル
前のページ 次のページ

Event_Notification::getNotificationInfo()

Event_Notification::getNotificationInfo() -- 通知からの追加情報を取得する

概要

require_once 'Event/Notification.php';

mixed Event_Notification::getNotificationInfo ()

説明

通知に格納されている追加情報を取得します。

返り値

mixed 追加情報

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Event_Notification::getNotificationObject() | 上に戻る | Event_Notification::getNotificationCount()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Event_Notification::getNotificationName

PEAR マニュアル
前のページ 次のページ

Event_Notification::getNotificationName()

Event_Notification::getNotificationName() -- 通知名を取得する

概要

require_once 'Event/Notification.php';

string Event_Notification::getNotificationName ()

説明

通知名を取得します。

返り値

string 通知名

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Event_Notification::Event_Notification() | 上に戻る | Event_Notification::getNotificationObject()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Event_Notification::getNotificationObject

PEAR マニュアル
前のページ 次のページ

Event_Notification::getNotificationObject()

Event_Notification::getNotificationObject() -- 通知を送信したオブジェクトを取得する

概要

require_once 'Event/Notification.php';

object &Event_Notification::getNotificationObject ()

説明

通知を送信したオブジェクトへの参照を取得します。

返り値

object 通知の送信者

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Event_Notification::getNotificationName() | 上に戻る | Event_Notification::getNotificationInfo()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Event_Notification::isNotificationCancelled

PEAR マニュアル
前のページ 次のページ

Event_Notification::isNotificationCancelled()

Event_Notification::isNotificationCancelled() -- 通知がキャンセルされたかどうかをチェックする

概要

require_once 'Event/Notification.php';

bool Event_Notification::isNotificationCancelled ()

説明

通知がキャンセルされたかどうかをチェックします。

返り値

bool 通知がキャンセルされた場合 TRUE 、 そうでなければ FALSE 。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Event_Notification::cancelNotification() | 上に戻る | ファイル形式

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


例

例 -- Event_Dispatcher の使用例

Event_Dispatcher の使用例

以下の例は、より柔軟性に富むアプリケーションを構築するために Event_Dispatcher をどの様に使用するかを例示しています。

例 36-1基本的な例

require_once 'Event/Dispatcher.php';

/**
 * 認証をシミュレートするためのダミークラス
 */
class Auth
{
    var $_dispatcher = null;
    var $_user;

    function Auth(&$dispatcher)
    {
         $this->_dispatcher = &$dispatcher;
    }

    function login($username, $password)
    {
        // 認証を行うコードをここに記述する
        // ....
        // $this->_user は User オブジェクトを含んでいるとする

        $this->_dispatcher->post($this->_user, 'onLogin');
    }
}

function logAuth(&$notification)
{
    $user = &$notification->getNotificationObject();
    $username = $user->getUsername();

    // ログファイルに書き込む
    error_log("$username logged in.", 3, '/tmp/auth.log');
}

$dispatcher = &Event_Dispatcher::getInstance();

// ログファイルに書き込むために全ての onLogin イベントをキャッチする
$dispatcher->addObserver('logAuth', 'onLogin');

$auth = &new Auth($dispatcher);

// ログインをシミュレート
$auth->login($_GET['user'], $_GET['pass']);

この例では、Event_Dispatcher は認証プロセスで オブザーバをフックするために使用されています。 ユーザーが認証された場合は常に onLogin が通知されます。

これはログファイルを書き込んだり、 他のユーザーからアプリケーションを保護するために使用する事が可能です。

例 36-2通知のキャンセル

require_once 'Event/Dispatcher.php';

/**
 * 認証をシミュレートするためのダミークラス
 */
class Auth
{
    var $_dispatcher = null;
    var $_user;

    function Auth(&$dispatcher)
    {
         $this->_dispatcher = &$dispatcher;
    }

    function login($username, $password)
    {
        // 認証を行うコードをここに記述する
        // ....
        // $this->_user は User オブジェクトを含んでいるとする

        $notification = $this->_dispatcher->post($this->_user, 'onLogin');

        if ($notification->isNotificationCancelled()) {
            echo "You are not allowed to login";
            $this->_user->logout();
        }
    }
}

function logAuth(&$notification)
{
    $user = &$notification->getNotificationObject();
    $username = $user->getUsername();

    // もし特別なユーザーが認証された場合、
    // 通知をキャンセルする
    if ($username === 'foo') {
        $notification->cancelNotification();
    } else {
        // ログファイルに書き込む
        error_log("$username logged in.", 3, '/tmp/auth.log');
    }
}

$dispatcher = &Event_Dispatcher::getInstance();

// ログファイルに書き込むために全ての onLogin イベントをキャッチする
$dispatcher->addObserver('logAuth', 'onLogin');

$auth = &new Auth($dispatcher);

// ログインをシミュレート
$auth->login($_GET['user'], $_GET['pass']);

この場合、cancelNotification() メソッドは特定のユーザーが認証を行おうとした場合に 通知をキャンセルするために使用されています。

login メソッドは通知がキャンセルされたかどうかをチェックし、 必要な手順を行うよううまく修正されています。

これにより、 独自の認証システムで柔軟性に富んだルールを追加することができます。

前のページ | ホーム | 次のページ
導入 | 上に戻る | Event_Dispatcher::getInstance()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- Event_Dispatcher の導入

Event_Dispatcher の導入

Event_Dispatcher は通知発信テーブルとして動作します。 これはある事象に関連している他のオブジェクトに通知するために使用されます。 この情報は Event_Notification オブジェクトにカプセル化されます。

クライアントオブジェクトは、 他のオブジェクトによって送信された特定の通知に対するオブザーバとして Event_Dispatcher をそれら自身に登録します。 あるイベントが発生すると、オブジェクトは適切な通知を Event_Dispatcher に送信します。Event_Dispatcher は登録されている各オブザーバにメッセージを送信し、 単一の引数として通知を渡します。

Event_Dispatchers は JavaScript のイベント管理に似た連続して発生するイベントに対して 使用することができます。 もしイベントがディスパッチャによって処理されない場合、 次のディスパッチャに引き渡されます。

前のページ | ホーム | 次のページ
Event_Dispatcher | 上に戻る | 例

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Contact_Vcard

目次
Contact_VCard -- About the classes
Components -- Data stored in a vCard
Lines -- vCards internally
Projects -- Other vCard projects

Parse and create vCards.

前のページ | ホーム | 次のページ
ファイル形式 | 上に戻る | Contact_VCard

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Contact_Vcard_Build

目次
Introduction -- Build (create) and fetch vCard 2.1 and 3.0 text blocks.
Usage -- How to use Contact_VCard_Build

Build (create) and fetch vCard 2.1 and 3.0 text blocks.

Please read About Contact_Vcard first.

前のページ | ホーム | 次のページ
Projects | 上に戻る | Introduction

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction

Introduction -- Build (create) and fetch vCard 2.1 and 3.0 text blocks.

Contact_Vcard_Build Description

Allows you to programmatically create a vCard, version 2.1 or 3.0, and fetch the vCard text.

Quick Instructions

  • Download and un-compress Contact_Vcard_Build from the PEAR archive.

  • Include Contact_Vcard_Build.php in your PHP script.

  • Instantiate a new Contact_Vcard_Build object (by default, the vCard version is 3.0, but 2.1 vCards are also supported).

  • Set or add values and parameters that you want in the vCard.

  • Fetch the completed vCard, then use print_r() to view the results.

例 37-1Example code:

<?php

    // include the class file
    require_once 'Contact_Vcard_Build.php';

    // instantiate a builder object
    // (defaults to version 3.0)
    $vcard = new Contact_Vcard_Build();

    // set a formatted name
    $vcard->setFormattedName('Bolivar Shagnasty');

    // set the structured name parts
    $vcard->setName('Shagnasty', 'Bolivar', 'Odysseus',
        'Mr.', 'III');

    // add a work email.  note that we add the value
    // first and the param after -- Contact_Vcard_Build
    // is smart enough to add the param in the correct
    // place.
    $vcard->addEmail('boshag@example.com');
    $vcard->addParam('TYPE', 'WORK');

    // add a home/preferred email
    $vcard->addEmail('bolivar@example.net');
    $vcard->addParam('TYPE', 'HOME');
    $vcard->addParam('TYPE', 'PREF');

    // add a work address
    $vcard->addAddress('POB 101', 'Suite 202', '123 Main',
        'Beverly Hills', 'CA', '90210', 'US');
    $vcard->addParam('TYPE', 'WORK');

    // get back the vCard and print it
    $text = $vcard->fetch();
    echo '<pre>';
    print_r($text);
    echo '</pre>';
?>

Differences Between vCard 2.1 and vCard 3.0

The 2.1 specification uses CRLF to terminate lines (\r\n). It allows the following components and parameters:

  • Parameters:

    • TYPE of DOM, INTL, POSTAL, PARCEL, HOME, WORK, PREF, VOICE, FAX, MSG, CELL, PAGER, BBS, MODEM, CAR, ISDN, VIDEO, AOL, APPLELINK, ATTMAIL, CIS, EWORLD, INTERNET, IBMMAIL, MCIMAIL, POWERSHARE, PRODIGY, TLX, X400, GIF, CGM, WMF, BMP, MET, PMB, DIB, PICT, TIFF, PDF, PS, JPEG, QTIME, MPEG, MPEG2, AVI, WAVE, AIFF, PCM, X509, or PGP.

    • ENCODING of 7BIT, 8BIT, BASE64, QUOTED-PRINTABLE

    • VALUE of INLINE, CONTENT-ID, CID, URL, VCARD

    • CHARSET of any ISO charset specification.

    • LANGUAGE is very lenient, basically anything so long as it uses only the characters a-z, A-Z, 0-9, and dash (-).

  • Components and methods

    • VERSION (setVersion())

    • FN (setFormattedName())

    • N (setName())

    • PHOTO (setPhoto())

    • BDAY (setBirthday())

    • ADR (addAddress())

    • LABEL (addLabel())

    • TEL (addTelephone())

    • EMAIL (addEmail())

    • MAILER (setMailer())

    • TZ (setTZ())

    • GEO (setGeo())

    • TITLE (setTitle())

    • ROLE (setRole())

    • LOGO (setLogo())

    • AGENT (setAgent())

    • ORG (addOrganization())

    • NOTE (setNote())

    • REV (setRevision())

    • SOUND (setSound())

    • URL (setURL())

    • KEY (setKey())

The 3.0 specification uses LF to terminate lines (\n). It allows the following components and parameters:

  • Parameters:

    • TYPE of any of the 2.1 TYPE values, or any other value so long as it uses only the characters a-z, A-Z, 0-9, and dash (-).

    • ENCODING of 8BIT and B ("binary").

    • VALUE of BINARY, PHONE-NUMBER, TEXT, URI, UTC-OFFSET, or VCARD.

  • Components and Methods:

    • VERSION (setVersion())

    • FN (setFormattedName())

    • N (setName())

    • NAME (setSourceName())

    • SOURCE (setSource())

    • NICKNAME (addNickname())

    • PHOTO (setPhoto())

    • BDAY (setBirthday())

    • ADR (addAddress())

    • LABEL (addLabel())

    • TEL (addTelephone())

    • EMAIL (addEmail())

    • MAILER (setMailer())

    • TZ (setTZ())

    • GEO (setGeo())

    • TITLE (setTitle())

    • ROLE (setRole())

    • LOGO (setLogo())

    • AGENT (setAgent())

    • ORG (addOrganization())

    • CATEGORIES (addCategories())

    • NOTE (setNote())

    • PRODID (setProductID())

    • REV (setRevision())

    • SORT-STRING (setSortString())

    • SOUND (setSound())

    • UID (setUniqueID())

    • URL (setURL())

    • CLASS (setClass())

    • KEY (setKey())

前のページ | ホーム | 次のページ
Contact_Vcard_Build | 上に戻る | Usage

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Usage

Usage -- How to use Contact_VCard_Build

Description

The basic use of Contact_Vcard_Build is straightforward: instantiate a builder object, add values and parameters, then fetch the resulting vCard.

Instantiation

To create an instance of a Contact_Vcard_Build ("builder") object, include the class file and issue a new directive:

<?php
    require_once 'Contact_Vcard_Build.php';
    $vcard =& new Contact_Vcard_Build();
?>

By default, this creates a builder object that will allow you to fetch a version 3.0 vCard. If you want to build a version 2.1 vCard, pass '2.1' as the only constructor argument:

<?php
    $vcard =& new Contact_Vcard_Build('2.1');
?>

How To Set A Component Value

There are two ways to set the value of a component: use the method specifically for the component you want to add, or use the generic setValue() and addValue() methods. While the generic methods allow you direct control over every individual component, iteration, structured part, and value repetition, the component-specific methods are often easier to use.

注意 You must set the FN (formatted name) and N (personal name) components; these are required by both 2.1 and 3.0 version vCards.

For example, if you want to add two ADR components to the vCard, you can do it with the ADR-specific method...

<?php
    // add first address iteration
    $vcard->addAddress($pobox0, $extend0, $street0, $city0,
        $state0, $zip0, $country0);

    // add second address iteration
    $vcard->addAddress($pobox1, $extend1, $street1, $city1,
        $state1, $zip1, $country1);
?>

...or you can use the generic methods:

<?php
    // add first address (iteration = 0)
    $vcard->addValue('ADR', 0, VCARD_ADR_POB,      $pobox0);
    $vcard->addValue('ADR', 0, VCARD_ADR_EXTEND,   $extend0);
    $vcard->addValue('ADR', 0, VCARD_ADR_STREET,   $street0);
    $vcard->addValue('ADR', 0, VCARD_ADR_LOCALITY, $city0);
    $vcard->addValue('ADR', 0, VCARD_ADR_REGION,   $state0);
    $vcard->addValue('ADR', 0, VCARD_ADR_POSTCODE, $zip0);
    $vcard->addValue('ADR', 0, VCARD_ADR_COUNTRY,  $country0);

    // add second address (iteration = 1)
    $vcard->addValue('ADR', 1, VCARD_ADR_POB,      $pobox1);
    $vcard->addValue('ADR', 1, VCARD_ADR_EXTEND,   $extend1);
    $vcard->addValue('ADR', 1, VCARD_ADR_STREET,   $street1);
    $vcard->addValue('ADR', 1, VCARD_ADR_LOCALITY, $city1);
    $vcard->addValue('ADR', 1, VCARD_ADR_REGION,   $state1);
    $vcard->addValue('ADR', 1, VCARD_ADR_POSTCODE, $zip1);
    $vcard->addValue('ADR', 1, VCARD_ADR_COUNTRY,  $country1);
?>

Please see the Contact_Vcard_Build.php inline comments for descriptions of how to use each component-specific method.

How To Set A Parameter Value

There is only one way to add a parameter: use the addParam() method. Unlike with adding values, there are no component-specifc methods to add parameters.

In general, you should add the parameters of a component immediately after you add the complete value of a component, because the builder object keeps track of what was the last component value added. (This is why there are no component-specific add-parameter methods.)

For example, we can set the params for the ADR components as in the above code:

<?php
    // add first address iteration
    $vcard->addAddress($pobox0, $extend0, $street0, $city0,
        $state0, $zip0, $country0);

    // add parameters to the first address
    $vcard->addParam('TYPE', 'HOME');
    $vcard->addParam('TYPE', 'PREF');

    // add second address iteration
    $vcard->addAddress($pobox1, $extend1, $street1, $city1,
        $state1, $zip1, $country1);

    // add parameters to the second address
    $vcard->addParam('TYPE', 'WORK');
?>

Thus, the first address will have TYPE=HOME,PREF and the second will have TYPE=WORK as their parameters.

Alternatively, you can add parameters directly using the same addParam() method, with some additional arguments:

<?php
    // add parameters to the first address iteration
    // (component = ADR, iteration = 0)
    $vcard->addParam('TYPE', 'HOME', 'ADR', 0);
    $vcard->addParam('TYPE', 'PREF', 'ADR', 0);

    // add parameters to the second address iteration
    // (component = ADR, iteration = 1)
    $vcard->addParam('TYPE', 'WORK', 'ADR', 1);
?>

This does the same thing as the earlier addParam() code.

注意 Although the version 2.1 specification optionally allows parameter values to be indicated without without specified types (i.e, "HOME" instead of "TYPE=HOME") the Contact_Vcard_Build class is not so lenient. With Contact_Vcard_Builder, you must set both the parameter kind and parameter value.

How To Fetch A vCard

After you have added all the values and parameters that you want, you get back the vCard using the fetch() method. This will return the components, parameters, and values (including BEGIN:VCARD and END:VCARD) in proper format for the vCard version.

<?php
    $text = $vcard->fetch();
?>

注意 If you set values and parameters for components that are not part of the selected vCard version, they will not be included in the fetched vCard text.

注意 You must have set the FN (formatted name) and N (personal name) components, or the fetch() method will return a PEAR_Error object. The FN and N components are required by both 2.1 and 3.0 version vCards.

前のページ | ホーム | 次のページ
Introduction | 上に戻る | Contact_Vcard_Parse

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Contact_Vcard_Parse

目次
Introduction -- Build (create) and fetch vCard 2.1 and 3.0 text blocks.
How Data Is Returned -- Getting data from the file
Known issues -- Problems you might encounter

Parse vCard 2.1 and 3.0 files.

Please read About Contact_Vcard first.

前のページ | ホーム | 次のページ
Usage | 上に戻る | Introduction

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


How Data Is Returned

How Data Is Returned -- Getting data from the file

Description

Contact_Vcard_Parse reads a file or block of text for vCard data, then converts that data into a series of nested arrays. I used to present a detailed prose explanation of the array, but I think it's easier to just give a generic outline of the array:

$parse_result = array (
    [int_cardnumber] => array (
        [string_datatype] => array (
            ["param"] => array (
                [string_paramname] => array (
                    [int_repetitionnumber] => string_paramtext
                )
            )
            ["value"] => array (
                [int_partnumber] => array (
                    [int_repetitionnumber] => string_valuetext
                )
            )
        )
    )
)

By way of example, let's take a look at the vCard of my friend Bolivar Shagnasty.

BEGIN:VCARD
VERSION:3.0
N:Shagnasty;Bolivar;Odysseus;Mr.;III,B.S.
FN:Bolivar Shagnasty
ADR;TYPE=HOME,WORK:;;123 Main,Apartment 101;Beverly Hills;CA;90210
EMAIL;TYPE=HOME;TYPE=WORK:boshag@example.com
EMAIL;TYPE=PREF:boshag@ciaweb.net
END:VCARD

This is a pretty simple vCard: my buddy Bolivar's name, one address (looks like Bolivar works from home), two email addresses (one for work and home, and one as his "preferred" address). This simple vCard, when it gets parsed, looks like this:

(
    [0] => Array
        (
            [VERSION] => Array
                (
                    [0] => Array
                        (
                            [param] => Array
                                (
                                )

                            [value] => Array
                                (
                                    [0] => Array
                                        (
                                            [0] => 3.0
                                        )

                                )

                        )

                )

            [N] => Array
                (
                    [0] => Array
                        (
                            [param] => Array
                                (
                                )

                            [value] => Array
                                (
                                    [0] => Array // family
                                        (
                                            [0] => Shagnasty
                                        )

                                    [1] => Array // first
                                        (
                                            [0] => Bolivar
                                        )

                                    [2] => Array // additional or middle
                                        (
                                            [0] => Odysseus
                                        )

                                    [3] => Array // honorifix prefix
                                        (
                                            [0] => Mr.
                                        )

                                    [4] => Array // honorifix suffix
                                        (
                                            [0] => III
                                            [1] => B.S.
                                        )

                                )

                        )

                )

            [FN] => Array
                (
                    [0] => Array
                        (
                            [param] => Array
                                (
                                )

                            [value] => Array
                                (
                                    [0] => Array
                                        (
                                            [0] => Bolivar Shagnasty
                                        )

                                )

                        )

                )

            [ADR] => Array
                (
                    [0] => Array
                        (
                            [param] => Array
                                (
                                    [TYPE] => Array
                                        (
                                            [0] => HOME
                                            [1] => WORK
                                        )

                                )

                            [value] => Array
                                (
                                    [0] => Array // p.o. box
                                        (
                                            [0] =>
                                        )

                                    [1] => Array // extended
                                        (
                                            [0] =>
                                        )

                                    [2] => Array // street
                                        (
                                            [0] => 123 Main
                                            [1] => Apartment 101
                                        )

                                    [3] => Array // locality or city
                                        (
                                            [0] => Beverly Hills
                                        )

                                    [4] => Array // region, state, or province
                                        (
                                            [0] => CA
                                        )

                                    [5] => Array // postal code
                                        (
                                            [0] => 90210
                                        )

                                    [6] => Array // country
                                        (
                                            [0] =>
                                        )

                                )

                        )

                )

            [EMAIL] => Array
                (
                    [0] => Array
                        (
                            [param] => Array
                                (
                                    [TYPE] => Array
                                        (
                                            [0] => HOME
                                            [1] => WORK
                                        )

                                )

                            [value] => Array
                                (
                                    [0] => Array
                                        (
                                            [0] => boshag@example.com
                                        )

                                )

                        )

                    [1] => Array
                        (
                            [param] => Array
                                (
                                    [TYPE] => Array
                                        (
                                            [0] => PREF
                                        )

                                )

                            [value] => Array
                                (
                                    [0] => Array
                                        (
                                            [0] => boshag@ciaweb.net
                                        )

                                )

                        )

                )

        )

)

Sweet Jebus! That's an ugly mess. But it retains every bit of info about the vCard so you can do what you like with it. It keeps (separately) every element and component so you can see the underlying structure of the vCard.

Yes, I know it's a deeply-nested array set, and is ugly and probably inefficient. The problem (or genius?) of the vCard format is that just about every part of a vCard element can have multiple values. While this makes the vCard format very flexible, it makes it a little difficult to parse and interpret in a simple fashion. The easiest way I could think of was a series of nested arrays. An object-oriented approach might be better, but even then you're going to have nested objects or nested arrays within the vCard object to represent multiple values of a vCard data element.

前のページ | ホーム | 次のページ
Introduction | 上に戻る | Known issues

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction

Introduction -- Build (create) and fetch vCard 2.1 and 3.0 text blocks.

Description

Here are some quick instructions for the impatient. :-)

  • Download and un-compress Contact_Vcard_Parse from the PEAR archive.

  • Include Contact_Vcard_Parse.php in your PHP script.

  • Instantiate a new Contact_Vcard_Parse object.

  • Use the fromFile() method to parse any file which may have one or more vCards in it; try the sample.vcf file for a start. Contact_Vcard_Parse should work with both 2.1 and 3.0 vCard files.

  • Use print_r() to view the resulting array of data from the parsed file.

  • Do what you want with the data, such as insert into a table.

例 37-1Example code

<?php
    // include the class file
    require_once 'Contact_Vcard_Parse.php';

    // instantiate a parser object
    $parse = new Contact_Vcard_Parse();

    // parse a vCard file and store the data
    // in $cardinfo
    $cardinfo = $parse->fromFile('sample.vcf');

    // view the card info array
    echo '<pre>';
    print_r($cardinfo);
    echo '</pre>';

?>
前のページ | ホーム | 次のページ
Contact_Vcard_Parse | 上に戻る | How Data Is Returned

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Known issues

Known issues -- Problems you might encounter

Description

When I wrote this parser, my primary goal was to be able to read vCard files produced by the Mac OS X Address Book application. However, it looks like Address Book puts some weird character after every single text character in the output, in addition to some weird line endings. If you want to use .vcf files generated by the Mac OS X Address Book, you might need to massage the file in BBEdit or TextWrangler first; turn on "show invisibles" to see the offending characters, then do a search-and-replace to delete them all at once (or perhaps "Zap Gremlins").

UPDATE: David Weingart writes, "That's probably Unicode. In my extremely limited testing, it looks like in some cases you get plain vanilla ISO Latin 1, but if there are any high ascii characters in the entry, they export UTF 16 (double-byte) Unicode." Thanks, David. (Contact_Vcard_Parse does not do Unicode at this time.)

Contact_Vcard_Parse does not validate the information or formatting in the vCard (although it does decode quoted-printable text). In the spirit of "be lenient in what you accept and strict in what you produce", Contact_Vcard_Parse should be able to read just about anything from a vCard file, but it's up to you as the programmer to make sense of the data.

Contact_Vcard_Parse should work on file with any kind of line endings (Mac \r, Unix \n, and DOS \r\n) automatically. It also unfolds lines automatically, so data elements spread across multiple lines should come through OK.

If you discover a new bug or want to contribute code to Contact_Vcard_Parse, contact Paul M. Jones at pjones at ciaweb dot net; the subject line should start with [VCARD].

前のページ | ホーム | 次のページ
How Data Is Returned | 上に戻る | File_Archive

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Components

Components -- Data stored in a vCard

Description

These are some, but not all, of the components of a vCard file:

  • N: The name of the person or organization represented by the vCard, in a structured format: family name, given name, additional (middle) names, any honorific prefixes (Mr., Dr., Miss, etc), and any honorific suffixes (Jr., III, Ph.D., etc).

  • ADR: Physical address. There may be one or more addresses in a vCard; one for home, one for work, one for deliveries, and so on. The ADR element has structured components for p.o. box, extended information, street, city/locality, state/region, postal code, and country.

  • TEL: Telephone. There may be one or more telephone numbers in a vCard; one for home, one for work, one for fax, and so on. The TEL element has a single text value indicating the phone number.

  • EMAIL: Email address. There may be one or more email addresses in a vCard; one for home, one for work, and so on. The EMAIL element has a single text value indicating the email address.

  • URL: One URL associated with this vCard; e.g., a personal or organizational home page.

  • ORG: The organization in which this vCard is a part. There may be one or more suborgnizations as well.

  • TITLE: A single job title.

  • ROLE: A single, longer description of the job role. Whereas TITLE might be "Senior VP Of Custodial Enforcement" the ROLE might be "Sweep floors, empty trash, etc."

  • CATEGORIES: The category or categories of this vCard: Personal, Business, Family, and so on.

  • BDAY: Birthday in yyyy-mm-dd format. It might also have additional time and timezone information.

  • PHOTO, LOGO, KEY, SOUND: Respectively, a binary-encoded file for a personal photo, corporate logo, encryption key, or name-pronounciation sound associated with the vCard. The information may also be a URI link to a binary file.

  • NOTE: Any other arbitrary information you might want to keep with the vCard.

前のページ | ホーム | 次のページ
Contact_VCard | 上に戻る | Lines

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Contact_VCard

Contact_VCard -- About the classes

Description

The Contact_Vcard classes for PHP allow you to parse and build vCards that match the IMC standards.

A vCard is a plain text file that contains an "electronic business card" of contact information suitable for including in an address book. The vCard format is a standardized way of trading personal and organizational contact information.

For a full overview of the vCard 3.0 specification, refer to Internet Engineering Task Force RFC 2426.

For a full overview of the vCard 2.1 specification (version 2.1), refer to the Internet Mail Consortium Product Developer Information web page.

前のページ | ホーム | 次のページ
Contact_Vcard | 上に戻る | Components

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Lines

Lines -- vCards internally

Description

Each line in a vCard is a separate component of the vCard. A component line consists of three things:

  • the component type-defnition (N, ADR, TEL, etc);

  • optionally, parameters for the component, such as whether or not the data is binary-encoded, or the type of data (home/work/preferred/etc), and so on; and

  • the component value (which may be a single text value, repeated text values, or a structured text value).

For example, consider the following component lines:

ADR;TYPE=WORK,PREF:;;123 Main;Beverly Hills;CA;90210;US
EMAIL;TYPE=HOME;TYPE=INTERNET:nobody@example.com
CATEGORIES:Personal,Business,Family
PHOTO;TYPE=JPEG;VALUE=URI:http://example.com/photo.jpg

Component line 1 has an ADR type-definition (meaning a delivery address). It has a TYPE parameter of WORK and PREF, indicating that this a work address and is the preferred address for deliveries. Finally, the value of the component is a structured text value. Structured text value parts are delimited by semicolons; in the case of ADR components, the structured value parts are p.o. box, extended address, street address, city/locality, state/region, zip/postal code, and country.

Component line 2 has an EMAIL type-definition (meaning an email address). It has a TYPE parameter of HOME and INTERNET (meaning an internet email address for home). The component value is a single text value indicating the email address.

Component line 3 has a CATEGORIES type-definition (meaning the general categories of of this vCard). There are no parameters for this component. The component value is a repeating-text value. Repeated text values a delimited by commas.

Component line 4 has a PHOTO type-definition (meaning a personal photograph). The parameters indicate that the photo TYPE is JPEG (giving a hint to vCard decoders how to handle the PHOTO value) and that the component VALUE will be a URI (that is, a link to an external photo file). Finally, the component value is a single text value, revealing in this case the URI of the photo.

前のページ | ホーム | 次のページ
Components | 上に戻る | Projects

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Projects

Projects -- Other vCard projects

Description

Frank Hellwig has a 2.1/3.0 parser and address-book page generator. See his site at vcardphp.sf.net.

Kai Blankenhorn has a 2.1 card generator (not a parser). See his work at www.bitfolge.de/?s=phpvcard.

Flaimo has a vCard generator, too, at flaimo.com/php_scripts.php (scroll down past the iCalendar stuff).

HORDE has a vCard data element in their application framework, but I don't quite see how to use it outside that framework. The doc pages for it are at http://dev.horde.org/api/horde/dev-doxygen/html/classData__vcard.html .

Of course, you can always search for more vCard stuff under PHP, too: http://www.google.com/search?q=vcard+php.

前のページ | ホーム | 次のページ
Lines | 上に戻る | Contact_Vcard_Build

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Contact_Vcard_Build

目次
Introduction -- Build (create) and fetch vCard 2.1 and 3.0 text blocks.

Build (create) and fetch vCard 2.1 and 3.0 text blocks.

前のページ | ホーム | 次のページ
ファイル形式 | 上に戻る | Introduction

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Contact_Vcard_Parse

目次
Introduction -- Parse vCard 2.1 and 3.0 files.

Parse vCard 2.1 and 3.0 files.

前のページ | ホーム | 次のページ
Introduction | 上に戻る | Introduction

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Archive

このパッケージによって、 tar、gz、 bz2、tgz、tbz、zip、 ar および deb 形式のファイルを簡単に操作することができます。

PEAR マニュアル内には現在ドキュメントはありません。 http://poocl.la-grotte.org をご覧ください。

前のページ | ホーム | 次のページ
Known issues | 上に戻る | File_DICOM

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_DICOM

目次
Introduction -- using File_DICOM
constructor File_DICOM::File_DICOM() -- Constructor.
File_DICOM::parse() -- Parse a DICOM file.
File_DICOM::write() -- Write current contents to a DICOM file.
File_DICOM::getValue() -- Gets the value for a DICOM element.
File_DICOM::setValue() -- Sets the value for a DICOM element.
File_DICOM::dumpImage() -- Dumps the contents of the image inside the DICOM file (element 0x0010 from group 0x7FE0) to a PGM (Portable Gray Map) file.

Package for reading and modifying DICOM files

前のページ | ホーム | 次のページ
File_Archive | 上に戻る | Introduction

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction

Introduction -- using File_DICOM

What is DICOM?

File_DICOM allows reading and modifying of DICOM files. DICOM stands for Digital Imaging and COmmunications in Medicine, and is a standard for creating, storing and transfering digital images (X-rays, tomography) and related information used in medicine. This package in particular does not support the exchange/transfer of DICOM data, nor any network related functionality. More information on the DICOM standard can be found at the NEMA site.

Please be aware that any use of the information produced by this package for diagnosing purposes is strongly discouraged by the author. See here for more information.

Using it

File_DICOM can be used to accomplish two things, to retrieve data from a file (including image data), and to set new values for that data (allowing to write the modified file).

Let's see how we could show some relevant data from a DICOM file and export it's image data at the same time.

例 37-1Showing data

<?php
require_once('File/DICOM.php');

$dicom = new File_DICOM();
$res = $dicom->parse("test.dcm");

// check for errors
if (PEAR::isError($res)) {
    die("Error: ".$res->getMessage()."\n");
}

// show a few attributes of the DICOM file using group and element index
echo 'StudyDate : '.$dicom->getValue(0x0008, 0x0020)."\n";
echo 'Image Date : '.$dicom->getValue(0x0008, 0x0023)."\n";
echo 'Image Type : '.$dicom->getValue(0x0008, 0x0008)."\n";
echo 'Study Time : '.$dicom->getValue(0x0008, 0x0030)."\n";
echo 'Institution Name : '.$dicom->getValue(0x0008, 0x0080)."\n";
echo 'Manufacturer : '.$dicom->getValue(0x0008, 0x0070)."\n";
echo 'Manufacturer Model Name : '.$dicom->getValue(0x0008, 0x1090)."\n";
// or using element name
echo 'Patient Name : '.$dicom->getValue('PatientName')."\n";
echo 'Patient Age : '.$dicom->getValue('PatientAge')."\n";

// dump a PGM image from the file data
$res = $dicom->dumpImage('test.pgm');
if (PEAR::isError($res)) {
    die("Error: ".$res->getMessage()."\n");
}
?>
前のページ | ホーム | 次のページ
File_DICOM | 上に戻る | constructor File_DICOM::File_DICOM()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Fstab

目次
導入 -- File_Fstab の導入
エントリ -- エントリの取り扱い
保存 -- 変更を保存する

このパッケージが提供する機能は、 fstab ファイルやその他同じフォーマットのファイル、例えば Linux システムの /proc/mounts などの読み書きです。

前のページ | ホーム | 次のページ
File_DICOM::dumpImage() | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


エントリ

エントリ -- エントリの取り扱い

エントリの概要

File_Fstab_Entry クラスは Fstab ファイルの特定のエントリから得られる情報を表します。

エントリのプロパティ

エントリは多くのプロパティを保持しており、それぞれが fstab ファイルの情報を表しています。

$device

このエントリのブロックデバイスへのパスです。 $device、$uuid および $label は互いに排他的で、 3 つのうちのひとつだけが設定されます。

$uuid

デバイスの UUID です。

$label

このデバイスのラベルです。

$mountPoint

このデバイスがマウントされているディレクトリです。

$fsType

$device 上のファイルシステムの形式です。

$mountOptions

このデバイスのマウントオプションの配列です。

$dumpFrequency

dump によるバックアップをする場合の 頻度です。

$fsckPassNo

システムの起動時に fsck による チェックを行う場合の順序です。

これらの項目の意味についての詳細な情報は、fstab(5) のマニュアルを参照ください。

エントリの検索

fstab からエントリを検索するには、さまざまな方法があります。 デバイスで検索したり、あるいはマウントポイントやファイルシステム ラベルや UUID で検索することもあるでしょう。

デバイスによる検索

デバイスによる検索を行うには、getEntryForDevice() 関数を使用します。この関数は、対象となるエントリのブロックデバイス へのパスを引数として受け取ります。

例 37-1デバイスからエントリを取得する

require_once 'File/Fstab.php';
$fstab =& new File_Fstab();
$dev =& $fstab->getEntryForDevice('/dev/hda1');
if (PEAR::isError($dev)) {
    die($dev->getMessage());
}

パス（マウントポイント）による検索

それがマウントされているパスから、デバイスを検索したいことも あるでしょう。たとえば /cdrom にマウント されているデバイスが何かを知りたくて、それが /dev/hdb なのか /dev/cdrom なのか、あるいはそれ以外の デバイスなのかはどうでもいいといった場合が考えられます。 この検索のするには、getEntryForPath() 関数を 使用します。

例 37-2パスからエントリを取得する

require_once 'File/Fstab.php';
$fstab =& new File_Fstab();
$dev =& $fstab->getEntryForPath('/cdrom');
if (PEAR::isError($dev)) {
    die($dev->getMessage());
}

UUID による検索

マウントするデバイスを指定するために、そのファイルシステム UUID を使用するシステムも存在します。 UUID は b46ad2ee-01f3-4041-96ca-91d35d059417 のような 形式です。これを扱うには、getEntryForUUID() 関数を使用します。

例 37-3UUID からエントリを取得する

require_once 'File/Fstab.php';
$fstab =& new File_Fstab();
$dev =& $fstab->getEntryForUUID('b46ad2ee-01f3-4041-96ca-91d35d059417');
if (PEAR::isError($dev)) {
    die($dev->getMessage());
}

ラベルによる検索

ファイルシステムに対して、テキストのラベルを指定することを許可している ファイルシステムも存在します。たとえば、ルートデバイスに rootdev というラベルを指定し、/home にマウントするデバイスには homedirs というラベルを 指定し、といったようにすすめていくことができます。 File_Fstab は、デバイスのラベルに基づいて エントリを取得する機能をサポートしています。これを実行するには getEntryForLabel() 関数を使用します。

例 37-4ラベルからエントリを取得する

require_once 'File/Fstab.php';
$fstab =& new File_Fstab();
$dev =& $fstab->getEntryForLabel('homedirs');
if (PEAR::isError($dev)) {
    die($dev->getMessage());
}

エントリの追加

fstab ファイルの読み込みに加えて、それを変更することもできます。

例 37-5フロッピーディスク用のエントリを追加する

require_once 'File/Fstab.php';
$fstab =& new File_Fstab();
$floppy =& new File_Fstab_Entry();
$floppy->fsType = 'vfat';
$floppy->device = '/dev/fd0';
$floppy->mountPoint = '/floppy';
$fstab->addEntry($floppy);
前のページ | ホーム | 次のページ
導入 | 上に戻る | 保存

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- File_Fstab の導入

概要

このパッケージは、fstab フォーマットのファイルの 読み書き操作を行います。このフォーマットのファイルには /etc/fstab、/etc/mtab および /proc/mounts などがあります。

例

例 37-1root デバイスのファイルシステム型を取得する

require_once 'File/Fstab.php';

$fstab =& new File_Fstab();

$root =& $fstab->getEntryForPath('/');
echo "Root FS type: " . $root->fsType . "\n";

例 37-2ユーザが CD-ROM をマウント可能かどうかを調べる

fstab の user オプションにより、ユーザが 指定したデバイスをマウント可能かどうかを指定します。

require_once 'File/Fstab.php';

$fstab =& new File_Fstab();

$cd =& $fstab->getEntryForDevice('/dev/cdrom');
if ($cd->hasOption('user')) {
    echo "Users may mount the CD-ROM\n";
} else {
    echo "Users may not mount the CD-ROM\n";
}
前のページ | ホーム | 次のページ
File_Fstab | 上に戻る | エントリ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


保存

保存 -- 変更を保存する

変更を保存する

fstab ファイルを変更した後は、きっとそれを保存したくなることでしょう。 それを行うのが save() 関数です。

警告

読み込まれたファイルの中のコメントは、保存の際には残されません。 また空白も変化するかもしれません。これは fstab ファイルの機能には 何の影響もおよぼしませんが、有用なコメントが失われてしまうことが あります。

例 37-1ファイルを上書き保存する

この例は、読み込んだファイルに変更内容を書き戻し、 古いファイルを上書きします。

require_once 'File/Fstab.php';
$fstab =& new File_Fstab();
$floppy =& new File_Fstab_Entry();
$floppy->fsType = 'vfat';
$floppy->device = '/dev/fd0';
$floppy->mountPoint = '/floppy';
$fstab->addEntry($floppy);
$res = $fstab->save();
if (PEAR::isError($res)) {
    die($res->getMessage());
}

例 37-2別のファイルに保存する

この例は、最初に読み込んだではない別のファイルに 変更内容を保存します。

require_once 'File/Fstab.php';
$fstab =& new File_Fstab();
$floppy =& new File_Fstab_Entry();
$floppy->fsType = 'vfat';
$floppy->device = '/dev/fd0';
$floppy->mountPoint = '/floppy';
$fstab->addEntry($floppy);
$res = $fstab->save('/tmp/fstab.new');
if (PEAR::isError($res)) {
    die($res->getMessage());
}
前のページ | ホーム | 次のページ
エントリ | 上に戻る | File_Passwd

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd

passwd 形式のファイルを管理するパッケージ

導入

目次
導入 --

File_Passwd

目次
File_Passwd 定数 -- File_Passwd で使用している定数
File_Passwd::apiVersion() -- API のバージョンを取得する
File_Passwd::factory() -- 拡張クラスのファクトリ
File_Passwd::staticAuth() -- 高速な認証

File_Passwd は、 他のすべてのクラス、静的認証や暗号化メソッドを生成するための ファクトリクラスです。

File_Passwd_Common

目次
子クラス -- File_Passwd_Common とそのメソッドを継承するクラス
File_Passwd_Common::delUser() -- ユーザを削除する
File_Passwd_Common::listUser() -- ユーザの一覧を取得する
File_Passwd_Common::userExists() -- ユーザが存在するかどうかを調べる
File_Passwd_Common::getFile() -- パスワードファイルのパスを取得する
File_Passwd_Common::setFile() -- パスワードファイルのパスを設定する
File_Passwd_Common::load() -- ファイルを読み込む
File_Passwd_Common::parse() -- ファイルの内容をパースする
File_Passwd_Common::save() -- 変更を適用し、ファイルに書き込む
File_Passwd_Common::_auth() -- File_Passwd::staticAuth() の基底メソッド
File_Passwd_Common::_open() -- ファイルをオープンする
File_Passwd_Common::_close() -- 事前にオープンしてロックされたファイルハンドルを閉じる
File_Passwd_Common::_save() -- 変更した内容をパスワードファイルに保存する
File_Passwd_Common::__construct() -- コンストラクタ (ZE2)

実際に作業をするクラスの基底となるクラスです。

File_Passwd_Custom

目次
File_Passwd_Custom::staticAuth() -- 高速な認証
File_Passwd_Custom::File_Passwd_Custom() -- コンストラクタ
File_Passwd_Custom::parse() -- パスワードファイルをパースする
File_Passwd_Custom::save() -- 変更を保存する
File_Passwd_Custom::addUser() -- ユーザを追加する
File_Passwd_Custom::modUser() -- ユーザを変更する
File_Passwd_Custom::changePasswd() -- パスワードを変更する
File_Passwd_Custom::verifyPasswd() -- パスワードを検証する
File_Passwd_Custom::useMap() -- 「名前マップ」を使用するかどうか
File_Passwd_Custom::getMap() -- 「名前マップ」を取得する
File_Passwd_Custom::setMap() -- 「名前マップ」を設定する

独自形式のパスワードファイルを操作します（継承するメソッド）。

File_Passwd_Unix

目次
File_Passwd_Unix::staticAuth() -- 高速な認証
File_Passwd_Unix::File_Passwd_Unix() -- コンストラクタ
File_Passwd_Unix::parse() -- パスワードファイルをパースする
File_Passwd_Unix::save() -- 変更を保存する
File_Passwd_Unix::addUser() -- ユーザを追加する
File_Passwd_Unix::modUser() -- ユーザを変更する
File_Passwd_Unix::changePasswd() -- パスワードを変更する
File_Passwd_Unix::verifyPasswd() -- パスワードを検証する
File_Passwd_Unix::useMap() -- 「名前マップ」を使用するかどうか
File_Passwd_Unix::getMap() -- 「名前マップ」を取得する
File_Passwd_Unix::setMap() -- 「名前マップ」を設定する
File_Passwd_Unix::getMode() -- 実際の暗号化形式を取得する
File_Passwd_Unix::setMode() -- 暗号化形式を設定する
File_Passwd_Unix::listModes() -- サポートされる暗号化形式を取得する
File_Passwd_Unix::isShadowed() -- パスワードファイルが暗号化されているかどうかを調べる
File_Passwd_Unix::generatePassword() -- パスワードを生成する

標準 Unix パスワードファイルを操作します（継承するメソッド）。

File_Passwd_Cvs

目次
File_Passwd_Cvs::staticAuth() -- 高速な認証
File_Passwd_Cvs::File_Passwd_Cvs() -- コンストラクタ
File_Passwd_Cvs::parse() -- ファイルをパースする
File_Passwd_Cvs::save() -- 変更を保存する
File_Passwd_Cvs::addUser() -- ユーザを追加する
File_Passwd_Cvs::changeSysUser() -- システムのユーザを変更する
File_Passwd_Cvs::changePasswd() -- パスワードを変更する
File_Passwd_Cvs::verifyPasswd() -- パスワードを検証する
File_Passwd_Cvs::generatePassword() -- パスワードを生成する

CVS pserver パスワードファイルを操作します（継承するメソッド）。

File_Passwd_Smb

目次
File_Passwd_Smb::staticAuth() -- 高速な認証
File_Passwd_Smb::File_Passwd_Smb() -- コンストラクタ
File_Passwd_Smb::parse() -- ファイルをパースする
File_Passwd_Smb::save() -- 変更を保存する
File_Passwd_Smb::addUser() -- ユーザを追加する
File_Passwd_Smb::modUser() -- ユーザを変更する
File_Passwd_Smb::changePasswd() -- パスワードを変更する
File_Passwd_Smb::verifyPasswd() -- パスワードを検証する
File_Passwd_Smb::verifyEncryptedPasswd() -- 暗号化されたパスワードを検証する
File_Passwd_Smb::generatePassword() -- パスワードを生成する

SMB サーバのパスワードファイルを操作します（継承するメソッド）。

File_Passwd_Authbasic

目次
File_Passwd_Authbasic::staticAuth() -- 高速な認証
File_Passwd_Authbasic::File_Passwd_Authbasic() -- コンストラクタ
File_Passwd_Authbasic::parse() -- AuthUserFile をパースする
File_Passwd_Authbasic::save() -- 変更を保存する
File_Passwd_Authbasic::addUser() -- ユーザを追加する
File_Passwd_Authbasic::changePasswd() -- パスワードを変更する
File_Passwd_Authbasic::verifyPasswd() -- パスワードを検証する
File_Passwd_Authbasic::getMode() -- 実際の暗号化形式を取得する
File_Passwd_Authbasic::setMode() -- 暗号化形式を設定する
File_Passwd_Authbasic::listModes() -- サポートされている暗号化形式を取得する
File_Passwd_Authbasic::generatePassword() -- パスワードを生成する

AuthUserFiles を操作します（継承するメソッド）。

File_Passwd_Authdigest

目次
File_Passwd_Authdigest::staticAuth() -- 高速な認証
File_Passwd_Authdigest::File_Passwd_Authdigest() -- コンストラクタ
File_Passwd_Authdigest::parse() -- AuthDigestFile をパースする
File_Passwd_Authdigest::save() -- 変更を保存する
File_Passwd_Authdigest::addUser() -- ユーザを追加する
File_Passwd_Authdigest::changePasswd() -- パスワードを変更する
File_Passwd_Authdigest::verifyPasswd() -- パスワードを検証する
File_Passwd_Authdigest::delUserInRealm() -- ユーザを削除する
File_Passwd_Authdigest::listUserInRealm() -- ユーザの一覧を取得する
File_Passwd_Authdigest::userInRealm() -- ユーザが指定した realm に属しているかどうかを調べる
File_Passwd_Authdigest::generatePassword() -- パスワードを生成する

AuthDigestFiles を操作します（継承するメソッド）。

前のページ | ホーム | 次のページ
保存 | 上に戻る | MP3_Id

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd 定数

File_Passwd 定数 -- File_Passwd で使用している定数

定数

表 37-1暗号化定数

名前 | 値 | 説明
FILE_PASSWD_DES | "des" | DES encryption
FILE_PASSWD_MD5 | "md5" | MD5 encryption
FILE_PASSWD_SHA | "sha" | SHA encryption
FILE_PASSWD_NT | "nt" | NT hash
FILE_PASSWD_LM | "lm" | LM hash
FILE_PASSWD_PLAIN | "plain" | no encryption

表 37-2Error Constants

Name | Value | Description
FILE_PASSWD_E_UNDEFINED | 0 | undefined - some seldom occuring errors
FILE_PASSWD_E_INVALID_FORMAT | 1 | passwd file has invalid format
FILE_PASSWD_E_INVALID_PROPERTY | 2 | an invalid (additional) property was supplied
FILE_PASSWD_E_INVALID_CHARS | 3 | parameter contains illegal chracters (usually only alphanumerics, the dash and underline are allowed)
FILE_PASSWD_E_INVALID_ENC_MODE | 4 | an invalid encryption mode was supplied (depending on the class actually used)
FILE_PASSWD_E_EXISTS_ALREADY | 5 | an entry (user, group, etc) to add exists already
FILE_PASSWD_E_EXISTS_NOT | 6 | an entry (user, group, etc) to delete/change doesn't exist
FILE_PASSWD_E_USER_NOT_IN_GROUP | 7 | the specified user is not in this certain group
FILE_PASSWD_E_USER_NOT_IN_REALM | 8 | the specified user is not in this certain realm
FILE_PASSWD_E_PARAM_MUST_BE_ARRAY | 9 | the supplied param must be of type array
FILE_PASSWD_E_METHOD_NOT_IMPLEMENTED | 10 | requested method was not implemented yet
FILE_PASSWD_E_DIR_NOT_CREATED | 11 | a certain directory couldn't be created
FILE_PASSWD_E_FILE_NOT_OPENED | 12 | passwd file couldn't be opened
FILE_PASSWD_E_FILE_NOT_LOCKED | 13 | passwd file couldn't be locked
FILE_PASSWD_E_FILE_NOT_UNLOCKED | 14 | passwd file couldn't be unlocked
FILE_PASSWD_E_FILE_NOT_CLOSED | 15 | passwd file couldn't be closed
前のページ | ホーム | 次のページ
File_Passwd | 上に戻る | File_Passwd::apiVersion()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Authbasic::addUser

PEAR マニュアル
前のページ 次のページ

File_Passwd_Authbasic::addUser()

File_Passwd_Authbasic::addUser() -- ユーザを追加する

概要

mixed File_Passwd_Authbasic::addUser (string $user, string $pass)

説明

ユーザ名は必ずアルファベットで始まる必要があり、また英数字・下線・ ダッシュ以外の文字を含めることはできません。

パラメータ

string $user

ユーザ名。

string $pass

プレーンテキスト形式のパスワード。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_EXISTS_ALREADY | 追加しようとしているユーザはすでに存在します。
FILE_PASSWD_E_INVALID_CHARS | 追加しようとしているユーザ名に不正な文字が含まれています。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Authbasic::save() | 上に戻る | File_Passwd_Authbasic::changePasswd()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Authbasic::changePasswd

PEAR マニュアル
前のページ 次のページ

File_Passwd_Authbasic::changePasswd()

File_Passwd_Authbasic::changePasswd() -- パスワードを変更する

概要

mixed File_Passwd_Authbasic::changePasswd (string $user, string $pass)

説明

ユーザのパスワードを変更します。

パラメータ

string $user

パスワードを変更するユーザ。

string $pass

プレーンテキスト形式の新しいパスワード。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_EXISTS_NOT | ユーザが存在しません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Authbasic::addUser() | 上に戻る | File_Passwd_Authbasic::verifyPasswd()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Authbasic::File_Passwd_Authbasic

PEAR マニュアル
前のページ 次のページ

File_Passwd_Authbasic::File_Passwd_Authbasic()

File_Passwd_Authbasic::File_Passwd_Authbasic() -- コンストラクタ

概要

require_once 'File/Passwd/Authbasic.php';

object &new File_Passwd_Authbasic ([string $file = '.htpasswd'])

説明

パスワードファイルへのパスを指定して、新しい File_Passwd_Authbasic オブジェクトを初期化します。

パラメータ

string $file

AuthUserFile へのパス。

返り値

File_Passwd_Authbasic オブジェクトを返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Authbasic::staticAuth() | 上に戻る | File_Passwd_Authbasic::parse()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Authbasic::generatePassword

PEAR マニュアル
前のページ 次のページ

File_Passwd_Authbasic::generatePassword()

File_Passwd_Authbasic::generatePassword() -- パスワードを生成する

概要

mixed File_Passwd_Authbasic::generatePassword (string $pass [, string $mode = 'des' [, string $salt = null]])

説明

"AuthBasic" 認証で使用可能なパスワードを生成します。

暗号化形式は FILE_PASSWD_DES、 FILE_PASSWD_SHA あるいは FILE_PASSWD_MD5 のいずれかです。

パラメータ

string $pass

暗号化の対象となるプレーンテキスト形式のパスワード。

string $mode

使用する暗号化形式。

string $salt

暗号化に使用する salt（通常は空文字列）。

返り値

暗号化されたパスワードを文字列で返します。暗号化形式がサポートされていない 場合は PEAR_Error FILE_PASSWD_E_INVALID_ENC_MODE を返します。

例

例 37-1File_Passwd_Authbasic::generatePassword()

require_once 'File/Passwd/Authbasic.php';
$pass = File_Passwd_Authbasic::generatePassword('secret', FILE_PASSWD_MD5);

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
File_Passwd_Authbasic::listModes() | 上に戻る | MP3_Id

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Authbasic::getMode

PEAR マニュアル
前のページ 次のページ

File_Passwd_Authbasic::getMode()

File_Passwd_Authbasic::getMode() -- 実際の暗号化形式を取得する

概要

string File_Passwd_Authbasic::getMode ()

説明

実際の暗号化形式を取得します。

返り値

string - 実際の暗号化形式。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Authbasic::verifyPasswd() | 上に戻る | File_Passwd_Authbasic::setMode()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Authbasic::listModes

PEAR マニュアル
前のページ 次のページ

File_Passwd_Authbasic::listModes()

File_Passwd_Authbasic::listModes() -- サポートされている暗号化形式を取得する

概要

array File_Passwd_Authbasic::listModes ()

説明

サポートされている暗号化形式を配列で返します。

<pre> array + md5 + sha + des </pre>

注意: DES 暗号化は Win32 では使用できません!

返り値

array - サポートされている暗号化形式。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Authbasic::setMode() | 上に戻る | File_Passwd_Authbasic::generatePassword()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Authbasic::parse

PEAR マニュアル
前のページ 次のページ

File_Passwd_Authbasic::parse()

File_Passwd_Authbasic::parse() -- AuthUserFile をパースする

概要

mixed File_Passwd_Authbasic::parse ()

説明

AuthUserFile をパースします。（パッケージ開発者用）

たいていの場合は File_Passwd_Authbasic::load() の内部で行われます。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_INVALID_FORMAT | パスワードファイルが無効な形式です。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Authbasic::File_Passwd_Authbasic() | 上に戻る | File_Passwd_Authbasic::save()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Authbasic::save

PEAR マニュアル
前のページ 次のページ

File_Passwd_Authbasic::save()

File_Passwd_Authbasic::save() -- 変更を保存する

概要

mixed File_Passwd_Authbasic::save ()

説明

変更を適用し、それを AuthUserFile に書き込みます。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_DIR_NOT_CREATED | パスワードファイルが存在すべきディレクトリが 作成できません。
FILE_PASSWD_E_FILE_NOT_OPENED | パスワードファイルを書き込みモードでオープンできません。
FILE_PASSWD_E_FILE_NOT_LOCKED | パスワードファイルを排他的にロックできません。
FILE_PASSWD_E_FILE_NOT_UNLOCKED | パスワードファイルのロックを解除できません。
FILE_PASSWD_E_FILE_NOT_CLOSED | パスワードファイルをクローズできません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Authbasic::parse() | 上に戻る | File_Passwd_Authbasic::addUser()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Authbasic::setMode

PEAR マニュアル
前のページ 次のページ

File_Passwd_Authbasic::setMode()

File_Passwd_Authbasic::setMode() -- 暗号化形式を設定する

概要

mixed File_Passwd_Authbasic::setMode (string $mode)

説明

md5、sha あるいは des のうちのひとつが選択可能です。

注意: DES 暗号化は Win32 では使用できません!

指定した暗号化形式がサポートされていない場合は、PEAR_Error を返します。

パラメータ

string $mode

使用する暗号化形式。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Authbasic::getMode() | 上に戻る | File_Passwd_Authbasic::listModes()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Authbasic::staticAuth

PEAR マニュアル
前のページ 次のページ

File_Passwd_Authbasic::staticAuth()

File_Passwd_Authbasic::staticAuth() -- 高速な認証

概要

require_once 'File/Passwd/Authbasic.php';

mixed File_Passwd_Authbasic::staticAuth (string $file, string $user, string $pass, string $mode)

説明

静的なユーザ認証を行います。

パラメータ

string $file

パスワードファイルへのパス。

string $user

認証するユーザ名。

string $pass

プレーンテキスト形式のパスワード。

string $mode

des、sha あるいは md5 。

返り値

認証された場合に TRUE 、認証されなかった場合に FALSE 、 認証に失敗した場合には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_NOT_EXISTS | パスワードファイルが存在しません。
FILE_PASSWD_E_FILE_NOT_OPENED | パスワードファイルを読み込みモードでオープンできません。
FILE_PASSWD_E_FILE_NOT_LOCKED | パスワードファイルを共有モードでロックできません。
FILE_PASSWD_E_FILE_NOT_UNLOCKED | パスワードファイルのロックを解除できません（認証されなかった場合のみ）。
FILE_PASSWD_E_FILE_NOT_CLOSED | パスワードファイルをクローズできません（認証に失敗した場合のみ）。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
File_Passwd | 上に戻る | File_Passwd_Authbasic::File_Passwd_Authbasic()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Authbasic::verifyPasswd

PEAR マニュアル
前のページ 次のページ

File_Passwd_Authbasic::verifyPasswd()

File_Passwd_Authbasic::verifyPasswd() -- パスワードを検証する

概要

mixed File_Passwd_Authbasic::verifyPasswd (string $user, string $pass)

説明

ユーザのパスワードを検証します。

パラメータ

string $user

パスワードを検証するユーザ。

string $pass

プレーンテキスト形式の、検証するパスワード。

返り値

パスワードが一致した場合に TRUE 、一致しなかった場合に FALSE 、 検証に失敗した場合に PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_EXISTS_NOT | ユーザが存在しません。
FILE_PASSWD_E_INVALID_ENC_MODE | 無効な暗号化形式が指定されました。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Authbasic::changePasswd() | 上に戻る | File_Passwd_Authbasic::getMode()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Authdigest::addUser

PEAR マニュアル
前のページ 次のページ

File_Passwd_Authdigest::addUser()

File_Passwd_Authdigest::addUser() -- ユーザを追加する

概要

mixed File_Passwd_Authdigest::addUser (string $user, string $realm, string $pass)

説明

AuthDigestFile にユーザを追加します。

$user および $realm は必ずアルファベットで始まる必要があり、 また英数字・下線・ダッシュ以外の文字を含めることはできません。

パラメータ

string $user

追加するユーザ名。

string $realm

ユーザが所属する realm 。

string $pass

プレーンテキスト形式のパスワード。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_EXISTS_ALREADY | 指定された realm にユーザがすでに存在します。
FILE_PASSWD_E_INVLAID_CHARS | user あるいは realm に不正な文字が含まれています。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Authdigest::save() | 上に戻る | File_Passwd_Authdigest::changePasswd()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Authdigest::changePasswd

PEAR マニュアル
前のページ 次のページ

File_Passwd_Authdigest::changePasswd()

File_Passwd_Authdigest::changePasswd() -- パスワードを変更する

概要

mixed File_Passwd_Authdigest::changePasswd (string $user, string $realm, string $pass)

説明

指定した realm に属するユーザのパスワードを変更します。

このメソッドは、実際にはいったんユーザを削除した後に 新しいパスワードでユーザを追加します。

パラメータ

string $user

パスワードを変更するユーザ。

string $realm

ユーザが属する realm 。

string $pass

プレーンテキスト形式の新しいパスワード。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_USER_NOT_IN_REALM | 指定した realm にユーザが存在しません。
FILE_PASSWD_E_INVALID_CHARS | user あるいは realm に不正な文字が含まれています。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Authdigest::addUser() | 上に戻る | File_Passwd_Authdigest::verifyPasswd()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Authdigest::delUserInRealm

PEAR マニュアル
前のページ 次のページ

File_Passwd_Authdigest::delUserInRealm()

File_Passwd_Authdigest::delUserInRealm() -- ユーザを削除する

概要

mixed File_Passwd_Authdigest::delUserInRealm (string $user, string $inRealm)

説明

指定した realm からユーザを削除します。

パラメータ

string $user

削除するユーザ。

string $inRealm

ユーザが属する realm 。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_USER_NOT_IN_REALM | 指定した realm にユーザが存在しません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Authdigest::verifyPasswd() | 上に戻る | File_Passwd_Authdigest::listUserInRealm()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Authdigest::File_Passwd_Authdigest

PEAR マニュアル
前のページ 次のページ

File_Passwd_Authdigest::File_Passwd_Authdigest()

File_Passwd_Authdigest::File_Passwd_Authdigest() -- コンストラクタ

概要

require_once 'File/Passwd/Authdigest.php';

object &new File_Passwd_Authdigest ([string $file = '.htdigest'])

説明

AuthDigestFile へのパスを指定して、新しい File_Passwd_Authdigest オブジェクトを初期化します。

パラメータ

string $file

AuthDigestFile へのパス。

返り値

File_Passwd_Authdigest オブジェクトを返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Authdigest::staticAuth() | 上に戻る | File_Passwd_Authdigest::parse()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Authdigest::generatePassword

PEAR マニュアル
前のページ 次のページ

File_Passwd_Authdigest::generatePassword()

File_Passwd_Authdigest::generatePassword() -- パスワードを生成する

概要

string File_Passwd_Authdigest::generatePassword (string $user, string $realm, string $pass)

説明

"AuthDigest" 認証で使用可能なパスワードを生成します。

パラメータ

string $user

ユーザ名。

string $realm

ユーザが属する realm 。

string $pass

プレーンテキスト形式のパスワード。

返り値

暗号化されたパスワードを文字列で返します。

例

例 37-1File_Passwd_Authdigest::generatePassword()

require_once 'File/Passwd/Authdigest.php';
$pass = File_Passwd_Authdigest::generatePassword('mike', 'restricted', 'secret');

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
File_Passwd_Authdigest::userInRealm() | 上に戻る | MP3_Id

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Authdigest::listUserInRealm

PEAR マニュアル
前のページ 次のページ

File_Passwd_Authdigest::listUserInRealm()

File_Passwd_Authdigest::listUserInRealm() -- ユーザの一覧を取得する

概要

array File_Passwd_Authdigest::listUserInRealm ([string $inRealm = ''])

説明

指定した realm、あるいはすべての realm に属するユーザの一覧を取得します。

パラメータ

string $inRealm

一覧を取得する realm 。

返り値

配列を返します。

  • $inRealm が指定された場合、指定した 1 つの realm に属するユーザの連想配列。 <pre> realm1 + user1 =&gt; pass + user2 =&gt; pass + user3 =&gt; pass </pre>

  • それ以外の場合はすべての realm に属するユーザの連想配列。 <pre> array + realm1 =&gt; array + user1 =&amp;gt; pass + user2 =&amp;gt; pass + user3 =&amp;gt; pass + realm2 =&gt; array + user3 =&amp;gt; pass + realm3 =&gt; array + user1 =&amp;gt; pass + user2 =&amp;gt; pass </pre>

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Authdigest::delUserInRealm() | 上に戻る | File_Passwd_Authdigest::userInRealm()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Authdigest::parse

PEAR マニュアル
前のページ 次のページ

File_Passwd_Authdigest::parse()

File_Passwd_Authdigest::parse() -- AuthDigestFile をパースする

概要

mixed File_Passwd_Authdigest::parse ()

説明

AuthDigestFile をパースします。（パッケージ開発者用）

たいていの場合は File_Passwd_Authdigest::load() の内部で行われます。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_INVALID_FORMAT | AuthDigestFile が無効な形式です。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Authdigest::File_Passwd_Authdigest() | 上に戻る | File_Passwd_Authdigest::save()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Authdigest::save

PEAR マニュアル
前のページ 次のページ

File_Passwd_Authdigest::save()

File_Passwd_Authdigest::save() -- 変更を保存する

概要

mixed File_Passwd_Authdigest::save ()

説明

変更を適用し、それを AuthDigestFile に書き込みます。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_DIR_NOT_CREATED | パスワードファイルが存在すべきディレクトリが 作成できません。
FILE_PASSWD_E_FILE_NOT_OPENED | パスワードファイルを書き込みモードでオープンできません。
FILE_PASSWD_E_FILE_NOT_LOCKED | パスワードファイルを排他的にロックできません。
FILE_PASSWD_E_FILE_NOT_UNLOCKED | パスワードファイルのロックを解除できません。
FILE_PASSWD_E_FILE_NOT_CLOSED | パスワードファイルをクローズできません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Authdigest::parse() | 上に戻る | File_Passwd_Authdigest::addUser()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Authdigest::staticAuth

PEAR マニュアル
前のページ 次のページ

File_Passwd_Authdigest::staticAuth()

File_Passwd_Authdigest::staticAuth() -- 高速な認証

概要

require_once 'File/Passwd/Authdigest.php';

mixed File_Passwd_Authdigest::staticAuth (string $file, string $user, string $pass, string $realm)

説明

静的なユーザ認証を行います。

パラメータ

string $file

パスワードファイルへのパス。

string $user

認証するユーザ名。

string $pass

プレーンテキスト形式のパスワード。

string $realm

ユーザが属する realm 。

返り値

認証された場合に TRUE 、認証されなかった場合に FALSE 、 認証に失敗した場合には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_NOT_EXISTS | パスワードファイルが存在しません。
FILE_PASSWD_E_FILE_NOT_OPENED | パスワードファイルを読み込みモードでオープンできません。
FILE_PASSWD_E_FILE_NOT_LOCKED | パスワードファイルを共有モードでロックできません。
FILE_PASSWD_E_FILE_NOT_UNLOCKED | パスワードファイルのロックを解除できません（認証されなかった場合のみ）。
FILE_PASSWD_E_FILE_NOT_CLOSED | パスワードファイルをクローズできません（認証に失敗した場合のみ）。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
File_Passwd | 上に戻る | File_Passwd_Authdigest::File_Passwd_Authdigest()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Authdigest::userInRealm

PEAR マニュアル
前のページ 次のページ

File_Passwd_Authdigest::userInRealm()

File_Passwd_Authdigest::userInRealm() -- ユーザが指定した realm に属しているかどうかを調べる

概要

require_once 'Passwd/Authdigest.php';

boolean File_Passwd_Authdigest::userInRealm (string $user, string $realm)

説明

ユーザが指定した realm に属しているかどうかを調べます。

パラメータ

string $user

調べるユーザ。

string $realm

ユーザが属しているべき realm 。

返り値

ユーザが realm に属している場合に TRUE 、属していない場合に FALSE 、 失敗した場合に PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_EXISTS_NOT | 指定した realm が存在しません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Authdigest::listUserInRealm() | 上に戻る | File_Passwd_Authdigest::generatePassword()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Authdigest::verifyPasswd

PEAR マニュアル
前のページ 次のページ

File_Passwd_Authdigest::verifyPasswd()

File_Passwd_Authdigest::verifyPasswd() -- パスワードを検証する

概要

mixed File_Passwd_Authdigest::verifyPasswd (string $user, string $realm, string $pass)

説明

指定した realm に属するユーザのパスワードを検証します。

パラメータ

string $user

パスワードを検証するユーザ。

string $realm

ユーザが属する realm 。

string $pass

プレーンテキスト形式の、検証するパスワード。

返り値

パスワードが一致した場合に TRUE 、一致しなかった場合に FALSE 、 検証に失敗した場合に PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_USER_NOT_IN_REALM | 指定したユーザが realm に存在しません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Authdigest::changePasswd() | 上に戻る | File_Passwd_Authdigest::delUserInRealm()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


子クラス

子クラス -- File_Passwd_Common とそのメソッドを継承するクラス

子クラス

表 37-1File_Passwd_Common を継承するクラス

クラス | 概要
File_Passwd_Authbasic | HTTP 基本認証で使用する AuthUserFiles を操作します。
File_Passwd_Authdigest | HTTP ダイジェスト認証で使用する AuthDigestFiles を操作します。
File_Passwd_Cvs | CVS pserver のパスワードファイルを操作します。
File_Passwd_Smb | SMB サーバのパスワードファイルを操作します。
File_Passwd_Unix | 標準 Unix パスワードファイルを操作します。
File_Passwd_Custom | 独自形式のパスワードファイルを操作します。

継承するメソッドの一覧

表 37-2File_Passwd_Common から継承するメソッド

メソッド名 | 概要
File_Passwd_Common::delUser() | ユーザを削除します。
File_Passwd_Common::getFile() | パスワードファイルへのパスを取得します。
File_Passwd_Common::listUser() | ユーザの一覧を取得します。
File_Passwd_Common::load() | ファイルを読み込みます。
File_Passwd_Common::parse() | ファイルの内容をパースします。
File_Passwd_Common::save() | 変更を適用し、パスワードファイルに書き込みます。
File_Passwd_Common::setFile() | パスワードファイルへのパスを設定します。
File_Passwd_Common::userExists() | ユーザが存在するかどうかを調べます。
File_Passwd_Common::_auth() | File_Passwd::staticAuth() の基底メソッドです。
File_Passwd_Common::_close() | 事前にオープンされ、ロックされているファイルハンドルをクローズします。
File_Passwd_Common::_open() | ファイルをオープンして排他的にロックし、そのファイルハンドルを返します。
File_Passwd_Common::_save() | 変更した内容をパスワードファイルに保存します。

前のページ | ホーム | 次のページ
File_Passwd | 上に戻る | File_Passwd_Common::delUser()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Common::__construct

PEAR マニュアル
前のページ 次のページ

File_Passwd_Common::__construct()

File_Passwd_Common::__construct() -- コンストラクタ (ZE2)

概要

object File_Passwd_Common::__construct ([string $file = 'passwd'])

説明

Zend Engine 2 との互換性のために実装されています。

（パッケージ開発者用）

パラメータ

string $file

パスワードファイルへのパス。

返り値

object File_Passwd_* - File_Passwd_* オブジェクトの新しいインスタンス。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Common::_save() | 上に戻る | MP3_Id

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Common::_auth

PEAR マニュアル
前のページ 次のページ

File_Passwd_Common::_auth()

File_Passwd_Common::_auth() -- File_Passwd::staticAuth() の基底メソッド

概要

mixed File_Passwd_Common::_auth (string $file, string $id)

説明

File_Passwd_*::staticAuth() の基底メソッドです。

（パッケージ開発者用）

パラメータ

string $file

パスワードファイルへのパス。

string $id

検索するユーザ ID 。

返り値

パスワードファイルの $id を含む行を、文字列で返します。 $id が見つからなかった場合は FALSE 、失敗した場合は PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_EXISTS_NOT | パスワードファイルが存在しません。
FILE_PASSWD_E_FILE_NOT_OPENED | パスワードファイルを読み込みモードでオープンできません。
FILE_PASSWD_E_FILE_NOT_LOCKED | パスワードファイルを共有ロックすることができません。
FILE_PASSWD_E_FILE_NOT_UNLOCKED | パスワードファイルのロックを解除できません（認証に失敗した場合のみ）。
FILE_PASSWD_E_FILE_NOT_CLOSED | パスワードファイルをクローズできません（認証に失敗した場合のみ）。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Common::save() | 上に戻る | File_Passwd_Common::_open()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Common::_close

PEAR マニュアル
前のページ 次のページ

File_Passwd_Common::_close()

File_Passwd_Common::_close() -- 事前にオープンしてロックされたファイルハンドルを閉じる

概要

mixed File_Passwd_Common::_close (resource &$file_handle)

説明

File_Passwd_Common::_open() でオープンされて ロックされたファイルハンドルをクローズします。

（パッケージ開発者用）

パラメータ

resource &$file_handle

処理をするファイルハンドル。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_FILE_NOT_UNLOCKED | パスワードファイルのロックを解除できません。
FILE_PASSWD_E_FILE_NOT_CLOSED | パスワードファイルをクローズできません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Common::_open() | 上に戻る | File_Passwd_Common::_save()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Common::_open

PEAR マニュアル
前のページ 次のページ

File_Passwd_Common::_open()

File_Passwd_Common::_open() -- ファイルをオープンする

概要

mixed &File_Passwd_Common::_open (string $mode [, mixed $file = null])

説明

ファイルをオープンして排他的にロックし、そのファイルハンドルを返します。

（パッケージ開発者用）

パラメータ

string $mode

ファイルをオープンする際のモード。

string $file

パスワードファイルへのパス。

返り値

ファイルハンドルリソースを返します。失敗した場合は PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_DIR_NOT_CREATED | パスワードファイルが存在すべきディレクトリが作成できません。
FILE_PASSWD_E_FILE_NOT_OPENED | パスワードファイルを指定したモードでオープンできません。
FILE_PASSWD_E_FILE_NOT_LOCKED | パスワードファイルをロックできません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Common::_auth() | 上に戻る | File_Passwd_Common::_close()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Common::_save

PEAR マニュアル
前のページ 次のページ

File_Passwd_Common::_save()

File_Passwd_Common::_save() -- 変更した内容をパスワードファイルに保存する

概要

mixed File_Passwd_Common::_save (string $content)

説明

内容をファイルに保存します。

（パッケージ開発者用）

パラメータ

string $content

ファイルの内容。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_DIR_NOT_CREATED | パスワードファイルが存在すべきディレクトリが作成できません。
FILE_PASSWD_E_FILE_NOT_OPENED | パスワードファイルを書き込みモードでオープンできません。
FILE_PASSWD_E_FILE_NOT_LOCKED | パスワードファイルを排他的にロックできません。
FILE_PASSWD_E_FILE_NOT_UNLOCKED | パスワードファイルのロックを解除できません。
FILE_PASSWD_E_FILE_NOT_CLOSED | パスワードファイルをクローズできません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Common::_close() | 上に戻る | File_Passwd_Common::__construct()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Common::delUser

PEAR マニュアル
前のページ 次のページ

File_Passwd_Common::delUser()

File_Passwd_Common::delUser() -- ユーザを削除する

概要

mixed^File_Passwd_Common::delUser (string $user)

説明

ユーザを削除します。

パラメータ

string $user

ユーザ名。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_EXISTS_NOT | ユーザが存在しません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
子クラス | 上に戻る | File_Passwd_Common::listUser()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Common::getFile

PEAR マニュアル
前のページ 次のページ

File_Passwd_Common::getFile()

File_Passwd_Common::getFile() -- パスワードファイルのパスを取得する

概要

string File_Passwd_Common::getFile ()

説明

パスワードファイルのパスを取得します。

返り値

パスワードファイルのパスを文字列で返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Common::userExists() | 上に戻る | File_Passwd_Common::setFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Common::listUser

PEAR マニュアル
前のページ 次のページ

File_Passwd_Common::listUser()

File_Passwd_Common::listUser() -- ユーザの一覧を取得する

概要

mixed File_Passwd_Common::listUser ([string $user = ''])

説明

ひとりのユーザ、あるいは全ユーザの情報を一覧で取得します。

パラメータ

string $user

取得するユーザ名。空の場合は全ユーザを対象とします。

返り値

ユーザ情報の配列を返します。失敗した場合は PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_NOT_EXISTS | ユーザが存在しません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Common::delUser() | 上に戻る | File_Passwd_Common::userExists()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Common::load

PEAR マニュアル
前のページ 次のページ

File_Passwd_Common::load()

File_Passwd_Common::load() -- ファイルを読み込む

概要

mixed File_Passwd_Common::load ()

説明

パスワードファイルを読み込み、子クラスの parse() メソッドをコールします。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_DIR_NOT_CREATED | パスワードファイルが存在すべきディレクトリを作成できません。
FILE_PASSWD_E_FILE_NOT_OPENED | パスワードファイルを読み込みモードでオープンできません。
FILE_PASSWD_E_FILE_NOT_LOCKED | パスワードファイルを共有ロックできません。
FILE_PASSWD_E_FILE_NOT_UNLOCKED | パスワードファイルのロックを解除できません。
FILE_PASSWD_E_FILE_NOT_CLOSED | パスワードファイルをクローズできません。
FILE_PASSWD_E_INVALID_FORMAT | パスワードファイルが不正な形式です。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Common::setFile() | 上に戻る | File_Passwd_Common::parse()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Common::parse

PEAR マニュアル
前のページ 次のページ

File_Passwd_Common::parse()

File_Passwd_Common::parse() -- ファイルの内容をパースする

概要

object File_Passwd_Common::parse ()

説明

これは一種の抽象メソッドで、単に PEAR_Error を返すだけです。そのため、継承した子クラスで上書きする必要があります。

File_Passwd_* クラスでこのメソッドを上書きする必要があります。

（パッケージ開発者用）

返り値

PEAR_Error FILE_PASSWD_E_METHOD_NOT_IMPLEMENTED を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Common::load() | 上に戻る | File_Passwd_Common::save()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Common::save

PEAR マニュアル
前のページ 次のページ

File_Passwd_Common::save()

File_Passwd_Common::save() -- 変更を適用し、ファイルに書き込む

概要

object File_Passwd_Common::save ()

説明

これは一種の抽象メソッドで、単に PEAR_Error を返すだけです。そのため、継承した子クラスで上書きする必要があります。

File_Passwd_* クラスでこのメソッドを上書きする必要があります。

（パッケージ開発者用）

返り値

PEAR_Error FILE_PASSWD_E_METHOD_NOT_IMPLEMENTED を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Common::parse() | 上に戻る | File_Passwd_Common::_auth()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Common::setFile

PEAR マニュアル
前のページ 次のページ

File_Passwd_Common::setFile()

File_Passwd_Common::setFile() -- パスワードファイルのパスを設定する

概要

void File_Passwd_Common::setFile (string $file)

説明

パスワードファイルのパスを設定します。

パラメータ

string $file

パスワードファイルへのパス。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Common::getFile() | 上に戻る | File_Passwd_Common::load()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Common::userExists

PEAR マニュアル
前のページ 次のページ

File_Passwd_Common::userExists()

File_Passwd_Common::userExists() -- ユーザが存在するかどうかを調べる

概要

bool File_Passwd_Common::userExists (string $user)

説明

ユーザがすでに存在するかどうかを調べます。

パラメータ

string $user

存在するかどうかを調べるユーザの名前。

返り値

ユーザがすでに存在するかどうかを boolean で返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Common::listUser() | 上に戻る | File_Passwd_Common::getFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Custom::addUser

PEAR マニュアル
前のページ 次のページ

File_Passwd_Custom::addUser()

File_Passwd_Custom::addUser() -- ユーザを追加する

概要

mixed File_Passwd_Custom::addUser (string $user, string $pass [, array $extra = array()])

説明

ユーザ名は必ずアルファベットで始まる必要があり、また英数字・下線・ ダッシュ以外の文字を含めることはできません。

ユーザ名には、区切り文字を含めることはできません!

「名前マップ」を使用する場合は、追加の配列でこれらの名前を使用しなければ なりません。なぜなら、もしそれらの順番が間違っていれば値がおかしくなって しまうからです。「名前マップ」を使用しなかった場合は、常にこの可能性が あります!

そのため、注意した上で「名前マップ」を使用するようにしましょう!

パラメータ

string $user

追加するユーザの名前。

string $pass

追加するユーザのパスワード。

array $extra

追加するユーザの拡張プロパティ。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_ALREADY_EXISTS | ユーザはすでに存在します。
FILE_PASSWD_E_INVALID_CHARS | ユーザ名に不正な文字が含まれています。
FILE_PASSWD_E_INVALID_CHARS | 拡張プロパティの中に区切り文字が含まれています。
FILE_PASSWD_E_INVALID_ENC_MODE | 暗号化形式がサポートされていません。
FILE_PASSWD_E_UNDEFINED | パスワードファイルが暗号化(shadow)されています。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Custom::save() | 上に戻る | File_Passwd_Custom::modUser()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Custom::changePasswd

PEAR マニュアル
前のページ 次のページ

File_Passwd_Custom::changePasswd()

File_Passwd_Custom::changePasswd() -- パスワードを変更する

概要

mixed File_Passwd_Custom::changePasswd (string $user, string $pass)

説明

ユーザのパスワードを変更します。

パラメータ

string $user

パスワードを変更するユーザ。

string $pass

プレーンテキスト形式の新しいパスワード。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_EXISTS_NOT | ユーザが存在しません。
FILE_PASSWD_INVALID_ENC_MODE | 暗号化形式がサポートされていません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Custom::modUser() | 上に戻る | File_Passwd_Custom::verifyPasswd()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Custom::File_Passwd_Custom

PEAR マニュアル
前のページ 次のページ

File_Passwd_Custom::File_Passwd_Custom()

File_Passwd_Custom::File_Passwd_Custom() -- コンストラクタ

概要

require_once 'File/Passwd/Custom.php';

object &new File_Passwd_custom ([string $file = 'passwd'])

説明

パスワードファイルへのパスを指定して、新しい File_Passwd_Custom オブジェクトを初期化します。

パラメータ

string $file

パスワードファイルへのパス。

返り値

File_Passwd_Custom オブジェクトを返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Custom::staticAuth() | 上に戻る | File_Passwd_Custom::parse()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Custom::getMap

PEAR マニュアル
前のページ 次のページ

File_Passwd_Custom::getMap()

File_Passwd_Custom::getMap() -- 「名前マップ」を取得する

概要

array File_Passwd_Custom::getMap ()

説明

ユーザの追加プロパティに使用される「名前マップ」を取得します。

返り値

「名前マップ」の配列を返します。

参照

File_Passwd_Custom::setMap() を参照ください。

File_Passwd_Custom::useMap() を参照ください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Custom::useMap() | 上に戻る | File_Passwd_Custom::setMap()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Custom::modUser

PEAR マニュアル
前のページ 次のページ

File_Passwd_Custom::modUser()

File_Passwd_Custom::modUser() -- ユーザを変更する

概要

mixed File_Passwd_Custom::modUser (string $user [, array $properties = array()])

説明

ユーザのパスワードをこのメソッドで変更すべきではありません。その場合は File_Passwd_Custom::changePasswd() を使用してください。

このメソッドは「名前マップ」が使われている場合にのみ使用すべきです。

パラメータ

string $user

変更するユーザ。

array $properties

変更するプロパティの連想配列。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_EXISTS_NOT | ユーザが存在しません。
FILE_PASSWD_E_INVALID_CHARS | 拡張プロパティの中に区切り文字が含まれています。

参照

File_Passwd_Custom::useMap() を参照ください。

File_Passwd_Custom::changePasswd() を参照ください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Custom::addUser() | 上に戻る | File_Passwd_Custom::changePasswd()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Custom::parse

PEAR マニュアル
前のページ 次のページ

File_Passwd_Custom::parse()

File_Passwd_Custom::parse() -- パスワードファイルをパースする

概要

mixed File_Passwd_Custom::parse ()

説明

カスタムパスワードファイルをパースします。（パッケージ開発者用）

たいていの場合は File_Passwd_Custom::load() の内部で行われます。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

パスワードファイルが不正な形式の場合には PEAR_Error FILE_PASSWD_E_INVALID_FORMAT を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Custom::File_Passwd_Custom() | 上に戻る | File_Passwd_Custom::save()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Custom::save

PEAR マニュアル
前のページ 次のページ

File_Passwd_Custom::save()

File_Passwd_Custom::save() -- 変更を保存する

概要

mixed File_Passwd_Custom::save ()

説明

変更を適用し、それをパスワードファイルに書き込みます。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_DIR_NOT_CREATED | パスワードファイルが存在すべきディレクトリが 作成できません。
FILE_PASSWD_E_FILE_NOT_OPENED | パスワードファイルを書き込みモードでオープンできません。
FILE_PASSWD_E_FILE_NOT_LOCKED | パスワードファイルを排他的にロックできません。
FILE_PASSWD_E_FILE_NOT_UNLOCKED | パスワードファイルのロックを解除できません。
FILE_PASSWD_E_FILE_NOT_CLOSED | パスワードファイルをクローズできません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Custom::parse() | 上に戻る | File_Passwd_Custom::addUser()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Custom::setMap

PEAR マニュアル
前のページ 次のページ

File_Passwd_Custom::setMap()

File_Passwd_Custom::setMap() -- 「名前マップ」を設定する

概要

mixed File_Passwd_Custom::setMap ([mixed $map = array()])

説明

ユーザの追加プロパティに使用される「名前マップ」を設定します。

このマップは、追加プロパティの連想配列の名前付けに使用されます。

パラメータ

array $map

「名前マップ」。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

指定された「名前マップ」が配列でない場合には PEAR_Error FILE_PASSWD_E_PARAM_MUST_BE_ARRAY, を返します。

参照

File_Passwd_Custom::useMap() を参照ください。

File_Passwd_Custom::getMap() を参照ください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Custom::getMap() | 上に戻る | MP3_Id

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Custom::staticAuth

PEAR マニュアル
前のページ 次のページ

File_Passwd_Custom::staticAuth()

File_Passwd_Custom::staticAuth() -- 高速な認証

概要

require_once 'File/Passwd/Custom.php';

mixed File_Passwd_Custom::staticAuth (string $file, string $user, string $pass, array $opts)

説明

静的なユーザ認証を行います。

パラメータ

string $file

パスワードファイルへのパス。

string $user

認証するユーザ名。

string $pass

プレーンテキスト形式のパスワード。

array $opts

使用する暗号化関数と区切り文字の 2 つの要素を含む配列。 例: array('md5', '|')

返り値

認証された場合に TRUE、認証されなかった場合に FALSE、 認証に失敗した場合には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_NOT_EXISTS | パスワードファイルが存在しません。
FILE_PASSWD_E_FILE_NOT_OPENED | パスワードファイルを読み込みモードでオープンできません。
FILE_PASSWD_E_FILE_NOT_LOCKED | パスワードファイルを共有モードでロックできません。
FILE_PASSWD_E_FILE_NOT_UNLOCKED | パスワードファイルのロックを解除できません（認証されなかった場合のみ）。
FILE_PASSWD_E_FILE_NOT_CLOSED | パスワードファイルをクローズできません（認証に失敗した場合のみ）。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
File_Passwd | 上に戻る | File_Passwd_Custom::File_Passwd_Custom()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Custom::useMap

PEAR マニュアル
前のページ 次のページ

File_Passwd_Custom::useMap()

File_Passwd_Custom::useMap() -- 「名前マップ」を使用するかどうか

概要

boolean File_Passwd_Custom::useMap ([boolean $bool = null])

説明

追加プロパティの「名前マップ」を使用するかどうか。

これを使用するには、まず最初に「名前マップ」を提供する必要があります。

パラメータ

boolean $bool

「名前マップ」を使用するかどうか。

返り値

値を設定した場合は TRUE を返します。 パラメータを指定せずにコールした場合は実際の設定値を返します。

参照

File_Passwd_Custom::getMap() を参照ください。

File_Passwd_Custom::setMap() を参照ください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Custom::verifyPasswd() | 上に戻る | File_Passwd_Custom::getMap()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Custom::verifyPasswd

PEAR マニュアル
前のページ 次のページ

File_Passwd_Custom::verifyPasswd()

File_Passwd_Custom::verifyPasswd() -- パスワードを検証する

概要

mixed File_Passwd_Custom::verifyPasswd (string $user, string $pass)

説明

ユーザのパスワードを検証します。

パラメータ

string $user

パスワードを検証するユーザ。

string $pass

検証するパスワード。

返り値

パスワードが一致した場合に TRUE 、一致しなかった場合に FALSE 、 検証に失敗した場合に PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_EXISTS_NOT | ユーザが存在しません。
FILE_PASSWD_E_INVALID_ENC_MODE | 暗号化形式がサポートされていません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Custom::changePasswd() | 上に戻る | File_Passwd_Custom::useMap()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Cvs::addUser

PEAR マニュアル
前のページ 次のページ

File_Passwd_Cvs::addUser()

File_Passwd_Cvs::addUser() -- ユーザを追加する

概要

mixed File_Passwd_Cvs::addUser (string $user, string $pass [, string $system_user = ''])

説明

ユーザ名は必ずアルファベットで始まる必要があり、また英数字・下線・ ダッシュ以外の文字を含めることはできません。

パラメータ

string $user

追加するユーザの名前。

string $pass

追加するユーザのパスワード。

string $system_user

このユーザに対応させるシステムのユーザ。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_EXISTS_ALREADY | ユーザはすでに存在します。
FILE_PASSWD_E_INVALID_CHARS | user あるいは system_user に不正な文字が含まれています。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Cvs::save() | 上に戻る | File_Passwd_Cvs::changeSysUser()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Cvs::changePasswd

PEAR マニュアル
前のページ 次のページ

File_Passwd_Cvs::changePasswd()

File_Passwd_Cvs::changePasswd() -- パスワードを変更する

概要

mixed File_Passwd_Cvs::changePasswd (mixed $user, mixed $pass)

説明

ユーザのパスワードを変更します。

パラメータ

string $user

パスワードを変更するユーザ。

string $pass

プレーンテキスト形式の新しいパスワード。

返り値

$return.success-pearerror;

ユーザがすでに存在する場合には PEAR_Error FILE_PASSWD_E_EXISTS_ALREADY を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Cvs::changeSysUser() | 上に戻る | File_Passwd_Cvs::verifyPasswd()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Cvs::changeSysUser

PEAR マニュアル
前のページ 次のページ

File_Passwd_Cvs::changeSysUser()

File_Passwd_Cvs::changeSysUser() -- システムのユーザを変更する

概要

mixed File_Passwd_Cvs::changeSysUser (mixed $user, mixed $system)

説明

cvs ユーザに対応するシステムのユーザを変更します。

パラメータ

string $user

システムのユーザを変更したい cvs ユーザ。

string $system

新しいシステムユーザ名。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_EXISTS_NOT | ユーザが存在しません。
FILE_PASSWD_E_INVALID_CHARS | システムユーザに不正な文字が含まれています。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Cvs::addUser() | 上に戻る | File_Passwd_Cvs::changePasswd()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Cvs::File_Passwd_Cvs

PEAR マニュアル
前のページ 次のページ

File_Passwd_Cvs::File_Passwd_Cvs()

File_Passwd_Cvs::File_Passwd_Cvs() -- コンストラクタ

概要

require_once 'File/Passwd/Cvs.php';

object &new File_Passwd_Cvs ([mixed $file = 'passwd'])

説明

パスワードファイルへのパスを指定して、新しい File_Passwd_Cvs オブジェクトを初期化します。

パラメータ

string $file

パスワードファイルへのパス。

返り値

File_Passwd_Cvs オブジェクトを返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Cvs::staticAuth() | 上に戻る | File_Passwd_Cvs::parse()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Cvs::generatePassword

PEAR マニュアル
前のページ 次のページ

File_Passwd_Cvs::generatePassword()

File_Passwd_Cvs::generatePassword() -- パスワードを生成する

概要

string File_Passwd_Cvs::generatePassword (string $pass [, string $salt = null])

説明

"CVS" pserver 形式のパスワードを生成します。

パラメータ

string $pass

暗号化の対象となるプレーンテキスト形式のパスワード。

string $salt

暗号化に使用する salt（通常は空文字列）。

返り値

暗号化されたパスワードを文字列で返します。

例

例 37-1File_Passwd_Cvs::generatePassword()

require_once 'File/Passwd/Cvs.php';
$pass = File_Passwd_Cvs::generatePassword('secret');

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
File_Passwd_Cvs::verifyPasswd() | 上に戻る | MP3_Id

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Cvs::parse

PEAR マニュアル
前のページ 次のページ

File_Passwd_Cvs::parse()

File_Passwd_Cvs::parse() -- ファイルをパースする

概要

mixed File_Passwd_Cvs::parse ()

説明

CVS パスワードファイルをパースします。（パッケージ開発者用）

たいていの場合は File_Passwd_Cvs::load() の内部で行われます。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

パスワードファイルが不正な形式の場合には PEAR_Error FILE_PASSWD_E_INVALID_FORMAT を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Cvs::File_Passwd_Cvs() | 上に戻る | File_Passwd_Cvs::save()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Cvs::save

PEAR マニュアル
前のページ 次のページ

File_Passwd_Cvs::save()

File_Passwd_Cvs::save() -- 変更を保存する

概要

mixed File_Passwd_Cvs::save ()

説明

変更を適用し、それを CVS パスワードファイルに書き込みます。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_DIR_NOT_CREATED | パスワードファイルが存在すべきディレクトリが 作成できません。
FILE_PASSWD_E_FILE_NOT_OPENED | パスワードファイルを書き込みモードでオープンできません。
FILE_PASSWD_E_FILE_NOT_LOCKED | パスワードファイルを排他的にロックできません。
FILE_PASSWD_E_FILE_NOT_UNLOCKED | パスワードファイルのロックを解除できません。
FILE_PASSWD_E_FILE_NOT_CLOSED | パスワードファイルをクローズできません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Cvs::parse() | 上に戻る | File_Passwd_Cvs::addUser()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Cvs::staticAuth

PEAR マニュアル
前のページ 次のページ

File_Passwd_Cvs::staticAuth()

File_Passwd_Cvs::staticAuth() -- 高速な認証

概要

require_once 'File/Passwd/Cvs.php';

mixed File_Passwd_Cvs::staticAuth (string $file, string $user, string $pass)

説明

静的なユーザ認証を行います。

パラメータ

string $file

パスワードファイルへのパス。

string $user

認証するユーザ名。

string $pass

プレーンテキスト形式のパスワード。

返り値

認証された場合に TRUE、認証されなかった場合に FALSE、 認証に失敗した場合には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_NOT_EXISTS | パスワードファイルが存在しません。
FILE_PASSWD_E_FILE_NOT_OPENED | パスワードファイルを読み込みモードでオープンできません。
FILE_PASSWD_E_FILE_NOT_LOCKED | パスワードファイルを共有モードでロックできません。
FILE_PASSWD_E_FILE_NOT_UNLOCKED | パスワードファイルのロックを解除できません（認証されなかった場合のみ）。
FILE_PASSWD_E_FILE_NOT_CLOSED | パスワードファイルをクローズできません（認証に失敗した場合のみ）。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
File_Passwd | 上に戻る | File_Passwd_Cvs::File_Passwd_Cvs()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Cvs::verifyPasswd

PEAR マニュアル
前のページ 次のページ

File_Passwd_Cvs::verifyPasswd()

File_Passwd_Cvs::verifyPasswd() -- パスワードを検証する

概要

mixed File_Passwd_Cvs::verifyPasswd (string $user, string $pass)

説明

ユーザのパスワードを検証します。

パラメータ

string $user

パスワードを検証するユーザ。

string $pass

プレーンテキスト形式の、検証するパスワード。

返り値

パスワードが一致した場合に TRUE 、一致しなかった場合に FALSE 、 検証に失敗した場合に PEAR_Error を返します。

ユーザが存在しない場合には PEAR_Error FILE_PASSWD_E_EXISTS_NOT を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Cvs::changePasswd() | 上に戻る | File_Passwd_Cvs::generatePassword()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Smb::addUser

PEAR マニュアル
前のページ 次のページ

File_Passwd_Smb::addUser()

File_Passwd_Smb::addUser() -- ユーザを追加する

概要

mixed File_Passwd_Smb::addUser (string $user, string $pass, array $params [, boolean $isMachine = false])

説明

SMB のユーザ/マシン アカウントを追加します。

パラメータ

string $user

追加するユーザ/マシン。

string $pass

プレーンテキスト形式のパスワード。

array $params

アカウントの追加プロパティ。

  • userid

  • flags

  • lct

  • comment

boolean $isMachine

追加するのがマシンアカウントかどうか。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_EXISTS_ALREADY | アカウントはすでに存在します。
FILE_PASSWD_E_INVALID_CHARS | ユーザ名/マシン名に不正な文字が含まれています。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Smb::save() | 上に戻る | File_Passwd_Smb::modUser()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Smb::changePasswd

PEAR マニュアル
前のページ 次のページ

File_Passwd_Smb::changePasswd()

File_Passwd_Smb::changePasswd() -- パスワードを変更する

概要

mixed File_Passwd_Smb::changePasswd (string $user, string $pass)

説明

ユーザのパスワードを変更します。

パラメータ

string $user

パスワードを変更するユーザ。

string $pass

プレーンテキスト形式の新しいパスワード。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

ユーザが存在しない場合には PEAR_Error FILE_PASSWD_E_EXISTS_NOT を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Smb::modUser() | 上に戻る | File_Passwd_Smb::verifyPasswd()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Smb::File_Passwd_Smb

PEAR マニュアル
前のページ 次のページ

File_Passwd_Smb::File_Passwd_Smb()

File_Passwd_Smb::File_Passwd_Smb() -- コンストラクタ

概要

require_once 'File/Passwd/Smb.php';

object &new File_Passwd_Smb ([string $file = 'smbpasswd'])

説明

パスワードファイルへのパスを指定して、新しい File_Passwd_Smb オブジェクトを初期化します。

パラメータ

string $file

SMB パスワードファイルへのパス。

返り値

File_Passwd_Smb オブジェクトを返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Smb::staticAuth() | 上に戻る | File_Passwd_Smb::parse()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Smb::generatePassword

PEAR マニュアル
前のページ 次のページ

File_Passwd_Smb::generatePassword()

File_Passwd_Smb::generatePassword() -- パスワードを生成する

概要

string File_Passwd_Smb::generatePassword (string $pass [, string $mode = 'nt'])

説明

"Samba" サーバ形式のパスワードを生成します。

暗号化形式は FILE_PASSWD_NT あるいは FILE_PASSWD_LM のいずれかです。

パラメータ

string $pass

暗号化の対象となるプレーンテキスト形式のパスワード。

string $mode

使用する暗号化形式。

返り値

暗号化されたパスワードを文字列で返します。

例

例 37-1File_Passwd_Smb::generatePassword()

require_once 'File/Passwd/Smb.php';
$pass = File_Passwd_Smb::generatePassword('secret', FILE_PASSWD_LM);

注意

この関数は、スタティックにコール されます。

参照

Crypt_CHAP_MSv1::ntPasswordHash() 、 Crypt_CHAP_MSv1::lmPasswordHash() も参照ください。

前のページ | ホーム | 次のページ
File_Passwd_Smb::verifyEncryptedPasswd() | 上に戻る | MP3_Id

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Smb::modUser

PEAR マニュアル
前のページ 次のページ

File_Passwd_Smb::modUser()

File_Passwd_Smb::modUser() -- ユーザを変更する

概要

mixed File_Passwd_Smb::modUser (string $user, array $params)

説明

Modify a certain user.

ユーザのパスワードをこのメソッドで変更すべきではありません。その場合は File_Passwd_Smb::changePasswd() を使用してください。

パラメータ

string $user

変更するユーザ。

array $params

変更するプロパティの連想配列。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_EXISTS_NOT | アカウントが存在しません。
FILE_PASSWD_E_INVALID_PROPERTY | プロパティの内容が不正です。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Smb::addUser() | 上に戻る | File_Passwd_Smb::changePasswd()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Smb::parse

PEAR マニュアル
前のページ 次のページ

File_Passwd_Smb::parse()

File_Passwd_Smb::parse() -- ファイルをパースする

概要

mixed File_Passwd_Smb::parse ()

説明

SMB パスワードファイルをパースします。（パッケージ開発者用）

たいていの場合は File_Passwd_Smb::load() の内部で行われます。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

パスワードファイルが不正な形式の場合には PEAR_Error FILE_PASSWD_E_INVALID_FORMAT を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Smb::File_Passwd_Smb() | 上に戻る | File_Passwd_Smb::save()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Smb::save

PEAR マニュアル
前のページ 次のページ

File_Passwd_Smb::save()

File_Passwd_Smb::save() -- 変更を保存する

概要

mixed File_Passwd_Smb::save ()

説明

変更を適用し、それを SMB パスワードファイルに書き込みます。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_DIR_NOT_CREATED | パスワードファイルが存在すべきディレクトリが 作成できません。
FILE_PASSWD_E_FILE_NOT_OPENED | パスワードファイルを書き込みモードでオープンできません。
FILE_PASSWD_E_FILE_NOT_LOCKED | パスワードファイルを排他的にロックできません。
FILE_PASSWD_E_FILE_NOT_UNLOCKED | パスワードファイルのロックを解除できません。
FILE_PASSWD_E_FILE_NOT_CLOSED | パスワードファイルをクローズできません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Smb::parse() | 上に戻る | File_Passwd_Smb::addUser()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Smb::staticAuth

PEAR マニュアル
前のページ 次のページ

File_Passwd_Smb::staticAuth()

File_Passwd_Smb::staticAuth() -- 高速な認証

概要

require_once 'File/Passwd/Smb.php';

mixed File_Passwd_Smb::staticAuth (string $file, string $user, string $pass, string $mode)

説明

静的なユーザ認証を行います。

パラメータ

string $file

パスワードファイルへのパス。

string $user

認証するユーザ名。

string $pass

プレーンテキスト形式のパスワード。

string $mode

暗号化形式 ('nt'|'lm') NTHASH あるいは LMHASH 。

返り値

認証された場合に TRUE、認証されなかった場合に FALSE、 認証に失敗した場合には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_NOT_EXISTS | パスワードファイルが存在しません。
FILE_PASSWD_E_FILE_NOT_OPENED | パスワードファイルを読み込みモードでオープンできません。
FILE_PASSWD_E_FILE_NOT_LOCKED | パスワードファイルを共有モードでロックできません。
FILE_PASSWD_E_FILE_NOT_UNLOCKED | パスワードファイルのロックを解除できません（認証されなかった場合のみ）。
FILE_PASSWD_E_FILE_NOT_CLOSED | パスワードファイルをクローズできません（認証に失敗した場合のみ）。
FILE_PASSWD_E_INVALID_ENC_MODE | 指定された暗号化形式が無効です。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
File_Passwd | 上に戻る | File_Passwd_Smb::File_Passwd_Smb()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Smb::verifyEncryptedPasswd

PEAR マニュアル
前のページ 次のページ

File_Passwd_Smb::verifyEncryptedPasswd()

File_Passwd_Smb::verifyEncryptedPasswd() -- 暗号化されたパスワードを検証する

概要

mixed File_Passwd_Smb::verifyEncryptedPasswd (string $user, string $nthash [, string $lmhash = ''])

説明

ユーザ/マシンの暗号化されたパスワードを検証します。

弱い LAN Manager ハッシュよりも NT ハッシュを推奨します。

パラメータ

string $user

ユーザ名。

string $nthash

16 進の NT ハッシュ。

string $lmhash

16 進の LAN Manager ハッシュ。

返り値

パスワードが一致した場合に TRUE 、一致しなかった場合に FALSE 、 検証に失敗した場合に PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_EXISTS_NOT | ユーザが存在しません。
FILE_PASSWD_E_UNDEFINED | アカウントが無効です。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Smb::verifyPasswd() | 上に戻る | File_Passwd_Smb::generatePassword()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Smb::verifyPasswd

PEAR マニュアル
前のページ 次のページ

File_Passwd_Smb::verifyPasswd()

File_Passwd_Smb::verifyPasswd() -- パスワードを検証する

概要

mixed File_Passwd_Smb::verifyPasswd (string $user, string $pass)

説明

指定されたプレーンテキストのパスワードで、アカウントを検証します。

パラメータ

string $user

ユーザ名。

string $pass

プレーンテキスト形式のパスワード。

返り値

パスワードが一致した場合に TRUE 、一致しなかった場合に FALSE 、 検証に失敗した場合に PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_EXISTS_NOT | ユーザが存在しません。
FILE_PASSWD_E_UNDEFINED | アカウントが無効です。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Smb::changePasswd() | 上に戻る | File_Passwd_Smb::verifyEncryptedPasswd()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Unix::addUser

PEAR マニュアル
前のページ 次のページ

File_Passwd_Unix::addUser()

File_Passwd_Unix::addUser() -- ユーザを追加する

概要

mixed File_Passwd_Unix::addUser (string $user, string $pass [, array $extra = array()])

説明

ユーザ名は必ずアルファベットで始まる必要があり、また英数字・下線・ ダッシュ以外の文字を含めることはできません。

「名前マップ」を使用する場合は、追加の配列でこれらの名前を使用しなければ なりません。なぜなら、もしそれらの順番が間違っていれば値がおかしくなって しまうからです。「名前マップ」を使用しなかった場合は、常にこの可能性が あります!

そのため、注意した上で「名前マップ」を使用するようにしましょう!

パスワードファイルが暗号化(shadow)されている場合でもユーザは追加されます。 しかしパスワードには 'x' が設定され、PEAR_Error が返されます。

パラメータ

string $user

追加するユーザの名前。

string $pass

追加するユーザのパスワード。

array $extra

追加するユーザの拡張プロパティ。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_ALREADY_EXISTS | ユーザはすでに存在します。
FILE_PASSWD_E_INVALID_CHARS | ユーザ名に不正な文字が含まれています。
FILE_PASSWD_E_INVALID_CHARS | 拡張プロパティの中にコロンが含まれています。
FILE_PASSWD_E_INVALID_ENC_MODE | 暗号化形式がサポートされていません。
FILE_PASSWD_E_UNDEFINED | パスワードファイルが暗号化(shadow)されています。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Unix::save() | 上に戻る | File_Passwd_Unix::modUser()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Unix::changePasswd

PEAR マニュアル
前のページ 次のページ

File_Passwd_Unix::changePasswd()

File_Passwd_Unix::changePasswd() -- パスワードを変更する

概要

mixed File_Passwd_Unix::changePasswd (string $user, string $pass)

説明

ユーザのパスワードを変更します。

パラメータ

string $user

パスワードを変更するユーザ。

string $pass

プレーンテキスト形式の新しいパスワード。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_EXISTS_NOT | ユーザが存在しません。
FILE_PASSWD_INVALID_ENC_MODE | 暗号化形式がサポートされていません。
FILE_PASSWD_UNDEFINED | パスワードファイルが暗号化(shadow)されています。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Unix::modUser() | 上に戻る | File_Passwd_Unix::verifyPasswd()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Unix::File_Passwd_Unix

PEAR マニュアル
前のページ 次のページ

File_Passwd_Unix::File_Passwd_Unix()

File_Passwd_Unix::File_Passwd_Unix() -- コンストラクタ

概要

require_once 'File/Passwd/Unix.php';

object &new File_Passwd_Unix ([string $file = 'passwd'])

説明

パスワードファイルへのパスを指定して、新しい File_Passwd_Unix オブジェクトを初期化します。

パラメータ

string $file

パスワードファイルへのパス。

返り値

File_Passwd_Unix オブジェクトを返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Unix::staticAuth() | 上に戻る | File_Passwd_Unix::parse()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Unix::generatePassword

PEAR マニュアル
前のページ 次のページ

File_Passwd_Unix::generatePassword()

File_Passwd_Unix::generatePassword() -- パスワードを生成する

概要

mixed File_Passwd_Unix::generatePassword (string $pass [, string $mode = 'md5' [, string $salt = null]])

説明

"Un*x" 形式のパスワードを生成します。

暗号化形式として、File_Passwd が提供している あらゆる形式を使用可能です。しかし、一般的に使用されているのは FILE_PASSWD_MD5 および FILE_PASSWD_DES です。

パラメータ

string $pass

暗号化の対象となるプレーンテキスト形式のパスワード。

string $mode

使用する暗号化形式。

string $salt

暗号化に使用する salt（通常は空文字列）。

返り値

暗号化されたパスワードを文字列で返します。暗号化形式がサポートされていない 場合は PEAR_Error FILE_PASSWD_E_INVALID_ENC_MODE を返します。

例

例 37-1File_Passwd_Unix::generatePassword()

require_once 'File/Passwd/Unix.php';
$pass = File_Passwd_Unix::generatePassword('secret', FILE_PASSWD_MD5);

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
File_Passwd_Unix::isShadowed() | 上に戻る | MP3_Id

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Unix::getMap

PEAR マニュアル
前のページ 次のページ

File_Passwd_Unix::getMap()

File_Passwd_Unix::getMap() -- 「名前マップ」を取得する

概要

array File_Passwd_Unix::getMap ()

説明

ユーザの追加プロパティに使用される「名前マップ」を取得します。

返り値

「名前マップ」の配列を返します。

参照

File_Passwd_Unix::setMap() を参照ください。

File_Passwd_Unix::useMap() を参照ください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Unix::useMap() | 上に戻る | File_Passwd_Unix::setMap()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Unix::getMode

PEAR マニュアル
前のページ 次のページ

File_Passwd_Unix::getMode()

File_Passwd_Unix::getMode() -- 実際の暗号化形式を取得する

概要

string File_Passwd_Unix::getMode ()

説明

実際の暗号化形式 (des|md5) を取得します。

返り値

実際の暗号化形式を文字列で返します。

参照

File_Passwd_Unix::setMode() を参照ください。

File_Passwd_Unix::listModes() を参照ください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Unix::setMap() | 上に戻る | File_Passwd_Unix::setMode()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Unix::isShadowed

PEAR マニュアル
前のページ 次のページ

File_Passwd_Unix::isShadowed()

File_Passwd_Unix::isShadowed() -- パスワードファイルが暗号化されているかどうかを調べる

概要

boolean File_Passwd_Unix::isShadowed ()

説明

パスワードファイルのパスワードが、 別のファイルに暗号化されているかどうかを調べます。

返り値

パスワードファイルのパスワードが別のファイルに暗号化されているかどうかを boolean 値で返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Unix::listModes() | 上に戻る | File_Passwd_Unix::generatePassword()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Unix::listModes

PEAR マニュアル
前のページ 次のページ

File_Passwd_Unix::listModes()

File_Passwd_Unix::listModes() -- サポートされる暗号化形式を取得する

概要

array File_Passwd_Unix::listModes ()

説明

サポートされる暗号化形式の一覧を取得します。

<pre> array + md5 + des </pre>

返り値

サポートされる暗号化形式を配列で返します。

参照

File_Passwd_Unix::getMode() を参照ください。

File_Passwd_Unix::setMode() を参照ください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Unix::setMode() | 上に戻る | File_Passwd_Unix::isShadowed()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Unix::modUser

PEAR マニュアル
前のページ 次のページ

File_Passwd_Unix::modUser()

File_Passwd_Unix::modUser() -- ユーザを変更する

概要

mixed File_Passwd_Unix::modUser (string $user [, array $properties = array()])

説明

ユーザのパスワードをこのメソッドで変更すべきではありません。その場合は File_Passwd_Unix::changePasswd() を使用してください。

このメソッドは「名前マップ」が使われている場合にのみ使用すべきです。

パラメータ

string $user

変更するユーザ。

array $properties

変更するプロパティの連想配列。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_EXISTS_NOT | ユーザが存在しません。
FILE_PASSWD_E_INVALID_CHARS | 拡張プロパティの中にコロンが含まれています。

参照

File_Passwd_Unix::useMap() を参照ください。

File_Passwd_Unix::changePasswd() を参照ください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Unix::addUser() | 上に戻る | File_Passwd_Unix::changePasswd()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Unix::parse

PEAR マニュアル
前のページ 次のページ

File_Passwd_Unix::parse()

File_Passwd_Unix::parse() -- パスワードファイルをパースする

概要

mixed File_Passwd_Unix::parse ()

説明

unix パスワードファイルをパースします。（パッケージ開発者用）

たいていの場合は File_Passwd_Unix::load() の内部で行われます。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

パスワードファイルが不正な形式の場合には PEAR_Error FILE_PASSWD_E_INVALID_FORMAT を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Unix::File_Passwd_Unix() | 上に戻る | File_Passwd_Unix::save()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Unix::save

PEAR マニュアル
前のページ 次のページ

File_Passwd_Unix::save()

File_Passwd_Unix::save() -- 変更を保存する

概要

mixed File_Passwd_Unix::save ()

説明

変更を適用し、それをパスワードファイルに書き込みます。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_DIR_NOT_CREATED | パスワードファイルが存在すべきディレクトリが 作成できません。
FILE_PASSWD_E_FILE_NOT_OPENED | パスワードファイルを書き込みモードでオープンできません。
FILE_PASSWD_E_FILE_NOT_LOCKED | パスワードファイルを排他的にロックできません。
FILE_PASSWD_E_FILE_NOT_UNLOCKED | パスワードファイルのロックを解除できません。
FILE_PASSWD_E_FILE_NOT_CLOSED | パスワードファイルをクローズできません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Unix::parse() | 上に戻る | File_Passwd_Unix::addUser()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Unix::setMap

PEAR マニュアル
前のページ 次のページ

File_Passwd_Unix::setMap()

File_Passwd_Unix::setMap() -- 「名前マップ」を設定する

概要

mixed File_Passwd_Unix::setMap ([mixed $map = array()])

説明

ユーザの追加プロパティに使用される「名前マップ」を設定します。

このマップは、追加プロパティの連想配列の名前付けに使用されます。

パラメータ

array $map

「名前マップ」。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

指定された「名前マップ」が配列でない場合には PEAR_Error FILE_PASSWD_E_PARAM_MUST_BE_ARRAY, を返します。

参照

File_Passwd_Unix::useMap() を参照ください。

File_Passwd_Unix::getMap() を参照ください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Unix::getMap() | 上に戻る | File_Passwd_Unix::getMode()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Unix::setMode

PEAR マニュアル
前のページ 次のページ

File_Passwd_Unix::setMode()

File_Passwd_Unix::setMode() -- 暗号化形式を設定する

概要

mixed File_Passwd_Unix::setMode (string $mode)

説明

使用する暗号化形式を設定します。

サポートされる暗号化形式は 'des' および 'md5' です。

これらを表す定数 FILE_PASSWD_MD5 および FILE_PASSWD_DES が使用可能です。

パラメータ

string $mode

使用する暗号化形式。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

指定した暗号化形式がサポートされていない場合には PEAR_Error FILE_PASSWD_E_INVALID_ENC_MODE を返します。

参照

File_Passwd_Unix::listModes() を参照ください。

File_Passwd_Unix::getMode() を参照ください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Unix::getMode() | 上に戻る | File_Passwd_Unix::listModes()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Unix::staticAuth

PEAR マニュアル
前のページ 次のページ

File_Passwd_Unix::staticAuth()

File_Passwd_Unix::staticAuth() -- 高速な認証

概要

require_once 'File/Passwd/Unix.php';

mixed File_Passwd_Unix::staticAuth (string $file, string $user, string $pass, string $mode)

説明

静的なユーザ認証を行います。

パラメータ

string $file

パスワードファイルへのパス。

string $user

認証するユーザ名。

string $pass

プレーンテキスト形式のパスワード。

string $mode

des あるいは md5 。

返り値

認証された場合に TRUE、認証されなかった場合に FALSE、 認証に失敗した場合には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_NOT_EXISTS | パスワードファイルが存在しません。
FILE_PASSWD_E_FILE_NOT_OPENED | パスワードファイルを読み込みモードでオープンできません。
FILE_PASSWD_E_FILE_NOT_LOCKED | パスワードファイルを共有モードでロックできません。
FILE_PASSWD_E_FILE_NOT_UNLOCKED | パスワードファイルのロックを解除できません（認証されなかった場合のみ）。
FILE_PASSWD_E_FILE_NOT_CLOSED | パスワードファイルをクローズできません（認証に失敗した場合のみ）。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
File_Passwd | 上に戻る | File_Passwd_Unix::File_Passwd_Unix()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Unix::useMap

PEAR マニュアル
前のページ 次のページ

File_Passwd_Unix::useMap()

File_Passwd_Unix::useMap() -- 「名前マップ」を使用するかどうか

概要

boolean File_Passwd_Unix::useMap ([boolean $bool = null])

説明

追加プロパティの「名前マップ」を使用するかどうか。

デフォルトの Unix パスワードファイルは以下のような形式です。 user:password:user_id:group_id:gecos:home_dir:shell

ユーザ・パスワード以外のプロパティのためのデフォルトの 'name map' は以下のようになります。

  • uid

  • gid

  • gecos

  • home

  • shell

標準のマップの名前を変更したい場合は File_Passwd_Unix::setMap() を使用します。

パラメータ

boolean $bool

「名前マップ」を使用するかどうか。

返り値

値を設定した場合は TRUE を返します。 パラメータを指定せずにコールした場合は実際の設定値を返します。

参照

File_Passwd_Unix::getMap() を参照ください。

File_Passwd_Unix::setMap() を参照ください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Unix::verifyPasswd() | 上に戻る | File_Passwd_Unix::getMap()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd_Unix::verifyPasswd

PEAR マニュアル
前のページ 次のページ

File_Passwd_Unix::verifyPasswd()

File_Passwd_Unix::verifyPasswd() -- パスワードを検証する

概要

mixed File_Passwd_Unix::verifyPasswd (string $user, string $pass)

説明

ユーザのパスワードを検証します。

パラメータ

string $user

パスワードを検証するユーザ。

string $pass

検証するパスワード。

返り値

パスワードが一致した場合に TRUE 、一致しなかった場合に FALSE 、 検証に失敗した場合に PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_EXISTS_NOT | ユーザが存在しません。
FILE_PASSWD_E_INVALID_ENC_MODE | 暗号化形式がサポートされていません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_Passwd_Unix::changePasswd() | 上に戻る | File_Passwd_Unix::useMap()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd::apiVersion

PEAR マニュアル
前のページ 次のページ

File_Passwd::apiVersion()

File_Passwd::apiVersion() -- API のバージョンを取得する

概要

require_once 'File/Passwd.php';

string File_Passwd::apiVersion ()

説明

File_Passwd パッケージの API のバージョンを返します。

返り値

API のバージョン（現在は 1.0.0）を string で返します。

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
File_Passwd 定数 | 上に戻る | File_Passwd::factory()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd::factory

PEAR マニュアル
前のページ 次のページ

File_Passwd::factory()

File_Passwd::factory() -- 拡張クラスのファクトリ

概要

require_once 'File/Passwd.php';

object &File_Passwd::factory (string $class)

説明

指定された作業クラス（拡張クラス）を読み込みます。

  • Unix - 標準 Unix パスワードファイル用

  • CVS - CVS pserver パスワードファイル用

  • SMB - SMB サーバパスワードファイル用

  • Authbasic - AuthUserFiles 用

  • Authdigest - AuthDigestFiles 用

  • Custom - 独自形式のパスワードファイル用

パラメータ

string $class

File_Passwd で使用したい拡張クラス。

返り値

object File_Passwd 拡張クラスを返します。 失敗した場合は PEAR_Error を返します。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
File_Passwd::apiVersion() | 上に戻る | File_Passwd::staticAuth()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Passwd::staticAuth

PEAR マニュアル
前のページ 次のページ

File_Passwd::staticAuth()

File_Passwd::staticAuth() -- 高速な認証

概要

require_once 'File/Passwd.php';

mixed File_Passwd::staticAuth (string $type, string $file, string $user, string $pass [, mixed $opt = ''])

説明

静的なユーザ認証を行います。

この手法はそれなりに高速に動作します。ただ、MD5 暗号化された htpasswd 形式で使用される APR 互換の MD5 暗号化を使用する場合には そのようにはなりません。

ひとつの MD5 パスワードを生成するには、およそ 0.25 秒かかります!

$opt の内容は、 $type の設定内容によって変わります。

  • Smb:

    暗号化方式（NT あるいは LM）

  • Unix:

    暗号化方式（des あるいは md5）

  • Authbasic:

    暗号化方式（des、sha あるいは md5）

  • Authdigest:

    ユーザの所属する realm

  • Cvs:

    n/a（空要素）

  • Custom:

    2 つの要素（暗号化関数および区切り文字）からなる配列

パラメータ

string $type

Unix、Cvs、Smb、Authbasic あるいは Authdigest 。

string $file

パスワードファイルへのパス。

string $user

認証するユーザ名。

string $pass

プレーンテキスト形式のパスワード。

mixed $opt

  • Smb:

    nt | lm

  • Unix:

    des | md5

  • Authbasic:

    des | sha | md5

  • Authdigest:

    ユーザが所属する realm

  • Cvs:

    n/a（空要素）

  • Custom:

    暗号化関数（encryption）および区切り文字 （delimiter）の 2 つの要素をもつ配列

返り値

認証された場合に TRUE 、認証されなかった場合に FALSE 、 認証に失敗した場合には PEAR_Error を返します。

表 37-1PEAR_Error の値

エラーコード | 概要
FILE_PASSWD_E_NOT_EXISTS | パスワードファイルが存在しません。
FILE_PASSWD_E_FILE_NOT_OPENED | パスワードファイルを読み込みモードでオープンできません。
FILE_PASSWD_E_FILE_NOT_LOCKED | パスワードファイルを共有モードでロックできません。
FILE_PASSWD_E_FILE_NOT_UNLOCKED | パスワードファイルのロックを解除できません（認証されなかった場合のみ）。
FILE_PASSWD_E_FILE_NOT_CLOSED | パスワードファイルをクローズできません（認証に失敗した場合のみ）。
FILE_PASSWD_E_UNDEFINED | クラス/ファイルが読み込めません。
FILE_PASSWD_E_INVALID_ENC_MODE | 指定された暗号化形式はサポートされていません。
FILE_PASSWD_E_USER_NOT_IN_REALM | ユーザはこの realm に存在しません（File_Passwd_Authdigest のみ）。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
File_Passwd::factory() | 上に戻る | MP3_Id

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 --

File_Passwd の新機能

新しい File_Passwd パッケージには、 さまざまな種類のパスワードファイルを扱う機能があります。

現在サポートしているパスワードファイル形式. Unix、CVS、SMB、AuthUserFile、AuthDigestFile および独自フォーマットのパスワードファイルをサポートします。

ファイルフォーマット

passwd スタイルとは、次のような形式のファイルです。
ユーザ<区切り文字>パスワード

区切り文字は、通常はコロンです。

新しい File_Passwd_Custom クラスを使用すると、 区切り文字を変更することができます。しかしその際は、 パスワードファイルのカラムにその区切り文字が含まれてはいけないことに注意しましょう。

前のページ | ホーム | 次のページ
File_Passwd | 上に戻る | MP3_Id

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MP3_Id

目次
定数 -- MP3_Id によって定義され利用される定数
MP3_Id::MP3_Id() -- コンストラクタ
MP3_Id::copy() -- copy the tags of another instance
MP3_Id::genres() -- ジャンルリストを取得する
MP3_Id::getGenre() -- 番号から、ジャンル名を返す
MP3_Id::getGenreNo() -- get number of genre
MP3_Id::getTag() -- タグの値を取得する
MP3_Id::read() -- ファイルを読み込み、解析する
MP3_Id::remove() -- タグを取り除く
MP3_Id::setTag() -- タグの内容をセットする
MP3_Id::study() -- MPEG フレーム情報を取得するために、特別な操作を行う
MP3_Id::write() -- 変更したタグを保存します。

このパッケージは、MP3 ファイルの IDv1 情報タグを読み書きするメソッドを提供します。

前のページ | ホーム | 次のページ
File_Passwd | 上に戻る | 定数

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MP3_Id::copy

PEAR マニュアル
前のページ 次のページ

MP3_Id::copy()

MP3_Id::copy() -- copy the tags of another instance

概要

require_once 'Id.php';

void MP3_Id::copy (string $from)

説明

Sets the ID3 tags to the same as the tags in $from

パラメータ

string $from

Name of the variable storing an other instance of MP3_Id

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
MP3_Id::MP3_Id() | 上に戻る | MP3_Id::genres()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MP3_Id::genres

PEAR マニュアル
前のページ 次のページ

MP3_Id::genres()

MP3_Id::genres() -- ジャンルリストを取得する

概要

require_once 'Id.php';

array MP3_Id::genres ()

説明

ジャンル番号と名前のリストを返します。

返り値

array - list of genres

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
MP3_Id::copy() | 上に戻る | MP3_Id::getGenre()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MP3_Id::getGenre

PEAR マニュアル
前のページ 次のページ

MP3_Id::getGenre()

MP3_Id::getGenre() -- 番号から、ジャンル名を返す

概要

require_once 'Id.php';

mixed MP3_Id::getGenre (integer $genreno)

説明

ジャンル番号に対応するジャンル名を返します。 番号が指定されなかった場合は、 ファイルの中から探したジャンル番号を使用します。

パラメータ

integer $genreno

ジャンル番号。

返り値

mixed ジャンルが見つからなかった場合に FALSE、 それ以外の場合に文字列を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
MP3_Id::genres() | 上に戻る | MP3_Id::getGenreNo()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MP3_Id::getGenreNo

PEAR マニュアル
前のページ 次のページ

MP3_Id::getGenreNo()

MP3_Id::getGenreNo() -- get number of genre

概要

require_once 'Id.php';

integer MP3_Id::getGenreNo (string $genre [, integer $default = 0xff])

説明

Get the number of a genre.

パラメータ

string $genre

Name of the genre

integer $default

The value to return in case of genre not found

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
MP3_Id::getGenre() | 上に戻る | MP3_Id::getTag()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MP3_Id::getTag

PEAR マニュアル
前のページ 次のページ

MP3_Id::getTag()

MP3_Id::getTag() -- タグの値を取得する

概要

require_once 'Id.php';

mixed MP3_Id::getTag (string $name [, mixed $default])

説明

タグの値を取得します。

パラメータ

string $name

取得するタグ名

mixed $default

タグが存在しない場合の返り値

返り値

フィールドの値を返します。

参照

MP3_Id::setTag()

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
MP3_Id::getGenreNo() | 上に戻る | MP3_Id::read()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MP3_Id::MP3_Id

PEAR マニュアル
前のページ 次のページ

MP3_Id::MP3_Id()

MP3_Id::MP3_Id() -- コンストラクタ

概要

require_once 'Id.php';

void MP3_Id::MP3_Id ([boolean $study = FALSE])

説明

Constructor

パラメータ

boolean $study

深くファイルを読み取ることを可能にする。 (実行時間が増加します！)

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
定数 | 上に戻る | MP3_Id::copy()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MP3_Id::read

PEAR マニュアル
前のページ 次のページ

MP3_Id::read()

MP3_Id::read() -- ファイルを読み込み、解析する

概要

require_once 'Id.php';

void MP3_Id::read (string $file)

説明

与えられたファイルを読み込み、解析します。

パラメータ

string $file

解析するファイル名

例外・エラー

表 37-1PEAR_Error の値

Error code | Error message | Reason | Solution
PEAR_MP3_ID_FNO | "Unable to open $file" | 与えられたファイル名を開くことができなかった。 | ファイルは現在書き込み禁止か存在していない。
PEAR_MP3_ID_RE | "Unable to see to end - 128 of $file" or "Unable to see to end of $file" | 読み込みエラーが発生した。 | ファイルが短か過ぎるか存在しません - MP3 ファイルではないか壊れています。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
MP3_Id::getTag() | 上に戻る | MP3_Id::remove()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MP3_Id::remove

PEAR マニュアル
前のページ 次のページ

MP3_Id::remove()

MP3_Id::remove() -- タグを取り除く

概要

require_once 'Id.php';

void MP3_Id::remove ([boolean $id3v1 = TRUE [, boolean $id3v2 = TRUE]])

説明

ファイルから全てのタグを取り除く。

パラメータ

boolean $id3v1

TRUE to remove tags

boolean $id3v2

unused

例外・エラー

表 37-1PEAR_Error の値

Error code | Error message | Reason | Solution
PEAR_MP3_ID_FNO | "Unable to open $file" | 与えられたファイル名を開くことができなかった。 | ファイルは現在書き込み禁止か存在していない。
PEAR_MP3_ID_RE | "Unable to see to end - 128 of $file" or "Unable to see to end of $file" | 読み込みエラーが発生した。 | ファイルが短か過ぎるか存在しません - MP3 ファイルではないか壊れています。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
MP3_Id::read() | 上に戻る | MP3_Id::setTag()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MP3_Id::setTag

PEAR マニュアル
前のページ 次のページ

MP3_Id::setTag()

MP3_Id::setTag() -- タグの内容をセットする

概要

require_once 'Id.php';

void MP3_Id::setTag (mixed $name, mixed $value)

説明

フィールドを設定します。

表 37-1タグの名前

タグ | 意味
name | コンテンツのタイトル
artists | バンドやアーティストの名前
album | アルバムの名前
year | アルバムや曲が発表された年
comment | 曲のコメント
track | トラック番号
genre | 曲のジャンル
genreno | ジャンル番号

パラメータ

mixed $name

設定するタグの名前。あるいはフィールド名をキーとする連想配列。

mixed $value

設定する値。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
MP3_Id::remove() | 上に戻る | MP3_Id::study()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MP3_Id::study

PEAR マニュアル
前のページ 次のページ

MP3_Id::study()

MP3_Id::study() -- MPEG フレーム情報を取得するために、特別な操作を行う

概要

require_once 'Id.php';

void MP3_Id::study (void)

説明

MPEG フレーム情報を取得するための特別な操作を行います。

例外・エラー

表 37-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応
PEAR_MP3_ID_NOMP3 | "No mpeg frame found" | ファイル中に MP3 ファイル構造体がありません。 | このファイルは MP3 ファイルではありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
MP3_Id::setTag() | 上に戻る | MP3_Id::write()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


MP3_Id::write

PEAR マニュアル
前のページ 次のページ

MP3_Id::write()

MP3_Id::write() -- 変更したタグを保存します。

概要

require_once 'Id.php';

void MP3_Id::write ([boolean $v1 = TRUE])

説明

ファイルのタグを更新します。

パラメータ

boolean $v1

if TRUE update/create an Version 1-tag on the file

例外・エラー

表 37-1PEAR_Error の値

Error code | Error message | Reason | Solution
PEAR_MP3_ID_FNO | "Unable to open $file" | The provide file name could not be opened | The file is currently write protected or doesn't exists.
PEAR_MP3_ID_RE | "Unable to see to end - 128 of $file" or "Unable to see to end of $file" | A read error occured | The file is too short or empty - not a MP3 file or a corrupted one.

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
MP3_Id::study() | 上に戻る | Spreadsheet_Excel_Writer

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


定数

定数 -- MP3_Id によって定義され利用される定数

All Constants

Id.php で定義される定数

表 37-1Constants

Name | Value | Meaning
PEAR_MP3_ID_FNO | 1 | Error code: file not found
PEAR_MP3_ID_NOMP3 | 4 | Error code: file is not a MP3 file
PEAR_MP3_ID_RE | 2 | Error code: read error
PEAR_MP3_ID_TNF | 3 | Error code: Tag not found

前のページ | ホーム | 次のページ
MP3_Id | 上に戻る | MP3_Id::MP3_Id()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Spreadsheet_Excel_Writer

目次
導入 -- Excel ファイルを生成する方法
書式設定のチュートリアル -- スプレッドシート内のセルの書式を設定する方法
Workbook::close -- ワークブックの作成終了時のメソッドを呼び出す
Workbook::&addWorksheet -- Excel ワークブックに新しいワークシートを追加する
Workbook::&addFormat -- Excel ワークブックに新しい書式を追加する
Workbook::&setTempDir -- OLE ファイルを保存するために使用する一時ディレクトリを設定する
Workbook::setCustomColor -- カラーパレット中の RGB 要素を変更する
Worksheet::getName -- ワークシート名を取得する
Worksheet::setInputEncoding -- さまざまな文字セットで書き込みできるようにする
Worksheet::select -- 複数のワークシートからこのワークシートを選択する
Worksheet::activate -- このワークシートをアクティブにする
Worksheet::setFirstSheet -- このワークシートを最初に見えるシートにする(必須)
Worksheet::protect -- ワークシートの保護フラグを設定する
Worksheet::setColumn -- 単一の列、または指定した範囲の列の幅を設定する
Worksheet::setSelection -- ワークシート中の単一または複数のセルを選択する
Worksheet::freezePanes -- ウィンドウ枠を固定する
Worksheet::thawPanes -- ウィンドウ枠の固定を解除する
Worksheet::setPortrait -- ページの方向を縦に設定する
Worksheet::setLandscape -- ページの方向を横に設定する
Worksheet::setPaper -- 用紙設定をする (例えば 1 が US レター、9 が A4 サイズ)
Worksheet::setHeader -- ページヘッダの見出しおよびオプションで余白を設定する
Worksheet::setFooter -- ページフッタの見出しおよびオプションで余白を設定する
Worksheet::centerHorizontally -- ページを横方向に中央揃えする
Worksheet::centerVertically -- ページを縦方向に中央揃えする
Worksheet::setMargins -- すべてのページ余白を、インチで指定した同じ値に設定する
Worksheet::setMargins_LR -- 左右のページ余白を、インチで指定した同じ値に設定する
Worksheet::setMargins_TB -- 上下のページ余白を、インチで指定した同じ値に設定する
Worksheet::setMarginLeft -- 左の余白をインチで設定する
Worksheet::setMarginRight -- 右の余白をインチで設定する
Worksheet::setMarginTop -- 上の余白をインチで設定する
Worksheet::setMarginBottom -- 下の余白をインチで設定する
Worksheet::repeatRows -- 印刷時に各ページの上側に表示する行を設定する
Worksheet::repeatColumns -- 印刷時に各ページの左側に表示する列を設定する
Worksheet::printArea -- 各ワークシートの印刷範囲を設定する
Worksheet::hideGridlines -- 印刷時に枠線を非表示にするよう設定する
Worksheet::printRowColHeaders -- 印刷時の行見出し・列見出しを設定する
Worksheet::fitToPages -- 縦横のページ数を保存する
Worksheet::setHPagebreaks -- ワークシートに水平方向の改ページを挿入する (印刷用)
Worksheet::setVPagebreaks -- ワークシートに垂直方向の改ページを挿入する (印刷用)
Worksheet::setZoom -- ワークシートの「ズーム」を設定する
Worksheet::setPrintScale -- 印刷時の拡大率を設定する
Worksheet::write -- 受け取った内容に応じて、適切な書き込みメソッドを呼び出す
Worksheet::writeNumber -- 指定した行・列 (ゼロから数える) に数値を書き込む
Worksheet::writeString -- 指定した行・列 (ゼロから数える) に文字列を書き込む
Worksheet::writeNote -- 指定した行・列に関連付けるコメントを書き込む
Worksheet::writeBlank -- 指定した行・列 (ゼロから数える) に空のセルを書き込む
Worksheet::writeFormula -- 指定した行・列 (ゼロから数える) に数式を書き込む
Worksheet::writeUrl -- ハイパーリンクを書き込む
Worksheet::setRow -- 行の高さおよび書式を設定する
Worksheet::mergeCells -- Excel97/2000 用メソッド
Worksheet::insertBitmap -- 24 ビットのビットマップ画像をワークシートに挿入する
Worksheet::setOutline -- アウトラインおよびグループ化のプロパティを設定する
Spreadsheet_Excel_Writer::Spreadsheet_Excel_Writer -- ワークブックを作成するコンストラクタ
Spreadsheet_Excel_Writer::send -- Excel ファイル用の HTTP ヘッダを送信する
Spreadsheet_Excel_Writer::rowcolToCell -- 式を書くためのユーティリティ関数
Format::setAlign -- セルの配置を設定する
Format::setVAlign -- セルの配置を設定する
Format::setHAlign -- セルの配置を設定する
Format::setMerge -- 直感的でない setAlign('merge') に代わるエイリアス
Format::setBold -- テキストに太字を設定する
Format::setBottom -- セルの下罫線の幅を設定する
Format::setTop -- セルの上罫線の幅を設定する
Format::setLeft -- セルの左罫線の幅を設定する
Format::setRight -- セルの右罫線の幅を設定する
Format::setBorder -- 同じスタイルをセルの罫線に設定する
Format::setBorderColor -- すべてのセルの罫線を同じ色に設定する
Format::setBottomColor -- セルの下罫線の色を設定する
Format::setTopColor -- セルの上罫線の色を設定する
Format::setLeftColor -- セルの左罫線の色を設定する
Format::setRightColor -- セルの右罫線の色を設定する
Format::setFgColor -- セルの前景色を設定する
Format::setBgColor -- セルの背景色を設定する
Format::setColor -- セルの内容の色を設定する
Format::setPattern -- セルの網掛けパターン属性を設定する
Format::setUnderline -- テキストに下線を設定する
Format::setItalic -- フォントスタイルを斜体に設定する
Format::setSize -- フォントサイズを設定する
Format::setTextWrap -- テキストの折り返しを設定する
Format::setTextRotation -- テキストの方向を設定する
Format::setNumFormat -- 数値の表示形式を設定する
Format::setStrikeOut -- フォントに取り消し線を設定する
Format::setOutLine -- フォントのアウトラインを設定する
Format::setShadow -- フォントの影を設定する
Format::setScript -- テキストの字体を設定する
Format::setFontFamily -- フォントファミリを設定する

Excel スプレッドシートを作成するパッケージを提供します。

前のページ | ホーム | 次のページ
MP3_Id::write() | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- Excel ファイルを生成する方法

Spreadsheet_Excel_Writer って何?

Spreadsheet_Excel_Writer は、 COM コンポーネントを必要とせずに Excel ファイルを作成するためのツールです。 Spreadsheet_Excel_Writer の現行版によって生成されたファイルは、 Excel5(BIFF5) フォーマットに相当します。 したがって、そのバージョンのエクセルの持つ機能はすべて使用可能です (ただし、それ以降のバージョンの新機能は利用できません)。

使用法

Spreadsheet_Excel_Writer の一般的な使用法は、 膨大な (あるいはそれほどでもない) 量の情報をスプレッドシート形式に まとめ、そこらじゅうにあふれている Excel (あるいは OpenOffice) のような表計算プログラムで処理しやすくすることです。

それでは、実際どのように使用するのかを見てみましょう。

例 37-1典型的な使用法

<?php
require_once 'Spreadsheet/Excel/Writer.php';

// ワークブックを作成します
$workbook = new Spreadsheet_Excel_Writer();

// HTTP ヘッダを送信します
$workbook->send('test.xls');

// ワークシートを作成します
$worksheet =& $workbook->addWorksheet('My first worksheet');

// データを書き込みます
$worksheet->write(0, 0, 'Name');
$worksheet->write(0, 1, 'Age');
$worksheet->write(1, 0, 'John Smith');
$worksheet->write(1, 1, 30);
$worksheet->write(2, 0, 'Johann Schmidt');
$worksheet->write(2, 1, 31);
$worksheet->write(3, 0, 'Juan Herrera');
$worksheet->write(3, 1, 32);

// ファイルを送信します
$workbook->close();
?>

ワークシートの前に、まずワークブックを作成したということに注意しましょう。 ワークシートはすべてワークブック内に含まれています。 また、ひとつのワークブックの中には複数のワークシートが含まれているかもしれません。

Spreadsheet_Excel_Writer を使用するプログラムを 書く際に注意すべき点がもうひとつあります。それは、ワークシートを 作成する際にアンパサンド符号 (&) を使用するということです。 アンパサンドは、ワークシートオブジェクトをコピーするのではなく その参照を使用するということを意味します。もし何のことだか さっぱりわからないとしても心配することはありません。 ワークシートを作成するために addWorksheet() をコールしたり 書式設定を作成するために addFormat() をコールしたりする際には必ずアンパサンドを使用する、とだけ 覚えておきましょう。

ファイルへの保存

さらに次の行が気になる人もいるでしょう。
// HTTP ヘッダを送信します
$workbook->send('test.xls');
これは、ブラウザにスプレッドシートを送信しているということを意味します。 単にスプレッドシートをマシン上に保存したいだけの場合には どうすればいいのでしょうか。そのためには、単にごの行を省略し、 その代わりに有効なファイルパスをワークブックのコンストラクタに 与えればよいのです。

たとえば、さきほどの例で作成したスプレッドシートを 'test.xls' という名前で保存したければ、以下のように記述します。

例 37-2ファイルへの保存

<?php
require_once 'Spreadsheet/Excel/Writer.php';

// ファイルへのパスをここで指定します
$workbook = new Spreadsheet_Excel_Writer('test.xls');

$worksheet =& $workbook->addWorksheet('My first worksheet');

$worksheet->write(0, 0, 'Name');
$worksheet->write(0, 1, 'Age');
$worksheet->write(1, 0, 'John Smith');
$worksheet->write(1, 1, 30);
$worksheet->write(2, 0, 'Johann Schmidt');
$worksheet->write(2, 1, 31);
$worksheet->write(3, 0, 'Juan Herrera');
$worksheet->write(3, 1, 32);

// この場合でも、ワークブックを明示的に閉じる必要があります
$workbook->close();
?>

その他の教本

Spreadsheet_Excel_Writer の書式設定 (フォント・セルの色・文字の配置など) に関して学習したければ、 ここでフォーマット教本をチェックすることができます。

前のページ | ホーム | 次のページ
Spreadsheet_Excel_Writer | 上に戻る | 書式設定のチュートリアル

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


書式設定のチュートリアル

書式設定のチュートリアル -- スプレッドシート内のセルの書式を設定する方法

書式とは?

書式とは、Spreadsheet_Excel_Writer_Format 型の オブジェクトのことです。スプレッドシート内のセルに書式を適用することで、 書式のプロパティ (テキスト配置・背景色・フォントの色など…) を引き継ぐことができます。

使用法

書式を直接 new で作成することはできません。 書式を作成するには、ワークブックの addFormat() メソッドを使用する必要が あります。このメソッドは、ワークブックに書式を関連付けます (関連づけた書式を別のワークブックで使用することはできません)。

addFormat() の使用法を見てみましょう。

例 37-1addFormat の使用法

<?php
require_once 'Spreadsheet/Excel/Writer.php';

// ワークブックを作成します。
$workbook = new Spreadsheet_Excel_Writer();

// 書式を作成します。
$format_bold =& $workbook->addFormat();
$format_bold->setBold();

?>

ここでは、太字の書式を作成しました。書式を作成する際にアンパサンド符号 (&) が使われていることに注意しましょう。このようにしなければ、 その後にする書式プロパティはすべて無視されます。

何か有用なものを作成する

書式を作成してみたものの、まだそれを使用していません。これはまずいですね。 さあ、この書式を使ってみましょう。

通常のデータが埋められたスプレッドシートを作成したとしましょう。 きれいに出来上がった作品を誇らしげに上司に見せに行ったときに、 恐れていたことが起こりました。

いやな上司 - ふむ、悪くないね。

あなた - ええ。指示されたとおりの合計欄を 追加しました。

いやな上司 - ふむ、知っているとは思うが、 このスプレッドシートはいろんなお客様がご利用になるんだよね……

あなた - それで……

いやな上司 - ふむ、この辺のヘッダの スタイルをちょっと変えてみたらどうだろう?

あなた - ……

もちろん、ことはヘッダだけにとどまらないでしょう。「ここの表題は センタリングしてくれないか?」「このセルをあっちのほうと連結して ほしいんだけど?」「このへんの表題には会社のイメージカラーを 使ってみたらどうだろう?」

これらの状況に対応するための方法はいくつかありますが、この チュートリアルでは、仕事をこなすためにその中のひとつだけを 取り上げます。

それでは、DotCom.com 用のスプレッドシートを作ってみましょう。

例 37-2最初の例

<?php
require_once 'Spreadsheet/Excel/Writer.php';
$workbook = new Spreadsheet_Excel_Writer();

$format_bold =& $workbook->addFormat();
$format_bold->setBold();

// データを書き込むためのワークシートが必要です。
$worksheet =& $workbook->addWorksheet();
// これが表題です。
$worksheet->write(0, 0, "Dotcom.Com の収益", $format_bold);
// そしてこれがデータです。
$worksheet->write(0, 0, 0);

?>

さあ、あちこちの投資家たちが DotCom.com に投資したいと連絡して来ました。 でもちょっと待ってください。彼らはそんじょそこらの投資家ではありません。 たまたまインターネットで見かけたスタートアップ企業にそう簡単に貴重なお金を 投資することはないでしょう。というわけで、もう少し会社の色を出してみましょう!

例 37-32 番目の例

<?php
require_once 'Spreadsheet/Excel/Writer.php';
$workbook = new Spreadsheet_Excel_Writer();

$format_bold =& $workbook->addFormat();
$format_bold->setBold();

$format_title =& $workbook->addFormat();
$format_title->setBold();
$format_title->setColor('yellow');
$format_title->setPattern(1);
$format_title->setFgColor('blue');

$worksheet =& $workbook->addWorksheet();
$worksheet->write(0, 0, "Dotcom.Com の四半期ごとの収益", $format_title);
// もっといろいろな数字を載せましょう
$worksheet->write(1, 0, "四半期", $format_bold);
$worksheet->write(1, 1, "収益", $format_bold);
$worksheet->write(2, 0, "Q1");
$worksheet->write(2, 1, 0);
$worksheet->write(3, 0, "Q2");
$worksheet->write(3, 1, 0);

$workbook->send('test.xls');
$workbook->close();
?>

セルの連結

先ほどの例を試してみるとわかるように、表題を正しく表示するには 何個かのセルが必要です。しかし、書式指定は最初のセルにしか 効いていません。そのため、表題の見栄えがあまりよくありません。

これを何とかするにはどうすればいいでしょう? そう、上司にこう言うのです。 「私にはきれいに表示されているように見えますよ。いちど眼科に行ったほうが いいのではないですか?」それがいやなら、表題がいくつかのセルに またがって表示されるよう、セルを連結しましょう。

そのためには、引数に 'merge' を指定して setAlign() メソッドを使用します。そして 空のセルをいくつか用意することで、表題セルがそれを背景として「使用」 できるようにします (将来のバージョンの Spreadsheet_Excel_Writer では、これを もうすこしうまいやり方でできるようにする予定です)。

例で示したスクリプトにセルの連結を適用するには、このようにします。

例 37-4セルの連結

<?php
require_once 'Spreadsheet/Excel/Writer.php';
$workbook = new Spreadsheet_Excel_Writer();

$format_bold =& $workbook->addFormat();
$format_bold->setBold();

$format_title =& $workbook->addFormat();
$format_title->setBold();
$format_title->setColor('yellow');
$format_title->setPattern(1);
$format_title->setFgColor('blue');
// 連結します。
$format_title->setAlign('merge');

$worksheet =& $workbook->addWorksheet();
$worksheet->write(0, 0, "Dotcom.Com の四半期ごとの収益", $format_title);
// 空のセルの見栄えをよりよくします。
$worksheet->write(0, 1, "", $format_title);
$worksheet->write(0, 2, "", $format_title);
$worksheet->write(1, 0, "四半期", $format_bold);
$worksheet->write(1, 1, "収益", $format_bold);
$worksheet->write(2, 0, "Q1");
$worksheet->write(2, 1, 0);
$worksheet->write(3, 0, "Q2");
$worksheet->write(3, 1, 0);

$workbook->send('test.xls');
$workbook->close();
?>
前のページ | ホーム | 次のページ
導入 | 上に戻る | Workbook::close

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setAlign

Format::setAlign -- セルの配置を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setAlign (string $location)

説明

セルの配置を設定します。

パラメータ

  • string $location - セルの配置。

    横位置 (ひとつ選択します)。 left、center、 right、fill、 justify、merge、 equal_space。

    縦位置 (ひとつ選択します)。 top、vcenter、 bottom、vjustify、 vequal_space。

    縦・横の両方の配置を指定するには、このメソッドを 2 回コールします。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setAlign() の使用法

require_once 'Spreadsheet/Excel/Writer.php';

$workbook = new Spreadsheet_Excel_Writer();
$worksheet =& $workbook->addWorksheet();

// テキストを上詰めにします
$format_top =& $workbook->addFormat();
$format_top->setAlign('top');
$format_top->setTextWrap(1);

// テキストの横位置を中央揃えにします
$format_center =& $workbook->addFormat();
$format_center->setAlign('center');

// テキストを上詰めにし、横位置を中央揃えにします
$format_top_center =& $workbook->addFormat();
$format_top_center->setAlign('top');
$format_top_center->setAlign('center');

$worksheet->write(0, 0, 'On top of the world!',
                  $format_top);
$worksheet->write(1, 0, 'c', $format_center);
$worksheet->write(2, 0, 'tc', $format_top_center);

$workbook->send('align.xls');
$workbook->close();
前のページ | ホーム | 次のページ
Spreadsheet_Excel_Writer::rowcolToCell | 上に戻る | Format::setVAlign

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setBgColor

Format::setBgColor -- セルの背景色を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setBgColor (mixed $color)

説明

セルの"背景色"を設定します。

"背景色"という言い方には語弊があります。 ここでは、"背景"とは セルの背景の最下位レイヤのことを意味します。

このメソッドが役に立つのは、 setPattern() メソッドで背景パターンを 作成した場合のみです。普通は setFgColor() メソッドを使用することのほうが 多くなるでしょう。

" 背景色・前景色とパターンの関係" での例が非常に参考になります。

パラメータ

  • mixed $color - 文字列 ('blue' など) か、数値 (範囲は 8 から 63) のどちらかです。

    詳細な情報については、マニュアルの "Using 色の使用法" を参照ください。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setBgColor() の使用法

require_once 'Spreadsheet/Excel/Writer.php';

$workbook = new Spreadsheet_Excel_Writer();
$worksheet =& $workbook->addWorksheet('testing bg color');
$worksheet->setRow(1, 30);

$format6 =& $workbook->addFormat();
$format6->setBgColor('green');
$format6->setPattern(6);
$worksheet->write(1, 1, 'the bg', $format6);

$workbook->send('setBgColor.xls');
$workbook->close();

参照

setFgColor(),

setPattern(),

setColor()

前のページ | ホーム | 次のページ
Format::setFgColor | 上に戻る | Format::setColor

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setBold

Format::setBold -- テキストに太字を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setBold ([integer $weight=1])

説明

テキストに太字を設定します。太さの幅は 100 から 1000 で、0 (400) が通常、1 (700) が太字です。

パラメータ

  • integer $weight - テキストの重みです。 0 は 400 (通常のテキスト) に割り当てられ、 1 は 700 (太文字のテキスト) に割り当てられています。 有効な範囲は 100 から 1000 までです。 このパラメータはオプションで、デフォルトは 1 (太字) です。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setBold() の使用法

前のページ | ホーム | 次のページ
Format::setMerge | 上に戻る | Format::setBottom

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setBorder

Format::setBorder -- 同じスタイルをセルの罫線に設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setBorder (integer $style)

説明

同じスタイルをセルの罫線に設定します。

パラメータ

  • integer $style - セルの総ての罫線のスタイルです。 1 が通常の罫線、2 が太罫線になります。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setBorder() の使用法

前のページ | ホーム | 次のページ
Format::setRight | 上に戻る | Format::setBorderColor

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setBorderColor

Format::setBorderColor -- すべてのセルの罫線を同じ色に設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setBorderColor (mixed $color)

説明

すべてのセルの罫線を同じ色に設定します。

パラメータ

  • mixed $color - 設定する色。文字列 ('blue' など) あるいは整数値 (範囲は 8 から 63) で指定します。

    詳細な情報は、マニュアルの " 色を使用する" を参照ください。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setBorderColor() の使用法

require_once 'Spreadsheet/Excel/Writer.php';

$workbook = new Spreadsheet_Excel_Writer();
$worksheet =& $workbook->addWorksheet();
// すべてのプロパティを一気に設定することが可能です
$upper_right_side_brick =& $workbook->addFormat(array('right' => 5, 'top' => 5, 'size' => 15,
                                                      'pattern' => 1, 'bordercolor' => 'blue',
                                                      'fgcolor' => 'red'));
// あるいは、すべてのプロパティをひとつづつ設定していくことも可能です
$upper_left_side_brick =& $workbook->addFormat();
$upper_left_side_brick->setLeft(5);
$upper_left_side_brick->setTop(5);
$upper_left_side_brick->setSize(15);
$upper_left_side_brick->setPattern(1);
$upper_left_side_brick->setBorderColor('blue');
$upper_left_side_brick->setFgColor('red');

$lower_right_side_brick =& $workbook->addFormat(array('right' => 5, 'bottom' => 5, 'size' => 15,
                                                      'pattern' => 1, 'bordercolor' => 'blue',
                                                      'fgcolor' => 'red'));
$lower_left_side_brick =& $workbook->addFormat(array('left' => 5, 'bottom' => 5, 'size' => 15,
                                                     'pattern' => 1, 'bordercolor' => 'blue',
                                                     'fgcolor' => 'red'));

$worksheet->setColumn(0, 20, 6);

// 空
$sky =& $workbook->addFormat(array('fgcolor' => 'cyan', 'pattern' => 1, 'size' => 15));
for ($i = 0; $i <= 10; $i++)
{
    for ($j = 0; $j < 20; $j++) {
        $worksheet->writeBlank($i, $j, $sky);
    }
}

// 雲
$cloud =& $workbook->addFormat(array('fgcolor' => 'white', 'pattern' => 1, 'size' => 15));
$worksheet->writeBlank(5, 7, $cloud);
$worksheet->writeBlank(4, 8, $cloud);
$worksheet->writeBlank(5, 8, $cloud);
$worksheet->writeBlank(6, 8, $cloud);
$worksheet->writeBlank(4, 9, $cloud);
$worksheet->writeBlank(5, 9, $cloud);
$worksheet->writeBlank(5, 10, $cloud);

// レンガ
for ($j = 0; $j < 20; $j++)
{
    for ($i = 5; $i <= 11; $i++)
    {
        if (($i + $j)%2 == 1) // 右側
        {
            $worksheet->writeBlank(2*$i, $j, $upper_right_side_brick);
            $worksheet->writeBlank(2*$i + 1, $j, $lower_right_side_brick);
        }
        else // 左側
        {
            $worksheet->writeBlank(2*$i, $j, $upper_left_side_brick);
            $worksheet->writeBlank(2*$i + 1, $j, $lower_left_side_brick);
        }
    }
}

// この Excel アートを台無しにしないために、枠線を非表示にします。
$worksheet->hideGridLines();

$workbook->send('bricks.xls');
$workbook->close();
前のページ | ホーム | 次のページ
Format::setBorder | 上に戻る | Format::setBottomColor

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setBottom

Format::setBottom -- セルの下罫線の幅を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setBottom (integer $style)

説明

セルの下罫線の幅を設定します。

パラメータ

  • integer $style - セルの罫線のスタイルです。 1 が通常の罫線、2 が太罫線になります。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setBottom() の使用法

require_once 'Spreadsheet/Excel/Writer.php';

$workbook = new Spreadsheet_Excel_Writer();
$worksheet =& $workbook->addWorksheet();
// すべてのプロパティを一気に設定することが可能です
$upper_right_side_brick =& $workbook->addFormat(array('right' => 5, 'top' => 5, 'size' => 15,
                                                      'pattern' => 1, 'bordercolor' => 'blue',
                                                      'fgcolor' => 'red'));
// あるいは、すべてのプロパティをひとつづつ設定していくことも可能です
$upper_left_side_brick =& $workbook->addFormat();
$upper_left_side_brick->setLeft(5);
$upper_left_side_brick->setTop(5);
$upper_left_side_brick->setSize(15);
$upper_left_side_brick->setPattern(1);
$upper_left_side_brick->setBorderColor('blue');
$upper_left_side_brick->setFgColor('red');

$lower_right_side_brick =& $workbook->addFormat(array('right' => 5, 'bottom' => 5, 'size' => 15,
                                                      'pattern' => 1, 'bordercolor' => 'blue',
                                                      'fgcolor' => 'red'));
$lower_left_side_brick =& $workbook->addFormat(array('left' => 5, 'bottom' => 5, 'size' => 15,
                                                     'pattern' => 1, 'bordercolor' => 'blue',
                                                     'fgcolor' => 'red'));

$worksheet->setColumn(0, 20, 6);

// 空
$sky =& $workbook->addFormat(array('fgcolor' => 'cyan', 'pattern' => 1, 'size' => 15));
for ($i = 0; $i <= 10; $i++)
{
    for ($j = 0; $j < 20; $j++) {
        $worksheet->writeBlank($i, $j, $sky);
    }
}

// 雲
$cloud =& $workbook->addFormat(array('fgcolor' => 'white', 'pattern' => 1, 'size' => 15));
$worksheet->writeBlank(5, 7, $cloud);
$worksheet->writeBlank(4, 8, $cloud);
$worksheet->writeBlank(5, 8, $cloud);
$worksheet->writeBlank(6, 8, $cloud);
$worksheet->writeBlank(4, 9, $cloud);
$worksheet->writeBlank(5, 9, $cloud);
$worksheet->writeBlank(5, 10, $cloud);

// レンガ
for ($j = 0; $j < 20; $j++)
{
    for ($i = 5; $i <= 11; $i++)
    {
        if (($i + $j)%2 == 1) // 右側
        {
            $worksheet->writeBlank(2*$i, $j, $upper_right_side_brick);
            $worksheet->writeBlank(2*$i + 1, $j, $lower_right_side_brick);
        }
        else // 左側
        {
            $worksheet->writeBlank(2*$i, $j, $upper_left_side_brick);
            $worksheet->writeBlank(2*$i + 1, $j, $lower_left_side_brick);
        }
    }
}

// この Excel アートを台無しにしないために、枠線を非表示にします。
$worksheet->hideGridLines();

$workbook->send('bricks.xls');
$workbook->close();
前のページ | ホーム | 次のページ
Format::setBold | 上に戻る | Format::setTop

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setBottomColor

Format::setBottomColor -- セルの下罫線の色を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setBottomColor (mixed $color)

説明

セルの下罫線の色を設定します。

パラメータ

  • mixed $color - 文字列 ('blue' など) か、数値 (範囲は 8 から 63) のどちらかです。

    詳細な情報については、マニュアルの " 色の使用法" を参照ください。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setBottomColor() の使用法

前のページ | ホーム | 次のページ
Format::setBorderColor | 上に戻る | Format::setTopColor

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setColor

Format::setColor -- セルの内容の色を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setColor (mixed $color)

説明

セルの内容の色を設定します。

パラメータ

  • mixed $color - 文字列 ('blue' など) か、数値 (範囲は 8 から 63) のどちらかです。

    詳細な情報については、マニュアルの " 色の使用法" を参照ください。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setColor() の使用法

参照

    setFgColor(),

    setBgColor()

前のページ | ホーム | 次のページ
Format::setBgColor | 上に戻る | Format::setPattern

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setFgColor

Format::setFgColor -- セルの前景色を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setFgColor (mixed $color)

説明

セルの"前景色"を設定します。

"前景色"という言い方には語弊があります。 ここでは、"前景"とは セルの背景の最上位レイヤのことを意味します。 セルに書き込む内容の色を設定するには、 setColor() メソッドを使用します。

実際に見える色は、使用している パターン および 背景色 に依存します。

" 背景色・前景色とパターンの関係" での例が非常に参考になります。

パラメータ

  • mixed $color - 文字列 ('blue' など) か、数値 (範囲は 8 から 63) のどちらかです。

    詳細な情報は、この下の "色の使用法" を参照ください。

色の使用法

名前で定義することができる色のリストは以下のとおりです。 black、white、 red、green、 blue、yellow、 magenta および cyan。

インデックスで定義する色にどのようなものがあるのかを知りたければ、 Color Palette and the 56 Excel ColorIndex Colors を参照ください。 ここで挙げられている色インデックスは、 Spreadsheet_Excel_Writer で使用するものと 1 つずれていることに注意しましょう。

事前に定義済みの色が気に入らない場合は、 setCustomColor() メソッドを使用します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setFgColor() の使用法

require_once 'Spreadsheet/Excel/Writer.php';

$workbook = new Spreadsheet_Excel_Writer();
$worksheet =& $workbook->addWorksheet();

// 「通常の」緑色
$format_regular_green =& $workbook->addFormat();
$format_regular_green->setFgColor('green');

// 「特別な」緑色
$format_special_green =& $workbook->addFormat();
$format_special_green->setFgColor(11);

// 独自の緑色 (12 番の色を上書きします)
$workbook->setCustomColor(12, 10, 200, 10);
$format_our_green =& $workbook->addFormat();
$format_our_green->setFgColor(12);

$worksheet->setColumn(0, 0, 30);

$worksheet->write(0, 0, "通常の緑色", $format_regular_green);
$worksheet->write(1, 0, "特別な緑色 (色番号 11)", $format_special_green);
$worksheet->write(2, 0, "独自の緑色", $format_our_green);

$workbook->send('setFgColor.xls');
$workbook->close();

参照

setBgColor(),

setPattern(),

setColor()

前のページ | ホーム | 次のページ
Format::setRightColor | 上に戻る | Format::setBgColor

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setFontFamily

Format::setFontFamily -- フォントファミリを設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setFontFamily (string $font_family)

説明

フォントファミリを設定します。

パラメータ

  • string $font_family - フォントファミリ名。使用可能な値は 'Times New Roman'、'Arial'、'Courier' です。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setFontFamily() の使用法

require_once 'Spreadsheet/Excel/Writer.php';

$workbook = new Spreadsheet_Excel_Writer();
$worksheet =& $workbook->addWorksheet();

$format_times =& $workbook->addFormat();
$format_times->setFontFamily('Times New Roman');

$format_courier =& $workbook->addFormat();
$format_courier->setFontFamily('Courier');

$worksheet->write(0, 0, "Hello World, Arial (default)");
$worksheet->write(1, 0, "Hello World, Times New Roman", $format_times);
$worksheet->write(2, 0, "Hello World, Courier", $format_courier);

$workbook->send('fonts.xls');
$workbook->close();
前のページ | ホーム | 次のページ
Format::setScript | 上に戻る | ファイルシステム

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setHAlign

Format::setHAlign -- セルの配置を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setHAlign (string $location)

説明

セルの配置を設定します。これは setAlign() の代替となるものです。

パラメータ

  • string $location - セルの配置。

    left、center、 right、fill、 justify、merge、 equal_space。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setHAlign() の使用法

require_once 'Spreadsheet/Excel/Writer.php';

$workbook = new Spreadsheet_Excel_Writer();
$worksheet =& $workbook->addWorksheet();

// テキストを上詰めにします
$format_top =& $workbook->addFormat();
$format_top->setHAlign('top');
$format_top->setTextWrap(1);

// テキストの横位置を中央揃えにします
$format_center =& $workbook->addFormat();
$format_center->setHAlign('center');

// テキストを上詰めにし、横位置を中央揃えにします
$format_top_center =& $workbook->addFormat();
$format_top_center->setHAlign('top');
$format_top_center->setHAlign('center');

$worksheet->write(0, 0, 'On top of the world!',
                  $format_top);
$worksheet->write(1, 0, 'c', $format_center);
$worksheet->write(2, 0, 'tc', $format_top_center);

$workbook->send('align.xls');
$workbook->close();
前のページ | ホーム | 次のページ
Format::setVAlign | 上に戻る | Format::setMerge

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setItalic

Format::setItalic -- フォントスタイルを斜体に設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setItalic ()

説明

フォントスタイルを斜体に設定します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setItalic() の使用法

前のページ | ホーム | 次のページ
Format::setUnderline | 上に戻る | Format::setSize

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setLeft

Format::setLeft -- セルの左罫線の幅を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setLeft (integer $style)

説明

セルの左罫線の幅を設定します。

パラメータ

  • integer $style - セルの左罫線のスタイルです。 1 が通常の罫線、2 が太罫線になります。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setLeft() の使用法

require_once 'Spreadsheet/Excel/Writer.php';

$workbook = new Spreadsheet_Excel_Writer();
$worksheet =& $workbook->addWorksheet();
// すべてのプロパティを一気に設定することが可能です
$upper_right_side_brick =& $workbook->addFormat(array('right' => 5, 'top' => 5, 'size' => 15,
                                                      'pattern' => 1, 'bordercolor' => 'blue',
                                                      'fgcolor' => 'red'));
// あるいは、すべてのプロパティをひとつづつ設定していくことも可能です
$upper_left_side_brick =& $workbook->addFormat();
$upper_left_side_brick->setLeft(5);
$upper_left_side_brick->setTop(5);
$upper_left_side_brick->setSize(15);
$upper_left_side_brick->setPattern(1);
$upper_left_side_brick->setBorderColor('blue');
$upper_left_side_brick->setFgColor('red');

$lower_right_side_brick =& $workbook->addFormat(array('right' => 5, 'bottom' => 5, 'size' => 15,
                                                      'pattern' => 1, 'bordercolor' => 'blue',
                                                      'fgcolor' => 'red'));
$lower_left_side_brick =& $workbook->addFormat(array('left' => 5, 'bottom' => 5, 'size' => 15,
                                                     'pattern' => 1, 'bordercolor' => 'blue',
                                                     'fgcolor' => 'red'));

$worksheet->setColumn(0, 20, 6);

// 空
$sky =& $workbook->addFormat(array('fgcolor' => 'cyan', 'pattern' => 1, 'size' => 15));
for ($i = 0; $i <= 10; $i++)
{
    for ($j = 0; $j < 20; $j++) {
        $worksheet->writeBlank($i, $j, $sky);
    }
}

// 雲
$cloud =& $workbook->addFormat(array('fgcolor' => 'white', 'pattern' => 1, 'size' => 15));
$worksheet->writeBlank(5, 7, $cloud);
$worksheet->writeBlank(4, 8, $cloud);
$worksheet->writeBlank(5, 8, $cloud);
$worksheet->writeBlank(6, 8, $cloud);
$worksheet->writeBlank(4, 9, $cloud);
$worksheet->writeBlank(5, 9, $cloud);
$worksheet->writeBlank(5, 10, $cloud);

// レンガ
for ($j = 0; $j < 20; $j++)
{
    for ($i = 5; $i <= 11; $i++)
    {
        if (($i + $j)%2 == 1) // 右側
        {
            $worksheet->writeBlank(2*$i, $j, $upper_right_side_brick);
            $worksheet->writeBlank(2*$i + 1, $j, $lower_right_side_brick);
        }
        else // 左側
        {
            $worksheet->writeBlank(2*$i, $j, $upper_left_side_brick);
            $worksheet->writeBlank(2*$i + 1, $j, $lower_left_side_brick);
        }
    }
}

// この Excel アートを台無しにしないために、枠線を非表示にします。
$worksheet->hideGridLines();

$workbook->send('bricks.xls');
$workbook->close();
前のページ | ホーム | 次のページ
Format::setTop | 上に戻る | Format::setRight

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setLeftColor

Format::setLeftColor -- セルの左罫線の色を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setLeftColor (mixed $color)

説明

セルの左罫線の色を設定します。

パラメータ

  • mixed $color - 文字列 ('blue' など) か、数値 (範囲は 8 から 63) のどちらかです。

    詳細な情報については、マニュアルの " 色の使用法" を参照ください。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setLeftColor() の使用法

前のページ | ホーム | 次のページ
Format::setTopColor | 上に戻る | Format::setRightColor

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setMerge

Format::setMerge -- 直感的でない setAlign('merge') に代わるエイリアス

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setMerge ()

説明

これは、直感的でない setAlign('merge') に代わるエイリアスです。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setMerge() の使用法

前のページ | ホーム | 次のページ
Format::setHAlign | 上に戻る | Format::setBold

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setNumFormat

Format::setNumFormat -- 数値の表示形式を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setNumFormat (integer $num_format)

説明

数値の表示形式を設定します。これには日付・時刻・通貨など…… も含まれます。以下の表では、使用可能な $num_format の値と それぞれに対して引数として受け付ける型を示します。

表 37-1数値の表示形式および型

0 | 十進数 | ゼロの数で、表示される桁数を指定します。
0.00 | 十進数 | 小数点以降のゼロの数で、表示される小数の桁数を指定します。
#.## | 十進数 | 小数点以降のシャープの数で、表示される小数の最大の桁数を指定します。
0% | パーセント | ゼロの数で、表示される桁数を設定します。
0.000% | パーセント | 小数点以降のゼロの数で、表示される小数の桁数を指定します。
$#.#;[Red]($#.#) | 通貨 | ゼロおよびシャープの意味は、他の書式と同じです。
??/?? | 分数 | 分母のクエスチョンマークの数で、値の精度 (分母の最大の桁数) を指定します。
# ??/?? | 分数 | 整数部分を持つ分数です。整数部の書式はゼロおよびシャープで 定義し、その意味は他の書式と同じです。
0.00E+# | 科学 | 科学的な表記法における基数および指数は、十進数と同様に書式化されます。 ゼロおよびシャープの意味は同じです。
D-MMM-YY | 日付 | 指定した表記法で日付を表します。月は 1 桁あるいは 2 桁の数値、 あるいは 3 文字の月名で表します。年は 2 桁あるいは 4 桁で指定します。 日付として扱われる値は、1899 年 12 月 30 日 (Excel のゼロ日) からの 経過日数です。ゼロ日より前の日付を表すには、負の数値を使用します。
D/M/YYYY h:mm:ss | 日付/時刻 | 指定した表記法で日付を表します。日付として扱われる値は、 Excel のゼロ日からの経過日数です。
h:mm:ss AM/PM | 時刻 | 指定した表記法で時刻を表します。時刻として扱われる値は、 日数で指定することに注意しましょう。例えば、0.5 という値は '12:00:00 PM' と表示されます。

この情報は、Microsoft Excel のファイル形式について書かれた OpenOffice.org のドキュメント (http://sc.openoffice.org/excelfileformat.pdf) から引用したものです。

パラメータ

  • integer $num_format - 数値の表示形式。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setNumFormat() の使用法

require_once 'Spreadsheet/Excel/Writer.php';

$workbook = new Spreadsheet_Excel_Writer();
$worksheet =& $workbook->addWorksheet();

// 4 桁の年、3 文字の月の形式で日付を表示します
$date_format =& $workbook->addFormat();
$date_format->setNumFormat('D-MMM-YYYY');

// 1 日の秒数
$seconds_in_a_day = 86400;
// Unix タイムスタンプと Excel の日付の差を秒数で表します
$ut_to_ed_diff = $seconds_in_a_day * 25569;

// Excel のゼロ日を表示します
$worksheet->write(0, 0, "Excel の day zero");
$worksheet->write(0, 1, 0, $date_format);

// 今日の日付を表示します
$now = time();
$worksheet->write(1, 0, "今日の日付:");
$worksheet->write(1, 1, ($now + $ut_to_ed_diff) / $seconds_in_a_day, $date_format);

$workbook->send('num_formatting.xls');
$workbook->close();
前のページ | ホーム | 次のページ
Format::setTextRotation | 上に戻る | Format::setStrikeOut

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setOutLine

Format::setOutLine -- フォントのアウトラインを設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setOutLine ()

説明

フォントのアウトラインを設定します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setOutLine() の使用法

前のページ | ホーム | 次のページ
Format::setStrikeOut | 上に戻る | Format::setShadow

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setPattern

Format::setPattern -- セルの網掛けパターン属性を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setPattern ([integer $arg=1])

説明

セルの網掛けパターン属性を設定します。 setBgColor() メソッドおよび setFgColor() メソッドと 組み合わせて使用します。

" 背景色・前景色とパターンの関係" での例が非常に参考になります。

パラメータ

  • integer $arg - オプション。デフォルトは 1 です。 値の範囲は 0 から 18 で、0 は背景がないこと、 1 は setFgColor() で指定した色で背景を 塗りつぶすことを意味します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1背景色・前景色とパターンの関係

require_once 'Spreadsheet/Excel/Writer.php';

$workbook = new Spreadsheet_Excel_Writer();
$worksheet =& $workbook->addWorksheet('色とパターンのテスト');
$worksheet->setRow(1, 30);
$worksheet->setRow(2, 30);
$worksheet->setRow(3, 30);

// 0 から 18 までのパターンが指定できます
for ($i = 0; $i <= 18; $i++)
{
    // さまざまなパターンの緑
    $another_format1 =& $workbook->addFormat();
    $another_format1->setBgColor('green');
    $another_format1->setPattern($i);
    $worksheet->write(1, $i, "パターン $i", $another_format1);

    // さまざまなパターンの赤
    $another_format2 =& $workbook->addFormat();
    $another_format2->setFgColor('red');
    $another_format2->setPattern($i);
    $worksheet->write(2, $i, "パターン $i", $another_format2);

    // 指定したパターンで赤と緑を混ぜます
    $another_format3 =& $workbook->addFormat();
    $another_format3->setBgColor('green');
    $another_format3->setFgColor('red');
    $another_format3->setPattern($i);
    $worksheet->write(3, $i, "パターン $i", $another_format3);
}

$workbook->send('setPattern.xls');
$workbook->close();

参照

setFgColor(),

setBgColor(),

setColor()

前のページ | ホーム | 次のページ
Format::setColor | 上に戻る | Format::setUnderline

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setRight

Format::setRight -- セルの右罫線の幅を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setRight (integer $style)

説明

セルの右罫線の幅を設定します。

パラメータ

  • integer $style - セルの右罫線のスタイルです。 1 が通常の罫線、2 が太罫線になります。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setRight() の使用法

require_once 'Spreadsheet/Excel/Writer.php';

$workbook = new Spreadsheet_Excel_Writer();
$worksheet =& $workbook->addWorksheet();
// すべてのプロパティを一気に設定することが可能です
$upper_right_side_brick =& $workbook->addFormat(array('right' => 5, 'top' => 5, 'size' => 15,
                                                      'pattern' => 1, 'bordercolor' => 'blue',
                                                      'fgcolor' => 'red'));
// あるいは、すべてのプロパティをひとつづつ設定していくことも可能です
$upper_left_side_brick =& $workbook->addFormat();
$upper_left_side_brick->setLeft(5);
$upper_left_side_brick->setTop(5);
$upper_left_side_brick->setSize(15);
$upper_left_side_brick->setPattern(1);
$upper_left_side_brick->setBorderColor('blue');
$upper_left_side_brick->setFgColor('red');

$lower_right_side_brick =& $workbook->addFormat(array('right' => 5, 'bottom' => 5, 'size' => 15,
                                                      'pattern' => 1, 'bordercolor' => 'blue',
                                                      'fgcolor' => 'red'));
$lower_left_side_brick =& $workbook->addFormat(array('left' => 5, 'bottom' => 5, 'size' => 15,
                                                     'pattern' => 1, 'bordercolor' => 'blue',
                                                     'fgcolor' => 'red'));

$worksheet->setColumn(0, 20, 6);

// 空
$sky =& $workbook->addFormat(array('fgcolor' => 'cyan', 'pattern' => 1, 'size' => 15));
for ($i = 0; $i <= 10; $i++)
{
    for ($j = 0; $j < 20; $j++) {
        $worksheet->writeBlank($i, $j, $sky);
    }
}

// 雲
$cloud =& $workbook->addFormat(array('fgcolor' => 'white', 'pattern' => 1, 'size' => 15));
$worksheet->writeBlank(5, 7, $cloud);
$worksheet->writeBlank(4, 8, $cloud);
$worksheet->writeBlank(5, 8, $cloud);
$worksheet->writeBlank(6, 8, $cloud);
$worksheet->writeBlank(4, 9, $cloud);
$worksheet->writeBlank(5, 9, $cloud);
$worksheet->writeBlank(5, 10, $cloud);

// レンガ
for ($j = 0; $j < 20; $j++)
{
    for ($i = 5; $i <= 11; $i++)
    {
        if (($i + $j)%2 == 1) // 右側
        {
            $worksheet->writeBlank(2*$i, $j, $upper_right_side_brick);
            $worksheet->writeBlank(2*$i + 1, $j, $lower_right_side_brick);
        }
        else // 左側
        {
            $worksheet->writeBlank(2*$i, $j, $upper_left_side_brick);
            $worksheet->writeBlank(2*$i + 1, $j, $lower_left_side_brick);
        }
    }
}

// この Excel アートを台無しにしないために、枠線を非表示にします。
$worksheet->hideGridLines();

$workbook->send('bricks.xls');
$workbook->close();
前のページ | ホーム | 次のページ
Format::setLeft | 上に戻る | Format::setBorder

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setRightColor

Format::setRightColor -- セルの右罫線の色を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setRightColor (mixed $color)

説明

セルの右罫線の色を設定します。

パラメータ

  • mixed $color - 文字列 ('blue' など) か、数値 (範囲は 8 から 63) のどちらかです。

    詳細な情報については、マニュアルの " 色の使用法" を参照ください。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setRightColor() の使用法

前のページ | ホーム | 次のページ
Format::setLeftColor | 上に戻る | Format::setFgColor

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setScript

Format::setScript -- テキストの字体を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setScript (integer $script)

説明

テキストの字体を設定します。

パラメータ

  • integer $script - 字体の値。とりうる値は以下のいずれかです。 1 => 上付き、2 => 下付き。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setScript() の使用法

require_once 'Spreadsheet/Excel/Writer.php';

  $workbook = new Spreadsheet_Excel_Writer();
  // 書式を作成します
  $format_superscript =& $workbook->addFormat();
  $format_superscript->setScript(1);
  $format_subscript =& $workbook->addFormat();
  $format_subscript->setScript(2);

  $worksheet =& $workbook->addWorksheet();
  $worksheet->write(0, 0, "これは上付きです", $format_superscript);
  $worksheet->write(1, 0, "これは下付きです", $format_subscript);
前のページ | ホーム | 次のページ
Format::setShadow | 上に戻る | Format::setFontFamily

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setShadow

Format::setShadow -- フォントの影を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setShadow ()

説明

フォントの影を設定します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setShadow() の使用法

前のページ | ホーム | 次のページ
Format::setOutLine | 上に戻る | Format::setScript

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setSize

Format::setSize -- フォントサイズを設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setSize (integer $size)

説明

フォントサイズを設定します。

パラメータ

  • integer $size - フォントサイズ (おそらく、単位はピクセル)。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1Using setSize()

require_once 'Spreadsheet/Excel/Writer.php';

$workbook = new Spreadsheet_Excel_Writer();
$worksheet =& $workbook->addWorksheet();
// すべてのプロパティを一気に設定することが可能です
$upper_right_side_brick =& $workbook->addFormat(array('right' => 5, 'top' => 5, 'size' => 15,
                                                      'pattern' => 1, 'bordercolor' => 'blue',
                                                      'fgcolor' => 'red'));
// あるいは、すべてのプロパティをひとつづつ設定していくことも可能です
$upper_left_side_brick =& $workbook->addFormat();
$upper_left_side_brick->setLeft(5);
$upper_left_side_brick->setTop(5);
$upper_left_side_brick->setSize(15);
$upper_left_side_brick->setPattern(1);
$upper_left_side_brick->setBorderColor('blue');
$upper_left_side_brick->setFgColor('red');

$lower_right_side_brick =& $workbook->addFormat(array('right' => 5, 'bottom' => 5, 'size' => 15,
                                                      'pattern' => 1, 'bordercolor' => 'blue',
                                                      'fgcolor' => 'red'));
$lower_left_side_brick =& $workbook->addFormat(array('left' => 5, 'bottom' => 5, 'size' => 15,
                                                     'pattern' => 1, 'bordercolor' => 'blue',
                                                     'fgcolor' => 'red'));

$worksheet->setColumn(0, 20, 6);

// 空
$sky =& $workbook->addFormat(array('fgcolor' => 'cyan', 'pattern' => 1, 'size' => 15));
for ($i = 0; $i <= 10; $i++)
{
    for ($j = 0; $j < 20; $j++) {
        $worksheet->writeBlank($i, $j, $sky);
    }
}

// 雲
$cloud =& $workbook->addFormat(array('fgcolor' => 'white', 'pattern' => 1, 'size' => 15));
$worksheet->writeBlank(5, 7, $cloud);
$worksheet->writeBlank(4, 8, $cloud);
$worksheet->writeBlank(5, 8, $cloud);
$worksheet->writeBlank(6, 8, $cloud);
$worksheet->writeBlank(4, 9, $cloud);
$worksheet->writeBlank(5, 9, $cloud);
$worksheet->writeBlank(5, 10, $cloud);

// レンガ
for ($j = 0; $j < 20; $j++)
{
    for ($i = 5; $i <= 11; $i++)
    {
        if (($i + $j)%2 == 1) // 右側
        {
            $worksheet->writeBlank(2*$i, $j, $upper_right_side_brick);
            $worksheet->writeBlank(2*$i + 1, $j, $lower_right_side_brick);
        }
        else // 左側
        {
            $worksheet->writeBlank(2*$i, $j, $upper_left_side_brick);
            $worksheet->writeBlank(2*$i + 1, $j, $lower_left_side_brick);
        }
    }
}

// この Excel アートを台無しにしないために、枠線を非表示にします。
$worksheet->hideGridLines();

$workbook->send('bricks.xls');
$workbook->close();
前のページ | ホーム | 次のページ
Format::setItalic | 上に戻る | Format::setTextWrap

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setStrikeOut

Format::setStrikeOut -- フォントに取り消し線を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setStrikeOut ()

説明

フォントに取り消し線を設定します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setStrikeOut() の使用法

前のページ | ホーム | 次のページ
Format::setNumFormat | 上に戻る | Format::setOutLine

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setTextRotation

Format::setTextRotation -- テキストの方向を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setTextRotation (integer $angle)

説明

テキストの方向を設定します。

パラメータ

  • integer $angle - テキストの回転角度 (時計回り)。指定可能な値は 0、90、270 で、-1 を指定すると上から下に縦書きにします。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setTextRotation() の使用法

前のページ | ホーム | 次のページ
Format::setTextWrap | 上に戻る | Format::setNumFormat

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setTextWrap

Format::setTextWrap -- テキストの折り返しを設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setTextWrap ()

説明

テキストの折り返しを設定します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setTextWrap() の使用法

前のページ | ホーム | 次のページ
Format::setSize | 上に戻る | Format::setTextRotation

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setTop

Format::setTop -- セルの上罫線の幅を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setTop (integer $style)

説明

セルの上罫線の幅を設定します。

パラメータ

  • integer $style - セルの上罫線のスタイルです。 1 が通常の罫線、2 が太罫線になります。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setTop() の使用法

require_once 'Spreadsheet/Excel/Writer.php';

$workbook = new Spreadsheet_Excel_Writer();
$worksheet =& $workbook->addWorksheet();
// すべてのプロパティを一気に設定することが可能です
$upper_right_side_brick =& $workbook->addFormat(array('right' => 5, 'top' => 5, 'size' => 15,
                                                      'pattern' => 1, 'bordercolor' => 'blue',
                                                      'fgcolor' => 'red'));
// あるいは、すべてのプロパティをひとつづつ設定していくことも可能です
$upper_left_side_brick =& $workbook->addFormat();
$upper_left_side_brick->setLeft(5);
$upper_left_side_brick->setTop(5);
$upper_left_side_brick->setSize(15);
$upper_left_side_brick->setPattern(1);
$upper_left_side_brick->setBorderColor('blue');
$upper_left_side_brick->setFgColor('red');

$lower_right_side_brick =& $workbook->addFormat(array('right' => 5, 'bottom' => 5, 'size' => 15,
                                                      'pattern' => 1, 'bordercolor' => 'blue',
                                                      'fgcolor' => 'red'));
$lower_left_side_brick =& $workbook->addFormat(array('left' => 5, 'bottom' => 5, 'size' => 15,
                                                     'pattern' => 1, 'bordercolor' => 'blue',
                                                     'fgcolor' => 'red'));

$worksheet->setColumn(0, 20, 6);

// 空
$sky =& $workbook->addFormat(array('fgcolor' => 'cyan', 'pattern' => 1, 'size' => 15));
for ($i = 0; $i <= 10; $i++)
{
    for ($j = 0; $j < 20; $j++) {
        $worksheet->writeBlank($i, $j, $sky);
    }
}

// 雲
$cloud =& $workbook->addFormat(array('fgcolor' => 'white', 'pattern' => 1, 'size' => 15));
$worksheet->writeBlank(5, 7, $cloud);
$worksheet->writeBlank(4, 8, $cloud);
$worksheet->writeBlank(5, 8, $cloud);
$worksheet->writeBlank(6, 8, $cloud);
$worksheet->writeBlank(4, 9, $cloud);
$worksheet->writeBlank(5, 9, $cloud);
$worksheet->writeBlank(5, 10, $cloud);

// レンガ
for ($j = 0; $j < 20; $j++)
{
    for ($i = 5; $i <= 11; $i++)
    {
        if (($i + $j)%2 == 1) // 右側
        {
            $worksheet->writeBlank(2*$i, $j, $upper_right_side_brick);
            $worksheet->writeBlank(2*$i + 1, $j, $lower_right_side_brick);
        }
        else // 左側
        {
            $worksheet->writeBlank(2*$i, $j, $upper_left_side_brick);
            $worksheet->writeBlank(2*$i + 1, $j, $lower_left_side_brick);
        }
    }
}

// この Excel アートを台無しにしないために、枠線を非表示にします。
$worksheet->hideGridLines();

$workbook->send('bricks.xls');
$workbook->close();
前のページ | ホーム | 次のページ
Format::setBottom | 上に戻る | Format::setLeft

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setTopColor

Format::setTopColor -- セルの上罫線の色を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setTopColor (mixed $color)

説明

セルの上罫線の色を設定します。

パラメータ

  • mixed $color - 文字列 ('blue' など) か、数値 (範囲は 8 から 63) のどちらかです。

    詳細な情報については、マニュアルの " 色の使用法" を参照ください。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setTopColor() の使用法

前のページ | ホーム | 次のページ
Format::setBottomColor | 上に戻る | Format::setLeftColor

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setUnderline

Format::setUnderline -- テキストに下線を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setUnderline (integer $underline)

説明

テキストに下線を設定します。

パラメータ

  • integer $underline - 下線の値。とりうる値は 1 => 下線、2 => 二重下線 のいずれかです。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setUnderline() の使用法

require_once 'Spreadsheet/Excel/Writer.php';

  $workbook = new Spreadsheet_Excel_Writer();
  $format_underline =& $workbook->addFormat();
  $format_underline->setUnderline(1);
  $worksheet =& $workbook->addWorksheet();
  $worksheet->write(0, 0, "下線を引いています", $format_underline);
  $format_underline->setUnderline(2);
  $worksheet->write(1, 0, "下線を二重に引いています", $format_underline);
前のページ | ホーム | 次のページ
Format::setPattern | 上に戻る | Format::setItalic

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Format::setVAlign

Format::setVAlign -- セルの配置を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Format::setVAlign (string $location)

説明

セルの配置を設定します。これは setAlign() の代替となるものです。

パラメータ

  • string $location - セルの配置。

    top、vcenter、 bottom、vjustify、 vequal_space。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setVAlign() の使用法

require_once 'Spreadsheet/Excel/Writer.php';

$workbook = new Spreadsheet_Excel_Writer();
$worksheet =& $workbook->addWorksheet();

// 均等割り付け
$format_justify =& $workbook->addFormat('vAlign' => 'vjustify');

// テキストの縦位置を中央揃えにします
$format_center =& $workbook->addFormat('vAlign' => 'vcenter');

// 縦位置を中央揃えにし、均等割り付けします
$format_justify_center =& $workbook->addFormat();
$format_justify_center->setVAlign('vjustify');
$format_justify_center->setVAlign('vcenter');

$worksheet->write(0, 0, 'justify', $format_justify);
$worksheet->write(1, 0, 'center', $format_center);
$worksheet->write(2, 0, 'jc', $format_justify_center);

$workbook->send('align.xls');
$workbook->close();
前のページ | ホーム | 次のページ
Format::setAlign | 上に戻る | Format::setHAlign

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Workbook::&addFormat

Workbook::&addFormat -- Excel ワークブックに新しい書式を追加する

概要

require_once "Spreadsheet/Excel/Writer.php";

object reference Workbook::&addFormat ([array $properties=array()])

説明

Excel ワークブックに新しい書式を追加します。 さらに任意のフォーマットプロパティを書式のコンストラクタに渡します。 有効なプロパティは下記の通りです。

  • Align

  • Bold

  • Bottom

  • Top

  • Left

  • Right

  • Border

  • BorderColor

  • BottomColor

  • TopColor

  • RightColor

  • LeftColor

  • FgColor

  • BgColor

  • Color

  • Pattern

  • Underline

  • TextRotation

  • Size

  • NumFormat

  • Script

パラメータ

  • array $properties - 書式の初期化の為のプロパティの配列を指定します。

返り値

object reference - Excel の書式へのリファレンスを返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1&addFormat() の使用法

<?php
require_once "Spreadsheet/Excel/Writer.php";
$workbook = new Spreadsheet_Excel_Writer();
$format =& $workbook->addFormat(array('Size' => 10,
                                      'Align' => 'center',
                                      'Color' => 'white',
                                      'Pattern' => 1,
                                      'FgColor' => 'magenta'));
$worksheet =& $workbook->addWorksheet();
$worksheet->writeString(1, 0, "Magenta Hello", $format);
$workbook->close();
?>
前のページ | ホーム | 次のページ
Workbook::&addWorksheet | 上に戻る | Workbook::&setTempDir

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Workbook::&addWorksheet

Workbook::&addWorksheet -- Excel ワークブックに新しいワークシートを追加する

概要

require_once "Spreadsheet/Excel/Writer.php";

object reference Workbook::&addWorksheet ([string $name=''])

説明

Excel ワークブックに新しいワークシートを追加します。 もし名前を指定しなかった場合は、ワークシート名は Sheeti になります (i には 1、2、3、…が入ります)。

パラメータ

  • string $name - ワークシートの名前 (オプション)。 31 文字より長い名前は指定できません。

返り値

returns 成功した場合にワークシートオブジェクトへのリファレンス、 失敗した場合に PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1&addWorksheet() の使用法

<?php
require_once 'Spreadsheet/Excel/Writer.php';
$workbook = new Spreadsheet_Excel_Writer('test.xls');
$worksheet =& $workbook->addWorksheet('My first worksheet');
if (PEAR::isError($worksheet)) {
    die($worksheet->getMessage());
}
$workbook->close();
?>
前のページ | ホーム | 次のページ
Workbook::close | 上に戻る | Workbook::&addFormat

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Workbook::close

Workbook::close -- ワークブックの作成終了時のメソッドを呼び出す

概要

require_once "Spreadsheet/Excel/Writer.php";

void Workbook::close ()

説明

ワークブックの作成終了時のメソッドを呼び出します。 全てのワークブックで、最後に必ずこのメソッドを呼ばなければなりません。

返り値

成功した場合は true、失敗した場合は PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
書式設定のチュートリアル | 上に戻る | Workbook::&addWorksheet

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Workbook::setCustomColor

Workbook::setCustomColor -- カラーパレット中の RGB 要素を変更する

概要

require_once "Spreadsheet/Excel/Writer.php";

integer Workbook::setCustomColor (integer $index, integer $red, integer $green, integer $blue)

説明

カラーパレット中の RGB 要素を変更します。 新しい色は RGB コンポーネントで定義し、指定したインデックスに 以前に定義されていた色は、 新しく定義された色で "上書き" されます。

パラメータ

  • integer $index - 色インデックス

  • integer $red - RGB の赤の値 [0 から 255]

  • integer $green - RGB の緑の値 [0 から 255]

  • integer $blue - RGB の青の値 [0 から 255]

返り値

integer - カスタム色のパレットインデックスを返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setCustomColor() の使用法

require_once 'Spreadsheet/Excel/Writer.php';

$workbook = new Spreadsheet_Excel_Writer();
$worksheet =& $workbook->addWorksheet();

// 「通常の」緑色
$format_regular_green =& $workbook->addFormat();
$format_regular_green->setFgColor('green');

// 「特別な」緑色
$format_special_green =& $workbook->addFormat();
$format_special_green->setFgColor(11);

// 独自の緑色 (12 番の色を上書きします)
$workbook->setCustomColor(12, 10, 200, 10);
$format_our_green =& $workbook->addFormat();
$format_our_green->setFgColor(12);

$worksheet->setColumn(0, 0, 30);

$worksheet->write(0, 0, "通常の緑色", $format_regular_green);
$worksheet->write(1, 0, "特別な緑色 (色番号 11)", $format_special_green);
$worksheet->write(2, 0, "独自の緑色", $format_our_green);

$workbook->send('greens.xls');
$workbook->close();
前のページ | ホーム | 次のページ
Workbook::&setTempDir | 上に戻る | Worksheet::getName

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Workbook::&setTempDir

Workbook::&setTempDir -- OLE ファイルを保存するために使用する一時ディレクトリを設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

booleanWorkbook::&setTempDir (string $dir)

説明

OLE ファイルを保存するために使用する一時ディレクトリを設定します。 デフォルトの一時ディレクトリに対する書き込み権限がない場合に このメソッドを使用します。

パラメータ

  • string $dir - 一時ディレクトリとして使用するディレクトリ。

返り値

boolean - 指定されたディレクトリが有効な場合に TRUE、そうでない場合に FALSE を返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1&setTempDir() の使用法

<?php
require_once 'Spreadsheet/Excel/Writer.php';
$workbook = new Spreadsheet_Excel_Writer('test.xls');
$worksheet =& $workbook->addWorksheet('初めてのワークシート');
$workbook->setTempDir('/home/xnoguer/temp');
$worksheet->write(0, 0, "ちゃんと動いていますか?");
$workbook->close();
?>
前のページ | ホーム | 次のページ
Workbook::&addFormat | 上に戻る | Workbook::setCustomColor

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::activate

Worksheet::activate -- このワークシートをアクティブにする

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::activate ()

説明

このワークシートをアクティブ (つまりワークブックが開かれた際に 表示され、選択された状態になるワークシート) に設定します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1activate() の使用法

前のページ | ホーム | 次のページ
Worksheet::select | 上に戻る | Worksheet::setFirstSheet

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::centerHorizontally

Worksheet::centerHorizontally -- ページを横方向に中央揃えする

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::centerHorizontally ([integer $center=1])

説明

ページを横方向に中央揃えします。

パラメータ

  • integer $center - 中央揃えのオプション。デフォルトは 1 (中央)。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1centerHorizontally() の使用法

前のページ | ホーム | 次のページ
Worksheet::setFooter | 上に戻る | Worksheet::centerVertically

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::centerVertically

Worksheet::centerVertically -- ページを縦方向に中央揃えする

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::centerVertically ([integer $center=1])

説明

ページを縦方向に中央揃えします。

パラメータ

  • integer $center - 中央揃えのオプション。デフォルトは 1 (中央)。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1centerVertically() の使用法

前のページ | ホーム | 次のページ
Worksheet::centerHorizontally | 上に戻る | Worksheet::setMargins

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::fitToPages

Worksheet::fitToPages -- 縦横のページ数を保存する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::fitToPages (integer $width, integer $height)

説明

印刷領域が最大になるように縦横のページ数を保存します。 OpenOffice ではうまく動作しないようです。

パラメータ

  • integer $width - 印刷領域の最大幅 (ページ数)。

  • integer $height - 印刷領域の最大の高さ (ページ数)。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1fitToPages() の使用法

前のページ | ホーム | 次のページ
Worksheet::printRowColHeaders | 上に戻る | Worksheet::setHPagebreaks

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::getName

Worksheet::getName -- ワークシート名を取得する

概要

require_once "Spreadsheet/Excel/Writer.php";

string Worksheet::getName ()

説明

ワークシート名を取得します。 名前のないワークシートを作成する場合、これは有用です。

返り値

string - ワークシート名を返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1getName() の使用法

前のページ | ホーム | 次のページ
Workbook::setCustomColor | 上に戻る | Worksheet::setInputEncoding

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::hideGridlines

Worksheet::hideGridlines -- 印刷時に枠線を非表示にするよう設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::hideGridlines ()

説明

印刷時に枠線を非表示にするよう、オプションを設定します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1hideGridlines() の使用法

require_once 'Spreadsheet/Excel/Writer.php';

$workbook = new Spreadsheet_Excel_Writer();
$worksheet =& $workbook->addWorksheet();

$radius = 20;
$worksheet->setColumn(0,$radius*2,1);

// 顔
for ($i = 0; $i < 360; $i++)
{
    $worksheet->write(floor(sin((2*pi()*$i)/360)*$radius) + $radius + 1, floor(cos((2*pi()*$i)/360)*$radius) + $radius + 1, "x");
}
// 目 (代わりに書式を使用したほうがいいかも?)
$worksheet->writeURL(floor($radius*0.8), floor($radius*0.8), "0");
$worksheet->writeURL(floor($radius*0.8), floor($radius*1.2), "0");

// 笑顔
for ($i = 65; $i < 115; $i++)
{
    $worksheet->write(floor(sin((2*pi()*$i)/360)*$radius*1.3) + floor($radius*0.2), floor(cos((2*pi()*$i)/360)*$radius*1.3) + $radius + 1, "x");
}

// この Excel アートを台無しにしないために、枠線を非表示にします。
$worksheet->hideGridLines();

$workbook->send('face.xls');
$workbook->close();
前のページ | ホーム | 次のページ
Worksheet::printArea | 上に戻る | Worksheet::printRowColHeaders

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::insertBitmap

Worksheet::insertBitmap -- 24 ビットのビットマップ画像をワークシートに挿入する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::insertBitmap (integer $row, integer $col, string $bitmap [, integer $x=0 [, integer $y=0 [, integer $scale_x=1 [, integer $scale_y=1]]]])

説明

24 ビットのビットマップ画像をワークシートに挿入します。主な必須レコードは IMDATA ですが、その前に、位置を決定するための OBJ レコードが必要です。

パラメータ

  • integer $row - ビットマップを挿入する行。

  • integer $col - ビットマップを挿入する列。

  • string $bitmap - ビットマップファイル名。

  • integer $x - セル内での画像の横位置 (オフセット)。

  • integer $y - セル内での画像の縦位置 (オフセット)。

  • integer $scale_x - 横方向の拡大率。

  • integer $scale_y - 縦方向の拡大率。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1insertBitmap() の使用法

前のページ | ホーム | 次のページ
Worksheet::mergeCells | 上に戻る | Worksheet::setOutline

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::mergeCells

Worksheet::mergeCells -- Excel97/2000 用メソッド

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::mergeCells (integer $first_row, integer $first_col, integer $last_row, integer $last_col)

説明

これは Excel97/2000 用のメソッドです。通常の setAlign('merge') より 複雑な連結を行います。引数で指定した範囲を連結します。

パラメータ

  • integer $first_row - 連結する範囲の最初の行。

  • integer $first_col - 連結する範囲の最初の列。

  • integer $last_row - 連結する範囲の最後の行。

  • integer $last_col - 連結する範囲の最後の列。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1mergeCells() の使用法

前のページ | ホーム | 次のページ
Worksheet::setRow | 上に戻る | Worksheet::insertBitmap

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::printArea

Worksheet::printArea -- 各ワークシートの印刷範囲を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::printArea (integer $first_row, integer $first_col, integer $last_row, integer $last_col)

説明

各ワークシートの印刷範囲を設定します。

パラメータ

  • integer $first_row - 印刷する範囲の最初の行。

  • integer $first_col - 印刷する範囲の最初の列。

  • integer $last_row - 印刷する範囲の最後の行。

  • integer $last_col - 印刷する範囲の最後の列。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1printArea() の使用法

前のページ | ホーム | 次のページ
Worksheet::repeatColumns | 上に戻る | Worksheet::hideGridlines

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::printRowColHeaders

Worksheet::printRowColHeaders -- 印刷時の行見出し・列見出しを設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::printRowColHeaders ([integer $print=1])

説明

印刷時の行見出し・列見出しのオプションを設定します。

パラメータ

  • integer $print - 見出しを印刷するか否か。デフォルトは 1 (印刷する)。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1printRowColHeaders() の使用法

前のページ | ホーム | 次のページ
Worksheet::hideGridlines | 上に戻る | Worksheet::fitToPages

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::protect

Worksheet::protect -- ワークシートの保護フラグを設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::protect (string $password)

説明

ワークシートの保護フラグを設定し、不慮の事故でファイルが 変更されてしまうことを防ぎます。また、セルの書式設定で「ロック」 「表示しない」が設定されている場合は、数式を隠します。

パラメータ

  • string $password - シートを保護する際に使用するパスワード。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1protect() の例

前のページ | ホーム | 次のページ
Worksheet::setFirstSheet | 上に戻る | Worksheet::setColumn

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::repeatColumns

Worksheet::repeatColumns -- 印刷時に各ページの左側に表示する列を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::repeatColumns (integer $first_col [, integer $last_col=NULL])

説明

印刷時に各ページの左側に表示する列 (訳注: 印刷タイトル - 列のタイトル) を設定します。

パラメータ

  • integer $first_col - 繰り返す最初の列。

  • integer $last_col - 繰り返す最後の列。オプションです。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1repeatColumns() の使用法

前のページ | ホーム | 次のページ
Worksheet::repeatRows | 上に戻る | Worksheet::printArea

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::repeatRows

Worksheet::repeatRows -- 印刷時に各ページの上側に表示する行を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::repeatRows (integer $first_row [, integer $last_row=NULL])

説明

印刷時に各ページの上側に表示する行 (訳注: 印刷タイトル - 行のタイトル) を設定します。

パラメータ

  • integer $first_row - 繰り返す最初の行。

  • integer $last_row - 繰り返す最後の行。オプションです。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1repeatRows() の使用法

<?php
  require_once 'Spreadsheet/Excel/Writer.php';

  $workbook = new Spreadsheet_Excel_Writer('test.xls');
  $worksheet =& $workbook->addWorkSheet();
  $worksheet->setColumn(0,0,100);
  $worksheet->write(0,0,"99 Bottles Of Beer On The Wall- The Complete Lyrics");
  // 最初の行のみを印刷タイトルとします
  $worksheet->repeatRows(0);
  for ($i = 99; $i > 0; $i--)
  {
      if ($i > 1) {
          $next = $i - 1;
      }
      else {
          $next = "no more";
      }
      $worksheet->write(100 - $i,0,"$i Bottles of beer on the wall, $i bottles of beer, ".
                                   "take one down, pass it around, ".
                                   "$next bottles of beer on the wall.");
  }
  $workbook->close();
?>
前のページ | ホーム | 次のページ
Worksheet::setMarginBottom | 上に戻る | Worksheet::repeatColumns

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::select

Worksheet::select -- 複数のワークシートからこのワークシートを選択する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::select ()

説明

選択されたワークシートとしてこのワークシートをセットします。 つまり、そのワークシートのタブが強調された状態になります。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1select() の使用法

前のページ | ホーム | 次のページ
Worksheet::setInputEncoding | 上に戻る | Worksheet::activate

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::setColumn

Worksheet::setColumn -- 単一の列、または指定した範囲の列の幅を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::setColumn (integer $firstcol, integer $lastcol, float $width [, mixed $format=0 [, integer $hidden=0]])

説明

単一の列、あるいは指定した範囲の列の幅を設定します。

パラメータ

  • integer $firstcol - 範囲の最初の列です。

  • integer $lastcol - 範囲の最後の列です。

  • float $width - 設定する幅です。

  • mixed $format - カラムに適用するオプションの XF フォーマットです。

  • integer $hidden - オプションの隠し属性です。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setColumn() の使用法

require_once 'Spreadsheet/Excel/Writer.php';

$workbook = new Spreadsheet_Excel_Writer();
$worksheet =& $workbook->addWorksheet();

$radius = 20;
$worksheet->setColumn(0,$radius*2,1);

// 顔
for ($i = 0; $i < 360; $i++)
{
    $worksheet->write(floor(sin((2*pi()*$i)/360)*$radius) + $radius + 1, floor(cos((2*pi()*$i)/360)*$radius) + $radius + 1, "x");
}
// 目 (代わりに書式を使用したほうがよいかも?)
$worksheet->writeURL(floor($radius*0.8), floor($radius*0.8), "0");
$worksheet->writeURL(floor($radius*0.8), floor($radius*1.2), "0");

// 笑顔
for ($i = 65; $i < 115; $i++)
{
    $worksheet->write(floor(sin((2*pi()*$i)/360)*$radius*1.3) + floor($radius*0.2), floor(cos((2*pi()*$i)/360)*$radius*1.3) + $radius + 1, "x");
}

// この Excel アートを台無しにしないために、枠線を非表示にします
$worksheet->hideGridLines();

$workbook->send('face.xls');
$workbook->close();
前のページ | ホーム | 次のページ
Worksheet::protect | 上に戻る | Worksheet::setSelection

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::setFirstSheet

Worksheet::setFirstSheet -- このワークシートを最初に見えるシートにする(必須)

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::setFirstSheet ()

説明

最初に見えるシートとしてこのワークシートをセットします。 多くのワークシートがあり、起動されたワークシートが 画面上で目に見えない場合、これは必要です。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setFirstSheet() の使用法

前のページ | ホーム | 次のページ
Worksheet::activate | 上に戻る | Worksheet::protect

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::setFooter

Worksheet::setFooter -- ページフッタの見出しおよびオプションで余白を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::setFooter (string $string [, float $margin=0.5])

説明

ページフッタの見出しおよびオプションで余白を設定します。

パラメータ

  • string $string - フッタのテキストです。

  • float $margin - オプションで下部余白のインチ指定です。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setFooter() の使用法

前のページ | ホーム | 次のページ
Worksheet::setHeader | 上に戻る | Worksheet::centerHorizontally

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::setHeader

Worksheet::setHeader -- ページヘッダの見出しおよびオプションで余白を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::setHeader (string $string [, float $margin=0.5])

説明

ページヘッダの見出しおよびオプションで余白を設定します。

パラメータ

  • string $string - ヘッダのテキストです。

  • float $margin - オプションで上部余白のインチ指定です。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setHeader() の使用法

前のページ | ホーム | 次のページ
Worksheet::setPaper | 上に戻る | Worksheet::setFooter

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::setHPagebreaks

Worksheet::setHPagebreaks -- ワークシートに水平方向の改ページを挿入する (印刷用)

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::setHPagebreaks (array $breaks)

説明

ワークシートに水平方向の改ページを挿入します (印刷用です)。 改ページが挿入された場所の次の行で改ページされます。

パラメータ

  • array $breaks - 水平方向の改ページを含む配列。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setHPagebreaks() の使用法

前のページ | ホーム | 次のページ
Worksheet::fitToPages | 上に戻る | Worksheet::setVPagebreaks

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::setInputEncoding

Worksheet::setInputEncoding -- さまざまな文字セットで書き込みできるようにする

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::setInputEncoding (string $encoding)

説明

ワークシートの「現在の文字セット」を設定することにより、 さまざまな文字セットでの書き込みが可能となります。 UTF-8、ISO-8859-7 でテスト済みです。UTF-16LE 以外の文字セットを 使用するには iconv が必要です。

パラメータ

  • string $encoding - エンコーディング。php の iconv() 関数がサポートする すべてのエンコーディングをサポートします。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setInputEncoding() の使用法

<?php
require_once 'Spreadsheet/Excel/Writer.php';
$workbook = new Spreadsheet_Excel_Writer('test.xls');
$workbook->setVersion(8);
$worksheet =& $workbook->addWorksheet('International worksheet');

$russian = "\xD0\xBF\xD0\xBE\xD0\xBA\xD0\xB0";
$greek = "\342\345\353\355\341";

$worksheet->setInputEncoding('ISO-8859-7');
$worksheet->write(0, 0, $greek);
$worksheet->setInputEncoding('utf-8');
$worksheet->write(1, 0, $russian);
$workbook->close();
?>
前のページ | ホーム | 次のページ
Worksheet::getName | 上に戻る | Worksheet::select

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::setLandscape

Worksheet::setLandscape -- ページの方向を横に設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::setLandscape ()

説明

ページの方向を横に設定します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setLandscape() の使用法

前のページ | ホーム | 次のページ
Worksheet::setPortrait | 上に戻る | Worksheet::setPaper

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::setMarginBottom

Worksheet::setMarginBottom -- 下の余白をインチで設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::setMarginBottom ([float $margin=1])

説明

下の余白をインチで設定します。

パラメータ

  • float $margin - 余白に設定する値 (インチ)。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setMarginBottom() の使用法

前のページ | ホーム | 次のページ
Worksheet::setMarginTop | 上に戻る | Worksheet::repeatRows

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::setMarginLeft

Worksheet::setMarginLeft -- 左の余白をインチで設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::setMarginLeft ([float $margin=0.75])

説明

左の余白をインチで設定します。

パラメータ

  • float $margin - 余白に設定する値 (インチ)。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setMarginLeft() の使用法

前のページ | ホーム | 次のページ
Worksheet::setMargins_TB | 上に戻る | Worksheet::setMarginRight

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::setMarginRight

Worksheet::setMarginRight -- 右の余白をインチで設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::setMarginRight ([float $margin=0.75])

説明

右の余白をインチで設定します。

パラメータ

  • float $margin - 余白に設定する値 (インチ)。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setMarginRight() の使用法

前のページ | ホーム | 次のページ
Worksheet::setMarginLeft | 上に戻る | Worksheet::setMarginTop

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::setMargins

Worksheet::setMargins -- すべてのページ余白を、インチで指定した同じ値に設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::setMargins (float $margin)

説明

すべてのページ余白を、インチで指定した同じ値に設定します。

パラメータ

  • float $margin - 余白に設定する値 (インチ)。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setMargins() の使用法

前のページ | ホーム | 次のページ
Worksheet::centerVertically | 上に戻る | Worksheet::setMargins_LR

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::setMargins_LR

Worksheet::setMargins_LR -- 左右のページ余白を、インチで指定した同じ値に設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::setMargins_LR (float $margin)

説明

左右のページ余白を、インチで指定した同じ値に設定します。

パラメータ

  • float $margin - 余白に設定する値 (インチ)。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setMargins_LR() の使用法

前のページ | ホーム | 次のページ
Worksheet::setMargins | 上に戻る | Worksheet::setMargins_TB

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::setMargins_TB

Worksheet::setMargins_TB -- 上下のページ余白を、インチで指定した同じ値に設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::setMargins_TB (float $margin)

説明

上下のページ余白を、インチで指定した同じ値に設定します。

パラメータ

  • float $margin - 余白に設定する値 (インチ)。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setMargins_TB() の使用法

前のページ | ホーム | 次のページ
Worksheet::setMargins_LR | 上に戻る | Worksheet::setMarginLeft

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::setMarginTop

Worksheet::setMarginTop -- 上の余白をインチで設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::setMarginTop ([float $margin=1])

説明

上の余白をインチで設定します。

パラメータ

  • float $margin - 余白に設定する値 (インチ)。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setMarginTop() の使用法

前のページ | ホーム | 次のページ
Worksheet::setMarginRight | 上に戻る | Worksheet::setMarginBottom

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::setOutline

Worksheet::setOutline -- アウトラインおよびグループ化のプロパティを設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::setOutline ([bool $visible=true [, bool $symbols_below=true [, bool $symbols_right=true [, bool $auto_style=false]]]])

説明

このメソッドは、アウトラインおよびグループ化のプロパティを設定します。 デフォルト値は、Excel のデフォルト設定と同じです。

パラメータ

  • bool $visible -

  • bool $symbols_below -

  • bool $symbols_right -

  • bool $auto_style -

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setOutline() の使用法

前のページ | ホーム | 次のページ
Worksheet::insertBitmap | 上に戻る | Spreadsheet_Excel_Writer::Spreadsheet_Excel_Writer

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::setPaper

Worksheet::setPaper -- 用紙設定をする (例えば 1 が US レター、9 が A4 サイズ)

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::setPaper ([integer $size=0])

説明

用紙の種類を設定します。例えば「1 = US Letter」、「9 = A4」です。

パラメータ

  • integer $size - 使用する用紙サイズの種類。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setPaper() の使用法

前のページ | ホーム | 次のページ
Worksheet::setLandscape | 上に戻る | Worksheet::setHeader

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::setPortrait

Worksheet::setPortrait -- ページの方向を縦に設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::setPortrait ()

説明

ページの方向を縦に設定します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setPortrait() の使用法

前のページ | ホーム | 次のページ
Worksheet::thawPanes | 上に戻る | Worksheet::setLandscape

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::setPrintScale

Worksheet::setPrintScale -- 印刷時の拡大率を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::setPrintScale ([integer $scale=100])

説明

印刷時の拡大率を設定します。これは、"ページにあわせて印刷" の設定を無効にします。

パラメータ

  • integer $scale - 拡大率。デフォルトは 100。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setPrintScale() の使用法

前のページ | ホーム | 次のページ
Worksheet::setZoom | 上に戻る | Worksheet::write

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::setRow

Worksheet::setRow -- 行の高さおよび書式を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::setRow (integer $row, integer $height [, mixed $format=0])

説明

このメソッドは、行の高さおよび XF 書式を設定するために使用します。 BIFF の ROW レコードを書き込みます。

パラメータ

  • integer $row - 設定する行。

  • integer $height - 行の高さに設定する値。高さを指定せずに XF のみを設定する場合には NULL を使用します。

  • mixed $format - 行に設定する XF 書式。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setRow() の使用法

前のページ | ホーム | 次のページ
Worksheet::writeUrl | 上に戻る | Worksheet::mergeCells

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::setSelection

Worksheet::setSelection -- ワークシート中の単一または複数のセルを選択する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::setSelection (integer $first_row, integer $first_column, integer $last_row, integer $last_column)

説明

ワークシート中の単一または複数のセルの選択を設定します。

パラメータ

  • integer $first_row - 選択範囲の最初の行。

  • integer $first_column - 選択範囲の最初の列。

  • integer $last_row - 選択範囲の最後の行。

  • integer $last_column - 選択範囲の最後の列。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setSelection() の使用法

前のページ | ホーム | 次のページ
Worksheet::setColumn | 上に戻る | Worksheet::freezePanes

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::setVPagebreaks

Worksheet::setVPagebreaks -- ワークシートに垂直方向の改ページを挿入する (印刷用)

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::setVPagebreaks (array $breaks)

説明

ワークシートに垂直方向の改ページを挿入します (印刷用です)。 改ページが挿入された場所の次の列で改ページされます。

パラメータ

  • array $breaks - 垂直方向の改ページを含む配列。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setVPagebreaks() の使用法

前のページ | ホーム | 次のページ
Worksheet::setHPagebreaks | 上に戻る | Worksheet::setZoom

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::setZoom

Worksheet::setZoom -- ワークシートの「ズーム」を設定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::setZoom ([integer $scale=100])

説明

ワークシートの「ズーム」を設定します。

パラメータ

  • integer $scale - ズーム率。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1setZoom() の使用

前のページ | ホーム | 次のページ
Worksheet::setVPagebreaks | 上に戻る | Worksheet::setPrintScale

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::thawPanes

Worksheet::thawPanes -- ウィンドウ枠の固定を解除する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::thawPanes (array $panes)

説明

ウィンドウ枠の固定を解除します。

パラメータ

  • array $panes -
唯一のパラメータで、以下のような内容の配列となります。
             0 => 縦方向の分割位置,
             1 => 横方向の分割位置,
             2 => 一番上に表示される行,
             3 => 一番左に表示される列,
             4 => アクティブなウィンドウ枠

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1thawPanes() の使用

前のページ | ホーム | 次のページ
Worksheet::freezePanes | 上に戻る | Worksheet::setPortrait

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::write

Worksheet::write -- 受け取った内容に応じて、適切な書き込みメソッドを呼び出す

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::write (integer $row, integer $col, mixed $token [, mixed $format=0])

説明

受け取った内容に応じて、適切な書き込みメソッドを呼び出します。

パラメータ

  • integer $row - 書き込み先の行。

  • integer $col - 書き込み先の列。

  • mixed $token - 書き込みたい内容。

  • mixed $format - オプションで、セルに適用する書式。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1write() の使用法

前のページ | ホーム | 次のページ
Worksheet::setPrintScale | 上に戻る | Worksheet::writeNumber

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::writeBlank

Worksheet::writeBlank -- 指定した行・列 (ゼロから数える) に空のセルを書き込む

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::writeBlank (integer $row, integer $col, mixed $format)

説明

指定した行・列 (ゼロから数える) に空のセルを書き込みます。 空のセルは、文字や数値を書き込まずに書式だけを設定する場合に使用します。 書式を設定せずに空のセルを書き込んでも何の意味もありません。 そのため、書式を指定していない場合はこのメソッドは何も書き込みません。 これは、主に write_row() および write_col() メソッドの最適化のためです。 正常に終了した場合 (書式を指定しなかった場合も含む) に 0、 パラメータが足りない場合に -1、 行や列が範囲を超えている場合に -2 を返します。

パラメータ

  • integer $row - ゼロから数えた行番号。

  • integer $col - ゼロから数えた列番号。

  • mixed $format - XF フォーマット。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1writeBlank() の使用法

require_once 'Spreadsheet/Excel/Writer.php';

$workbook = new Spreadsheet_Excel_Writer();
$worksheet =& $workbook->addWorksheet();
// すべてのプロパティを一気に設定することが可能です
$upper_right_side_brick =& $workbook->addFormat(array('right' => 5, 'top' => 5, 'size' => 15,
                                                      'pattern' => 1, 'bordercolor' => 'blue',
                                                      'fgcolor' => 'red'));
// あるいは、すべてのプロパティをひとつづつ設定していくことも可能です
$upper_left_side_brick =& $workbook->addFormat();
$upper_left_side_brick->setLeft(5);
$upper_left_side_brick->setTop(5);
$upper_left_side_brick->setSize(15);
$upper_left_side_brick->setPattern(1);
$upper_left_side_brick->setBorderColor('blue');
$upper_left_side_brick->setFgColor('red');

$lower_right_side_brick =& $workbook->addFormat(array('right' => 5, 'bottom' => 5, 'size' => 15,
                                                      'pattern' => 1, 'bordercolor' => 'blue',
                                                      'fgcolor' => 'red'));
$lower_left_side_brick =& $workbook->addFormat(array('left' => 5, 'bottom' => 5, 'size' => 15,
                                                     'pattern' => 1, 'bordercolor' => 'blue',
                                                     'fgcolor' => 'red'));

$worksheet->setColumn(0, 20, 6);

// 空
$sky =& $workbook->addFormat(array('fgcolor' => 'cyan', 'pattern' => 1, 'size' => 15));
for ($i = 0; $i <= 10; $i++)
{
    for ($j = 0; $j < 20; $j++) {
        $worksheet->writeBlank($i, $j, $sky);
    }
}

// 雲
$cloud =& $workbook->addFormat(array('fgcolor' => 'white', 'pattern' => 1, 'size' => 15));
$worksheet->writeBlank(5, 7, $cloud);
$worksheet->writeBlank(4, 8, $cloud);
$worksheet->writeBlank(5, 8, $cloud);
$worksheet->writeBlank(6, 8, $cloud);
$worksheet->writeBlank(4, 9, $cloud);
$worksheet->writeBlank(5, 9, $cloud);
$worksheet->writeBlank(5, 10, $cloud);

// レンガ
for ($j = 0; $j < 20; $j++)
{
    for ($i = 5; $i <= 11; $i++)
    {
        if (($i + $j)%2 == 1) // 右側
        {
            $worksheet->writeBlank(2*$i, $j, $upper_right_side_brick);
            $worksheet->writeBlank(2*$i + 1, $j, $lower_right_side_brick);
        }
        else // 左側
        {
            $worksheet->writeBlank(2*$i, $j, $upper_left_side_brick);
            $worksheet->writeBlank(2*$i + 1, $j, $lower_left_side_brick);
        }
    }
}

// この Excel アートを台無しにしないために、枠線を非表示にします。
$worksheet->hideGridLines();

$workbook->send('bricks.xls');
$workbook->close();
前のページ | ホーム | 次のページ
Worksheet::writeNote | 上に戻る | Worksheet::writeFormula

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::writeFormula

Worksheet::writeFormula -- 指定した行・列 (ゼロから数える) に数式を書き込む

概要

require_once "Spreadsheet/Excel/Writer.php";

integer Worksheet::writeFormula (integer $row, integer $col, string $formula [, mixed $format=0])

説明

指定した行・列 (ゼロから数える) に数式を書き込みます。 エラーが発生した場合は、(数式の代わりに) エラーメッセージを そのセルに書き込みます。

パラメータ

  • integer $row - ゼロから数えた行番号。

  • integer $col - ゼロから数えた列番号。

  • string $formula - 数式を表す文字列。

  • mixed $format - オプションの XF フォーマット。

返り値

integer - 正常に終了した場合は 0、 数式にエラーがあった場合は -1、 行や列が範囲を超えている場合に -2 を返します。

注意

この関数は、スタティックにコールする ことはできません。

数式は、等号 ('=') で始まる必要があります。

Excel 関数に渡す引数は、セミコロン (';') ではなくカンマ (',') で区切ります。

例

例 37-1writeFormula() の使用法

require_once 'Spreadsheet/Excel/Writer.php';

$workbook = new Spreadsheet_Excel_Writer('formula.xls');
$worksheet =& $workbook->addWorksheet();

$worksheet->write(0, 0, 2);
$worksheet->write(0, 1, "と");
$worksheet->write(0, 2, 2);
$worksheet->write(0, 3, "の和は");
$worksheet->writeFormula(0, 4, "=SUM(A1,C1)");

$workbook->close();
前のページ | ホーム | 次のページ
Worksheet::writeBlank | 上に戻る | Worksheet::writeUrl

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::writeNote

Worksheet::writeNote -- 指定した行・列に関連付けるコメントを書き込む

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::writeNote (integer $row, integer $col, string $note)

説明

指定した行・列に関連付けるコメントを書き込みます。 コメントの長さに制限はありません。

パラメータ

  • integer $row - ゼロから数えた行番号。

  • integer $col - ゼロから数えた列番号。

  • string $note - 書き込むコメント。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1writeNote() の使用法

前のページ | ホーム | 次のページ
Worksheet::writeString | 上に戻る | Worksheet::writeBlank

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::writeNumber

Worksheet::writeNumber -- 指定した行・列 (ゼロから数える) に数値を書き込む

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::writeNumber (integer $row, integer $col, float $num [, mixed $format=0])

説明

指定した行・列 (ゼロから数える) に数値を書き込みます。 整数値は double 型として書き込まれます。 表示する際は整数として表示されます。$format はオプションです。 正常に終了した場合に 0、 行や列が範囲を超えている場合に -2 を返します。

パラメータ

  • integer $row - ゼロから数えた行番号。

  • integer $col - ゼロから数えた列番号。

  • float $num - 書き込む数値。

  • mixed $format - オプションの XF フォーマット。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1writeNumber() の使用法

前のページ | ホーム | 次のページ
Worksheet::write | 上に戻る | Worksheet::writeString

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::writeString

Worksheet::writeString -- 指定した行・列 (ゼロから数える) に文字列を書き込む

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::writeString (integer $row, integer $col, string $str [, mixed $format=0])

説明

指定した行・列 (ゼロから数える) に文字列を書き込みます。 注意: Excel 5 で定義されている 255 文字という制限があります。 $format はオプションです。 正常に終了した場合に 0、 パラメータが足りない場合に -1、 行や列が範囲を超えている場合に -2、 長い文字列を 255 文字に切り詰めた場合に -3 を返します。

パラメータ

  • integer $row - ゼロから数えた行番号。

  • integer $col - ゼロから数えた列番号。

  • string $str - 書き込む文字列。

  • mixed $format - セルの XF フォーマット。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1writeString() の使用法

前のページ | ホーム | 次のページ
Worksheet::writeNumber | 上に戻る | Worksheet::writeNote

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::writeUrl

Worksheet::writeUrl -- ハイパーリンクを書き込む

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::writeUrl (integer $row, integer $col, string $url [, string $string='' [, mixed $format=0]])

説明

ハイパーリンクを書き込みます。これは、表示されるラベルおよび 非表示のリンクの 2 つの要素から構成されます。別途文字列が 指定されなければ、表示されるラベルはリンクと同じになります。 ラベルは writeString() メソッドを使用して書き込まれます。 そのため、255 文字までという制限があります。$string および $format はオプションで、その順序は交換可能です。ハイパーリンクとして 指定できるのは http、ftp、メールアドレス、同じドキュメント内の場所、 あるいは外部のディレクトリを表す URL です。 正常に終了した場合に 0、 パラメータが足りない場合に -1、 行や列が範囲を超えている場合に -2、 長い文字列を 255 文字に切り詰めた場合に -3 を返します。

パラメータ

  • integer $row - 行。

  • integer $col - 列。

  • string $url - URL 文字列。

  • string $string - 表示用のラベル。

  • mixed $format - セルの書式。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1writeUrl() の使用法

前のページ | ホーム | 次のページ
Worksheet::writeFormula | 上に戻る | Worksheet::setRow

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Spreadsheet_Excel_Writer::rowcolToCell

Spreadsheet_Excel_Writer::rowcolToCell -- 式を書くためのユーティリティ関数

概要

require_once "Spreadsheet/Excel/Writer.php";

void Spreadsheet_Excel_Writer::rowcolToCell (integer $row, integer $col)

説明

式を書くためのユーティリティ関数です。 セルの座標を A1 形式に変換します。

パラメータ

  • integer $row - 変換するセルの行番号 (0 から始まります)。

  • integer $col - 変換するセルの列番号 (0 から始まります)。

返り値

returns 成功した場合に A1 形式のセル ID、 失敗した場合に PEAR_Error を返します。

例

例 37-1rowcolToCell() の使用法

require_once 'Spreadsheet/Excel/Writer.php';

$workbook = new Spreadsheet_Excel_Writer('rowcol.xls');
$worksheet1 =& $workbook->addWorksheet("rowcol");

$first = 1;
$last = 10;
for ($i = $first; $i <= $last; $i++) {
    $worksheet1->write($i, 1, $i);
}
$cell1 = Spreadsheet_Excel_Writer::rowcolToCell($first, 1);
$cell2 = Spreadsheet_Excel_Writer::rowcolToCell($last, 1);
$worksheet1->write($last + 1, 0, "Total =");
$worksheet1->writeFormula($last + 1, 1, "=SUM($cell1:$cell2)");
$workbook->close();
前のページ | ホーム | 次のページ
Spreadsheet_Excel_Writer::send | 上に戻る | Format::setAlign

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Spreadsheet_Excel_Writer::send

Spreadsheet_Excel_Writer::send -- Excel ファイル用の HTTP ヘッダを送信する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Spreadsheet_Excel_Writer::send (string $filename)

説明

Excel ファイル用の HTTP ヘッダを送信します。

パラメータ

  • string $filename - HTTP ヘッダで使用するファイル名。

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1send() の使用法

前のページ | ホーム | 次のページ
Spreadsheet_Excel_Writer::Spreadsheet_Excel_Writer | 上に戻る | Spreadsheet_Excel_Writer::rowcolToCell

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Spreadsheet_Excel_Writer::Spreadsheet_Excel_Writer

Spreadsheet_Excel_Writer::Spreadsheet_Excel_Writer -- ワークブックを作成するコンストラクタ

概要

require_once "Spreadsheet/Excel/Writer.php";

object The Spreadsheet_Excel_Writer::Spreadsheet_Excel_Writer ([string $filename=''])

説明

コンストラクタです。ワークブックを作成します。

パラメータ

  • string $filename - オプションで、ワークブックのファイル名を指定します。

返り値

object The - 作成したワークブック

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1Spreadsheet_Excel_Writer() の使用法

前のページ | ホーム | 次のページ
Worksheet::setOutline | 上に戻る | Spreadsheet_Excel_Writer::send

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Worksheet::freezePanes

Worksheet::freezePanes -- ウィンドウ枠を固定する

概要

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::freezePanes (array $panes)

説明

ウィンドウ枠を固定します。このメソッドを使用すると、 ワークシート内の特定の領域を指定し、 それを "凍結" することが可能となります。 つまり、ワークシートをスクロールさせてもその領域は影響を受けず、 画面の中に残り続けるということです。 このメソッドは、Microsoft Excel のメニューコマンド ウィンドウ(W)+ウィンドウ枠の固定(F) と同じ機能を提供します。

パラメータ

  • array $panes -
唯一のパラメータで、以下のような内容の配列となります。
             0 => 縦方向の分割位置,
             1 => 横方向の分割位置,
             2 => 一番上に表示される行,
             3 => 一番左に表示される列,
             4 => アクティブなウィンドウ枠

注意

この関数は、スタティックにコールする ことはできません。

例

例 37-1freezePanes() の使用法

$worksheet =& $workbook->addWorksheet("Some Worksheet");

/* ... */

/* これは、ワークシートの最初の 6 行を凍結します */
$worksheet->freezePanes(array(6, 0));

/* 最初のカラムを凍結するには、以下のようにします */
$worksheet->freezePanes(array(0, 1));

さらにスクロール領域を指定したい場合は、 次のような構文が使用可能です。

/* 最初の 6 行を凍結し、スクロール領域を 9 行目からはじめます */
$worksheet->freezePanes(array(6, 0, 9, 0));
前のページ | ホーム | 次のページ
Worksheet::setSelection | 上に戻る | Worksheet::thawPanes

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Archive-Tar

目次
Archive_Tar::Archive_Tar() -- コンストラクタ
Archive_Tar::add() -- ファイルまたはディレクトリを追加する
Archive_Tar::addModify() -- ファイルまたはディレクトリを追加する
Archive_Tar::create() -- アーカイブファイルを作成する
Archive_Tar::createModify() -- 新規アーカイブファイルを作成する
Archive_Tar::extract() -- アーカイブを伸長する
Archive_Tar::extractList() -- リスとされたファイルを伸長する
Archive_Tar::extractModify() -- 新規ディレクトリにファイルを伸長する
Archive_Tar::listContent() -- アーカイブにあるファイルとディレクトリをリストする
Archive_Tar::extractInString() -- 1 つのファイルを伸長し文字列として返す
Archive_Tar::addString() -- アーカイブに文字列を追加する

Archive_Tar は、(圧縮された) Tar アーカイブを操作するためのAPIを提供します。

前のページ | ホーム | 次のページ
ファイルシステム | 上に戻る | Archive_Tar::Archive_Tar()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Archive_Tar::add()

Archive_Tar::add() -- ファイルまたはディレクトリを追加する

概要

require_once 'Archive/Tar.php';

boolean add (mixed $filelist)

説明

このメソッドは既存のアーカイブにファイルやディレクトリを追加します。 もしアーカイブが存在しない場合、アーカイブを生成しようと試みます。 リストされるファイルやディレクトリは、 同名のファイルがすでにアーカイブされている場合でも アーカイブの最後に追加されます。

パラメータ

  • mixed $filelist - ファイル名やディレクトリ名の配列、 もしくは単一のスペースで区切られた文字列を指定します。 アーカイブに追加されるそれぞれのディレクトリについて、 ファイルやサブディレクトリも追加されます。

返り値

boolean - 成功時には TRUE 、 失敗時には FALSE を返します。

例外・エラー

表 38-1PEAR_Error の値

エラーコード | エラーメッセージ | 理由 | 解決法
NULL | "Invalid file list" | 関数に対する引数が正しくフォーマット、 あるいは構成されていません | 引数のタイプミスを確認してください

注意

この関数は、スタティックにコールする ことはできません。

例

例 38-1圧縮されたアーカイブにファイルを追加する

$tar_object = new Archive_Tar("tarname.tar.gz", true);
$v_list[0]="dev/file.txt";
$v_list[1]="dev/data/";
$v_list[2]="log/file.log";
$tar_object->add($v_list);
前のページ | ホーム | 次のページ
Archive_Tar::Archive_Tar() | 上に戻る | Archive_Tar::addModify()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Archive_Tar::addModify()

Archive_Tar::addModify() -- ファイルまたはディレクトリを追加する

概要

require_once 'Archive/Tar.php';

boolean addModify (mixed $filelist, string $add_dir [, string $remove_dir = ''])

説明

このメソッドは既存のアーカイブに filelist にリストされたファイルやディレクトリを追加します。

もしアーカイブが存在しない場合、アーカイブを生成しようと試みます。 リストされるファイルやディレクトリは、アーカイブの最後にだけ追加されます。 しかしながら、アーカイブを展開する際に 最後のファイルは最初のファイルを上書きします。 これはアーカイブサイズの最適化がなされない、という結果になります。 もしファイルもしくはディレクトリが存在しない場合は無視されます。

パラメータ

  • mixed $filelist - ファイル名やディレクトリ名の配列、 もしくは単一のスペースで区切られた名前の文字列を指定します

  • string $add_dir - リストにある各要素に追加するパスを含む文字列を指定します

  • string $remove_dir - 該当する場合、 リストにある各要素から削除するパスを含む文字列を指定します。

    add_dir で指定されたパスは、 リストされた各ファイル/ディレクトリの最初に付加されます。 しかし、空 '' に設定することもできます。 パスの追加はパスの削除の後実行されます。 パスの追加/削除機能により、オリジナルパスと異なるパスにアーカイブを 準備する事が可能です。

返り値

boolean - 成功時には TRUE 、 失敗時には FALSE を返します。

例外・エラー

表 38-1PEAR_Error の値

エラーコード | エラーメッセージ | 理由 | 解決法
NULL | "Invalid file list" | 関数に対する引数が正しくフォーマット、 あるいは構成されていません | 引数のタイプミスを確認してください
NULL | "Unable to open in write mode file name" | 既存ファイルのファイル権限が書き込みを許可していない、 もしくはファイルがロックされています。 | 権限、または当該ファイルを使用しているプログラムの競合の可能性を 確認してください the file.
NULL | "Invalid file list" | アーカイブが空、もしくは破損しています |
NULL | "File filename does not exist" | アーカイブに追加するファイルが存在しません | 関数の引数のタイプミスを確認してください
NULL | "Directory dirname can not be read" | アーカイブに追加するディレクトリもしくはファイルが存在しない、 もしくはディレクトリの読み込み権限がありません | 関数の引数のタイプミスや権限を確認してください
NULL | "Unable to open file filenamein binary read mode" | アーカイブに追加するファイルを読めませんでした | 関数の引数のタイプミスやファイルの権限を確認してください

注意

この関数は、スタティックにコールする ことはできません。

例

例 38-1圧縮されたアーカイブの新規ディレクトリにファイルを追加する

$tar_object = new Archive_Tar("tarname.tar");
$v_list[0]="dev/file.txt";
$v_list[1]="dev/data/";
$v_list[2]="log/file.log";
$tar_object->addModify($v_list, "install");
// アーカイブにストアされているファイルは次の通り :
//   install/file.txt
//   install/data
//   install/data/file1.txt
//   install/data/... data/ の全てのファイルやサブディレクトリ
//   install/file.log

例 38-2 圧縮されたアーカイブの新規ディレクトリに移動しながらファイルを追加する

$tar_object = new Archive_Tar("tarname.tar");
$v_list[0]="dev/file.txt";
$v_list[1]="dev/data/";
$v_list[2]="log/file.log";
$tar_object->addModify($v_list, "install", "dev");
// アーカイブにストアされているファイルは次の通り :
//   install/file.txt
//   install/data
//   install/data/file1.txt
//   install/data/...         data/ の全てのファイルやサブディレクトリ
//   install/log/file.log

例 38-3 圧縮されたアーカイブの新規ディレクトリに移動しながらファイルを追加する (特に Windows の場合)

$tar_object = new Archive_Tar("tarname.tar");
$v_list[0]="d:\\dev\\file.txt";
$v_list[1]="d:\\dev\\data\\";
$v_list[2]="d:\\log\\file.log";
$tar_object->addModify($v_list, "install/temp", "d:\\dev");
// アーカイブにストアされているファイルは次の通り :
//   install/temp/file.txt
//   install/temp/data
//   install/temp/data/file1.txt
//   install/temp/data/...         data/ の全てのファイルやサブディレクトリ
//   install/temp/log/file.log

Windows システムでは、Windows のパスフォーマットが利用可能です。 しかしながら、ファイルが Windows のパスを使用している場合、 $remove_dir パラメータも Windows のパスフォーマットにしなければなりません。 $add_dir パラメータは、Windows もしくは UNIX のパスフォーマットで指定可能です。

前のページ | ホーム | 次のページ
Archive_Tar::add() | 上に戻る | Archive_Tar::create()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Archive_Tar::addString()

Archive_Tar::addString() -- アーカイブに文字列を追加する

概要

require_once 'Archive/Tar.php';

boolean addString (string $filename, string $content)

説明

このメソッドは文字列 content をファイル名 filename を持つファイルとしてアーカイブに追加します。

もしアーカイブが存在しない場合、アーカイブを生成しようと試みます。

パラメータ

  • string $filename - アーカイブに追加される文字列に関連付けられるパスとファイル名を 指定します。

  • string $content - ファイルとしてアーカイブに追加する文字列を指定します。

返り値

boolean - 成功時には TRUE 、 失敗時には FALSE を返します。

例外・エラー

表 38-1PEAR_Error の値

エラーコード | エラーメッセージ | 理由 | 解決法
NULL | "Unable to open in write mode file name" | 既存ファイルへのファイル権限が書き込みを許可していない、 もしくはファイルがロックされています。 | 権限やファイルを使用しているプログラムの競合を確認してください。
NULL | "Unable to open file filenamein binary read mode" | アーカイブに追加するファイルを読み込むことができませんでした。 | 関数の引数のタイプミスやファイル権限を確認してください。

注意

この関数は、スタティックにコールする ことはできません。

例

例 38-1圧縮されたアーカイブに文字列を追加する

$tar_object = new Archive_Tar("tarname.tgz");
$content = "this file was generated from a string";
$tar_object->addString("data/readme.txt", $content);
// 以下の名前のファイルがアーカイブ内に生成される :
//   data/readme.txt
前のページ | ホーム | 次のページ
Archive_Tar::extractInString() | 上に戻る | File

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Archive_Tar::Archive_Tar()

Archive_Tar::Archive_Tar() -- コンストラクタ

概要

require_once 'Archive/Tar.php';

void Archive_Tar (string $tarname [, mixed $compress = NULL])

説明

コンストラクタは、tar ファイル名によって識別される新規 Archive_Tar オブジェクトを宣言します。

パラメータ

  • string $tarname - 処理を行う tar アーカイブ名を指定します

  • mixed $compress - もし TRUE であれば、アーカイブが圧縮されることを示します (gzip を使用します) 。 もし NULL であれば、アーカイブは圧縮されません。 もし 'gz' もしくは 'bz2' であれば、アーカイブが gzip もしくは bz2 を用いて圧縮されることを示します。 互換性のため、ブール値 TRUE は 'gz' を意味します。

前のページ | ホーム | 次のページ
Archive-Tar | 上に戻る | Archive_Tar::add()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Archive_Tar::create()

Archive_Tar::create() -- アーカイブファイルを作成する

概要

require_once 'Archive/Tar.php';

boolean create (mixed $filelist)

説明

このメソッドはアーカイブファイルを作成し、リストされたファイル もしくはディレクトリを追加します。

もし同名の tar ファイルが存在していて書き込み可能な場合、 新しい tar アーカイブに置換されます ('追加' ではなく '作成') 。 もしファイルが存在し書き込み保護されている、もしくはフォルダの場合、 このメソッドは PEAR_Error を発生します。

パラメータ

  • mixed $filelist - ファイル名やディレクトリ名の配列、 もしくは単一のスペースで区切られた文字列を指定します。 アーカイブに追加されるそれぞれのディレクトリについて、 ファイルやサブディレクトリも追加されます。

返り値

boolean - 成功時には TRUE 、 失敗時には FALSE を返します。

例外・エラー

表 38-1PEAR_Error の値

エラーコード | エラーメッセージ | 理由 | 解決法
NULL | 関数に対する引数が正しくフォーマット、 あるいは構成されていません | 引数のタイプミスを確認してください |

注意

この関数は、スタティックにコールする ことはできません。

例

例 38-1アーカイブの作成

$tar_object = new Archive_Tar("myArchive.tar");

// エラーを表示
$tar_object->setErrorHandling(PEAR_ERROR_PRINT);

// アーカイブのコンテンツ
$v_list[0]="file.txt";
// スラッシュはオプション
$v_list[1]="data/";
$v_list[2]="file.log";

// アーカイブを作成する
$tar_object->create($v_list);

例 38-2create() 引数として文字列を使用した場合の 圧縮されたアーカイブの作成

$tar_object = new Archive_Tar("tarname.tgz", true);
$tar_object->setErrorHandling(PEAR_ERROR_PRINT);
$tar_object->create("file.txt data/ file.log");
前のページ | ホーム | 次のページ
Archive_Tar::addModify() | 上に戻る | Archive_Tar::createModify()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Archive_Tar::createModify()

Archive_Tar::createModify() -- 新規アーカイブファイルを作成する

概要

require_once 'Archive/Tar.php';

boolean createModify (array $filelist, string $add_dir [, string $remove_dir = ''])

説明

このメソッドはアーカイブファイルを作成し、リストされたファイル もしくはディレクトリを追加します。

もし同名の tar ファイルが存在していて書き込み可能な場合、 新しい tar アーカイブに置換されます。この場合、'追加' ではなく '作成' されます。 もしファイルが存在し書き込み保護されている、もしくはフォルダの場合、 置換されません。

パラメータ

  • mixed $filelist - ファイル名やディレクトリ名の配列、 もしくは単一のスペースで区切られた文字列を指定します

  • string $add_dir - リストにある各要素に追加するパスを含む文字列を指定します

  • string $remove_dir - 該当する場合、 リストにある各要素から削除するパスを含む文字列を指定します。 デフォルトは空文字列です。

返り値

boolean - 成功時には TRUE 、 失敗時には FALSE を返します。

例外・エラー

表 38-1PEAR_Error の値

エラーコード | エラーメッセージ | 理由 | 解決法
NULL | "Invalid file list" | 関数に対する引数が正しくフォーマット、 あるいは構成されていません | 引数のタイプミスを確認してください

注意

この関数は、スタティックにコールする ことはできません。

例

例 38-1圧縮されたアーカイブの新規ディレクトリにファイルを追加する

$tar_object = new Archive_Tar("tarname.tgz", true);
$tar_object->setErrorHandling(PEAR_ERROR_PRINT);
$v_list[0]="dev/file.txt";
$v_list[1]="dev/data/";
$v_list[2]="log/file.log";
$tar_object->createModify($v_list, "install", "dev");
// アーカイブにストアされているファイルは次の通り :
//   install/file.txt
//   install/data
//   install/data/file1.txt
//   install/data/... data/ の全てのファイルやサブディレクトリ
//   install/log/file.log

例 38-2 圧縮されたアーカイブの新規ディレクトリにファイルを追加する (特に Windows の場合)

$tar_object = new Archive_Tar("tarname.tgz", true);
$tar_object->setErrorHandling(PEAR_ERROR_PRINT);
$v_list[0]="c:\\dev\\file.txt";
$v_list[1]="c:\\dev\\data\\";
$v_list[2]="c:\\log\\file.log";
$tar_object->createModify($v_list, "install/temp", "c:\\dev");
// アーカイブにストアされているファイルは次の通り :
//   install/temp/file.txt
//   install/temp/data
//   install/temp/data/file1.txt
//   install/temp/data/... data/ の全てのファイルやサブディレクトリ
//   install/temp/log/file.log
前のページ | ホーム | 次のページ
Archive_Tar::create() | 上に戻る | Archive_Tar::extract()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Archive_Tar::extract()

Archive_Tar::extract() -- アーカイブを伸長する

概要

require_once 'Archive/Tar.php';

boolean extract (string $path)

説明

与えられたパスにアーカイブからのファイルを伸長します。

ファイルを伸長している間、ファイルがすでに存在する場合は、 最終更新日を確認することなく置換されます。 もしファイルがすでに存在しており書き込み保護されている場合、 伸長は中止されます。 もし同名のディレクトリがすでに存在する場合、伸長は中止されます。

しかし部分的に伸長された結果となった場合、伸長されたファイルを 手動で削除する必要があるかも知れません。

パラメータ

  • string $path - 伸長するパスを指定します

返り値

boolean - 成功時には TRUE 、 失敗時には FALSE を返します。

例外・エラー

表 38-1PEAR_Error の値

エラーコード | エラーメッセージ | 理由 | 解決法
NULL | " Unable to open in read mode archive " | ファイルが他のアプリケーションによって排他的にロックされています。 | 当該ファイルを使用している他のアプリケーションを確認してください。 これは競合する Archive_Tar でアーカイブを処理している場合は発生しません。
NULL | " Unable to open in write mode archive " | ファイルが他のアプリケーションによってロックされています。 | 当該ファイルを使用している他のアプリケーションを確認してください。 これは競合する Archive_Tar でアーカイブを処理している場合に発生するかも知れません。
NULL | " Invalid extract mode mode " | 実装エラーです。 | 発生しないはずですが、その場合はバグレポートをお願いします。
NULL | " Directory name already exists as a file " | そのファイルはアーカイブ中でディレクトリとしてマークされています。 | 壊れたアーカイブなのかも知れません
NULL | " File name already exists as a directory " | そのディレクトリはアーカイブ中でファイルとしてマークされています。 | 壊れたアーカイブなのかも知れません
NULL | " File name already exists and is write protected. " | アーカイブは伸長先ディレクトリにすでに存在しているファイルを 含んでおり、上書きすることができません。 | 空のディレクトリにアーカイブを伸長してください。
NULL | " Unable to create path for name " | 1 つもしくはそれ以上のネストした新規ディレクトリは 伸長先ディレクトリに生成できません。 | 伸長先ディレクトリと全てのネストしたディレクトリが 要求される権限を持っているか確認してください。
NULL | " Unable to create directory name " | ディレクトリを伸長先ディレクトリに生成することができませんでした。 | 伸長先ディレクトリに要求される権限を持っているか確認してください。
NULL | " Error while opening name in write binary mode " | ファイルを生成することができませんでした。 | ファイルがロックされている可能性があります。
NULL | " Extracted file filename does not have the correct file size filesize (size expected). Archive may be corrupted. " | メッセージを参照してください。 | メッセージを参照してください。

注意

この関数は、スタティックにコールする ことはできません。

例

例 38-1圧縮されたアーカイブを伸長する

$tar = new Archive_Tar('archive.tar.gz', true);
$result = $tar->extract('/home/myFolder');
前のページ | ホーム | 次のページ
Archive_Tar::createModify() | 上に戻る | Archive_Tar::extractList()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Archive_Tar::extractInString()

Archive_Tar::extractInString() -- 1 つのファイルを伸長し文字列として返す

概要

require_once 'Archive/Tar.php';

boolean extractInString (string $path)

説明

このメソッドは path で指定されたファイルをアーカイブから伸長し、それを文字列で返します。 このメソッドはテンポラリファイルを使用しません。

パラメータ

  • string $path - 伸長するファイルのパスを指定します

返り値

string - 伸長されたファイルの内容

例外・エラー

表 38-1PEAR_Error の値

エラーコード | エラーメッセージ | 理由 | 解決法
NULL | " Unable to open in read mode archive " | ファイルが他のアプリケーションによって排他的にロックされています。 | 当該ファイルを使用している他のアプリケーションを確認してください。 これは競合する Archive_Tar でアーカイブを処理している場合は発生しません。
NULL | " Invalid extractinstring mode mode " | 実装エラーです。 | 発生しないはずですが、その場合はバグレポートをお願いします。
NULL | " Error while opening name in write binary mode " | ファイルを生成することができませんでした。 | ファイルがロックされているかも知れません。
NULL | " Extracted file filename does not have the correct file size filesize (size expected). Archive may be corrupted. " | メッセージを参照してください。 | メッセージを参照してください。

注意

この関数は、スタティックにコールする ことはできません。

例

例 38-1 ファイルを文字列に伸長する

// tarname.tar は以下のファイルを含む :
//   dev/data/file.txt
//   dev/data/log.txt
//   dev/readme.txt

$tar_object = new Archive_Tar("tarname.tar");
$text = $tar_object->extractInString("dev/readme.txt");
echo $text;
前のページ | ホーム | 次のページ
Archive_Tar::listContent() | 上に戻る | Archive_Tar::addString()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Archive_Tar::extractList()

Archive_Tar::extractList() -- リスとされたファイルを伸長する

概要

require_once 'Archive/Tar.php';

boolean extractList (array $filelist [, string $path = '' [, string $remove_path = '']])

説明

このメソッドは $filelist で指定されたファイルのみをアーカイブから伸長します。 これらのファイルはカレントディレクトリもしくはオプションの $path パラメータで指定されたディレクトリに伸長されます。

パラメータ

  • string $filelist - ファイル名やディレクトリ名の配列、 もしくはスペースで区切られた単一の文字列を指定します。

  • string $path - ファイルやディレクトリを伸長するために必要な ディレクトリのパスを指定します。

  • string $remove_path - ファイルやディレクトリパスの最初に現れる場合に削除する 記録されたパスの一部を指定します

返り値

boolean - 成功時には TRUE 、 失敗時には FALSE を返します。

例外・エラー

表 38-1PEAR_Error の値

エラーコード | エラーメッセージ | 理由 | 解決法
NULL | " Unable to open in read mode archive " | ファイルが他のアプリケーションによって排他的にロックされています。 | 当該ファイルを使用している他のアプリケーションを確認してください。 これは競合する Archive_Tar でアーカイブを処理している場合は発生しません。
NULL | " Unable to open in write mode archive " | ファイルが他のアプリケーションによってロックされています。 | 当該ファイルを使用している他のアプリケーションを確認してください。 これは競合する Archive_Tar でアーカイブを処理している場合に発生するかも知れません。
NULL | " Invalid extractlist mode mode " | 実装エラーです。 | 発生しないはずですが、その場合はバグレポートをお願いします。
NULL | " Directory name already exists as a file " | そのファイルはアーカイブ中でディレクトリとしてマークされています。 | 壊れたアーカイブなのかも知れません
NULL | " File name already exists as a directory " | そのディレクトリはアーカイブ中でファイルとしてマークされています。 | 壊れたアーカイブなのかも知れません
NULL | " File name already exists and is write protected. " | アーカイブは伸長先ディレクトリにすでに存在しているファイルを 含んでおり、上書きすることができません。 | 空のディレクトリにアーカイブを伸長してください。
NULL | " Unable to create path for name " | 1 つもしくはそれ以上のネストした新規ディレクトリは 伸長先ディレクトリに生成できません。 | 伸長先ディレクトリと全てのネストしたディレクトリが 要求される権限を持っているか確認してください。
NULL | " Unable to create directory name " | ディレクトリを伸長先ディレクトリに生成することができませんでした。 | 伸長先ディレクトリに要求される権限を持っているか確認してください。
NULL | " Error while opening name in write binary mode " | ファイルを生成することができませんでした。 | ファイルがロックされている可能性があります。
NULL | " Extracted file filename does not have the correct file size filesize (size expected). Archive may be corrupted. " | メッセージを参照してください。 | メッセージを参照してください。

注意

この関数は、スタティックにコールする ことはできません。

例

例 38-1圧縮されたアーカイブを伸長する

// tarname.tar は以下のファイルを含む :
//   dev/data/file.txt
//   dev/data/log.txt
//   readme.txt

$tar_object = new Archive_Tar("tarname.tar");
$tar_object->extractList("dev/data/file.txt readme.txt", "install",
                         "dev");

// 伸長されるファイルは以下の通り :
//   install/data/file.txt
//   install/readme.txt
前のページ | ホーム | 次のページ
Archive_Tar::extract() | 上に戻る | Archive_Tar::extractModify()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Archive_Tar::extractModify()

Archive_Tar::extractModify() -- 新規ディレクトリにファイルを伸長する

概要

require_once 'Archive/Tar.php';

boolean extractModify (string $path, string $remove_path)

説明

このメソッドはアーカイブの全ての内容を path で指定されたディレクトリに伸長します。 ファイルやディレクトリの記録されたパスが該当する場合、 ファイルやディレクトリパスの最初にある remove_path が削除されます。

ファイルを伸長している間、ファイルがすでに存在する場合は、 最終更新日を確認することなく置換されます。 もしファイルがすでに存在しており書き込み保護されている場合、 伸長は中止されます。 もし同名のディレクトリがすでに存在する場合、伸長は中止されます。

ディレクトリを伸長している間、同名のファイルがすでに存在している場合は 伸長が中止されます。 ファイルやディレクトリを伸長している間、伸長先のディレクトリが存在し かつ書き込み保護されている、もしくは存在しないかつ作成できない場合、 伸長は中止されます。 もし伸長後のファイルが正しいファイルサイズではない場合、 伸長は中止されます。

パラメータ

  • string $path - ファイルやディレクトリを伸長するために必要な ディレクトリのパスを指定します。

  • string $remove_path - ファイルやディレクトリパスの最初に現れる場合に削除する 記録されたパスの一部を指定します

返り値

boolean - 成功時には TRUE 、 失敗時には FALSE を返します。

例外・エラー

表 38-1PEAR_Error の値

エラーコード | エラーメッセージ | 理由 | 解決法
NULL | " Unable to open in read mode archive " | ファイルが他のアプリケーションによって排他的にロックされています。 | 当該ファイルを使用している他のアプリケーションを確認してください。 これは競合する Archive_Tar でアーカイブを処理している場合は発生しません。
NULL | " Unable to open in write mode archive " | ファイルが他のアプリケーションによってロックされています。 | 当該ファイルを使用している他のアプリケーションを確認してください。 これは競合する Archive_Tar でアーカイブを処理している場合に発生するかも知れません。
NULL | " Invalid extractmodify mode mode " | 実装エラーです。 | 発生しないはずですが、その場合はバグレポートをお願いします。
NULL | " Directory name already exists as a file " | そのファイルはアーカイブ中でディレクトリとしてマークされています。 | 壊れたアーカイブなのかも知れません
NULL | " File name already exists as a directory " | そのディレクトリはアーカイブ中でファイルとしてマークされています。 | 壊れたアーカイブなのかも知れません
NULL | " File name already exists and is write protected. " | アーカイブは伸長先ディレクトリにすでに存在しているファイルを 含んでおり、上書きすることができません。 | 空のディレクトリにアーカイブを伸長してください。
NULL | " Unable to create path for name " | 1 つもしくはそれ以上のネストした新規ディレクトリは 伸長先ディレクトリに生成できません。 | 伸長先ディレクトリと全てのネストしたディレクトリが 要求される権限を持っているか確認してください。
NULL | " Unable to create directory name " | ディレクトリを伸長先ディレクトリに生成することができませんでした。 | 伸長先ディレクトリに要求される権限を持っているか確認してください。
NULL | " Error while opening name in write binary mode " | ファイルを生成することができませんでした。 | ファイルがロックされている可能性があります。
NULL | " Extracted file filename does not have the correct file size filesize (size expected). Archive may be corrupted. " | メッセージを参照してください。 | メッセージを参照してください。

注意

この関数は、スタティックにコールする ことはできません。

例

例 38-1 古いディレクトリを無視しながら新しいディレクトリに圧縮された アーカイブを伸長する

// tarname.tar は以下のファイルを含む :
//   dev/data/file.txt
//   dev/data/log.txt
//   readme.txt

$tar_object = new Archive_Tar("tarname.tar");
$tar_object->extractModify("install", "dev");

// 伸長されるファイルは以下の通り :
//   install/data/file.txt
//   install/data/log.txt
//   install/readme.txt

例 38-2 古いディレクトリを無視しながら新しいディレクトリに圧縮された アーカイブを伸長する (特に Windows の場合)

// tarname.tar は以下のファイルを含む :
//   dev/data/file.txt
//   dev/data/log.txt
//   readme.txt

$tar_object = new Archive_Tar("tarname.tar");
$tar_object->extractModify("d:\\install\\temp", "dev");

// 伸長されるファイルは以下の通り :
//   d:\\install\\temp\\data\\file.txt
//   d:\\install\\temp\\data\\log.txt
前のページ | ホーム | 次のページ
Archive_Tar::extractList() | 上に戻る | Archive_Tar::listContent()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Archive_Tar::listContent()

Archive_Tar::listContent() -- アーカイブにあるファイルとディレクトリをリストする

概要

require_once 'Archive/Tar.php';

array listContent ()

説明

アーカイブのファイルとディレクトリをリストします。

返り値

array - それぞれの配列エントリは、ファイルもしくはフォルダを表します。 配列はソートされませんので、 インデックスはアーカイブにあるファイルやディレクトリの位置を表します。

それぞれのエントリは以下の情報を含みます:

  • $file['filename'] - ファイルやディレクトリの名前とパス

  • $file['mode'] - ファイルの権限 (fileperms() の結果)

  • $file['uid'] - ユーザー ID

  • $file['gid'] - グループ ID

  • $file['size'] - ファイルサイズ

  • $file['mtime'] - 最終更新時刻 (filemtime() の結果)

  • $file['typeflag'] - 空はファイル、"5" はディレクトリを表す

例外・エラー

表 38-1PEAR_Error の値

エラーコード | エラーメッセージ | 理由 | 解決法
NULL | " Unable to open in read mode archive " | ファイルが他のアプリケーションによって排他的にロックされています。 | 当該ファイルを使用している他のアプリケーションを確認してください。 これは競合する Archive_Tar でアーカイブを処理している場合は発生しません。
NULL | " Invalid listcontent mode mode " | 実装エラーです。 | 発生しないはずですが、その場合はバグレポートをお願いします。
NULL | " Directory name already exists as a file " | そのファイルはアーカイブ中でディレクトリとしてマークされています。 | 壊れたアーカイブなのかも知れません
NULL | " File name already exists as a directory " | そのディレクトリはアーカイブ中でファイルとしてマークされています。 | 壊れたアーカイブなのかも知れません
NULL | " File name already exists and is write protected. " | アーカイブは伸長先ディレクトリにすでに存在しているファイルを 含んでおり、上書きすることができません。 | 空のディレクトリにアーカイブを伸長してください。
NULL | " Unable to create path for name " | 1 つもしくはそれ以上のネストした新規ディレクトリは 伸長先ディレクトリに生成できません。 | 伸長先ディレクトリと全てのネストしたディレクトリが 要求される権限を持っているか確認してください。
NULL | " Unable to create directory name " | ディレクトリを伸長先ディレクトリに生成することができませんでした。 | 伸長先ディレクトリに要求される権限を持っているか確認してください。
NULL | " Error while opening name in write binary mode " | ファイルを生成することができませんでした。 | ファイルがロックされているかも知れません。
NULL | " Extracted file filename does not have the correct file size filesize (size expected). Archive may be corrupted. " | メッセージを参照してください。 | メッセージを参照してください。

注意

この関数は、スタティックにコールする ことはできません。

例

例 38-1アーカイブの内容をリストする

$tar_object = new Archive_Tar("tarname.tar");

if (($v_list  =  $tar_object->listContent()) != 0) {
    for ($i=0; $i<sizeof($v_list); $i++) {
        echo "Filename :'".$v_list[$i]['filename']."'<br>";
        echo " .size :'".$v_list[$i]['size']."'<br>";
        echo " .mtime :'".$v_list[$i]['mtime']."' (".
             date("l dS of F Y h:i:s A", $v_list[$i]['mtime']).")<br>";
        echo " .mode :'".$v_list[$i]['mode']."'<br>";
        echo " .uid :'".$v_list[$i]['uid']."'<br>";
        echo " .gid :'".$v_list[$i]['gid']."'<br>";
        echo " .typeflag :'".$v_list[$i]['typeflag']."'<br>";
   }
}
前のページ | ホーム | 次のページ
Archive_Tar::extractModify() | 上に戻る | Archive_Tar::extractInString()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File

目次
導入 -- File クラス導入
定数 -- あらかじめ定義された定数
File::buildpath() -- 与えられた部分の配列からパスを作成する
File::close() -- オープンしているファイルポインタを閉じる
File::getTempDir() -- システムのテンポラリディレクトリを返す
File::getTempFile() -- テンポラリファイルへのパスを返す
File::isAbsolute() -- 与えられたパスが絶対パスかどうかをチェックする
File::read() -- ファイルからバイトを読み込む
File::readAll() -- ファイルから全て読み込む
File::readChar() -- ファイルから 1 バイトを読み込む
File::readLine() -- ファイルから一行を読み込む
File::rewind() -- ファイルポインタを巻き戻す
File::skipRoot() -- 与えられたパスからルートディレクトリを取り除く
File::stripLeadingSeparators() -- パスから先頭のセパレータを取り除く
File::stripTrailingSeparators() -- パスから最後のセパレータを取り除く
File::unlock() -- ロックされたファイルポインタをアンロックする
File::write() -- ファイルにバイトを書き込む
File::writeChar() -- ファイルに 1 文字を書き込む
File::writeLine() -- ファイルに 1 行書き込む

一般的なファイル、ディレクトリルーチン

前のページ | ホーム | 次のページ
Archive_Tar::addString() | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Find

目次
検索方法 -- 検索関数で使用可能な方法の種類
File_Find::glob() -- ディレクトリ内でパターンにマッチするものを検索する
File_Find::maptree() -- ディレクトリに対するビューマップを作成する
File_Find::mapTreeMultiple() -- ディレクトリに対する再帰的なビューマップを作成する
File_Find::search() -- ディレクトリ内でパターンにマッチするものを検索する

ファイルやディレクトリツリーを検索するために共通で必要となる関数群

前のページ | ホーム | 次のページ
File::writeLine() | 上に戻る | 検索方法

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Find::glob()

File_Find::glob() -- ディレクトリ内でパターンにマッチするものを検索する

概要

require_once 'File/Find.php';

array &File_Find::glob (string $pattern, string $dirpath [, string $pattern_type = 'php'])

説明

ディレクトリ内で指定したパターンにマッチするものを検索します。

パラメータ

  • $pattern - ディレクトリを検索する際のパターンを含む文字列を指定します

  • $dirpath - 検索するディレクトリパスを含む文字列を指定します

  • $pattern_type - 使用するパターンマッチング関数を含む文字列を指定します ('php' もしくは 'perl' もしくは 'shell' のいずれかが指定可能です).

    $pattern のフォーマットは、 $pattern_type の値に依存します。 より詳細な情報については、 検索方法 を参照してください。

返り値

array - パターンにマッチする全てのファイル名とサブディレクトリを含む配列、 あるいは PEAR_Error 。

例外・エラー

表 38-1PEAR_Error の値

エラーコード | エラーメッセージ | 理由 | 解決法
NULL | " ディレクトリを開くことができません " | 与えられたディレクトリを開くことができませんでした | タイプミスやディレクトリの権限を確認してください。 これは Archive_Tar によるアーカイブの 処理によって引き起こされるものではありません。

注意

この関数は、スタティックにコールする ことができます。

例

例 38-1現在のディレクトリ内にある全ての PHP ファイルを検索する

include "File/Find.php";

$dir = ".";
$items = &File_Find::glob( '!.*\.php$!', $dir, 'perl' );

print_r($items);
前のページ | ホーム | 次のページ
検索方法 | 上に戻る | File_Find::maptree()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Find::maptree()

File_Find::maptree() -- ディレクトリに対するビューマップを作成する

概要

require_once 'File/Find.php';

array &File_Find::maptree (string $directory)

説明

ディレクトリパスパラメータによって与えられたディレクトリツリーを マップします。

パラメータ

  • string $directory - マップするディレクトリパスを指定します

返り値

array - 2 つの要素を持つ配列。 1 つ目の要素は全てのディレクトリの一覧を含んでいます。 2 つ目の要素は全てのファイルの一覧を含んでいます。

注意

この関数は、スタティックにコールする ことができます。

例

例 38-1ディレクトリのマップを取得する

include "File/Find.php";

$dir = "File_Find";
list($directories, $files) = File_Find::maptree($dir);

echo "ディレクトリ ";
print_r($directories);

echo "ファイル ";
print_r($files);

上の例の出力は、このようになります。

ディレクトリ Array
(
    [0] => File_Find
    [1] => File_Find\dir2
    [2] => File_Find\dir2\2
    [3] => File_Find\dir2\1
    [4] => File_Find\dir2\0
    [5] => File_Find\dir
    [6] => File_Find\dir\txtdir
    [7] => File_Find\dir\dir3
    [8] => File_Find\dir\dir2
)
ファイル Array
(
    [0] => File_Find\dir2\2\1.txt
    [1] => File_Find\dir2\1\1.txt
    [2] => File_Find\dir2\0\1.txt
    [3] => File_Find\dir\1.txt
    [4] => File_Find\dir\2.txt
    [5] => File_Find\dir\txtdir\5.txt
    [6] => File_Find\dir\dir3\4.bak
    [7] => File_Find\dir\dir3\4.txt
    [8] => File_Find\dir\dir2\3.bak
    [9] => File_Find\dir\dir2\3.txt
)
前のページ | ホーム | 次のページ
File_Find::glob() | 上に戻る | File_Find::mapTreeMultiple()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Find::mapTreeMultiple()

File_Find::mapTreeMultiple() -- ディレクトリに対する再帰的なビューマップを作成する

概要

require_once 'File/Find.php';

array &File_Find::mapTreeMultiple (string $directory [, integer $maxrecursion = 0 [, integer $count = 0]])

説明

directory_path パラメータによって与えられたディレクトリツリーをマップします。 取得するディレクトリのコンテンツは、 maxrecursion に依存します。 また、サブディレクトリのコンテンツについても同様です。

パラメータ

  • string $directory - マップするディレクトリパスを指定します

  • integer $maxrecursion - サブディレクトリの再帰的なマッピングの深さを定義します

  • integer $count - 無視することができます。再帰レベルを追うための内部パラメータです。

返り値

array - 全てのサブディレクトリとファイルを含む多次元配列。

注意

この関数は、スタティックにコールする ことができます。

例

例 38-1サブディレクトリを含むディレクトリのコンテンツを取得する

include "File/Find.php";

$file = File_Find::mapTreemultiple('/usr/', 1);

print_r($file);

上の例の出力は、このようになります。

Array
(
   [0] => file1.tmp
   [1] => file2.tmp
   ['bin'] => Array
      (
         [0] => readme.txt
      )
)
前のページ | ホーム | 次のページ
File_Find::maptree() | 上に戻る | File_Find::search()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_Find::search()

File_Find::search() -- ディレクトリ内でパターンにマッチするものを検索する

概要

require_once 'File/Find.php';

array &File_Find::search (string $pattern, string $dirpath [, string $pattern_type = 'php' [, bool $fullpath = true [, string $match = 'files']]])

説明

ディレクトリ内で指定したパターンにマッチするものを検索します。

パラメータ

  • $pattern - ディレクトリを検索する際のパターンを含む文字列を指定します

  • $dirpath - 検索するディレクトリパスを含む文字列を指定します

  • $pattern_type - 使用するパターンマッチング関数を含む文字列を指定します ('php'、'perl' もしくは 'shell' のいずれかが指定可能です)。

    $pattern のフォーマットは、 $pattern_type の値に依存します。 詳細な情報は、 検索方法 を参照ください。

  • $fullpath - 文字列の検索をフルパスに対して行うのか、 ファイル名に対してのみ行うのかを指定します。

  • $match - 'files'、'directories' あるいは 'both' のいずれかで、返すリストの形式を指定します。

返り値

array - 全てのファイル名を含む配列

注意

この関数は、スタティックにコールする ことができます。

参照

File_Find::glob()

前のページ | ホーム | 次のページ
File_Find::mapTreeMultiple() | 上に戻る | File_SMBPasswd

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


検索方法

検索方法 -- 検索関数で使用可能な方法の種類

検索方法とそれらのパターン

全ての検索関数は、ファイル名をマッチさせるために指定する $pattern パラメータを使用します。 $pattern のフォーマットは、もう一つのパラメータ - $pattern_type に依存します。

  • もし $pattern_type の値が 'php' の場合、 パターンは eregi_* 関数の規約に準拠していなければなりません。

  • 'perl' の場合、 preg_* のパターンフォーマットに準拠する必要があります。 処理速度が早いため、'perl' を使用することが推奨されます。

  • 最後の 'shell' モードは最も単純、 かつ基本的なコンピュータスキルを持つ方には親しみのあるものです。 これは Windows のアプローチと同様に簡単ですが、 FAR Manager ソフトウェアから借用したいくつかの追加コンセプトがあります。 続く章の文章は、そのドキュメントからコピー/ペーストしたものです。

'shell' 検索モードのファイルマスク

ファイルマスクは単一のファイルやフォルダ、 もしくはそれらのグループを選択するために使用されます。 マスクは有効なファイル名シンボル、ワイルドカード ('*' と '?')、 特殊な表現を含みます。

* | 任意の数の文字
? | 任意の一文字
[c,x-z] | ブラケットで囲まれた任意の文字。 区切られた文字や文字区間のいずれも許可されます。

例えばファイル ftp.exe, fc.exe そして f.ext はマスク f*.ex? を使用して選択され、 マスク *co* は color.ini や edit.com、マスク [c-f,t]*.txt は config.txt, demo.txt, faq.txt そして tips.txt によって選択することができます。

カンマやセミコロンによって区切られたいくつかのファイルマスクを 指定することができます。例えば、全てのドキュメントを選択する場合、 検索パターンとして *.doc,*.txt,*.wri を指定することができます。

また、exclude masks を使用することもできます。 除外マスクは、マスクにマッチするファイルによってマッチすべきでない 一つもしくは複数のファイルマスクです。 除外マスクは文字列 '|' によって主となるマスクと区切られます。

除外マスクの使用例:

  1. *.cpp

    拡張子 cpp を持つ全てのファイル

  2. *.*|*.bak,*.tmp

    拡張子 bak や tmp を持つファイルを除く全てのファイル

  3. *.*|

    このマスクはエラーになります - 文字 | が入力されていますが、 マスク自身が指定されていないためです。

  4. *.*|*.bak|*.tmp

    これもまたエラーになります - 文字 | はマスク内に一つ以上含まれてはいけません。

  5. |*.bak

    *|*.bak と等価

カンマ (もしくはセミコロン) はファイルマスク同士を区切るために使用され、 文字 '|' は除外マスクから包含マスクを区切ります。

'shell' 検索モードは、File_Find バージョン 1.2.0 以降で使用可能です。

前のページ | ホーム | 次のページ
File_Find | 上に戻る | File_Find::glob()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_HtAccess

目次
Introduction -- .htaccess ファイルとは
File_HtAccess::file_htaccess() -- コンストラクタ
File_HtAccess::load() -- 既存の .htaccess ファイルの内容をロードする
File_HtAccess::save() -- .htaccess ファイルを保存する
File_HtAccess::setRequire() -- require プロパティの値を設定する
File_HtAccess::addRequire() -- require プロパティに値を追加する
File_HtAccess::delRequire() -- require プロパティから値を削除する
File_HtAccess::getRequire() -- require プロパティの値を取得する
File_HtAccess::setProperties() -- オブジェクトプロパティの値を設定する
File_HtAccess::setAuthUserFile() -- authuserfile プロパティの値を設定する
File_HtAccess::setAuthGroupFile() -- authgroupfile プロパティの値を設定する
File_HtAccess::setAuthType -- authtype プロパティの値を設定する
File_HtAccess::setAuthDigestFile -- authdigestfile プロパティの値を設定する

.htaccess ファイルの生成や操作のためのメソッドを提供します。

前のページ | ホーム | 次のページ
File_SearchReplace::setSearchFunction() | 上に戻る | Introduction

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_HtAccess::addRequire()

File_HtAccess::addRequire() -- require プロパティに値を追加する

概要

void File_HtAccess::addRequire (string $require)

説明

require プロパティに値 (ユーザー) を追加します。 このメソッドを使用することで、ユーザーが保護されたリソースへアクセス できるかどうかを制御することができます。

パラメータ

  • string $require - require プロパティに追加する値 (ユーザー) を指定します

返り値

void

注意

この関数は、スタティックにコールする ことはできません。

参照

File_HtAccess::setRequire()
File_HtAccess::delRequire()
File_HtAccess::getRequire()

例

例 38-1File_HtAccess::addRequire() の使用

<?php
require_once('File/HtAccess.php');

/* ユーザー tuupola をアクセスが許可されたユーザーの一覧に追加する */
$fh = new File_HtAccess('.htaccess');
$fh->load();
$fh->addRequire('tuupola');
$fh->save();

?>
前のページ | ホーム | 次のページ
File_HtAccess::setRequire() | 上に戻る | File_HtAccess::delRequire()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_HtAccess::delRequire()

File_HtAccess::delRequire() -- require プロパティから値を削除する

概要

void File_HtAccess::delRequire (string $require)

説明

require プロパティから値 (ユーザー) を削除します。 このメソッドを使用することで、ユーザーが保護されたリソースへアクセス できるかどうかを制御することができます。

パラメータ

  • string $require - require プロパティに追加されている値 (ユーザー) を指定します

返り値

void

注意

この関数は、スタティックにコールする ことはできません。

参照

File_HtAccess::setRequire()
File_HtAccess::addRequire()
File_HtAccess::getRequire()

例

例 38-1File_HtAccess::delRequire() の使用

<?php
require_once('File/HtAccess.php');

/* ユーザー viemero をアクセスが許可されたユーザーの一覧から削除する */
$fh = new File_HtAccess('.htaccess');
$fh->load();
$fh->delRequire('viemero');
$fh->save();

?>
前のページ | ホーム | 次のページ
File_HtAccess::addRequire() | 上に戻る | File_HtAccess::getRequire()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_HtAccess::file_htaccess()

File_HtAccess::file_htaccess() -- コンストラクタ

概要

object new File_HtAccess ([string $file='.htaccess' [, array $params]])

説明

File_HtAccess オブジェクトのインスタンスを生成します。

パラメータ

  • string $file - 使用するファイル名を指定します。 デフォルトは .htaccess です。

  • array $params - パラメータの配列には、次の値が使用できます:

    • $params['authname'] - AuthName の値

    • $params['authtype'] - AuthType の値

    • $params['authuserfile'] - AuthUserFile の値

    • $params['authgroupfile'] - AuthGroupFile の値

    • $params['require'] - Require の値

    • $params['additional'] - 追加情報

返り値

object - File_HtAccess のインスタンス

例

例 38-1新規 File_HtAccess インスタンスの生成方法

<?php
require_once('File/HtAccess.php');
$fh = new File_HtAccess('.htaccess');
?>
前のページ | ホーム | 次のページ
Introduction | 上に戻る | File_HtAccess::load()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_HtAccess::getRequire()

File_HtAccess::getRequire() -- require プロパティの値を取得する

概要

array File_HtAccess::getRequire ()

説明

require プロパティの値を配列として取得します。 require プロパティは保護されたリソースへのアクセスを許可された ユーザー名もしくはグループユーザーが含まれます。 値 valid-user は、パスワードファイルにリストされた全てのユーザーが アクセスを許可される事を意味します。

パラメータ

  • string $type - もし 'string' であれば、 戻り値はスペースで区切られたユーザー名の文字列になります。 それ以外の場合、戻り値は配列になります。デフォルトは配列です。

返り値

mixed $type パラメータに依存する文字列もしくは配列

注意

この関数は、スタティックにコールする ことはできません。

参照

File_HtAccess::setRequire()
File_HtAccess::delRequire()
File_HtAccess::getRequire()

例

例 38-1File_HtAccess::getrequire() の使用

<?php
require_once('File/HtAccess.php');

/* ユーザー tuupola と viemero をアクセスが許可されたユーザーの一覧に追加する */
$fh = new File_HtAccess('.htaccess');
$fh->addRequire('tuupola');
$fh->addRequire('viemero');

$require1 = $fh->getRequire();
$require2 = $fh->getRequire('string');

print_r($require1);

/* Array              */
/* (                  */
/*    [0] => tuupola  */
/*    [1] => viemero  */
/* )                  */

print_r($require2);

/* tuupola viemero    */

?>
前のページ | ホーム | 次のページ
File_HtAccess::delRequire() | 上に戻る | File_HtAccess::setProperties()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction

Introduction -- .htaccess ファイルとは

File_HtAccess とは?

File_HtAccess は Apache / NCSA 形式の .htaccess ファイルの生成と操作を行うための共通メソッドを提供します。 これらのファイルと共に付随するパスワードファイルは Web サーバのディレクトリを保護するために使用されます。 File_HtAccess はパスワードファイルの操作や生成に関する機能は提供していませんので、 File_Passwd と併用する必要があります。

.htaccess ファイルとは?

.htacces の最も一般的で元々の目的は、ディレクトリごとにリソースの パスワード保護を行うことです。最近の Web サーバでは .htaccess ファイルが可能な事がたくさんあります。これらには、独自のエラーページや IP ベースのアクセス制御、自動的なユーザーリダイレクト、 ディレクトリ一覧の禁止やインデックスファイルとして異なるファイルを 使用することなどがあります。

File_HtAccess はディレクトリのパスワード保護にのみ専念していますが、 前述の他の制御も行うことができます。

.htaccess ファイルは以下の基本的なディレクティブから構成されます。 Basic 認証と Digest 認証のいずれを使用するかにより若干異なります。

表 38-1ディレクティブ

ディレクティブ | 目的
AuthType | 使用する認証タイプ。"Basic" もしくは "Digest"。
AuthName | 認証レルムもしくは名前
AuthUserFile | Basic 認証を使用している場合のパスワードファイルへのフルパス
AuthGroupFile | Basic 認証を使用している場合のグループファイルへのフルパス
AuthDigestFile | Digest 認証を使用している場合のパスワードファイルへのフルパス
AuthDigestGroupFile | Digest 認証を使用している場合のグループファイルへのフルパス
Require | アクセスを許可するために満たすべき要求

File_HtAccess は getAuthType() や setAuthType() のように それぞれのディレクティブ名に相当するアクセサメソッドを提供しています。

典型的な .htaccess ファイルは次のようになります。
AuthName "Protected"
AuthType Basic
AuthUserFile /usr/local/apache/conf/users.dat
require valid-user

Basic 認証とは

クライアントが Basic 認証で保護されたリソースにリクエストすると、 Web サーバは 401 Authentication Required ヘッダを返します。 クライアントが 401 ヘッダを受け取ると、 ユーザー名とパスワードをユーザーに問い合わせます。 認証が成功すると、保護されたリソースがクライアントに送信されます。 そうでない場合、アクセスは拒否されます。

Digest 認証とは

パスワードはサーバ側に暗号化されストアされますが、Basic 認証を使用する場合クライアントとサーバ間ではクリアテキストで送信されます。 Digest 認証ではパスワードは決してクリアテキストでは送信されません。 代わりに MD5 ダイジェストとして送信されます。 ほとんどのブラウザは Digest 認証をサポートしていないことに注意してください。

前のページ | ホーム | 次のページ
File_HtAccess | 上に戻る | File_HtAccess::file_htaccess()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_HtAccess::load

PEAR マニュアル
前のページ 次のページ

File_HtAccess::load()

File_HtAccess::load() -- 既存の .htaccess ファイルの内容をロードする

概要

mixed File_HtAccess::load ()

説明

.htaccess ファイルの内容をロードします。

返り値

mixed - 成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 38-1File_HtAccess::load() の使用

<?php
require_once('File/HtAccess.php');

$fh     = new File_HtAccess('.htaccess');
$status = $fh->load();

if (PEAR::isError($status)) {
  // エラーを処理する
} else {
  // 処理を続ける
}

?>
前のページ | ホーム | 次のページ
File_HtAccess::file_htaccess() | 上に戻る | File_HtAccess::save()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_HtAccess::save()

File_HtAccess::save() -- .htaccess ファイルを保存する

概要

mixed File_HtAccesss:save ()

説明

File_HtAccess オブジェクトの内容をディスク上の対応する .htaccess ファイルとして保存します。

返り値

mixed - 成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 38-1File_HtAccess::save() の使用

<?php
require_once('File/HtAccess.php');

/* 与えられたパラメータを使用して新規 .htaccess ファイルを生成する */
$params['authname']      = 'Private';
$params['authtype']      = 'Basic';
$params['authuserfile']  = '/path/to/.htpasswd';
$params['authgroupfile'] = '/path/to/.htgroup';
$params['require']       = array('group', 'admins');

$fh     = new File_HtAccess('.htaccess', $params);
$status = $fh->save();

if (PEAR::isError($status)) {
    // エラーを処理する
} else {
    // 処理を続ける
}

?>
前のページ | ホーム | 次のページ
File_HtAccess::load() | 上に戻る | File_HtAccess::setRequire()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_HtAccess::setAuthDigestFile

File_HtAccess::setAuthDigestFile -- authdigestfile プロパティの値を設定する

概要

void File_HtAccess::setAuthDigestFile (string [$file])

説明

authdigestfile プロパティの値を設定します。AuthDigestFile はユーザー名:レルム:パスワードのペアを含む ダイジェスト認証のためのパスワードファイルです。 動作させるためにはパスワードファイルへのフルパスを与える必要があります。

パラメータ

  • string $file - パスワードファイルへの絶対パス名を指定します。

返り値

void

注意

この関数は、スタティックにコールする ことはできません。

参照

File_HtAccess::setAuthUserFile()

例

例 38-1File_HtAccess::setauthdigestfile() の使用

<?php
require_once('File/HtAccess.php');

/* パスワードファイルに /etc/htdigest を指定する */
$fh = new File_HtAccess('.htaccess');
$fh->load();
$fh->setauthdigestfile('/etc/htdigest');
$fh->save();

?>
前のページ | ホーム | 次のページ
File_HtAccess::setAuthType | 上に戻る | Gtk

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_HtAccess::setAuthGroupFile()

File_HtAccess::setAuthGroupFile() -- authgroupfile プロパティの値を設定する

概要

void File_HtAccess::setAuthGroupFile (string [$file])

説明

authgroupfile プロパティの値を設定します。AuthGroupFile はグループ名やグループに属するユーザー名を含むファイルです。 動作させるためにはパスワードファイルへのフルパスを与える必要があります。

パラメータ

  • string $file - グループファイルへの絶対パス名を指定します。

返り値

void

注意

この関数は、スタティックにコールする ことはできません。

例

例 38-1File_HtAccess::setauthgroupfile() の使用

<?php
require_once('File/HtAccess.php');

/* グループファイルに /etc/htgroup を設定する */
$fh = new File_HtAccess('.htaccess');
$fh->load();
$fh->setAuthGroupFile('/etc/htgroup');
$fh->save();

?>
前のページ | ホーム | 次のページ
File_HtAccess::setAuthUserFile() | 上に戻る | File_HtAccess::setAuthType

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_HtAccess::setAuthType

File_HtAccess::setAuthType -- authtype プロパティの値を設定する

概要

void File_HtAccess::setAuthType (string [$type='Basic'])

説明

authtype プロパティの値を設定します。通常 Basic 認証を使用するでしょう。 ほとんどのブラウザはまだ Digest 認証をサポートしていませんので、 どのブラウザがリソースへアクセスするかを制御できる場合のみ Digest を使用するべきです。

パラメータ

  • string $type - 使用する認証タイプを指定します。 Basic もしくは Digest で、デフォルトは Basic です。

返り値

void

注意

この関数は、スタティックにコールする ことはできません。

例

例 38-1File_HtAccess::setAuthType() の使用

<?php
require_once('File/HtAccess.php');

/* Digest 認証を使用する */
$fh = new File_HtAccess('.htaccess');
$fh->load();
$fh->setAuthType('Digest');
$fh->save();

?>
前のページ | ホーム | 次のページ
File_HtAccess::setAuthGroupFile() | 上に戻る | File_HtAccess::setAuthDigestFile

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_HtAccess::setAuthUserFile()

File_HtAccess::setAuthUserFile() -- authuserfile プロパティの値を設定する

概要

void File_HtAccess::setAuthUserFile (string [$file])

説明

authuserfile プロパティの値を設定します。AuthUserFile はユーザー名:パスワードのペアを含む Basic 認証のためのパスワードファイルです。 動作させるためにはパスワードファイルへのフルパスを与える必要があります。

パラメータ

  • string $file - パスワードファイルへの絶対パス名を指定します。

返り値

void

注意

この関数は、スタティックにコールする ことはできません。

参照

File_HtAccess::getAuthDigestFile()

例

例 38-1File_HtAccess::setAuthUserFile() の使用

<?php
require_once('File/HtAccess.php');

/* パスワードファイルに /etc/htpasswd を使用する */
$fh = new File_HtAccess('.htaccess');
$fh->load();
$fh->setAuthUserFile('/etc/htpasswd');
$fh->save();

/* パスワードファイルにカレントディレクトリにある .htpasswd を使用する */
$file = getcwd() . '/.htpasswd';
$fh = new File_HtAccess('.htaccess');
$fh->load();
$fh->setAuthUserFile($file);
$fh->save();

?>
前のページ | ホーム | 次のページ
File_HtAccess::setProperties() | 上に戻る | File_HtAccess::setAuthGroupFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_HtAccess::setProperties()

File_HtAccess::setProperties() -- オブジェクトプロパティの値を設定する

概要

void File_HtAccess::setProperties (array $params)

説明

パラメータとして渡されたハッシュに定義された値を オブジェクトプロパティの値に設定します。 コンストラクタ にプロパティの値を渡す代わりに、このメソッドを使用することができます。

パラメータ

  • $params['authname'] - AuthName の値

  • $params['authtype'] - AuthType の値

  • $params['authuserfile'] - AuthUserFile の値

  • $params['authgroupfile'] - AuthGroupFile の値

  • $params['require'] - Require の値

  • $params['additional'] - 追加情報

返り値

void

注意

この関数は、スタティックにコールする ことはできません。

参照

File_HtAccess::file-htaccess()

例

例 38-1File_HtAccess::setProperties() の使用

<?php
require_once('File/HtAccess.php');

/* 全ての有効なユーザーにリソースにアクセスさせる */
$fh = new File_HtAccess('.htaccess');

$params['authname']      = 'Private';
$params['authtype']      = 'Basic';
$params['authuserfile']  = '/path/to/.htpasswd';
$params['authgroupfile'] = '/path/to/.htgroup';
$params['require']       = array('group', 'admins');

$fh->setProperties($params);

?>
前のページ | ホーム | 次のページ
File_HtAccess::getRequire() | 上に戻る | File_HtAccess::setAuthUserFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_HtAccess::setRequire()

File_HtAccess::setRequire() -- require プロパティの値を設定する

概要

void File_HtAccess::setRequire (mixed [$require])

説明

require プロパティの値を設定します。これは既存の値を上書きします。 値 (ユーザー) を追加する必要がある場合、代わりに File_HtAccess::addRequire() を使用してください。 このメソッドを使用することで、ユーザーが保護されたリソースへアクセス できるかどうかを制御することができます。

パラメータ

  • mixed $require - 設定する require プロパティの値を指定します。 文字列か配列を指定することができます。 文字列として与える場合、値をスペースで区切ります。

返り値

void

注意

この関数は、スタティックにコールする ことはできません。

参照

File_HtAccess::addRequire()
File_HtAccess::delRequire()
File_HtAccess::getRequire()

例

例 38-1File_HtAccess::setRequire() の使用

<?php
require_once('File/HtAccess.php');

/* 全ての有効なユーザーにリソースにアクセスさせる */
$fh = new File_HtAccess('.htaccess');
$fh->load();
$fh->setRequire('valid-user');
$fh->save();

/* ユーザー tuupola もしくは panula にリソースにアクセスさせる */
$fh = new File_HtAccess('.htaccess');
$fh->load();
$fh->setRequire(array('user', 'tuupola', 'panula'););
$fh->save();

/* グループ admins の全員にリソースにアクセスさせる */
$fh = new File_HtAccess('.htaccess');
$fh->load();
$fh->setRequire(array('group', 'admins'););
$fh->save();

?>
前のページ | ホーム | 次のページ
File_HtAccess::save() | 上に戻る | File_HtAccess::addRequire()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SearchReplace

目次
導入 -- 複数のファイルから検索して置換する
File_SearchReplace::File_SearchReplace() -- コンストラクタ
File_SearchReplace::getNumOccurences() -- 置換した数を返す
File_SearchReplace::doSearch() -- 検索と置換を実行する
File_SearchReplace::setDirectories() -- ファイルの場所を設定する
File_SearchReplace::setFiles() -- 検索の対象となるファイルを設定する
File_SearchReplace::setFind() -- 検索パターンを設定する
File_SearchReplace::setIncludeSubdir() -- サブディレクトリの検索を可能にする
File_SearchReplace::setReplace() -- 置換する文字列を設定する
File_SearchReplace::setSearchFunction() -- 利用する検索用の関数を設定する

ファイル群中のテキストを置換するAPIを提供します。

前のページ | ホーム | 次のページ
File_SMBPasswd::printAccounts() | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SearchReplace::doSearch()

File_SearchReplace::doSearch() -- 検索と置換を実行する

概要

require_once 'File/SearchReplace.php';

void File_SearchReplace::doSearch ()

説明

パターンを検索し、もしみつかれば置換します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_SearchReplace::getNumOccurences() | 上に戻る | File_SearchReplace::setDirectories()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SearchReplace::File_SearchReplace()

File_SearchReplace::File_SearchReplace() -- コンストラクタ

概要

require_once 'File/SearchReplace.php';

void File_SearchReplace::File_SearchReplace (mixed $find, mixed $replace, string $files [, mixed $directories = '' [, boolean $include_subdir = TRUE [, array $ignore_lines = array()]]])

説明

コンストラクタ

パラメータ

  • mixed $find - 検索対象の文字/正規表現 あるいは文字/正規表現の配列

  • mixed $replace - $find を置換する文字/正規表現 あるいは文字/正規表現の配列

  • array $files - 対象となるファイル

  • array $directories - 対象となるディレクトリ

  • boolean $include_subdir - サブディレクトリを横断して走査するかどうか

  • array $ignore_lines - 行を無視するための文字列をもつ配列。この要素は"normal"の検索でのみ動作します。

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
導入 | 上に戻る | File_SearchReplace::getNumOccurences()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SearchReplace::getNumOccurences()

File_SearchReplace::getNumOccurences() -- 置換した数を返す

概要

require_once 'File/SearchReplace.php';

integer File_SearchReplace::getNumOccurences ()

説明

File_SearchReplace::doSearch()を呼び出した後に、 置換した文字列の数を返します。

返り値

integer - 検索にマッチした数

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_SearchReplace::File_SearchReplace() | 上に戻る | File_SearchReplace::doSearch()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- 複数のファイルから検索して置換する

利用

SearchReplaceを利用して、好きなだけのファイルからテキスト置換ができます。

例 38-1典型的な利用

<?php
include 'File/SearchReplace.php' ;
$files = array( "test1.txt",
                "test2.txt",
                "test3.txt" ) ;
$ignoreline = array( "#", ":") ;
$snr = new File_SearchReplace( "Yes", "No", $files, "/mail/", false,
                            $ignoreline) ;
$snr -> doSearch() ;
?>

この例では、指定したファイル $files および "/mail/" ディレクトリにあるすべてのファイルから、 すべての "Yes" を "No" に置換しています。 もしファイルの行が $ignoreline の文字列ではじまっていたなら、 マッチしても無視されます。

新しい検索をクラスインスタンスを作り直さなくてもすることができます。

例 38-2新しい検索をする

...
// string to search
$snr -> setFind( "Er") ;
// string to find
$snr -> setReplace( "Sie") ;
// look in this files
$snr -> setFiles( $files) ;
// look in this directories
$snr -> setDirectories( array( "/neue_briefe/")) ;
// look in the subdirectories too
$snr -> setIncludeSubdir( true) ;
// ignore lines in the files starting with this chars
$snr -> setIgnoreLines( array( "::", "#")) ;
// restart search'n'replace
$snr -> doSearch() ;

Types of search functions

File_SearchReplaceはいくるかの種類の検索関数をサポートしています。 この種類の違いは$find-パラメータの書式に影響します。

normal - デフォルトで、次のパラメータをサポートする唯一の種類です。 $IgnoreLines-パラメータ
quick - str_replace() を使用します。
preg - preg_replace() を使用します。
ereg - ereg_replace() を使用します。

タイプの設定は、doSearch() を呼び出す前に、 setSearchFunction()で設定します。

前のページ | ホーム | 次のページ
File_SearchReplace | 上に戻る | File_SearchReplace::File_SearchReplace()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SearchReplace::setDirectories()

File_SearchReplace::setDirectories() -- ファイルの場所を設定する

概要

require_once 'File/SearchReplace.php';

void File_SearchReplace::setDirectories (array $directories)

説明

検索の対象となるファイルがあるディレクトリを設定します。

パラメータ

  • string $directories - 実行するディレクトリ

注意

この関数は、スタティックにコールする ことはできません。

参照

File_SearachReplace constructor()

前のページ | ホーム | 次のページ
File_SearchReplace::doSearch() | 上に戻る | File_SearchReplace::setFiles()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SearchReplace::setFiles()

File_SearchReplace::setFiles() -- 検索の対象となるファイルを設定する

概要

require_once 'File/SearchReplace.php';

void File_SearchReplace::setFiles (array $files)

説明

検索の対象となるファイルを設定します。

パラメータ

  • array $files - 検索対象のファイル

注意

この関数は、スタティックにコールする ことはできません。

参照

File_SearachReplace constructor()

前のページ | ホーム | 次のページ
File_SearchReplace::setDirectories() | 上に戻る | File_SearchReplace::setFind()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SearchReplace::setFind()

File_SearchReplace::setFind() -- 検索パターンを設定する

概要

require_once 'File/SearchReplace.php';

void File_SearchReplace::setFind (mixed $find)

説明

検索する文字列のパターンを設定します。

パラメータ

  • mixed $find - 検索対象の文字列/正規表現、あるいはその配列

注意

この関数は、スタティックにコールする ことはできません。

参照

File_SearchReplace constructor()

前のページ | ホーム | 次のページ
File_SearchReplace::setFiles() | 上に戻る | File_SearchReplace::setIncludeSubdir()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SearchReplace::setIncludeSubdir()

File_SearchReplace::setIncludeSubdir() -- サブディレクトリの検索を可能にする

概要

require_once 'File/SearchReplace.php';

void File_SearchReplace::setIncludeSubdir (integer $include_subdir)

説明

サブディレクトリにあるファイルが検索可能かどうかを確認します。

パラメータ

  • boolean $inlude_subdir - サブディレクトリの横断的検索かどうかです。

注意

この関数は、スタティックにコールする ことはできません。

参照

File_SearachReplace constructor()

前のページ | ホーム | 次のページ
File_SearchReplace::setFind() | 上に戻る | File_SearchReplace::setReplace()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SearchReplace::setReplace()

File_SearchReplace::setReplace() -- 置換する文字列を設定する

概要

require_once 'File/SearchReplace.php';

void File_SearchReplace::setReplace (mixed $replace)

説明

置換する文字列を設定します。

パラメータ

  • string $replace - 見つかった文字/正規表現を置換する文字/正規表現 あるいはその配列

注意

この関数は、スタティックにコールする ことはできません。

参照

File_SearchReplace constructor()

前のページ | ホーム | 次のページ
File_SearchReplace::setIncludeSubdir() | 上に戻る | File_SearchReplace::setSearchFunction()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SearchReplace::setSearchFunction()

File_SearchReplace::setSearchFunction() -- 利用する検索用の関数を設定する

概要

require_once 'File/SearchReplace.php';

void File_SearchReplace::setSearchFunction (array $search_function)

説明

どの検索用の関数を使用するかを決定します。

パラメータ

  • $search_function - 利用しようとする検索用の関数 　　可能な値: "normal", "quick", "preg", "ereg"

注意

この関数は、スタティックにコールする ことはできません。

参照

File_SearachReplace constructor() ,"Types of search functions"

前のページ | ホーム | 次のページ
File_SearchReplace::setReplace() | 上に戻る | File_HtAccess

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SMBPasswd

目次
導入 -- ファイルフォーマット
File_SMBPasswd::File_SMBPasswd() -- コンストラクタ
File_SMBPasswd::load() -- 既存の smbpasswd ファイルの内容をロードする
File_SMBPasswd::getFile() -- ファイルプロパティの値を取得する
File_SMBPasswd::getAccounts() -- アカウントのプロパティの値を取得する
File_SMBPasswd::addAccountEncrypted() -- あらかじめ暗号化されたパスワードで新規ユーザーを追加する
File_SMBPasswd::addAccount() -- 与えられたプレーンテキストなパスワードで新規アカウントを追加する
File_SMBPasswd::addUser() -- 与えられたプレーンテキストなパスワードで新規アカウントを追加する
File_SMBPasswd::addMachine() -- 与えられたプレーンテキストなパスワードで 新規マシンアカウントを追加する
File_SMBPasswd::modAccountEncrypted() -- あらかじめ暗号化されたパスワードで既存のアカウントを修正する
File_SMBPasswd::modAccount() -- 与えられたプレーンテキストなパスワードで既存のアカウントを修正する
File_SMBPasswd::modUser() -- 与えられたプレーンテキストなパスワードで既存のアカウントを修正する
File_SMBPasswd::delAccount() -- 既存のアカウントを削除する
File_SMBPasswd::delUser() -- 既存のユーザーを削除する
File_SMBPasswd::verifyAccountEncrypted() -- あらかじめ暗号化されたパスワードで新規ユーザーを検証する
File_SMBPasswd::verifyAccount() -- 与えられたプレーンテキストなパスワードで既存のアカウントを検証する
File_SMBPasswd::lock() -- smbpasswd ファイルをロックする
File_SMBPasswd::unlock() -- smbpasswd ファイルをアンロックする
File_SMBPasswd::save() -- smbpasswd ファイルを保存する
File_SMBPasswd::printAccounts() -- 既存の smbpasswd ファイルの内容を表示する

SAMBA パスワード形式のファイルを管理するための API を提供します。

前のページ | ホーム | 次のページ
File_Find::search() | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SMBPasswd::addAccount()

File_SMBPasswd::addAccount() -- 与えられたプレーンテキストなパスワードで新規アカウントを追加する

概要

mixed File_SMBPasswd::addAccount (string $user, int $userid [, string $pass = '' [, string $comment = '' [, string $flags = '[U ]']]])

説明

このメソッドは パスワードがプレーンテキストで与えられる必要があることを除き、 File_SMBPasswd::addAccountEncrypted() と同様に動作します。 暗号化は内部で行われます。

パラメータ

  • string $user - 追加するユーザー名

  • int $userid - ユーザーのユーザーID

  • string $pass - プレーンテキストでのパスワード

  • string $comment - コメント

  • string $flags - フラグ

返り値

mixed - 成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

追加するユーザーはすでにシステムパスワードファイルに存在していなければ ならないことに注意してください。

参照

File_SMBPasswd::addUser()
File_SMBPasswd::addMachine()
File_SMBPasswd::addAccountEncrypted()

例

例 38-1File_SMBPasswd::addAccount() の使用例

<?php
require_once 'File/SMBPasswd.php';

// ユーザー mbretter を追加する
$fh = new File_SMBPasswd('/usr/local/private/smbpasswd');
$fh->load();
$status = $fh->addAccount(
    'mbretter',
    1004,
    'MyPw',
    'Michael Bretterklieber');
if (PEAR::isError($status)) {
    // エラーを処理する
} else {
    // 処理を続ける
    $fh->save();
}

?>
前のページ | ホーム | 次のページ
File_SMBPasswd::addAccountEncrypted() | 上に戻る | File_SMBPasswd::addUser()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SMBPasswd::addAccountEncrypted()

File_SMBPasswd::addAccountEncrypted() -- あらかじめ暗号化されたパスワードで新規ユーザーを追加する

概要

mixed File_SMBPasswd::addAccountEncrypted (string $user, int $userid [, string $lmhash = '' [, string $nthash = '' [, string $comment = '' [, string $flags = '[U ]']]]])

説明

既存のアカウントを修正します。 パスワードは前もって暗号化されている必要があります。

パラメータ

  • string $user - 追加するユーザー名

  • int $userid - ユーザーのユーザーID

  • string $lmhash - LAN マネージャハッシュ

  • string $nthash - NT ハッシュ

  • string $comment - コメント

  • string $flags - フラグ

返り値

mixed - 成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

追加するユーザーはすでにシステムパスワードファイルに存在していなければ ならないことに注意してください。

参照

File_SMBPasswd::modAccountEncrypted()
File_SMBPasswd::modUser()
File_SMBPasswd::modAccount()

例

例 38-1File_SMBPasswd::addAccountEncrypted() の使用例

<?php
require_once 'File/SMBPasswd.php';

// アカウント mbretter を追加する
$fh = new File_SMBPasswd('/usr/local/private/smbpasswd');
$fh->load();
$status = $fh->addAccountEncrypted(
    'mbretter',
    1005,
    '75BA30198E6D1975AAD3B435B51404EE',
    'FC156AF7EDCD6C0EDDE3337D427F4EAC',
    'Michael Bretterklieber');
if (PEAR::isError($status)) {
    // エラーを処理する
} else {
    $fh->save();
}

?>
前のページ | ホーム | 次のページ
File_SMBPasswd::getAccounts() | 上に戻る | File_SMBPasswd::addAccount()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SMBPasswd::addMachine()

File_SMBPasswd::addMachine() -- 与えられたプレーンテキストなパスワードで 新規マシンアカウントを追加する

概要

mixed File_SMBPasswd::addMachine (string $machine, int $userid [, string $comment = ''])

説明

このメソッドはフラグがマシンアカウントを意味し、 $ が暗黙的にマシン名に追加されることを除き、 File_SMBPasswd::addAccount() と同様に動作します。

パラメータ

  • string $machine - 追加するマシン名

  • int $userid - ユーザーのユーザーID

  • string $comment - コメント

返り値

mixed - 成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

追加するマシンはすでにシステムパスワードファイルに存在していなければ ならないことに注意してください。

参照

File_SMBPasswd::addAccount()
File_SMBPasswd::addUser()
File_SMBPasswd::addAccountEncrypted()

例

例 38-1File_SMBPasswd::addMachine() の使用例

<?php
require_once 'File/SMBPasswd.php';

// ユーザー mbretter を追加する
$fh = new File_SMBPasswd('/usr/local/private/smbpasswd');
$fh->load();
$status = $fh->addMachine(
    'mypc',
    10004,
    'My Turbo PC');
if (PEAR::isError($status)) {
    // エラーを処理する
} else {
    // 処理を続ける
    $fh->save();
}

?>
前のページ | ホーム | 次のページ
File_SMBPasswd::addUser() | 上に戻る | File_SMBPasswd::modAccountEncrypted()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SMBPasswd::addUser()

File_SMBPasswd::addUser() -- 与えられたプレーンテキストなパスワードで新規アカウントを追加する

概要

mixed File_SMBPasswd::addUser (string $user, int $userid [, string $pass = '' [, string $comment = '']])

説明

このメソッドはフラグがユーザーアカウントを意味することを除き、 File_SMBPasswd::addAccount() と同様に動作します。

パラメータ

  • string $user - 追加するユーザー名

  • int $userid - ユーザーのユーザーID

  • string $pass - プレーンテキストでのパスワード

  • string $comment - コメント

返り値

mixed - 成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

追加するユーザーはすでにシステムパスワードファイルに存在していなければ ならないことに注意してください。

参照

File_SMBPasswd::addAccount()
File_SMBPasswd::addMachine()
File_SMBPasswd::addAccountEncrypted()

例

例 38-1File_SMBPasswd::addUser() の使用例

<?php
require_once 'File/SMBPasswd.php';

// ユーザー mbretter を追加する
$fh = new File_SMBPasswd('/usr/local/private/smbpasswd');
$fh->load();
$status = $fh->addUser(
    'mbretter',
    1004,
    'MyPw',
    'Michael Bretterklieber');
if (PEAR::isError($status)) {
    // エラーを処理する
} else {
    // 処理を続ける
    $fh->save();
}

?>
前のページ | ホーム | 次のページ
File_SMBPasswd::addAccount() | 上に戻る | File_SMBPasswd::addMachine()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SMBPasswd::delAccount()

File_SMBPasswd::delAccount() -- 既存のアカウントを削除する

概要

mixed File_SMBPasswd::delAccount (string $name)

説明

このメソッドは、既存のアカウントを削除します。

パラメータ

  • string $name - 削除するアカウント名 (ユーザー名もしくはマシン名)

返り値

mixed - 成功時には TRUE、 失敗時には PEAR_Error を返します。

参照

File_SMBPasswd::delUser()

例

例 38-1File_SMBPasswd::delAccount() の使用例

<?php
require_once 'File/SMBPasswd.php';

// ユーザー mbretter を削除する
$fh = new File_SMBPasswd('/usr/local/private/smbpasswd');
$fh->load();
$status = $fh->delAccount('mbretter');
if (PEAR::isError($status)) {
    // エラーを処理する
} else {
    $fh->save();
}

?>
前のページ | ホーム | 次のページ
File_SMBPasswd::modUser() | 上に戻る | File_SMBPasswd::delUser()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SMBPasswd::delUser()

File_SMBPasswd::delUser() -- 既存のユーザーを削除する

概要

mixed File_SMBPasswd::delUser (string $user)

説明

このメソッドは、既存のユーザーを削除します。

パラメータ

  • string $user - 削除するユーザー名

返り値

mixed - 成功時には TRUE、 失敗時には PEAR_Error を返します。

参照

File_SMBPasswd::delAccount()

例

例 38-1File_SMBPasswd::delAccount() の使用例

<?php
require_once 'File/SMBPasswd.php';

// ユーザー mbretter を削除する
$fh = new File_SMBPasswd('/usr/local/private/smbpasswd');
$fh->load();
$status = $fh->delUser('mbretter');
if (PEAR::isError($status)) {
    // エラーを処理する
} else {
    $fh->save();
}

?>
前のページ | ホーム | 次のページ
File_SMBPasswd::delAccount() | 上に戻る | File_SMBPasswd::verifyAccountEncrypted()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SMBPasswd::File_SMBPasswd()

File_SMBPasswd::File_SMBPasswd() -- コンストラクタ

概要

require_once 'File/SMBPasswd.php';

void File_SMBPasswd::File_SMBPasswd (string $file)

説明

新規 File_SMBPasswd オブジェクトを生成し、 与えられたファイルにバインドします。

パラメータ

  • string $file - 読み込む SAMBA パスワードファイル

前のページ | ホーム | 次のページ
導入 | 上に戻る | File_SMBPasswd::load()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SMBPasswd::getAccounts()

File_SMBPasswd::getAccounts() -- アカウントのプロパティの値を取得する

概要

array File_SMBPasswd::getAccounts ()

説明

アカウントのプロパティの値を取得します。このプロパティは現在の smbpasswd ファイルにある全てのアカウントを含みます。

返り値

全てのアカウントを含む配列

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_SMBPasswd::getFile() | 上に戻る | File_SMBPasswd::addAccountEncrypted()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SMBPasswd::getFile()

File_SMBPasswd::getFile() -- ファイルプロパティの値を取得する

概要

string File_SMBPasswd::getFile ()

説明

ファイルプロパティの値を取得します。このプロパティは現在の smbpasswd ファイルのファイル名を含んでいます。

返り値

ファイル名を含む文字列

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
File_SMBPasswd::load() | 上に戻る | File_SMBPasswd::getAccounts()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- ファイルフォーマット

SAMBA パスワードスタイルのファイル

SAMBA は CIFS/SMB のフリーな実装です。UNIX と Windows のパスワード暗号化は異なりますが、その結果 SAMBA は NT ハッシュもしくは LAN マネージャハッシュのいずれかで暗号化されたパスワードを含むファイルを 用意する必要があります。LAN マネージャハッシュは脆弱で、 もはや使用すべきではありません。NT ハッシュは MD4 に基づいていますが、 ソルトは使用されていません。その結果、同一パスワードを持つユーザーは同一の NT ハッシュを持ちます。SAMBA サーバが PDC として動作する場合、 このファイルにはマシンアカウントもストアされ、エントリの終端には $ が付加されています。

前のページ | ホーム | 次のページ
File_SMBPasswd | 上に戻る | File_SMBPasswd::File_SMBPasswd()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SMBPasswd::load()

File_SMBPasswd::load() -- 既存の smbpasswd ファイルの内容をロードする

概要

mixed File_SMBPasswd::load ()

説明

既存の smbpasswd ファイルの内容をロードします。

返り値

mixed - 成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 38-1File_SMBPasswd::load() の使用例

<?php
require_once('File/SMBPasswd.php');

$fh     = new File_SMBPasswd('/usr/local/private/smbpasswd');
$status = $fh->load();

if (PEAR::isError($status)) {
  // エラーを処理する
} else {
  // 処理を続ける
}

?>
前のページ | ホーム | 次のページ
File_SMBPasswd::File_SMBPasswd() | 上に戻る | File_SMBPasswd::getFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SMBPasswd::lock()

File_SMBPasswd::lock() -- smbpasswd ファイルをロックする

概要

mixed File_SMBPasswd::lock ()

説明

smbpasswd ファイルをロックします。

返り値

mixed - 成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 38-1File_SMBPasswd::lock() の使用例

<?php
require_once('File/SMBPasswd.php');

$fh = new File_SMBPasswd('/usr/local/private/smbpasswd');
$status = $fh->lock();

if (PEAR::isError($status)) {
  // エラーを処理する
} else {
  // 処理を続ける
}

?>
前のページ | ホーム | 次のページ
File_SMBPasswd::verifyAccount() | 上に戻る | File_SMBPasswd::unlock()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SMBPasswd::modAccount()

File_SMBPasswd::modAccount() -- 与えられたプレーンテキストなパスワードで既存のアカウントを修正する

概要

mixed File_SMBPasswd::modAccount (string $user, int $userid [, string $pass = '' [, string $comment = '' [, string $flags = '']]])

説明

このメソッドは パスワードがプレーンテキストで与えられる必要があることを除き、 File_SMBPasswd::modAccountEncrypted() と同様に動作します。 暗号化は内部で行われます。

パラメータ

  • string $user - 修正するユーザー名

  • int $userid - ユーザーのユーザーID

  • string $pass - プレーンテキストでのパスワード

  • string $comment - コメント

  • string $flags - フラグ

返り値

mixed - 成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

参照

File_SMBPasswd::addAccount()
File_SMBPasswd::modAccountEncrypted()
File_SMBPasswd::modUser()

例

例 38-1File_SMBPasswd::modAccount() の使用例

<?php
require_once 'File/SMBPasswd.php';

// ユーザー mbretter を修正する
$fh = new File_SMBPasswd('/usr/local/private/smbpasswd');
$fh->load();
$status = $fh->modAccount(
    'mbretter',
    1005,
    'MyPwa',
    'Michaela Bretterklieber');
if (PEAR::isError($status)) {
    // エラーを処理する
} else {
    $fh->save();
}

?>
前のページ | ホーム | 次のページ
File_SMBPasswd::modAccountEncrypted() | 上に戻る | File_SMBPasswd::modUser()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SMBPasswd::modAccountEncrypted()

File_SMBPasswd::modAccountEncrypted() -- あらかじめ暗号化されたパスワードで既存のアカウントを修正する

概要

mixed File_SMBPasswd::modAccountEncrypted (string $user, int $userid [, string $nthash = '' [, string $lmhash = '' [, string $comment = '' [, string $flags = '']]]])

説明

前もって暗号化されたパスワードを使って既存のアカウントを修正します。

パラメータ

  • string $user - 追加するユーザー名

  • int $userid - ユーザーのユーザーID

  • string $nthash - 新規 NT ハッシュ

  • string $lmhash - 新規 LM ハッシュ

  • string $comment - コメント

  • string $flags - フラグ

返り値

mixed - 成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

追加するユーザーはすでにシステムパスワードファイルに存在していなければ ならないことに注意してください。

参照

File_SMBPasswd::addAccount()
File_SMBPasswd::modAccount()
File_SMBPasswd::modUser()

例

例 38-1File_SMBPasswd::modAccountEncrypted() の使用例

<?php
require_once 'File/SMBPasswd.php';

// ユーザー mbretter を修正する
$fh = new File_SMBPasswd('/usr/local/private/smbpasswd');
$fh->load();
$status = $fh->modAccountEncrypted(
    'mbretter',
    1005,
    '75BA30198E6D1975AAD3B435B51404EE',
    'FC156AF7EDCD6C0EDDE3337D427F4EAC',
    Michaela Bretterklieber');
if (PEAR::isError($status)) {
    // エラーを処理する
} else {
    $fh->save();
}

?>
前のページ | ホーム | 次のページ
File_SMBPasswd::addMachine() | 上に戻る | File_SMBPasswd::modAccount()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SMBPasswd::modUser()

File_SMBPasswd::modUser() -- 与えられたプレーンテキストなパスワードで既存のアカウントを修正する

概要

mixed File_SMBPasswd::modUser (string $user, int $userid [, string $pass = '' [, string $comment = '' [, string $flags = '']]])

説明

このメソッドは プレーンテキストなパスワードを使って既存のユーザーを修正します。

パラメータ

  • string $user - 追加するユーザー名

  • int $userid - ユーザーのユーザーID

  • string $pass - プレーンテキストでのパスワード

  • string $comment - コメント

  • string $flags - フラグ

返り値

mixed - 成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

追加するユーザーはすでにシステムパスワードファイルに存在していなければ ならないことに注意してください。

参照

File_SMBPasswd::addAccount()
File_SMBPasswd::modAccountEncrypted()
File_SMBPasswd::modAccount()

例

例 38-1File_SMBPasswd::modUser() の使用例

<?php
require_once 'File/SMBPasswd.php';

// ユーザー mbretter を修正する
$fh = new File_SMBPasswd('/usr/local/private/smbpasswd');
$fh->load();
$status = $fh->modUser(
    'mbretter',
    1005,
    'MyPwa',
    'Michaela Bretterklieber');
if (PEAR::isError($status)) {
    // エラーを処理する
} else {
    $fh->save();
}

?>
前のページ | ホーム | 次のページ
File_SMBPasswd::modAccount() | 上に戻る | File_SMBPasswd::delAccount()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SMBPasswd::printAccounts()

File_SMBPasswd::printAccounts() -- 既存の smbpasswd ファイルの内容を表示する

概要

void File_SMBPasswd::printAccounts ()

説明

ロードされた smbpasswd ファイルに含まれる全ての内容を表示します。

返り値

void

注意

この関数は、スタティックにコールする ことはできません。

例

例 38-1File_SMBPasswd::printAccounts() の使用例

<?php
require_once('File/SMBPasswd.php');

$f     = new File_SMBPasswd('/usr/local/private/smbpasswd');
$f->load();
$f->printaccounts();

?>
前のページ | ホーム | 次のページ
File_SMBPasswd::save() | 上に戻る | File_SearchReplace

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SMBPasswd::save()

File_SMBPasswd::save() -- smbpasswd ファイルを保存する

概要

mixed File_SMBPasswds:save ()

説明

File_SMBPasswd オブジェクトの内容を対応するディスク上の smbpasswd ファイルとして保存します。保存時、ファイルは暗黙的にロックされます。

返り値

mixed - 成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 38-1File_SMBPasswd::save() の使用例

<?php
require_once('File_SMBPasswd.php');

$f = new File_SMBPasswd('./smbpasswd');
$f->load();
$ret = $f->addAccount('sepp3', 12, 'MyPw');
if (PEAR::isError($ret)) {
    echo $ret->getMessage();
    exit;
}
$ret = $f->modAccount('sepp', '', 'MyPw');
if (PEAR::isError($ret)) {
    echo $ret->getMessage();
    exit;
}
$ret = $f->delAccount('karli');
if (PEAR::isError($ret)) {
    echo $ret->getMessage();
    exit;
}

$status = $f->save();

if (PEAR::isError($status)) {
    // エラーを処理する
} else {
    // 処理を続ける
}

?>
前のページ | ホーム | 次のページ
File_SMBPasswd::unlock() | 上に戻る | File_SMBPasswd::printAccounts()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SMBPasswd::unlock()

File_SMBPasswd::unlock() -- smbpasswd ファイルをアンロックする

概要

mixed File_SMBPasswd::unlock ()

説明

smbpasswd ファイルをアンロックします。

返り値

mixed - 成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 38-1File_SMBPasswd::unlock() の使用例

<?php
require_once('File/SMBPasswd.php');

$fh = new File_SMBPasswd('/usr/local/private/smbpasswd');
$status = $fh->unlock();

if (PEAR::isError($status)) {
  // エラーを処理する
} else {
  // 処理を続ける
}

?>
前のページ | ホーム | 次のページ
File_SMBPasswd::lock() | 上に戻る | File_SMBPasswd::save()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SMBPasswd::verifyAccount()

File_SMBPasswd::verifyAccount() -- 与えられたプレーンテキストなパスワードで既存のアカウントを検証する

概要

mixed File_SMBPasswd::verifyAccount (string $user, string $pass)

説明

このメソッドは、ロードした smbpasswd ファイル中のエントリに対し 与えられたユーザー名とプレーンテキストなパスワードを検証します。

パラメータ

  • string $user - 検証するユーザー名

  • string $pass - プレーンテキストなパスワード

返り値

mixed - 成功時には TRUE 、 失敗時には FALSE を返します。

参照

File_SMBPasswd::verifyAccountEncrypted()

例

例 38-1File_SMBPasswd::verifyAccount() の使用例

<?php
require_once 'File/SMBPasswd.php';

$fh = new File_SMBPasswd('/usr/local/private/smbpasswd');
$fh->load();
if ($fh->verifyAccount('mbretter', 'MyPw')) {
    echo "Account is valid";
} else {
    echo "Account is in-valid";
}

?>
前のページ | ホーム | 次のページ
File_SMBPasswd::verifyAccountEncrypted() | 上に戻る | File_SMBPasswd::lock()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File_SMBPasswd::verifyAccountEncrypted()

File_SMBPasswd::verifyAccountEncrypted() -- あらかじめ暗号化されたパスワードで新規ユーザーを検証する

概要

mixed File_SMBPasswd::verifyAccountEncrypted (string $user, string $nthash [, string $lmhash = ''])

説明

このメソッドは、ロードした smbpasswd ファイル中のエントリに対し 与えられたユーザー名とプレーンテキストなパスワードを検証します。 与えられるパスワードは有効な NT ハッシュもしくは LM ハッシュである必要があります。LM ハッシュはオプションです。

パラメータ

  • string $user - 検証するユーザー名

  • string $nthash - NT ハッシュ

  • string $lmhash - LM ハッシュ

返り値

mixed - 成功時には TRUE 、 失敗時には FALSE を返します。

参照

File_SMBPasswd::verifyAccount()

例

例 38-1File_SMBPasswd::verifyAccount() の使用例

<?php
require_once 'File/SMBPasswd.php';

$fh = new File_SMBPasswd('/usr/local/private/smbpasswd');
$fh->load();
if ($fh->verifyAccountEncrypted('mbretter', '75BA30198E6D1975AAD3B435B51404EE')) {
    echo "Account is valid";
} else {
    echo "Account is in-valid";
}

?>
前のページ | ホーム | 次のページ
File_SMBPasswd::delUser() | 上に戻る | File_SMBPasswd::verifyAccount()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File::buildpath()

File::buildpath() -- 与えられた部分の配列からパスを作成する

概要

require_once 'File.php';

mixed File::buildpath (array $parts [, string $separatir = DIRECTORY_SEPARATOR])

説明

パラメータ

返り値

例外・エラー

非推奨

非推奨です。

注意

この関数は、スタティックにコールする ことができます。

参照

例

例 38-1File::write() の使用

<?php
require_once 'File.php';

// 非推奨です。かわりに File_Util::buildPath() を使用してください。
?>
前のページ | ホーム | 次のページ
定数 | 上に戻る | File::close()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File::close()

File::close() -- オープンしているファイルポインタを閉じる

概要

require_once 'File.php';

mixed File::close (string $filename, string $mode)

説明

パラメータ

返り値

例外・エラー

注意

この関数は、スタティックにコールする ことができます。

参照

例

例 38-1File::close() の使用

<?php
require_once 'File.php';

$e = File::close('test.txt', FILE_MODE_WRITE);

if (PEAR::isError($e)) {
    echo 'ファイルがクローズできなせんでした : ' . $e->getMessage();
} else {
    echo "ファイル test.txt のクローズに成功しました\n";
}
?>
前のページ | ホーム | 次のページ
File::buildpath() | 上に戻る | File::getTempDir()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


定数

定数 -- あらかじめ定義された定数

FILE_DEFAULT_READSIZE

ファイルから読み込むデフォルトのバイト数

使用している関数

  • File::read()

  • File::readAll()

FILE_MODE_READ

オープンされたファイルのための読み込み専用モード

使用している関数

  • File::read()

  • File::readLine()

  • File::rewind()

  • File::close()

  • File::unlock()

FILE_MODE_WRITE

このモードを使用すると、オープンされたファイルは最初に破棄され、 それから新しいデータが書き込まれます。

使用している関数

  • File::write()

  • File::writeChar()

  • File::writeLine()

  • File::rewind()

  • File::close()

  • File::unlock()

FILE_MODE_APPEND

このモードを使用すると、 新しいデータがオープンしたファイルの最後に追加されます。

使用している関数

  • File::write()

  • File::writeChar()

  • File::writeLine()

  • File::rewind()

  • File::close()

  • File::unlock()

FILE_LOCK_SHARED

共有ロックモード (読み込み)

使用している関数

  • File::read()

  • File::readChar()

  • File::readLine()

  • File::readAll()

  • File::write()

  • File::writeChar()

  • File::writeLine()

FILE_LOCK_EXCLUSIVE

排他ロックモード (書き込み)

使用している関数

  • File::read()

  • File::readChar()

  • File::readLine()

  • File::readAll()

  • File::write()

  • File::writeChar()

  • File::writeLine()

前のページ | ホーム | 次のページ
導入 | 上に戻る | File::buildpath()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File::getTempDir()

File::getTempDir() -- システムのテンポラリディレクトリを返す

概要

require_once 'File.php';

string File::gettempdir ()

説明

パラメータ

返り値

例外・エラー

非推奨

非推奨です。

注意

この関数は、スタティックにコールする ことができます。

参照

例

例 38-1File::getTempDir() の使用

<?php
require_once 'File.php';

// 非推奨です。かわりに File_Util::tmpDir() を使用してください。
?>
前のページ | ホーム | 次のページ
File::close() | 上に戻る | File::getTempFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File::getTempFile()

File::getTempFile() -- テンポラリファイルへのパスを返す

概要

require_once 'File.php';

string File::getTempFile ([string $dirname = NULL])

説明

パラメータ

返り値

例外・エラー

非推奨

非推奨です。

注意

この関数は、スタティックにコールする ことができます。

参照

例

例 38-1File::getTempFile() の使用

<?php
require_once 'File.php';

// 非推奨です。かわりに File_Util::tmpFile() を使用してください。
?>
前のページ | ホーム | 次のページ
File::getTempDir() | 上に戻る | File::isAbsolute()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- File クラス導入

詳細

File は、 PHP に組み込まれたファイルとディレクトリ関数と パスを処理するいくつかの関数への簡単なインターフェースを提供します。

例

例 38-1File の使用

<?php
require_once 'File.php';

$file = "/home/tal/example.txt";

//Echo the whole file
echo File::readAll($file);

//Now use a different approach
$fp = new File();

//Write a single line to the file, using a Macintosh EOL character and
//truncating the file before writing to it
$fp->writeLine($file, "This is a single line", FILE_MODE_WRITE, "\r");

//strip leading and trailing separators from the file path
echo $fp->stripLeadingSeparators($file);
echo $fp->stripTrailingSeparators($file);

?>
前のページ | ホーム | 次のページ
File | 上に戻る | 定数

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File::isAbsolute()

File::isAbsolute() -- 与えられたパスが絶対パスかどうかをチェックする

概要

require_once 'File.php';

bool File::isAbsolute (string $path)

説明

このメソッドは、与えられたパスが絶対パスかどうかをチェックします (例 "/foo/bar" または "C:\foo\bar")。

パラメータ

string $path - チェックするパスを指定します。

返り値

このメソッドは、絶対パスの場合 TRUE を返し、そうでないなら FALSE を返します。

注意

この関数は、スタティックにコールする ことができます。

例

例 38-1File::isAbsolute() の使用

<?php
require_once 'File.php';

if (File::isAbsolute("/usr/local") {
 echo "Path is absolute";
} else {
 echo "Path isn't absolute";
}
?>

この短い例は、文字列 'Path is absolute' を出力します。

前のページ | ホーム | 次のページ
File::getTempFile() | 上に戻る | File::read()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File::read()

File::read() -- ファイルからバイトを読み込む

概要

require_once 'File.php';

mixed File::read (string $filename [, int $size = FILE_DEFAULT_READSIZE [, mixed $lock = FALSE]])

説明

File::read() は、 指定されたファイルから指定されたバイト数を読み込み、 それらをユーザーに返します

パラメータ

  • string $filename - 読み込むファイルを指定します。

  • int $size - ファイルから読み込むバイト数 (デフォルトは、FILE_DEFAULT_READSIZE) を指定します。

  • mixed $lock - 使用するロックの種類を指定します。 何も指定しないのであれば、FALSE を指定します。

返り値

mixed - この関数は、 エラーがなければ要求したバイト数を返します。 EOF に達し多場合は FALSEを返します。 ファイルを読み込んでいる間にエラーが発生した場合、 PEAR_Error オブジェクトを返します。

例外・エラー

表 38-1PEAR_Error の値

Error Code | Error Value | Meaning | Solution
NULL | "File does not exist: $filename" | ファイル $filename が存在しない | 関数に与えたパスが正しいか、チェックしてください。
NULL | "Failed to open file: $filename" | このエラーが発生する原因はいくつかあります。通常は、 間違ったパーミッションやハードディスクの不良セクタによるものです。 | ファイルのパーミッションをチェック (UNIX システムでは ls -l {file}) し、 PHP が読み込めるよう変更してください。 あるいは、ハードディスク正常に動作しており、不良セクタがないかどうか チェックしてください。

注意

この関数は、スタティックにコールする ことができます。

参照

File::readChar()
File::readLine()
File::readAll()

例

例 38-1File::read() の使用

<?php
require_once 'File.php';

//output 40 bytes of file foo.bar
echo File::read("/path/to/foo.bar", 40);
?>
前のページ | ホーム | 次のページ
File::isAbsolute() | 上に戻る | File::readAll()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File::readAll()

File::readAll() -- ファイルから全て読み込む

概要

require_once 'File.php';

mixed File::readAll (string $filename [, mixed $lock = FALSE])

説明

パラメータ

返り値

例外・エラー

注意

この関数は、スタティックにコールする ことができます。

参照

例

例 38-1File::readAll() の使用

<?php
require_once 'File.php';

?>
前のページ | ホーム | 次のページ
File::read() | 上に戻る | File::readChar()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File::readChar()

File::readChar() -- ファイルから 1 バイトを読み込む

概要

require_once 'File.php';

mixed File::readCharChar (string $filename [, mixed $lock = FALSE])

説明

パラメータ

返り値

例外・エラー

注意

この関数は、スタティックにコールする ことができます。

参照

例

例 38-1File::readChar() の使用

<?php
require_once 'File.php';

$e = File::readChar('test.txt');

if (PEAR::isError($e)) {
    echo 'ファイルから文字を読み込めませんでした : ' . $e->getMessage();
} else {
    echo $e;
}
?>
前のページ | ホーム | 次のページ
File::readAll() | 上に戻る | File::readLine()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File::readLine()

File::readLine() -- ファイルから一行を読み込む

概要

require_once 'File.php';

mixed File::readLine (string $filename [, mixed $lock = FALSE])

説明

パラメータ

返り値

例外・エラー

注意

この関数は、スタティックにコールする ことができます。

参照

例

例 38-1File::readLine() の使用

<?php
require_once 'File.php';

$e = File::readLine('test.txt');

if (PEAR::isError($e)) {
    echo 'ファイルから読み込めませんでした : ' . $e->getMessage();
} else {
    echo $e;
}
?>
前のページ | ホーム | 次のページ
File::readChar() | 上に戻る | File::rewind()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File::rewind()

File::rewind() -- ファイルポインタを巻き戻す

概要

require_once 'File.php';

mixed File::rewind (string $filename, string $mode)

説明

パラメータ

返り値

例外・エラー

注意

この関数は、スタティックにコールする ことができます。

参照

例

例 38-1File::rewind() の使用

<?php
require_once 'File.php';

$e = File::rewind('test.txt', FILE_MODE_READ);

if (PEAR::isError($e)) {
    echo 'ファイルを巻き戻せませんでした : ' . $e->getMessage();
} else {
    echo "ファイル test.txt の巻き戻しに成功しました\n";
}
?>
前のページ | ホーム | 次のページ
File::readLine() | 上に戻る | File::skipRoot()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File::skipRoot()

File::skipRoot() -- 与えられたパスからルートディレクトリを取り除く

概要

require_once 'File.php';

string File::skipRoot (string $path)

説明

このメソッドは、$path からルートディレクトリを取り除きます。

パラメータ

string $path - 処理させるパスを指定します。

返り値

絶対パスの場合、このメソッドは処理されたパスを返します。 その他の場合、そのままのパスを返します。

注意

この関数は、スタティックにコールする ことができます。

参照

File::isAbsolute()

例

例 38-1File::skipRoot() の例

<?php
require_once 'File.php';

echo File::skipRoot("/home/foo/bar");
?>

この例は、home/foo/bar を表示します。

前のページ | ホーム | 次のページ
File::rewind() | 上に戻る | File::stripLeadingSeparators()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File::stripLeadingSeparators()

File::stripLeadingSeparators() -- パスから先頭のセパレータを取り除く

概要

require_once 'File.php';

string File::stripLeadingSeparators (string $path [, string $separator = DIRECTORY_SEPARATOR])

説明

このメソッドは、パス名から先頭のセパレータ (*nixでは "/" のような) を取り除きます。

パラメータ

  • string $path - 先頭のセパレータを取り除くパス名を指定します。

  • string $separator - セパレータを定義するオプション文字列を指定します。 このパラメータのデフォルト値は、PHP であらかじめ定義されている DIRECTORY_SEPARATOR 定数の値です。

返り値

このメソッドは、 先頭のディレクトリセパレータが取り除かれたパス名を返します。

注意

この関数は、スタティックにコールする ことができます。

例

例 38-1File::stripLeadingSeparators() の使用

<?php
require_once "File.php";

echo File::stripLeadingSeparators("/home/foo/lala/");
?>

この例は、home/foo/lala/ を表示します。

前のページ | ホーム | 次のページ
File::skipRoot() | 上に戻る | File::stripTrailingSeparators()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File::stripTrailingSeparators()

File::stripTrailingSeparators() -- パスから最後のセパレータを取り除く

概要

require_once 'File.php';

string File:stripTrailingSeparators (string $path [, string $separator = DIRECTORY_SEPARATOR])

説明

このメソッドは、パス名から最後のセパレータ (*nixでは "/" のような) を取り除きます。

パラメータ

  • string $path - 最後のセパレータを取り除くパス名を指定します。

  • string $separator - セパレータを定義するオプション文字列を指定します。 このパラメータのデフォルト値は、PHP であらかじめ定義されている DIRECTORY_SEPARATOR 定数の値です。

返り値

このメソッドは、 最後のディレクトリセパレータが取り除かれたパス名を返します。

注意

この関数は、スタティックにコールする ことができます。

例

例 38-1File:stripTrailingSeparators() の例

<?php
require_once "File.php";

echo File::stripTrailingSeparators("/home/foo/lala/");
?>

この例は、/home/foo/lala を表示します。

前のページ | ホーム | 次のページ
File::stripLeadingSeparators() | 上に戻る | File::unlock()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File::unlock()

File::unlock() -- ロックされたファイルポインタをアンロックする

概要

require_once 'File.php';

mixed File::unlock (string $filename, string $mode)

説明

パラメータ

返り値

例外・エラー

注意

この関数は、スタティックにコールする ことができます。

参照

例

例 38-1File::unlock() の例

<?php
require_once 'File.php';

$e = File::unlock('test.txt');

if (PEAR::isError($e)) {
    echo 'ファイルをアンロックできませんでした : ' . $e->getMessage();
} else {
    echo "ファイル test.txt のアンロックに成功しました\n";
}
?>
前のページ | ホーム | 次のページ
File::stripTrailingSeparators() | 上に戻る | File::write()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File::write()

File::write() -- ファイルにバイトを書き込む

概要

require_once 'File.php';

mixed File::write (string $filename, string $char [, string $mode = FILE_MODE_APPEND [, mixed $lock = FALSE]])

説明

パラメータ

返り値

例外・エラー

注意

この関数は、スタティックにコールする ことができます。

参照

例

例 38-1File::write() の例

<?php
require_once 'File.php';

$e = File::write('test.txt', 'this is a test line', FILE_MODE_WRITE);

if (PEAR::isError($e)) {
    echo 'ファイルに書き込めませんでした : ' . $e->getMessage();
} else {
    echo "ファイル test.txt への書き込みに成功しました\n";
}
?>
前のページ | ホーム | 次のページ
File::unlock() | 上に戻る | File::writeChar()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File::writeChar()

File::writeChar() -- ファイルに 1 文字を書き込む

概要

require_once 'File.php';

mixed File::writeChar (string $filename, string $char [, string $mode = FILE_MODE_APPEND [, mixed $lock = FALSE]])

説明

パラメータ

返り値

例外・エラー

注意

この関数は、スタティックにコールする ことができます。

参照

例

例 38-1File::writeChar() の使用

<?php
require_once 'File.php';

$e = File::write('test.txt', 'a');

if (PEAR::isError($e)) {
    echo 'ファイルに書き込めませんでした : ' . $e->getMessage();
} else {
    echo "ファイル test.txt への書き込みに成功しました\n";
}
?>
前のページ | ホーム | 次のページ
File::write() | 上に戻る | File::writeLine()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


File::writeLine()

File::writeLine() -- ファイルに 1 行書き込む

概要

require_once 'File.php';

mixed File::writeLine (string $filename, string $line [, string $mode = FILE_MODE_APPEND [, string $crlf = "\n" [, mixed $lock = FALSE]]])

説明

パラメータ

返り値

例外・エラー

注意

この関数は、スタティックにコールする ことができます。

参照

例

例 38-1File::writeLine() の使用

<?php
require_once 'File.php';

$e = File::writeLine('test.txt', str_repeat("0123456789", 1000));

if (PEAR::isError($e)) {
    echo 'ファイルへ書き込めませんでした : ' . $e->getMessage();
} else {
    echo "ファイル test.txt への書き込みに成功しました\n";
}
?>
前のページ | ホーム | 次のページ
File::writeChar() | 上に戻る | File_Find

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk2_EntryDialog

目次
Class Summary Gtk2_EntryDialog -- Get text input easily.
constructor Gtk2_EntryDialog() -- Create a entry dialog instance.
Gtk2_EntryDialog::new_simple() -- Simplified constructor with not so much parameters.
Gtk2_EntryDialog::get() -- Show the dialog and retrieve the text
Gtk2_EntryDialog::run() -- Show the dialog and block until a button has been pressed.
Gtk2_EntryDialog::get_text() -- Returns the text input by the user.
Gtk2_EntryDialog::set_text() -- Sets the text for the entry
Gtk2_EntryDialog::set_default_response() -- Set the default response.
前のページ | ホーム | 次のページ
Gtk2 | 上に戻る | Class Summary Gtk2_EntryDialog

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor Gtk2_EntryDialog

PEAR マニュアル
前のページ 次のページ

constructor Gtk2_EntryDialog()

constructor Gtk2_EntryDialog() -- Create a entry dialog instance.

概要

require_once 'Gtk2/EntryDialog.php';

void constructor Gtk2_EntryDialog::__construct (GtkWindow $parent, GtkDialogFlags $flags, GtkMessageType $type, GtkButtonsType $buttons, string $message, string $default)

説明

Creates a new entry dialog instance. After creating it, you can modify it and finally use the run() to show it and await the input.

You might want to use a more simple constructor, e.g. get() or new_simple()

<?php
require_once 'Gtk2/EntryDialog.php';

$id = new Gtk2_EntryDialog(
    null,                       //parent window
    0,                          //flags (GtkDialogFlags)
    Gtk::MESSAGE_QUESTION,      //type of message
    Gtk::BUTTONS_OK_CANCEL,     //which buttons shall be there
    'What\'s your name?',       //the message
    'Don\'t know'               //The default text
);

$answer = $id->run();
$id->destroy();
if ($answer == Gtk::RESPONSE_OK) {
    echo 'The name is: ';
    var_dump($id->get_text());
} else {
    echo "You cancelled\r\n";
}
?>

パラメータ

GtkWindow $parent

Parent window (can be null).

GtkDialogFlags $flags

Dialog flags (use 0 as default)

GtkMessageType $type

Message type (e.g. Gtk::MESSAGE_QUESTION)

GtkButtonsType $buttons

Buttons to show (e.g. Gtk::BUTTONS_OK)

string $message

Message to display.

string $default

Default text for the entry.

前のページ | ホーム | 次のページ
Class Summary Gtk2_EntryDialog | 上に戻る | Gtk2_EntryDialog::new_simple()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Class Summary Gtk2_EntryDialog

Class Summary Gtk2_EntryDialog -- Get text input easily.

About Gtk2_EntryDialog

Gtk2_EntryDialog provides a dialog with a message and one single text input field, and some buttons like OK and Cancel. The class tries to make it as easy as possible to get the text from the user with only a few lines of code, while keeping the full power of the GtkDialog class.

The most easy way to retrieve the text with one line of code is using the get() static method.

Class Tree for Gtk2_EntryDialog

  • GtkDialog

    • GtkMessageDialog

      • Gtk2_EntryDialog

前のページ | ホーム | 次のページ
Gtk2_EntryDialog | 上に戻る | constructor Gtk2_EntryDialog()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk2_EntryDialog::get

PEAR マニュアル
前のページ 次のページ

Gtk2_EntryDialog::get()

Gtk2_EntryDialog::get() -- Show the dialog and retrieve the text

概要

require_once 'Gtk2/EntryDialog.php';

string Gtk2_EntryDialog::get (string $message, string $default [, GtkWindow $parent])

説明

Creates a dialog with the given parameters, runs it, and returns the text set. If the user cancelled the dialog, this method returns FALSE. In any other case (even when the text is empty), the a string with the text is returned.

<?php
require_once 'Gtk2/EntryDialog.php';

$text = Gtk2_EntryDialog::get(
    'What\'s your name?',       //the message
    'Don\'t know'               //The default text
);

if ($text !== false) {
    echo 'The name is: ';
    var_dump($text);
} else {
    echo "You cancelled\r\n";
}
?>

パラメータ

string $message

Message to display.

string $default

Default text for the entry.

GtkWindow $parent

Parent window (can be null).

返り値

returns False if the user cancelled input, the text (string) otherwise.

前のページ | ホーム | 次のページ
Gtk2_EntryDialog::new_simple() | 上に戻る | Gtk2_EntryDialog::run()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk2_EntryDialog::get_text

PEAR マニュアル
前のページ 次のページ

Gtk2_EntryDialog::get_text()

Gtk2_EntryDialog::get_text() -- Returns the text input by the user.

概要

require_once 'Gtk2/EntryDialog.php';

string Gtk2_EntryDialog::get_text ()

説明

Retrieves the text from the entry.

返り値

returns The input from the user.

前のページ | ホーム | 次のページ
Gtk2_EntryDialog::run() | 上に戻る | Gtk2_EntryDialog::set_text()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk2_EntryDialog::new_simple

PEAR マニュアル
前のページ 次のページ

Gtk2_EntryDialog::new_simple()

Gtk2_EntryDialog::new_simple() -- Simplified constructor with not so much parameters.

概要

require_once 'Gtk2/EntryDialog.php';

Gtk2_EntryDialog Gtk2_EntryDialog::new_simple (string $message, string [$default] = null, GtkWindow [$parent] = null)

説明

Simplified constructor with not so much parameters.

Message type is Gtk::MESSAGE_QUESTION, the flags will be Gtk::DIALOG_MODAL if the parent is set. Only one button, OK, will be visible.

<?php
require_once 'Gtk2/EntryDialog.php';

$id = Gtk2_EntryDialog::new_simple(
    'What\'s your name?',       //the message
    'Don\'t know'               //The default text
);

$answer = $id->run();
$id->destroy();
if ($answer == Gtk::RESPONSE_OK) {
    echo 'The name is: ';
    var_dump($id->get_text());
} else {
    echo "You cancelled\r\n";
}
?>

パラメータ

string $message

Message to display.

string $default

Default text for the entry.

GtkWindow $parent

Parent window (can be null).

前のページ | ホーム | 次のページ
constructor Gtk2_EntryDialog() | 上に戻る | Gtk2_EntryDialog::get()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk2_EntryDialog::run

PEAR マニュアル
前のページ 次のページ

Gtk2_EntryDialog::run()

Gtk2_EntryDialog::run() -- Show the dialog and block until a button has been pressed.

概要

require_once 'Gtk2/EntryDialog.php';

int Gtk2_EntryDialog::run ()

説明

Show the dialog and block until a button has been pressed.

返り値

returns The response id of the pressed button.

前のページ | ホーム | 次のページ
Gtk2_EntryDialog::get() | 上に戻る | Gtk2_EntryDialog::get_text()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk2_EntryDialog::set_default_response

PEAR マニュアル
前のページ 次のページ

Gtk2_EntryDialog::set_default_response()

Gtk2_EntryDialog::set_default_response() -- Set the default response.

概要

require_once 'Gtk2/EntryDialog.php';

void Gtk2_EntryDialog::set_default_response (int $response_id)

説明

Set the default response.

The button with the id will be the default one, allowing you to just press return to activate it.

パラメータ

int $response_id

Response code

前のページ | ホーム | 次のページ
Gtk2_EntryDialog::set_text() | 上に戻る | Gtk2_ExceptionDump

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk2_EntryDialog::set_text

PEAR マニュアル
前のページ 次のページ

Gtk2_EntryDialog::set_text()

Gtk2_EntryDialog::set_text() -- Sets the text for the entry

概要

require_once 'Gtk2/EntryDialog.php';

string Gtk2_EntryDialog::set_text (string $text)

説明

Sets the text for the entry.

前のページ | ホーム | 次のページ
Gtk2_EntryDialog::get_text() | 上に戻る | Gtk2_EntryDialog::set_default_response()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk2_ExceptionDump

目次
Introduction -- Using Gtk2_ExceptionDump
Re-using Gtk2_ExceptionDump -- Embedding it in own applications

Catches and displays PHP errors, notices and warnings as well as PEAR Errors and uncaught exceptions.

前のページ | ホーム | 次のページ
Gtk2_EntryDialog::set_default_response() | 上に戻る | Introduction

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction

Introduction -- Using Gtk2_ExceptionDump

About Gtk2_ExceptionDump

Gtk2_ExceptionDump catches and displays common errors and warnings that can be produced in a PHP scripts: PHP errors, notices and warnings as well as PEAR Errors and uncaught exceptions. They are displayed in a Gtk2 window with a tree view, providing the error message and the backtrace with passed parameters.

The most easy thing to do is letting the class handle everything automatically. You can decide which errors should be catched: All, PHP errors, PEAR errors or uncaught exceptions. The following methods need to be called statically to set up error handling:

  • setupExceptionHandler()

  • setupPearErrorHandler()

  • setupPhpErrorHandler()

  • setupAllHandlers()

例 40-1Letting Gtk2_ExceptionDump handle all errors

<?php
require_once 'Gtk2/ExceptionDump.php';
Gtk2_ExceptionDump::setupAllHandlers();
?>

Handling exceptions by hand

If you don't want to let Gtk2_ExceptionDump handle errors automatically, you can display the window by hand, e.g. in a catch() statement.

例 40-2Catching exceptions by hand

<?php
try {
    //do some stuff that
    //could throw an exception
} catch (Exception $e) {
    require_once 'Gtk2/ExceptionDump.php';
    Gtk2_ExceptionDump::display($e);
}
?>

More examples

As usually, the package has more examples in the doc directory: /path/to/pear/docs/Gtk2_ExceptionDump/examples/.

前のページ | ホーム | 次のページ
Gtk2_ExceptionDump | 上に戻る | Re-using Gtk2_ExceptionDump

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Re-using Gtk2_ExceptionDump

Re-using Gtk2_ExceptionDump -- Embedding it in own applications

Re-using Gtk2_ExceptionDump

You can make use of the brain power that went into the development of Gtk2_ExceptionDump by embedding the stack trace treeview into your own application.

There class you want is Gtk2_ExceptionDump_Stack. It's a subclass of GtkTreeView and should be embedded in a GtkScrolledWindow if you use it. The constructor takes the exception object, but it can be omitted and set later by using setException().

前のページ | ホーム | 次のページ
Introduction | 上に戻る | Gtk2_FileDrop

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk2_FileDrop

目次
Introduction -- Why using Gtk2_FileDrop?
Widget support -- Drops handled on different widget types
Example -- How to use Gtk2_FileDrop

Setting up GtkWidgets to accept files via Drag'n'Drop in a very easy way.

前のページ | ホーム | 次のページ
Re-using Gtk2_ExceptionDump | 上に戻る | Introduction

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Example

Example -- How to use Gtk2_FileDrop

Using Gtk2_FileDrop

例 40-1General setup

<?php
$accepted_types = array(
    'text/html',
    'text/plain',
    '.dat'
);
Gtk2_FileDrop::attach($widget, $accepted_types);
?>

Here we set up the array of accepted file types: The widget shall accept files with MIME-Type text/html, text/plain and files ending with .dat. After this we set up the $widget to accept this files.

例 40-2Accepting directories

$accepted_types = array(
    'inode/directory',
);

The MIME type inode/directory has to be used if the widget shall accept directories.

注意 When a file is dropped over a widget which accepts directories only, the directory of the filename is used.

例 40-3Setup with callback

<?php
function filesDropped($widget, $arFiles) {
    foreach($arFiles as $strFile) {
        echo "The file \"$strFile\" has been dropped\r\n";
    }
}

$accepted_types = array(
    'text/html',
    'text/plain',
    '.dat'
);
Gtk2_FileDrop::attach($widget, $accepted_types, 'filesDropped', false);
?>

In this example we use a callback function to print out all dropped files to the console. Further we determine the fourth parameter as false which means that the widget's value is not changed automatically.

To use the callback with objects, you pass an array with the reference of the object:

例 40-4Using a callback

<?php
Gtk2_FileDrop::attach($widget, $accepted_types, array( &$this, 'filesDropped'));
?>

例 40-5Working example

<?php
require_once 'Gtk2/FileDrop.php';

$window = new GtkWindow();
$window->set_default_size(300, 30);
$window->connect_simple('destroy', array('gtk', 'main_quit'));
$window->show();

$entry = new GtkEntry();
$window->add($entry);
$entry->set_text('drop text files on me');
Gtk2_FileDrop::attach($entry, array('text/plain'));

$window->show_all();
Gtk::main();
?>
前のページ | ホーム | 次のページ
Widget support | 上に戻る | Gtk2_IndexedComboBox

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction

Introduction -- Why using Gtk2_FileDrop?

Contributors

  • Christian Weiske

Description

Gtk2_FileDrop provides an easy interface to set up GtkWidgets to receive files via Drag'n'Drop. Widgets can be told to accept a number of MIME-Types as well as a number of file extensions. Values of widgets can automatically be set when drops with valid files occur, or a callback function can be specified which is invoked in this case.

Now one may think that the whole setup process is really simple and would not need a class like this to make widgets accept files. That is right. The setup for making widgets accept drops is an ease - but there are two more steps to do:

  1. Make the widget accept only some types of files

  2. Convert the dropped filenames to usable filenames

The first item is not so hard to implement; we do this by either checking the file extension, or using the MIME_Type package to get the mime type. (Note: * is supported).

The second item is the main problem as all applications seem to ignore the standard for file name exchange and cook their own soup (so using their own format) when passing the file names. This package knows the differences and converts the dropped strings into usable local filenames, regardless of the format the source application uses. For a deeper insight in this topic you should read the PHP-Gtk FileDrop tutorial.

注意A note about Mozilla/Firefox: Mozilla provides file names only with mime type text/plain only instead of text/uri-list. If we would accept this type as well, the problem arises that every text could be dropped - if it is a file or not. That's why the decision was made not to accept drops from Mozilla.

注意 Gtk2_FileDrop is the port of Gtk_FileDrop to PHP-Gtk2 and PHP5. Thus, it has identical methods and behaves the same.

前のページ | ホーム | 次のページ
Gtk2_FileDrop | 上に戻る | Widget support

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Widget support

Widget support -- Drops handled on different widget types

Natively supported widgets

By default, the dropped files are displayed in the widget, e.g. if you drop a file over a GtkEntry, the text value of the widget will be overwritten to the filename.

As not all widgets have such simple values, Gtk2_FileDrop has built-in support for a number of widget classes and acts different on different types.

表 40-1Widget support

Widget class | Action taken
GtkEntry | Entry value is replaced with first file
GtkLabel | Label text is replaced with first file
GtkButton | Label text is replaced with first file if the first and only child is a GtkLabel
GtkToggleButton | Label text is replaced with first file if the first and only child is a GtkLabel
GtkRadioButton | Label text is replaced with first file if the first and only child is a GtkLabel
GtkCheckButton | Label text is replaced with first file if the first and only child is a GtkLabel
GtkCombo | The entry text is replaced with the first file. The list is not affected.
GtkFileSelection | File name of the file dialog is set to the first dropped file. The directory is changed to the directory name of the file, and the file name (without directory) is set in the file name entry.
GtkList | Every accepted file is appended at the end of the list.

Beside the automatic actions, you can specify a callback as the third parameter of the attach function which is called with the widget itself and an array of accepted files as parameters.

前のページ | ホーム | 次のページ
Introduction | 上に戻る | Example

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk2_IndexedComboBox

目次
Simple example -- To get started easily
Conquering Glade combo boxes -- How to use glade combos with this class
Gtk2_IndexedComboBox -- The main class
Gtk2_IndexedComboBox_Model -- Model class behind the scenes

Gtk2_IndexedComboBox is a Gtk2 widget similar to the HTML select box - it lets you not only store values as the normal GtkComboBox, but associated key/value pairs.

Gtk2_IndexedComboBox is meant to be as easy to use as possible, and to have an API similar to the combo boxes created with GtkComboBox::new_text(). You can directly add key/value pairs to the widget instead of using the model (which is possible, too). Retrieving the currently selected key can be done with a single method call.

Both keys and values can be strings, thus allowing integers implicitly. This is very useful if you need a widget to select some row ID from a database, but want to display some descriptive string. By default, a single GtkCellRendererText is used as cell renderer.

前のページ | ホーム | 次のページ
Example | 上に戻る | Simple example

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Simple example

Simple example -- To get started easily

Simple example

In this example, we will create a combo box, add an array of key/value pairs and display the currently selected pair in a label.

例 40-1Simple Gtk2_IndexedComboBox example

<?php
require_once 'Gtk2/IndexedComboBox.php';

//display this data
$arData = array(
    1   => 'Germany',
    2   => 'United Kingdom',
    3   => 'Spain',
    4   => 'France'
);

//Create combo and set the array
$combo = new Gtk2_IndexedComboBox();
$combo->set_array($arData);
//make #2 active
$combo->set_active_key(2);

//trace changes
$combo->connect('changed', 'comboChanged', $lbl);

function comboChanged($combo, $lbl)
{
    $lbl->set_text(
        "Combo changed:\r\n"
        . 'Key: '   . $combo->get_active_key() . "\r\n"
        . 'Value: ' . $combo->get_active_text()
    );
}

//some label to display changes
$lbl = new GtkLabel("Status\r\n\r\n");

//standard stuff
$vbox = new GtkVBox();
$vbox->pack_start($combo);
$vbox->pack_start($lbl);

$wnd = new GtkWindow();
$wnd->connect_simple('destroy', array('Gtk', 'main_quit'));
$wnd->add($vbox);
$wnd->show_all();
Gtk::main();
?>

At first, we create a new combo widget object. You already could pass the array of data in the constructor if you wanted to, but here we use the set_array() method to do this. After providing the data, entry with id 2 is made active/pre-selected.

Whenever the selection changes, the example displays the selected key and value in a label below the combo box. We use get_active_key() to retrieve the key, and get_active_text() to retrieve the value.

前のページ | ホーム | 次のページ
Gtk2_IndexedComboBox | 上に戻る | Conquering Glade combo boxes

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Conquering Glade combo boxes

Conquering Glade combo boxes -- How to use glade combos with this class

Conquering Glade combo boxes

While designing your user interface with Glade is really convenient and easy, it doesn't allow you to use custom classes as this combo here. Thanks to the MVC model in Gtk2, you still can use this class's power by using the same model as Gtk2_IndexedComboBox uses internally: Gtk2_IndexedComboBox_Model.

例 40-1Glade file to use

<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">

<glade-interface>

<widget class="GtkWindow" id="wndTest">
  <property name="visible">True</property>
  <property name="title" translatable="yes">Gtk2_IndexedComboBox_Model test</property>
  <property name="type">GTK_WINDOW_TOPLEVEL</property>
  <property name="window_position">GTK_WIN_POS_NONE</property>
  <property name="modal">False</property>
  <property name="resizable">True</property>
  <property name="destroy_with_parent">False</property>
  <property name="decorated">True</property>
  <property name="skip_taskbar_hint">False</property>
  <property name="skip_pager_hint">False</property>
  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
  <signal name="destroy" handler="Gtk::main_quit"/>

  <child>
    <widget class="GtkComboBox" id="cmbNormal">
      <property name="visible">True</property>
    </widget>
  </child>
</widget>

</glade-interface>

例 40-2PHP code

<?php
require_once 'Gtk2/IndexedComboBox/Model.php';

$glade = new GladeXML(dirname(__FILE__) . '/glade.glade');
$glade->signal_autoconnect();

$combo = $glade->get_widget('cmbNormal');
$combo->connect('changed', 'comboChanged');
//show the second column only
$renderer = new GtkCellRendererText();
$combo->pack_start($renderer);
$combo->set_attributes($renderer, 'text', 1);

$mod = new Gtk2_IndexedComboBox_Model();
$combo->set_model($mod);

$mod->append(1, 'One');
$mod->append_array(array(2 => 'Two', 3 => 'Three'));
$mod->prepend(4, 'Four');

function comboChanged($combo)
{
    $nActive = $combo->get_active();
    $iter    = $combo->get_model()->get_iter($nActive);

    $key     = $combo->get_model()->get_key($iter);
    $text    = $combo->get_model()->get_text($iter);

    echo 'Selected: ' . $key . ' => ' . $text . "\r\n";
}

Gtk::main();
?>

The important thing to remember is that you need to setup your own cell renderer, and tell it which column in the model shall be displayed. Beside that, you just do the normal model-creation-and-setting via set_model().

All data manipulation methods of Gtk2_IndexedComboBox you saw in the previous example are available in the model, Gtk2_IndexedComboBox_Model. Only get_active_key() and get_active_text() cannot be used on the model, since this doesn't know anything about selections. Retrieve the selected GtkTreeIter by combining the calls of get_active() and get_iter(), and pass this iter object to get_key() and get_text().

前のページ | ホーム | 次のページ
Simple example | 上に戻る | Gtk2_IndexedComboBox

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk2_IndexedComboBox

Gtk2_IndexedComboBox -- The main class

Gtk2_IndexedComboBox

Gtk2_IndexedComboBox automatically creates the model and sets up the cell renderer when instantiating the widget. You may pass an array of key/value pairs to the constructor if you like to, but also can set them later.

The currently selected (active) key can be retrieved via get_active_key(), the selected (active) value by using get_active_text(). You can preselect a certain key with set_active_key().

If you don't like the renderer or want to change it or its attributes, use get_cell_renderer() and set_cell_renderer().

All other methods to retrieve/store data are convenience methods that act as proxy to the model. For example, Gtk2_IndexedComboBox' method set_array() internally calls the same method on the model, Gtk2_IndexedComboBox_Model. This allows you to quickly add some data to the combo without getting the model first and acting on it.

前のページ | ホーム | 次のページ
Conquering Glade combo boxes | 上に戻る | Gtk2_IndexedComboBox_Model

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk2_IndexedComboBox_Model

Gtk2_IndexedComboBox_Model -- Model class behind the scenes

Gtk2_IndexedComboBox_Model

The model class is the data storage for your key/value pairs. It contains two columns, both are of type Gtk::TYPE_STRING and can hold text and numbers. The first is used for the keys, the values are stored in the second column.

The class has several method that allow you to store data in the model: The classis set_array() takes an associative array of key/value pairs. Once set, you can use append_array() and prepend_array() to add new data after or before the current values. You also have the possibility to use insert_array() that takes the position as first, and the data array as second parameter.

Beside the *_array methods, you can add single key/value pairs by using append() and prepend() which take the key as first, and the value as second parameter. insert() wants an additional position number as first parameter, and key/value as second and third.

To delete data from the model, use remove_key(). After finishing your data manipulation, you can retrieve the full associative array of key/value pairs via get_array().

To obtain the key or value of a certain GtkTreeIter (that you got e.g. from the model by using get_iter()), use get_key() and get_text().

前のページ | ホーム | 次のページ
Gtk2_IndexedComboBox | 上に戻る | Gtk2_PHPConfig

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk2_PHPConfig

目次
Introduction -- About Gtk2_PHPConfig
Usage -- Using Gtk2_PHPConfig

Provides a simple GUI to enable the user to edit php.ini values.

前のページ | ホーム | 次のページ
Gtk2_IndexedComboBox_Model | 上に戻る | Introduction

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction

Introduction -- About Gtk2_PHPConfig

Description

This package will be useful for PHP-GTK 2 based applications which require the user to make changes to php.ini. The class can parse any existing ini file, or create new ones. Parsing of existing files is currently a little inefficient, suggestions for improvement are welcome. New files and files previously generated by Gtk2_PHPConfig are parsed at a good speed though.

The interface displays all available configuration sections on the left pane, and their corresponding options in the top right pane. The bottom right pane displays the description of the option selected and the facility to change the value of that option.

前のページ | ホーム | 次のページ
Gtk2_PHPConfig | 上に戻る | Usage

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Usage

Usage -- Using Gtk2_PHPConfig

Using Gtk2_PHPConfig

例 40-1Simple Configuration GUI

<?php

require_once("Gtk2/PHPConfig.php");

switch ($argc) {
    case 1:
        $test = new Gtk2_PHPConfig(NULL);
        Gtk::main();
        break;
    case 2:
        if (file_exists($argv[1])) {
            echo "\nThe INI File is being parsed... Please be patient...\n";
            $test = new Gtk2_PHPConfig($argv[1]);
            Gtk::main();
            break;
        } else {
            echo "\nThe file does not exist!\n";
        }
    default:
        echo "\nUsage: gtk2_phpconfig [INI File]\n";
        echo "Where [INI File] is an optional argument, and the name of the
        file you want to edit.";
        echo "\nIf no arguments are passed, a new INI file is created\n\n";
        exit();
}

?>

This example is actually the gtk2_phpconfig executable found in /usr/bin (for *nix systems) after installation of the Gtk2_PHPConfig package.

The example script accepts a single optional argument, i.e. the location of the ini file to edit. If not provided, a new file will be created.

Gtk2_PHPConfig extends GtkWindow and can be treated as an application by itself. Hence, the methods used internally are of no significance to the end user. However, you may refer to the API documentation if you are interested in customization or just understanding how the package works.

前のページ | ホーム | 次のページ
Introduction | 上に戻る | Gtk2_ScrollingLabel

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk2_ScrollingLabel

目次
Introduction -- Getting started with Gtk2_Scrollinglabel
Gtk2_ScrollingLabel -- Create a new Scrolling label.
Gtk2_ScrollingLabel::getFullText -- Returns the full text of the label.
Gtk2_ScrollingLabel::getHiddenText -- Returns all of the text that is not currently visible.
Gtk2_ScrollingLabel::getScrollingLabel -- Returns a GtkEventBox with the scrolling label inside.
Gtk2_ScrollingLabel::getStyle -- Gets the label's style widget
Gtk2_ScrollingLabel::getVisibleLength -- Returns the length of the visible area in characters.
Gtk2_ScrollingLabel::pause -- Stops the label from scrolling without reseting the label text
Gtk2_ScrollingLabel::setBounce -- Sets the text to bounce between the borders of the label
Gtk2_ScrollingLabel::setStartSignal -- Connects the startScroll() method to a given event.
Gtk2_ScrollingLabel::startScroll -- Begins scrolling the text from the start of the string.
Gtk2_ScrollingLabel::unPause -- Begins scrolling the label from its current position

Provides a simple GUI to enable the user to edit php.ini values.

前のページ | ホーム | 次のページ
Usage | 上に戻る | Introduction

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk2_ScrollingLabel

Gtk2_ScrollingLabel -- Create a new Scrolling label.

概要

require_once 'Gtk2/ScrollingLabel.php';

void Gtk2_SrollingLabel ([string $text = ''])

説明

Class constructor

パラメータ

  • string $text - The text to scroll

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Introduction | 上に戻る | Gtk2_ScrollingLabel::getFullText

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk2_ScrollingLabel::getFullText

Gtk2_ScrollingLabel::getFullText -- Returns the full text of the label.

概要

require_once 'Gtk2/ScrollingLabel.php';

string Gtk2_ScrollingLabel::getFullText ()

説明

Returns the full text of the label. The full text is the text that was set on construction or with setFullText() not just what is currently visible.

返り値

returns the full text of the label.

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Gtk2_ScrollingLabel | 上に戻る | Gtk2_ScrollingLabel::getHiddenText

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk2_ScrollingLabel::getHiddenText

Gtk2_ScrollingLabel::getHiddenText -- Returns all of the text that is not currently visible.

概要

require_once 'Gtk2/ScrollingLabel.php';

string Gtk2_ScrollingLabel::getHiddenText ()

説明

Returns the portion of the full label text that is currently not being shown.

返り値

returns the label text that is not visible.

参照

getFullText()

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Gtk2_ScrollingLabel::getFullText | 上に戻る | Gtk2_ScrollingLabel::getScrollingLabel

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk2_ScrollingLabel::getScrollingLabel

Gtk2_ScrollingLabel::getScrollingLabel -- Returns a GtkEventBox with the scrolling label inside.

概要

require_once 'Gtk2/ScrollingLabel.php';

void Gtk2_ScrollingLabel::getScrollingLabel ()

説明

Returns the GtkEventBox that contains the scrolling label.

返り値

returns the GtkEventBox containing the scrolling label.

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Gtk2_ScrollingLabel::getHiddenText | 上に戻る | Gtk2_ScrollingLabel::getStyle

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk2_ScrollingLabel::getStyle

Gtk2_ScrollingLabel::getStyle -- Gets the label's style widget

概要

require_once 'Gtk2/ScrollingLabel.php';

&object Gtk2_ScrollingLabel::getStyle ()

説明

Returns the label's style widget. This lets you make changes to the style to alter the look and feel of the widget. You can change the font of the display, the color of the background, etc.

返り値

returns the GtkStyle widget for the label.

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Gtk2_ScrollingLabel::getScrollingLabel | 上に戻る | Gtk2_ScrollingLabel::getVisibleLength

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk2_ScrollingLabel::getVisibleLength

Gtk2_ScrollingLabel::getVisibleLength -- Returns the length of the visible area in characters.

概要

require_once 'Gtk2/ScrollingLabel.php';

int Gtk2_ScrollingLabel::getVisibleLength ()

説明

Returns the length of the visible area in characters. The length of the visible area is the maximum number of characters that are visible at one time.

返り値

integer the maximum number of characters that are visible at one time.

参照

setVisibleLength()

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Gtk2_ScrollingLabel::getStyle | 上に戻る | Gtk2_ScrollingLabel::pause

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction

Introduction -- Getting started with Gtk2_Scrollinglabel

Description

Gtk2_ScrollingLabel is a class that creates a pseudo-widget which makes scrolling text within a label easy. The text within the label can be set to scroll from left to right, right to left, or bounce within the boundries of the label. The speed of the scrolling text can also be controlled. There are also built in methods to make the text pause or stop when the user moves the mouse over the label and start up again when the mouse leaves the label space.

Getting started with Gtk2_ScrollingLabel is easy. All you need to do is instantiate the class, add it to a window, and start the scrolling. Take at look at the example below.

例 40-1 Simple Setup

<?php
// Create a Gtk2_ScrollingLabel instance.
require_once 'Gtk2/ScrollingLabel.php';
$sLabel = new Gtk2_ScrollingLabel('Scrolling Labels Rule!');

// Create a GtkWindow to put the label in.
$gWin = new GtkWindow;
$gWin->connect_simple('destroy', array('Gtk', 'main_quit'));
$gWin->add($sLabel->getWidget());

// Show everything.
$gwin->show_all();

// Start the label and the main loop.
$sLabel->startScroll();
gtk::main();
?>

前のページ | ホーム | 次のページ
Gtk2_ScrollingLabel | 上に戻る | Gtk2_ScrollingLabel

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk2_ScrollingLabel::pause

Gtk2_ScrollingLabel::pause -- Stops the label from scrolling without reseting the label text

概要

require_once 'Gtk2/ScrollingLabel.php';

void Gtk2_ScrollingLabel::pause ()

説明

Stops the label from scrolling but does not reset the label text to the begining. If you want the label to stop scrolling and return to its original position (blank), use stopScroll().

返り値

returns true if the scrolling has stopped.

参照

unPause()

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Gtk2_ScrollingLabel::getVisibleLength | 上に戻る | Gtk2_ScrollingLabel::setBounce

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk2_ScrollingLabel::setBounce

Gtk2_ScrollingLabel::setBounce -- Sets the text to bounce between the borders of the label

概要

require_once 'Gtk2/ScrollingLabel.php';

boolean Gtk2_ScrollingLabel::setBounce (boolean $bounce)

説明

If $bounce is true, the text will scroll to the left until the first character hits the left edge of the visible window then it will scroll back to the right. When the last character hits the right edge of the visible window the text will scroll back to the left again.

If all of the scrolling text cannot be viewed at once, making the text bounce will have an undesired result. Therefore it is suggested that the length of the text always be at least one character less than the maximum viewable string length.

パラメータ

  • boolean $bounce - Whether or not the text should change direction when it hits a label edge.

返り値

returns Whether or not the text is set to bounce

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Gtk2_ScrollingLabel::pause | 上に戻る | Gtk2_ScrollingLabel::setStartSignal

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk2_ScrollingLabel::setStartSignal

Gtk2_ScrollingLabel::setStartSignal -- Connects the startScroll() method to a given event.

概要

require_once 'Gtk2/ScrollingLabel.php';

void Gtk2_ScrollingLabel::setStartSignal (string $signal)

説明

setStartSignal() will make the event box listen for the signal $signal and will envoke startScroll() when ever it is heard. The signal should be a signal that GtkEventBox listens for normally or a button press event.

パラメータ

  • string $signal - The Gtk signal to connect to startScroll().

返り値

returns The handler id for the connection.

参照

startScroll()

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Gtk2_ScrollingLabel::setBounce | 上に戻る | Gtk2_ScrollingLabel::startScroll

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk2_ScrollingLabel::startScroll

Gtk2_ScrollingLabel::startScroll -- Begins scrolling the text from the start of the string.

概要

require_once 'Gtk2/ScrollingLabel.php';

boolean Gtk2_ScrollingLabel::startScroll ()

説明

startScroll() will make the text begin scrolling in the direction given by calling setDirection(). If the text is scrolling left to right (GTK2_SCROLLINGLABEL_RIGHT), the current character position is set to the end of the text. This means that the last character of the label will be the first character shown. If the text is scrolling right to left (GTK2_SCROLLINGLABEL_LEFT), the current character position is set to zero. This means that first character shown will be a blank space.

This method is best used when connected to an event.

返り値

returns true if the text has started scrolling. false otherwise.

参照

setStartSignal()

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Gtk2_ScrollingLabel::setStartSignal | 上に戻る | Gtk2_ScrollingLabel::unPause

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk2_ScrollingLabel::unPause

Gtk2_ScrollingLabel::unPause -- Begins scrolling the label from its current position

概要

require_once 'Gtk2/ScrollingLabel.php';

void Gtk2_ScrollingLabel::unPause ()

説明

Begins scrolling the label from its current position. unPause() is different from startScroll() in that it does not reset the label to the begining of the text.

返り値

returns true if the text has started scrolling.

参照

pause()

startScroll()

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Gtk2_ScrollingLabel::startScroll | 上に戻る | Gtk2_VarDump

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk2_VarDump

目次
Introduction -- About Gtk2_VarDump
Re-using Gtk2_VarDump -- Embedding it in own applications

Provides a simple GUI to examine PHP variables, for example complex arrays or objects.

前のページ | ホーム | 次のページ
Gtk2_ScrollingLabel::unPause | 上に戻る | Introduction

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction

Introduction -- About Gtk2_VarDump

About Gtk2_VarDump

Gtk2_VarDump is a simple GUI to examine PHP variables, for example complex arrays or objects. It displays the variable and all sub-variables/array keys/sub-objects in the left pane (a GtkTreeView), and the actual values in a list view on the right side.

The class is very easy to use: Just include the file, and call the static display method with the variable you want to have dumped.

例 40-1Showing a variable with Gtk2_VarDump

<?php
//include the file
require_once 'Gtk2/VarDump.php';

$myvar = array(
    'hello', 2 => 'world',
    array(1, 2, 3, 'blubb')
);

//graphically dump the variable in an own window
Gtk2_VarDump::display($myvar, 'variable title');
?>
前のページ | ホーム | 次のページ
Gtk2_VarDump | 上に戻る | Re-using Gtk2_VarDump

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Re-using Gtk2_VarDump

Re-using Gtk2_VarDump -- Embedding it in own applications

Re-using Gtk2_VarDump

Gtk2_VarDump consists of two main parts: A tree on the left, displaying the structure of the variable-to-dump, and a list on the right side, showing the keys and their values. They are arranged on a pane, which itself is contained in the main window.

Now you might want to dump some variables yourself, but integrate this display directly into your own application - without opening a new window for that. Gtk2_VarDump is prepared for that; you can re-use the existing classes.

Gtk2_VarDump_Pane

Gtk2_VarDump_Pane is the container for both tree and list. You can use instantiate it, add it to your interface and call the setVariable() method to display the contents of the variable. The method takes the variable as first parameter, and a user-definable title as optional second parameter.

Gtk2_VarDump_Tree

Gtk2_VarDump_Tree is an descendant of GtkTreeView, and as usual without any scrollbars. Remember to add it to a GtkScrolledWindow. The class has, as Gtk2_VarDump_Pane does, a setVariable() method that takes the variable to be displayed and an optional title that is used for the root element.

The tree has another method: setList() is used to set the list widget that shall display the values. Be sure that the list widget also provides a setVariable() method. Whenever the selection in the tree changes, the list's setVariable() method is called.

Gtk2_VarDump_List

Gtk2_VarDump_List is a descendant of GtkTreeView and simply displays plain key-value pairs. It has, like the other two classes, a setVariable() method that takes the variable to display as first parameter, and an optional title as second parameter.

前のページ | ホーム | 次のページ
Introduction | 上に戻る | HTML

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


FileDrop

目次
Introduction -- Why using Gtk_FileDrop?
Widget support -- Drops handled on different widget types
Example -- How to use Gtk_FileDrop

Setting up GtkWidgets to accept files via Drag'n'Drop in a very easy way.

前のページ | ホーム | 次のページ
Gtk | 上に戻る | Introduction

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Example

Example -- How to use Gtk_FileDrop

Using Gtk_FileDrop

例 39-1General setup

<?php
$accepted_types = array(
    'text/html',
    'text/plain',
    '.dat'
);
Gtk_FileDrop::attach($widget, $accepted_types);
?>

Here we set up the array of accepted file types: The widget shall accept files with MIME-Type text/html, text/plain and files ending with .dat. After this we set up the $widget to accept this files.

例 39-2Accepting directories

$accepted_types = array(
    'inode/directory',
);

The MIME type inode/directory has to be used if the widget shall accept directories.

注意 When a file is dropped over a widget which accepts directories only, the directory of the filename is used.

例 39-3Setup with callback

<?php
function filesDropped($widget, $arFiles) {
    foreach($arFiles as $strFile) {
        echo "The file \"$strFile\" has been dropped\r\n";
    }
}

$accepted_types = array(
    'text/html',
    'text/plain',
    '.dat'
);
Gtk_FileDrop::attach($widget, $accepted_types, 'filesDropped', false);
?>

In this example we use a callback function to print out all dropped files to the console. Further we determine the fourth parameter as false which means that the widget's value is not changed automatically.

To use the callback with objects, you pass an array with the reference of the object:

例 39-4Using a callback

<?php
Gtk_FileDrop::attach($widget, $accepted_types, array( &$this, 'filesDropped'));
?>

例 39-5Working example

<?php
if (!extension_loaded('gtk')) {
    dl('php_gtk.' . PHP_SHLIB_SUFFIX);
}
require_once('Gtk/FileDrop.php');

$window = &new GtkWindow();
$window->set_default_size(300, 30);
$window->connect_object('destroy', array('gtk', 'main_quit'));
$window->show();

$entry =& new GtkEntry();
$window->add($entry);
$entry->set_text('drop text files on me');
Gtk_FileDrop::attach($entry, array('text/plain'));

$window->show_all();
gtk::main();
?>
前のページ | ホーム | 次のページ
Widget support | 上に戻る | Gtk_ScrollingLabel

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction

Introduction -- Why using Gtk_FileDrop?

Contributors

  • Christian Weiske

Description

Gtk_FileDrop provides an easy interface to set up GtkWidgets to receive files via Drag'n'Drop. Widgets can be told to accept a number of MIME-Types as well as a number of file extensions. Values of widgets can automatically be set when drops with valid files occur, or a callback function can be specified which is invoked in this case.

Now one may think that the whole setup process is really simple and would not need a class like this to make widgets accept files. That is right. The setup for making widgets accept drops is an ease - but there are two more steps to do:

  1. Make the widget accept only some types of files

  2. Convert the dropped filenames to usable filenames

The first item is not so hard to implement; we do this by either checking the file extension, or using the MIME_Type package to get the mime type. (Note: * is supported).

The second item is the main problem as all applications seem to ignore the standard for file name exchange and cook their own soup (so using their own format) when passing the file names. This package knows the differences and converts the dropped strings into usable local filenames, regardless of the format the source application uses. For a deeper insight in this topic you should read the PHP-Gtk FileDrop tutorial.

注意A note about Mozilla/Firefox: Mozilla provides file names only with mime type text/plain only instead of text/uri-list. If we would accept this type as well, the problem arises that every text could be dropped - if it is a file or not. That's why the decision was made not to accept drops from Mozilla.

前のページ | ホーム | 次のページ
FileDrop | 上に戻る | Widget support

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Widget support

Widget support -- Drops handled on different widget types

Natively supported widgets

By default, the dropped files are displayed in the widget, e.g. if you drop a file over a GtkEntry, the text value of the widget will be overwritten to the filename.

As not all widgets have such simple values, Gtk_FileDrop has built-in support for a number of widget classes and acts different on different types.

表 39-1Widget support

Widget class | Action taken
GtkEntry | Entry value is replaced with first file
GtkLabel | Label text is replaced with first file
GtkButton | Label text is replaced with first file if the first and only child is a GtkLabel
GtkToggleButton | Label text is replaced with first file if the first and only child is a GtkLabel
GtkRadioButton | Label text is replaced with first file if the first and only child is a GtkLabel
GtkCheckButton | Label text is replaced with first file if the first and only child is a GtkLabel
GtkCombo | The entry text is replaced with the first file. The list is not affected.
GtkFileSelection | File name of the file dialog is set to the first dropped file. The directory is changed to the directory name of the file, and the file name (without directory) is set in the file name entry.
GtkList | Every accepted file is appended at the end of the list.

Beside the automatic actions, you can specify a callback as the third parameter of the attach function which is called with the widget itself and an array of accepted files as parameters.

前のページ | ホーム | 次のページ
Introduction | 上に戻る | Example

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk_ScrollingLabel

目次
Introduction -- Getting started with Gtk_Scrollinglabel?
Gtk_ScrollingLabel::getFullText -- Returns the full text of the label.
Gtk_ScrollingLabel::getHiddenText -- Returns all of the text that is not currently visible.
Gtk_ScrollingLabel::getScrollingLabel -- Returns a GtkEventBox with the scrolling label inside.
Gtk_ScrollingLabel::getStyle -- Gets the label's style widget
Gtk_ScrollingLabel::getVisibleLength -- Returns the length of the visible area in characters.
Gtk_ScrollingLabel::pause -- Stops the label from scrolling without reseting the label text
Gtk_ScrollingLabel::setBounce -- Sets the text to bounce between the borders of the label
Gtk_ScrollingLabel::setStartSignal -- Connects the startScroll() method to a given event.
Gtk_ScrollingLabel::startScroll -- Begins scrolling the text from the start of the string.
Gtk_ScrollingLabel::unPause -- Begins scrolling the label from its current position

A class that creates a scrolling marquee.

前のページ | ホーム | 次のページ
Example | 上に戻る | Introduction

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk_ScrollingLabel::getFullText

Gtk_ScrollingLabel::getFullText -- Returns the full text of the label.

概要

require_once 'Gtk/ScrollingLabel.php';

string Gtk_ScrollingLabel::getFullText ()

説明

Returns the full text of the label. The full text is the text that was set on construction or with setFullText() not just what is currently visible.

返り値

returns the full text of the label.

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Introduction | 上に戻る | Gtk_ScrollingLabel::getHiddenText

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk_ScrollingLabel::getHiddenText

Gtk_ScrollingLabel::getHiddenText -- Returns all of the text that is not currently visible.

概要

require_once 'Gtk/ScrollingLabel.php';

string Gtk_ScrollingLabel::getHiddenText ()

説明

Returns the portion of the full label text that is currently not being shown.

返り値

returns the label text that is not visible.

参照

getFullText()

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Gtk_ScrollingLabel::getFullText | 上に戻る | Gtk_ScrollingLabel::getScrollingLabel

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk_ScrollingLabel::getScrollingLabel

Gtk_ScrollingLabel::getScrollingLabel -- Returns a GtkEventBox with the scrolling label inside.

概要

require_once 'Gtk/ScrollingLabel.php';

void Gtk_ScrollingLabel::getScrollingLabel ()

説明

Returns the GtkEventBox that contains the scrolling label.

返り値

returns the GtkEventBox containing the scrolling label.

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Gtk_ScrollingLabel::getHiddenText | 上に戻る | Gtk_ScrollingLabel::getStyle

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk_ScrollingLabel::getStyle

Gtk_ScrollingLabel::getStyle -- Gets the label's style widget

概要

require_once 'Gtk/ScrollingLabel.php';

&object Gtk_ScrollingLabel::getStyle ()

説明

Returns the label's style widget. This lets you make changes to the style to alter the look and feel of the widget. You can change the font of the display, the color of the background, etc.

返り値

returns the GtkStyle widget for the label.

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Gtk_ScrollingLabel::getScrollingLabel | 上に戻る | Gtk_ScrollingLabel::getVisibleLength

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk_ScrollingLabel::getVisibleLength

Gtk_ScrollingLabel::getVisibleLength -- Returns the length of the visible area in characters.

概要

require_once 'Gtk/ScrollingLabel.php';

int Gtk_ScrollingLabel::getVisibleLength ()

説明

Returns the length of the visible area in characters. The length of the visible area is the maximum number of characters that are visible at one time.

返り値

integer the maximum number of characters that are visible at one time.

参照

setVisibleLength()

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Gtk_ScrollingLabel::getStyle | 上に戻る | Gtk_ScrollingLabel::pause

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk_ScrollingLabel::pause

Gtk_ScrollingLabel::pause -- Stops the label from scrolling without reseting the label text

概要

require_once 'Gtk/ScrollingLabel.php';

void Gtk_ScrollingLabel::pause ()

説明

Stops the label from scrolling but does not reset the label text to the begining. If you want the label to stop scrolling and return to its original position (blank), use stopScroll().

返り値

returns true if the scrolling has stopped.

参照

unPause()

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Gtk_ScrollingLabel::getVisibleLength | 上に戻る | Gtk_ScrollingLabel::setBounce

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk_ScrollingLabel::setBounce

Gtk_ScrollingLabel::setBounce -- Sets the text to bounce between the borders of the label

概要

require_once 'Gtk/ScrollingLabel.php';

boolean Gtk_ScrollingLabel::setBounce (boolean $bounce)

説明

If $bounce is true, the text will scroll to the left until the first character hits the left edge of the visible window then it will scroll back to the right. When the last character hits the right edge of the visible window the text will scroll back to the left again.

If all of the scrolling text cannot be viewed at once, making the text bounce will have an undesired result. Therefore it is suggested that the length of the text always be at least one character less than the maximum viewable string length.

パラメータ

  • boolean $bounce - Whether or not the text should change direction when it hits a label edge.

返り値

returns Whether or not the text is set to bounce

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Gtk_ScrollingLabel::pause | 上に戻る | Gtk_ScrollingLabel::setStartSignal

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk_ScrollingLabel::setStartSignal

Gtk_ScrollingLabel::setStartSignal -- Connects the startScroll() method to a given event.

概要

require_once 'Gtk/ScrollingLabel.php';

void Gtk_ScrollingLabel::setStartSignal (string $signal)

説明

setStartSignal() will make the event box listen for the signal $signal and will envoke startScroll() when ever it is heard. The signal should be a signal that GtkEventBox listens for normally or a button press event.

パラメータ

  • string $signal - The Gtk signal to connect to startScroll().

返り値

returns The handler id for the connection.

参照

startScroll()

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Gtk_ScrollingLabel::setBounce | 上に戻る | Gtk_ScrollingLabel::startScroll

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk_ScrollingLabel::startScroll

Gtk_ScrollingLabel::startScroll -- Begins scrolling the text from the start of the string.

概要

require_once 'Gtk/ScrollingLabel.php';

boolean Gtk_ScrollingLabel::startScroll ()

説明

startScroll() will make the text begin scrolling in the direction given by calling setDirection(). If the text is scrolling left to right (GTK_SCROLLINGLABEL_RIGHT), the current character position is set to the end of the text. This means that the last character of the label will be the first character shown. If the text is scrolling right to left (GTK_SCROLLINGLABEL_LEFT), the current character position is set to zero. This means that first character shown will be a blank space.

This method is best used when connected to an event.

返り値

returns true if the text has started scrolling. false otherwise.

参照

setStartSignal()

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Gtk_ScrollingLabel::setStartSignal | 上に戻る | Gtk_ScrollingLabel::unPause

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk_ScrollingLabel::unPause

Gtk_ScrollingLabel::unPause -- Begins scrolling the label from its current position

概要

require_once 'Gtk/ScrollingLabel.php';

void Gtk_ScrollingLabel::unPause ()

説明

Begins scrolling the label from its current position. unPause() is different from startScroll() in that it does not reset the label to the begining of the text.

返り値

returns true if the text has started scrolling.

参照

pause()

startScroll()

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Gtk_ScrollingLabel::startScroll | 上に戻る | Gtk_VarDump

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Gtk_VarDump

Provides a simple GUI to examine PHP variables, for example complex arrays or objects.

The GUI consists of two parts: a tree on the left side, displaying the values/objects/arrays that have subkeys/subvalues, and a list with scalar key-value pairs on the right side.

To use it, just include Gtk/VarDump.php and call the constructor with the variable to be dumped.

例 39-7Inspecting a variable with Gtk_VarDump

<?php
//some test class to dump
class Test
{
    var $color  = 'blue';
    var $foo    = 'bar';
    var $self   = null;
    var $server = null;

    function Test()
    {
        $this->self   =& $this;
        $this->server =& $_SERVER;
    }

    function doNothing()
    {
        //we're doing nothing here
    }
}

//include & display the variable
require_once 'Gtk/VarDump.php';
new Gtk_VarDump(new Test());
?>
前のページ | ホーム | 次のページ
Gtk_ScrollingLabel::unPause | 上に戻る | Gtk2

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction

Introduction -- Getting started with Gtk_Scrollinglabel?

Contributors

  • Scott Mattocks

Description

Gtk_ScrollingLabel is a class that creates a pseudo-widget which makes scrolling text within a label easy. The text within the label can be set to scroll from left to right, right to left, or bounce within the boundries of the label. The speed of the scrolling text can also be controlled. There are also built in methods to make the text pause or stop when the user moves the mouse over the label and start up again when the mouse leaves the label space.

Getting started with Gtk_ScrollingLabel is easy. All you need to do is instantiate the class, add it to a window, and start the scrolling. Take at look at the example below.

例 39-1 Simple Setup

<?php
// Create a Gtk_ScrollingLabel instance.
require_once 'Gtk/ScrollingLabel.php';
$sLabel =& new Gtk_ScrollingLabel('Scrolling Labels Rule!');

// Create a GtkWindow to put the label in.
$gWin =& new GtkWindow;
$gWin->connect_object('destroy', array('gtk', 'main_quit'));
$gWin->add($sLabel->getWidget());

// Show everything.
$gwin->show_all();

// Start the label and the main loop.
$sLabel->startScroll();
gtk::main();
?>

前のページ | ホーム | 次のページ
Gtk_ScrollingLabel | 上に戻る | Gtk_ScrollingLabel::getFullText

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Crypt

HTML_Crypt は、テキストを暗号化する機能を提供します。 暗号化されたテキストは、後でクライアント側の JavaScript によって復号することができます。

これは、電子メールアドレスをサイトから収集するような spam ロボット対策としても有効です。 生成された文字列を使用して mailto リンクを作成するメソッドも含まれています。

例 41-1電子メールアドレスを暗号化する基本的な例

// オフセット 8 で 'yourname@emailaddress.com'
// を暗号化します
$c = new HTML_Crypt('yourname@emailaddress.com', 8);

// それを <a href="mailto:"></a> で囲みます
$c->addMailTo();

// 復号されたアドレスを表示するための javascript を出力します
$c->output();

"暗号化" 関数の動作は、基本的には ROT13 と似ています。 ただ、$offset を設定することで 13 以外を使用できます。 また、この関数は、32 から 127 まで (それぞれ両端を含む) の ASCII 文字しか暗号化の対象となりません。 それ以外の文字は暗号化されません。

前のページ | ホーム | 次のページ
HTML | 上に戻る | HTML_Form

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Form

目次
導入 -- HTML フォームの生成
使用例 -- HTML_Form の利用

これは、簡単な HTML フォーム生成器です。ファイルアップロードを含む HTML フォーム要素型の全てをサポートします。 独立したフォーム要素型、あるいは、固定レイアウトを使った "表モード" での全てのフォームを返したり、出力します。

前のページ | ホーム | 次のページ
HTML_Crypt | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


使用例

使用例 -- HTML_Form の利用

"表モード" でのフォームの生成

"表モード" でのフォームの生成は、 このパッケージは固定幅で完全なフォームを返すことを意味します。 多くのフロントエンド Web サイトにはあまり向いていないので、 デザインがあまり問題にならない開発フェーズの間や バックエンドシステムでフォームを生成するのに非常にうってつけの方法です。

例 41-1フォームの生成

require_once "HTML/Form.php";

$form = new HTML_Form('receivingscript.php');

$form->addText("name", "What's your name?");
$form->addText("email", "What's your email address?");
$form->addPassword("password", "Please enter the desired password");
$form->addPlaintext("Tip", "Your password should be hard to guess");
$form->addSubmit("submit", "Submit");

$form->display();

これは、左の欄に異なるフィールドのラベルを持った表を表示します。 右の欄には、異なるフィールドがあります。

1つのフォームタグを表示する

表全体を取り出すだけでなく、直接1つのフォームタグを表示するための HTML_Form の API を使用することもできます。

例 41-2直接フォームタグを表示する

require_once "HTML/Form.php";

$form = new HTML_Form('receivingscript.php');

$form->displayText("name", "What's your name?");

上の例は、テキスト入力フィールドを描画するために必要な HTML マークアップを表示します。 これは、囲んでいる <form /> タグや他の何かを表示しません。

1つのフォームタグを返す

display*() 関数でフォームタグを表示するのと同様に、 HTML_Form は表示する代わりにタグを返すことができます。

例 41-3フォームタグを返す

require_once "HTML/Form.php";

$form = new HTML_Form('receivingscript.php');

$str = $form->returnPassword("password", "Choose a password");

変数 $str は今、 <input type="password" name="password" /> のような HTML を含んでいます。

前のページ | ホーム | 次のページ
導入 | 上に戻る | HTML_Menu

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- HTML フォームの生成

HTML_Form とは？

これは、簡単な HTML フォーム生成器です。 ファイルアップロードを含む HTML フォーム要素型の全てをサポートします。 独立したフォーム要素型、あるいは、固定レイアウトを使った "表モード" での全てのフォームを返したり、出力します。

利用範囲

HTML_Formは、通常多くのフォームが使用される HTML に基づいたプロジェクトで使用されます。 しかし、特にパッケージの "table mode" で使用する場合、 すぐにデザインの問題に遭遇するでしょう。 なぜなら、HTML_Form によって生成された表は、 CSS や他の方法で見た目を制御することができないからです。 そのため、HTML_Form の主な利用範囲は、 デザインが最も重要な役割を担っていないが 同時にコードをクリーンに保ちつつ 素早く結果を得ることが必要なサイトです (たとえば、管理部門のWeb サイトやパッケージが置かれている pear.php.net です)。

簡単な使用例

例 41-1簡単な例

require_once "HTML/Form.php";

$form = new HTML_Form('receivingscript.php');

$form->addText("name", "What's your name?");
$form->addSubmit("submit", "Go, Go");

$form->display();

上のサンプルコードは、"name" という名前を持つ1つのテキストフィールドと、 "What's your name" というラベル、 そして "Go, Go" とラベルされた submit ボタンを含む HTML フォームを生成します。

サポートしているタグ

次の HTML フォームタグが HTML_Form でサポートされます: テキストフィールド, パスワードフィールド, チェックボックス, テキストエリア, submit ボタン, リセットボタン, select フィールド, ラジオボタン, 画像 (image) フィールド, hidden フィールド, ファイルアップロードフィールド。 さらにフォームに空白やプレーンテキストを追加できます。

前のページ | ホーム | 次のページ
HTML_Form | 上に戻る | 使用例

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Menu

目次
Introduction -- Menu structure and supported output modes
constructor HTML_Menu::HTML_Menu() -- Initializes the menu, sets the type and menu structure.
HTML_Menu::forceCurrentUrl() -- Forces the given URL to be "current"
HTML_Menu::get() -- Returns the HTML menu.
HTML_Menu::getCurrentURL() -- Returns the URL of the currently selected page.
HTML_Menu::getPath() -- Returns the path of the current page in the menu 'tree'.
HTML_Menu::render() -- Renders the menu.
HTML_Menu::setMenu() -- Sets the menu structure.
HTML_Menu::setMenuType() -- Sets the type of the menu.
HTML_Menu::setURLEnvVar() -- Sets the environment variable to use to get the current URL.
HTML_Menu::setURLPrefix() -- Sets the prefix for the URLs in the menu
HTML_Menu::show() -- Prints the HTML menu.
Class Summary HTML_Menu_Renderer -- An abstract base class for HTML_Menu renderers （パッケージ開発者用）
HTML_Menu_Renderer::finishLevel() -- Finish the tree level (for types 'tree' and 'sitemap') （パッケージ開発者用）
HTML_Menu_Renderer::finishMenu() -- Finish the menu （パッケージ開発者用）
HTML_Menu_Renderer::finishRow() -- Finish the row in the menu （パッケージ開発者用）
HTML_Menu_Renderer::renderEntry() -- Renders the element of the menu （パッケージ開発者用）
HTML_Menu_Renderer::setMenuType() -- Sets the type of the menu being rendered
Class Summary HTML_Menu_DirectRenderer -- The renderer that generates HTML for the menu all by itself.
DirectRenderer::setEntryTemplate() -- Sets the template for menu entry.
DirectRenderer::setMenuTemplate() -- Sets the menu template (HTML that wraps around rows)
DirectRenderer::setRowTemplate() -- Sets the row template (HTML that wraps around entries)
DirectRenderer::toHtml() -- returns the HTML generated for the menu
Class Summary HTML_Menu_DirectTreeRenderer -- The "direct" renderer for 'tree' and 'sitemap' menu types where level is represented by tags nesting.
DirectTreeRenderer::setEntryTemplate() -- Sets the template for menu entry.
DirectTreeRenderer::setItemTemplate() -- Sets the item template (HTML that wraps around entries)
DirectTreeRenderer::setLevelTemplate() -- Sets the level template (HTML that wraps around the submenu)
DirectTreeRenderer::toHtml() -- returns the HTML generated for the menu
Class Summary HTML_Menu_ArrayRenderer -- The renderer that creates an array of visible menu entries.
ArrayRenderer::toArray() -- returns the resultant array
Class Summary HTML_Menu_SigmaRenderer -- The renderer that uses HTML_Template_Sigma instance for menu output.
constructor HTML_Menu_SigmaRenderer() -- Class constructor.
Class Summary HTML_Menu_SigmaTreeRenderer -- HTML_Template_Sigma-based renderer for 'tree' and 'sitemap' type menus, where menu level is represented by tag nesting.
constructor HTML_Menu_SigmaTreeRenderer() -- Class constructor.
Class Summary HTML_MenuBrowser -- Simple filesystem browser that can be used to generated menu (3) hashes based on the directory structure.
constructor HTML_MenuBrowser::HTML_MenuBrowser() -- Creates the object and optionally sets the directory to scan.
HTML_MenuBrowser::addFileInfo() -- Adds further informations to the menu hash gathered from the files in it
HTML_MenuBrowser::browse() -- Recursive function that does the scan and builds the menu (3) hash.
HTML_MenuBrowser::exploreFile() -- Returns additional menu informations decoded in the file that appears in the menu.
HTML_MenuBrowser::getMenu() -- Returns a hash to be used with menu(3)'s setMenu().
HTML_MenuBrowser::setDirectory() -- Sets the directory to scan.
HTML_MenuBrowser::setIDPrefix() -- Sets the prefix for every id in the menu hash.
Package HTML_Menu Constants -- Constants defined in and used by HTML_Menu

With the HTML_Menu class one can easily create and maintain a navigation structure for websites, configuring it via a multidimensional hash structure. Different modes for the HTML output are supported.

前のページ | ホーム | 次のページ
使用例 | 上に戻る | Introduction

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Package HTML_Menu Constants

Package HTML_Menu Constants -- Constants defined in and used by HTML_Menu

All Constants

Constants defined in Menu.php

表 41-1Constants defined in Menu.php

Name | Value | Line Number | Meaning
HTML_MENU_ENTRY_ACTIVE | 1 | 26 | Active menu entry, the one having the current URL as 'url' attribute
HTML_MENU_ENTRY_ACTIVEPATH | 2 | 27 | Ancestor of the active menu entry
HTML_MENU_ENTRY_BREADCRUMB | 6 | 31 | Ancestor of the active menu entry, for menu type 'urhere'
HTML_MENU_ENTRY_INACTIVE | 0 | 25 | Default menu entry
HTML_MENU_ENTRY_NEXT | 4 | 29 | "Next" menu entry (for menu type 'prevnext')
HTML_MENU_ENTRY_PREVIOUS | 3 | 28 | "Previous" menu entry (for menu type 'prevnext')
HTML_MENU_ENTRY_UPPER | 5 | 30 | "Up" menu entry (for menu type 'prevnext')

前のページ | ホーム | 次のページ
HTML_MenuBrowser::setIDPrefix() | 上に戻る | HTML_Page2

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Class Summary HTML_Menu_ArrayRenderer

Class Summary HTML_Menu_ArrayRenderer -- The renderer that creates an array of visible menu entries.

Output array

The resultant array can be used with e.g. a template engine to produce a completely custom menu look.

All menu types except 'rows' are "rendered" into a one-dimensional array of entries:
array(
    'entry1',
    ...
    'entryN'
)
while 'rows' produce a two-dimensional array:
array(
    array('entry 1 for row 1', ..., 'entry M_1 for row 1'),
    ...
    array('entry 1 for row N', ..., 'entry M_N for row 1')
 )

Here entry is
array(
    'url'    => url element of menu entry
    'title'  => title element of menu entry
    'level'  => entry's depth in the tree structure
    'type'   => type of entry, one of HTML_MENU_ENTRY_* constants
 )
A list of the above mentioned HTML_MENU_ENTRY_* constants can be found here.

Class Trees for HTML_Menu_ArrayRenderer

  • HTML_Menu_Renderer

    • HTML_Menu_ArrayRenderer

HTML_Menu_ArrayRenderer Inherited Methods

表 41-1Inherited from HTML_Menu_Renderer

Method Name | Summary
HTML_Menu_Renderer::finishLevel() | Finish the tree level (for types 'tree' and 'sitemap')
HTML_Menu_Renderer::finishMenu() | Finish the menu
HTML_Menu_Renderer::finishRow() | Finish the row in the menu
HTML_Menu_Renderer::renderEntry() | Renders the element of the menu
HTML_Menu_Renderer::setMenuType() | Sets the type of the menu being rendered.

前のページ | ホーム | 次のページ
DirectTreeRenderer::toHtml() | 上に戻る | ArrayRenderer::toArray()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


ArrayRenderer::toArray()

ArrayRenderer::toArray() -- returns the resultant array

概要

require_once 'HTML/Menu/ArrayRenderer.php';

array HTML_Menu_ArrayRenderer::toArray ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Class Summary HTML_Menu_ArrayRenderer | 上に戻る | Class Summary HTML_Menu_SigmaRenderer

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Class Summary HTML_Menu_DirectRenderer

Class Summary HTML_Menu_DirectRenderer -- The renderer that generates HTML for the menu all by itself.

Description

This renderer directly generates the menu HTML, thus the name. It is loosely based on HTML_Menu 1.0 code, but while it was needed to subclass HTML_Menu to customize its output, HTML_Menu_DirectRenderer has built-in methods for changing menu appearance.

Class Trees for HTML_Menu_DirectRenderer

  • HTML_Menu_Renderer

    • HTML_Menu_DirectRenderer

HTML_Menu_DirectRenderer Inherited Methods

表 41-1Inherited from HTML_Menu_Renderer

Method Name | Summary
HTML_Menu_Renderer::finishLevel() | Finish the tree level (for types 'tree' and 'sitemap')
HTML_Menu_Renderer::finishMenu() | Finish the menu
HTML_Menu_Renderer::finishRow() | Finish the row in the menu
HTML_Menu_Renderer::renderEntry() | Renders the element of the menu
HTML_Menu_Renderer::setMenuType() | Sets the type of the menu being rendered.

前のページ | ホーム | 次のページ
HTML_Menu_Renderer::setMenuType() | 上に戻る | DirectRenderer::setEntryTemplate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DirectRenderer::setEntryTemplate()

DirectRenderer::setEntryTemplate() -- Sets the template for menu entry.

概要

require_once 'HTML/Menu/DirectRenderer.php';

void HTML_Menu_DirectRenderer::setEntryTemplate (mixed $type [, string $template = NULL])

説明

The template should contain at least the {title} placeholder, can also contain {url} and {indent} placeholders, depending on entry type. Default templates are:
array(
    HTML_MENU_ENTRY_INACTIVE    => '<td>{indent}<a href="{url}">{title}</a></td>',
    HTML_MENU_ENTRY_ACTIVE      => '<td>{indent}<b>{title}</b></td>',
    HTML_MENU_ENTRY_ACTIVEPATH  => '<td>{indent}<b><a href="{url}">{title}</a></b></td>',
    HTML_MENU_ENTRY_PREVIOUS    => '<td><a href="{url}">&lt;&lt; {title}</a></td>',
    HTML_MENU_ENTRY_NEXT        => '<td><a href="{url}">{title} &gt;&gt;</a></td>',
    HTML_MENU_ENTRY_UPPER       => '<td><a href="{url}">^ {title} ^</a></td>',
    HTML_MENU_ENTRY_BREADCRUMB  => '<td><a href="{url}">{title}</a> &gt;&gt; </td>'
);

パラメータ

mixed $type

either type (one of HTML_MENU_ENTRY_* constants) or an array 'type' => 'template'

string $template

template for this entry type if $type is not an array

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Class Summary HTML_Menu_DirectRenderer | 上に戻る | DirectRenderer::setMenuTemplate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DirectRenderer::setMenuTemplate()

DirectRenderer::setMenuTemplate() -- Sets the menu template (HTML that wraps around rows)

概要

require_once 'HTML/Menu/DirectRenderer.php';

void HTML_Menu_DirectRenderer::setMenuTemplate (string $prepend, string $append)

説明

These are the strings that will be prepended and appended to HTML generated for menu rows on each call to finishMenu(). Defaults are
'<table border="1">'
and
'</table>'

パラメータ

string $prepend

this will be prepended to the rows HTML

string $append

this will be appended to the rows HTML

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
DirectRenderer::setEntryTemplate() | 上に戻る | DirectRenderer::setRowTemplate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DirectRenderer::setRowTemplate()

DirectRenderer::setRowTemplate() -- Sets the row template (HTML that wraps around entries)

概要

require_once 'HTML/Menu/DirectRenderer.php';

void HTML_Menu_DirectRenderer::setRowTemplate (string $prepend, string $append)

説明

These are the strings that will be prepended and appended to HTML generated for menu entries on each call to finishRow(). Defaults are
'<tr>'
and
'</tr>'

パラメータ

string $prepend

this will be prepended to the entries HTML

string $append

this will be appended to the entries HTML

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
DirectRenderer::setMenuTemplate() | 上に戻る | DirectRenderer::toHtml()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DirectRenderer::toHtml()

DirectRenderer::toHtml() -- returns the HTML generated for the menu

概要

require_once 'HTML/Menu/DirectRenderer.php';

string HTML_Menu_DirectRenderer::toHtml ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
DirectRenderer::setRowTemplate() | 上に戻る | Class Summary HTML_Menu_DirectTreeRenderer

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Class Summary HTML_Menu_DirectTreeRenderer

Class Summary HTML_Menu_DirectTreeRenderer -- The "direct" renderer for 'tree' and 'sitemap' menu types where level is represented by tags nesting.

Description

The renderer is designed to output only the menus of type 'tree' and 'sitemap'. It shows the level of the menu by tags nesting, not by outputting some indentation and is able to output e.g. nested HTML lists:
<ul>
    <li>Menu item 1
        <ul>
            <li>Menu item 1.1</li>
            <li>Menu item 1.2</li>
        </ul>
    </li>
    <li>Menu item 2</li>
</ul>

Idea and initial code contributed by Uwe Mindrup.

Class Trees for HTML_Menu_DirectTreeRenderer

  • HTML_Menu_Renderer

    • HTML_Menu_DirectTreeRenderer

HTML_Menu_DirectTreeRenderer Inherited Methods

表 41-1Inherited from HTML_Menu_Renderer

Method Name | Summary
HTML_Menu_Renderer::finishLevel() | Finish the tree level (for types 'tree' and 'sitemap')
HTML_Menu_Renderer::finishMenu() | Finish the menu
HTML_Menu_Renderer::finishRow() | Finish the row in the menu
HTML_Menu_Renderer::renderEntry() | Renders the element of the menu
HTML_Menu_Renderer::setMenuType() | Sets the type of the menu being rendered.

前のページ | ホーム | 次のページ
DirectRenderer::toHtml() | 上に戻る | DirectTreeRenderer::setEntryTemplate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DirectTreeRenderer::setEntryTemplate()

DirectTreeRenderer::setEntryTemplate() -- Sets the template for menu entry.

概要

require_once 'HTML/Menu/DirectTreeRenderer.php';

void HTML_Menu_DirectTreeRenderer::setEntryTemplate (mixed $type [, string $template = NULL])

説明

The template should contain at least the {title} placeholder, can also contain {url} placeholder. Default templates are:
array(
    HTML_MENU_ENTRY_INACTIVE    => '<a href="{url}">{title}</a>',
    HTML_MENU_ENTRY_ACTIVE      => '<strong>{title}</strong>',
    HTML_MENU_ENTRY_ACTIVEPATH  => '<a href="{url}"><em>{title}</em></a>'
);
If custom keys are present in the original menu structure, they will be assigned to the corresponding placeholders.

パラメータ

mixed $type

either type (one of HTML_MENU_ENTRY_* constants) or an array 'type' => 'template'

string $template

template for this entry type if $type is not an array

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Class Summary HTML_Menu_DirectTreeRenderer | 上に戻る | DirectTreeRenderer::setItemTemplate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DirectTreeRenderer::setItemTemplate()

DirectTreeRenderer::setItemTemplate() -- Sets the item template (HTML that wraps around entries)

概要

require_once 'HTML/Menu/DirectTreeRenderer.php';

void HTML_Menu_DirectTreeRenderer::setRowTemplate (string $prepend, string $append)

説明

These are the strings that will be prepended and appended to HTML generated for menu entries. Defaults are
'<li>'
and
'</li>'

パラメータ

string $prepend

this will be prepended to the entries HTML

string $append

this will be appended to the entries HTML

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
DirectTreeRenderer::setEntryTemplate() | 上に戻る | DirectTreeRenderer::setLevelTemplate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DirectTreeRenderer::setLevelTemplate()

DirectTreeRenderer::setLevelTemplate() -- Sets the level template (HTML that wraps around the submenu)

概要

require_once 'HTML/Menu/DirectTreeRenderer.php';

void HTML_Menu_DirectTreeRenderer::setLevelTemplate (string $prepend, string $append)

説明

These are the strings that will be prepended and appended to HTML generated for menu level. Defaults are
'<ul>'
and
'</ul>'

パラメータ

string $prepend

this will be prepended to the rows HTML

string $append

this will be appended to the rows HTML

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
DirectTreeRenderer::setItemTemplate() | 上に戻る | DirectTreeRenderer::toHtml()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


DirectTreeRenderer::toHtml()

DirectTreeRenderer::toHtml() -- returns the HTML generated for the menu

概要

require_once 'HTML/Menu/DirectTreeRenderer.php';

string HTML_Menu_DirectTreeRenderer::toHtml ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
DirectTreeRenderer::setLevelTemplate() | 上に戻る | Class Summary HTML_Menu_ArrayRenderer

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Class Summary HTML_Menu_Renderer

Class Summary HTML_Menu_Renderer -- An abstract base class for HTML_Menu renderers （パッケージ開発者用）

説明

This class defines methods that should be implemented by child classes to provide necessary output logic. You only need to read its description if you intend to write your own renderer.

Class Trees for HTML_Menu_Renderer

  • HTML_Menu_Renderer

表 41-1Classes that extend HTML_Menu_Renderer

Class | Summary
HTML_Menu_ArrayRenderer | The renderer that creates an array of visible menu entries.
HTML_Menu_DirectRenderer | The renderer that generates HTML for the menu all by itself.
HTML_Menu_DirectTreeRenderer | The "direct" renderer for 'tree' and 'sitemap' menu types where level is represented by tags nesting.
HTML_Menu_SigmaRenderer | The renderer that uses HTML_Template_Sigma instance for menu output.
HTML_Menu_SigmaTreeRenderer | HTML_Template_Sigma-based renderer for 'tree' and 'sitemap' type menus, where menu level is represented by tag nesting.

前のページ | ホーム | 次のページ
HTML_Menu::show() | 上に戻る | HTML_Menu_Renderer::finishLevel()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Menu_Renderer::finishLevel()

HTML_Menu_Renderer::finishLevel() -- Finish the tree level (for types 'tree' and 'sitemap') （パッケージ開発者用）

概要

require_once 'HTML/Menu/Renderer.php';

void HTML_Menu_Renderer::finishLevel (int $level)

説明

このパッケージに関する文書は、未作成です。

パラメータ

integer $level

current depth in the tree structure

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Class Summary HTML_Menu_Renderer | 上に戻る | HTML_Menu_Renderer::finishMenu()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Menu_Renderer::finishMenu()

HTML_Menu_Renderer::finishMenu() -- Finish the menu （パッケージ開発者用）

概要

require_once 'HTML/Menu/Renderer.php';

void HTML_Menu_Renderer::finishMenu (int $level)

説明

このパッケージに関する文書は、未作成です。

パラメータ

integer $level

current depth in the tree structure

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_Menu_Renderer::finishLevel() | 上に戻る | HTML_Menu_Renderer::finishRow()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Menu_Renderer::finishRow()

HTML_Menu_Renderer::finishRow() -- Finish the row in the menu （パッケージ開発者用）

概要

require_once 'HTML/Menu/Renderer.php';

void HTML_Menu_Renderer::finishRow (int $level)

説明

このパッケージに関する文書は、未作成です。

パラメータ

integer $level

current depth in the tree structure

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_Menu_Renderer::finishMenu() | 上に戻る | HTML_Menu_Renderer::renderEntry()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Menu_Renderer::renderEntry()

HTML_Menu_Renderer::renderEntry() -- Renders the element of the menu （パッケージ開発者用）

概要

require_once 'HTML/Menu/Renderer.php';

void HTML_Menu_Renderer::renderEntry (array $node, int $level, int $type)

説明

このパッケージに関する文書は、未作成です。

パラメータ

array $node

Element being rendered

integer $level

Current depth in the tree structure

integer $type

Type of the element (one of HTML_MENU_ENTRY_* constants)

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_Menu_Renderer::finishRow() | 上に戻る | HTML_Menu_Renderer::setMenuType()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Menu_Renderer::setMenuType()

HTML_Menu_Renderer::setMenuType() -- Sets the type of the menu being rendered

概要

require_once 'HTML/Menu/Renderer.php';

void HTML_Menu_Renderer::setMenuType (string $menuType)

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $menuType

menu type

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_Menu_Renderer::renderEntry() | 上に戻る | Class Summary HTML_Menu_DirectRenderer

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Class Summary HTML_Menu_SigmaRenderer

Class Summary HTML_Menu_SigmaRenderer -- The renderer that uses HTML_Template_Sigma instance for menu output.

説明

This renderer uses HTML_Template_Sigma for actual HTML generation. This will allow you to easily plug HTML_Menu into your site's structure if you are using this template engine.

The renderer offers more possibilites for output customization than HTML_Menu_DirectRenderer.

The renderer may also work with HTML_Template_IT instance, but as menu templates tend to have lots of blocks, HTML_Template_Sigma's cache feature will give a significant performance improvement.

Template structure

This minimal template will allow output of any available menu type:
<!-- BEGIN mu_menu_loop -->
<table cellpadding="2" cellspacing="0" border="1">
    <!-- BEGIN mu_row_loop -->
    <tr>
        <!-- BEGIN mu_entry_loop -->
        <!-- BEGIN mu_inactive -->
        <td><!-- BEGIN mu_inactive_indent -->&nbsp;&nbsp;<!-- END mu_inactive_indent --><a href="{mu_url}">{mu_title}</a></td>
        <!-- END mu_inactive -->
        <!-- BEGIN mu_active -->
        <td><!-- BEGIN mu_active_indent -->&nbsp;&nbsp;<!-- END mu_active_indent --><strong>{mu_title}</strong></td>
        <!-- END mu_active -->
        <!-- BEGIN mu_activepath -->
        <td><!-- BEGIN mu_activepath_indent -->&nbsp;&nbsp;<!-- END mu_activepath_indent --><a href="{mu_url}"><strong>{mu_title}</strong></a></td>
        <!-- END mu_activepath -->
        <!-- BEGIN mu_previous -->
        <td><a href="{mu_url}">&lt;&lt;&lt; {mu_title}</a></td>
        <!-- END mu_previous -->
        <!-- BEGIN mu_next -->
        <td><a href="{mu_url}">{mu_title} &gt;&gt;&gt;</a></td>
        <!-- END mu_next -->
        <!-- BEGIN mu_upper -->
        <td><a href="{mu_url}">^ {mu_title} ^</a></td>
        <!-- END mu_upper -->
        <!-- BEGIN mu_breadcrumb -->
        <td><a href="{mu_url}">{mu_title}</a> &gt;&gt;&gt;</td>
        <!-- END mu_breadcrumb -->
        <!-- END mu_entry_loop -->
    </tr>
    <!-- END mu_row_loop -->
</table>
<!-- END mu_menu_loop -->
A more complete example showing possible customizations can be found in the package archive.

Note that blocks and placeholders in the template have mu_ prefix. This is done to prevent name conflicts with existing blocks and placeholders, mu_ is the default prefix, another prefix can be passed to class constructor.

Blocks in the template (without prefix)

menu_loop

If present, this block will be parse()'d after outputting the current menu or (in case of 'rows' type) current menu level. If menu type is 'rows' and %level%_menu_loop block is present, it will be parse()'d instead.

row_loop

If present, this block will be parse()'d after outputting the current menu row. If menu type is 'rows' and %level%_row_loop block is present, it will be parse()'d instead.

entry_loop

This block should always be present and should be a parent for all menu entries' blocks. It is used to implement "flow", to render entries one after another.

If menu type is 'rows' and %level%_entry_loop block is present, it will be used instead.

inactive, active, activepath, previous, next, upper, breadcrumb

These blocks are used to output menu entries, they correspond to possible entry types. Each block should contain a {title} placeholder and may also contain {url} placeholder and indent block

If menu type is either of 'tree', 'sitemap' or 'rows' and %level%_%entry type% block exists, it will be used instead.

inactive_indent, active_indent, activepath_indent

If present, these blocks are used to indent the entries inside tree-type menus ('tree' and 'sitemap').

Class Trees for HTML_Menu_SigmaRenderer

  • HTML_Menu_Renderer

    • HTML_Menu_SigmaRenderer

HTML_Menu_SigmaRenderer Inherited Methods

表 41-1Inherited from HTML_Menu_Renderer

Method Name | Summary
HTML_Menu_Renderer::finishLevel() | Finish the tree level (for types 'tree' and 'sitemap')
HTML_Menu_Renderer::finishMenu() | Finish the menu
HTML_Menu_Renderer::finishRow() | Finish the row in the menu
HTML_Menu_Renderer::renderEntry() | Renders the element of the menu
HTML_Menu_Renderer::setMenuType() | Sets the type of the menu being rendered.

前のページ | ホーム | 次のページ
ArrayRenderer::toArray() | 上に戻る | constructor HTML_Menu_SigmaRenderer()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor HTML_Menu_SigmaRenderer()

constructor HTML_Menu_SigmaRenderer() -- Class constructor.

概要

require_once 'HTML/Menu/SigmaRenderer.php';

void constructor HTML_Menu_SigmaRenderer::HTML_Menu_SigmaRenderer (object HTML_Template_Sigma &$tpl [, string $prefix = 'mu_'])

説明

Sets the template object to use and sets prefix for template blocks and placeholders. We use prefix to avoid name collisions with existing template blocks and it is customisable to allow output of several menus into one template.

パラメータ

object HTML_Template_Sigma &$tpl

template object to use for output

string $prefix

prefix for template blocks and placeholders

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Class Summary HTML_Menu_SigmaRenderer | 上に戻る | Class Summary HTML_Menu_SigmaTreeRenderer

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Class Summary HTML_Menu_SigmaTreeRenderer

Class Summary HTML_Menu_SigmaTreeRenderer -- HTML_Template_Sigma-based renderer for 'tree' and 'sitemap' type menus, where menu level is represented by tag nesting.

説明

The renderer generates outpu similar to that of HTML_Menu_DirectTreeRenderer but offers more possibilites for output customization.

The renderer may also work with HTML_Template_IT instance, but as menu templates tend to have lots of blocks, HTML_Template_Sigma's cache feature will give a significant performance improvement.

Template structure

This is the minimal template for HTML_Menu_SigmaTreeRenderer, containing all the required blocks:
<!-- BEGIN mu_tree_loop -->
    <!-- BEGIN mu_level_open -->
<ul>
    <!-- END mu_level_open -->
        <!-- BEGIN mu_entry_open -->
    <li>
        <!-- END mu_entry_open -->
        <!-- BEGIN mu_active -->
    <strong>{mu_title}</strong>
        <!-- END mu_active -->
        <!-- BEGIN mu_inactive -->
    <a href="{mu_url}">{mu_title}</a>
        <!-- END mu_inactive -->
        <!-- BEGIN mu_activepath -->
    <a href="{mu_url}"><em>{mu_title}</em></a>
        <!-- END mu_activepath -->
        <!-- BEGIN mu_entry_close -->
    </li>
        <!-- END mu_entry_close -->
    <!-- BEGIN mu_level_close -->
</ul>
    <!-- END mu_level_close -->
<!-- END mu_tree_loop -->
A more complete example showing possible customizations can be found in the package archive.

Note that blocks and placeholders in the template have mu_ prefix. This is done to prevent name conflicts with existing blocks and placeholders, mu_ is the default prefix, another prefix can be passed to class constructor.

Blocks in the template (without prefix)

tree_loop

This block should always be present and should be a parent for all other blocks. It is used to implement "flow", to render entries one after another.

level_open, level_close

These blocks will be used on start and end of each menu level. If level-specific blocks %level%_level_open and %level%_level_close are present, they will be used instead.

entry_open, entry_close

These blocks will be used on start and end of each menu entry. If level-specific blocks %level%_entry_open and %level%_entry_close are present, they will be used instead.

inactive, active, activepath

These blocks are used to output menu entries, they correspond to possible entry types. Each block should contain a {title} placeholder and may also contain {url} placeholder. As usual, if other keys are present in original menu array they will be assigned to corresponding placeholders in the template.

If level-specific block %level%_%entry type% exists, it will be used instead.

Class Trees for HTML_Menu_SigmaTreeRenderer

  • HTML_Menu_Renderer

    • HTML_Menu_SigmaTreeRenderer

HTML_Menu_SigmaTreeRenderer Inherited Methods

表 41-1Inherited from HTML_Menu_Renderer

Method Name | Summary
HTML_Menu_Renderer::finishLevel() | Finish the tree level (for types 'tree' and 'sitemap')
HTML_Menu_Renderer::finishMenu() | Finish the menu
HTML_Menu_Renderer::finishRow() | Finish the row in the menu
HTML_Menu_Renderer::renderEntry() | Renders the element of the menu
HTML_Menu_Renderer::setMenuType() | Sets the type of the menu being rendered.

前のページ | ホーム | 次のページ
constructor HTML_Menu_SigmaRenderer() | 上に戻る | constructor HTML_Menu_SigmaTreeRenderer()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor HTML_Menu_SigmaTreeRenderer()

constructor HTML_Menu_SigmaTreeRenderer() -- Class constructor.

概要

require_once 'HTML/Menu/SigmaTreeRenderer.php';

void constructor HTML_Menu_SigmaTreeRenderer::HTML_Menu_SigmaTreeRenderer (object HTML_Template_Sigma &$tpl [, string $prefix = 'mu_'])

説明

Sets the template object to use and sets prefix for template blocks and placeholders. We use prefix to avoid name collisions with existing template blocks and it is customisable to allow output of several menus into one template.

パラメータ

object HTML_Template_Sigma &$tpl

template object to use for output

string $prefix

prefix for template blocks and placeholders

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Class Summary HTML_Menu_SigmaTreeRenderer | 上に戻る | Class Summary HTML_MenuBrowser

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Menu::forceCurrentUrl()

HTML_Menu::forceCurrentUrl() -- Forces the given URL to be "current"

概要

require_once 'HTML/Menu.php';

void HTML_Menu::forceCurrentUrl (string $url)

説明

Use this if you do not want to extract current URL from some environment variable (e.g. $_SERVER['PHP_SELF']) but rather use some custom logic to determine it.

パラメータ

string $url

Url to use

例外・エラー

throws no exceptions thrown

参照

see HTML_Menu::setURLEnvVar(), HTML_Menu::getCurrentUrl()

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor HTML_Menu::HTML_Menu() | 上に戻る | HTML_Menu::get()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Menu::get()

HTML_Menu::get() -- Returns the HTML menu.

概要

require_once 'HTML/Menu.php';

string HTML_Menu::get ([string $menuType = ''])

説明

This method uses HTML_Menu_DirectRenderer for its work. The renderer is used with default templates, you should use the render() method if you want to customize the output.

パラメータ

string $menuType

Menu type: 'tree', 'rows', 'urhere', 'prevnext', 'sitemap'

返り値

returns HTML of the menu

例外・エラー

throws no exceptions thrown

参照

see HTML_Menu::show(), HTML_Menu::render().

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_Menu::forceCurrentUrl() | 上に戻る | HTML_Menu::getCurrentURL()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Menu::getCurrentURL()

HTML_Menu::getCurrentURL() -- Returns the URL of the currently selected page.

概要

require_once 'HTML/Menu.php';

string HTML_Menu::getCurrentURL ()

説明

The returned string is used for all test against the URL's in the menu structure hash.

例外・エラー

throws no exceptions thrown

参照

see HTML_Menu::setURLEnvVar(), HTML_Menu::forceCurrentUrl().

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_Menu::get() | 上に戻る | HTML_Menu::getPath()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Menu::getPath()

HTML_Menu::getPath() -- Returns the path of the current page in the menu 'tree'.

概要

require_once 'HTML/Menu.php';

array HTML_Menu::getPath ()

説明

'Path' here means the sequence of entry IDs leading to the current menu entry.

返り値

returns path to the selected menu item

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_Menu::getCurrentURL() | 上に戻る | HTML_Menu::render()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor HTML_Menu::HTML_Menu()

constructor HTML_Menu::HTML_Menu() -- Initializes the menu, sets the type and menu structure.

概要

require_once 'HTML/Menu.php';

void constructor HTML_Menu::HTML_Menu ([array $menu = NULL [, string $type = 'tree' [, string $urlEnvVar = 'PHP_SELF']]])

説明

Initializes the menu, sets the menu structure, type and variable to use for determining the current URL. All parameters are optional and can be set later by corresponding methods.

パラメータ

array $menu

Menu structure

string $type

Menu type: 'tree', 'rows', 'urhere', 'prevnext', 'sitemap'

string $urlEnvVar

Environment variable to use for determining the current URL.

例外・エラー

throws no exceptions thrown

参照

see HTML_Menu::setMenuType(),
                         HTML_Menu::setMenu(),
                         HTML_Menu::setURLEnvVar().

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Introduction | 上に戻る | HTML_Menu::forceCurrentUrl()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Menu::render()

HTML_Menu::render() -- Renders the menu.

概要

require_once 'HTML/Menu.php';

void HTML_Menu::render (object HTML_Menu_Renderer &$renderer [, string $menuType = ''])

説明

All logic to actually create the output is contained in the renderer. render() just calls the appropriate method to traverse the menu structure.

パラメータ

object HTML_Menu_Renderer &$renderer

Renderer to use

string $menuType

type of the menu

例外・エラー

throws PEAR_Error. If the renderer is not designed to handle this type of menu, it will throw an error.

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_Menu::getPath() | 上に戻る | HTML_Menu::setMenu()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Menu::setMenu()

HTML_Menu::setMenu() -- Sets the menu structure.

概要

require_once 'HTML/Menu.php';

void HTML_Menu::setMenu (array $menu)

説明

The menu structure is defined by a multidimensional hash.

パラメータ

array $menu

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_Menu::render() | 上に戻る | HTML_Menu::setMenuType()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Menu::setMenuType()

HTML_Menu::setMenuType() -- Sets the type of the menu.

概要

require_once 'HTML/Menu.php';

void HTML_Menu::setMenuType (string $menuType)

説明

Available types are: 'tree', 'rows', 'urhere', 'prevnext', 'sitemap'.

パラメータ

string $menuType

type name

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_Menu::setMenu() | 上に戻る | HTML_Menu::setURLEnvVar()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Menu::setURLEnvVar()

HTML_Menu::setURLEnvVar() -- Sets the environment variable to use to get the current URL.

概要

require_once 'HTML/Menu.php';

void HTML_Menu::setURLEnvVar (string $urlEnvVar)

説明

The default variable name is 'PHP_SELF', which means 'current script name'.

パラメータ

string $urlEnvVar

environment variable for current URL

例外・エラー

throws no exceptions thrown

参照

see HTML_Menu::getCurrentURL(), HTML_Menu::forceCurrentURL().

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_Menu::setMenuType() | 上に戻る | HTML_Menu::setURLPrefix()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Menu::setURLPrefix()

HTML_Menu::setURLPrefix() -- Sets the prefix for the URLs in the menu

概要

require_once 'HTML/Menu.php';

void HTML_Menu::setURLPrefix (string $prefix)

説明

This is useful if you have relative URLs in the menu description structure. This prefix will be appended to the URLs from this structure and the result will be compared to "current" URL.

パラメータ

string $prefix

menu URL prefix

例外・エラー

throws no exceptions thrown

参照

see HTML_Menu::getCurrentURL(),
                         HTML_Menu::forceCurrentURL(),
                         HTML_Menu::setMenu().

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_Menu::setURLEnvVar() | 上に戻る | HTML_Menu::show()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Menu::show()

HTML_Menu::show() -- Prints the HTML menu.

概要

require_once 'HTML/Menu.php';

void HTML_Menu::show ([string $menuType = ''])

説明

This method uses HTML_Menu_DirectRenderer for its work. The renderer is used with default templates, you should use the render() method if you want to customize the output.

パラメータ

string $menuType

Menu type: 'tree', 'rows', 'urhere', 'prevnext', 'sitemap'

例外・エラー

throws no exceptions thrown

参照

see HTML_Menu::get(), HTML_Menu::render().

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_Menu::setURLPrefix() | 上に戻る | Class Summary HTML_Menu_Renderer

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Class Summary HTML_MenuBrowser

Class Summary HTML_MenuBrowser -- Simple filesystem browser that can be used to generated menu (3) hashes based on the directory structure.

Simple filesystem browser that can be used to generated menu (3) hashes based on the directory structure.

Together with menu (3) and the (userland) cache you can use this browser to generate simple fusebox like applications / content systems.

Let the menubrowser scan your document root and generate a menu (3) structure hash which maps the directory structure, pass it to menu's setMethod() and optionally wrap the cache around all this to save script runs. If you do so, it looks like this:

// document root directory define('DOC_ROOT', '/home/server/www.example.com/');

// instantiate the menubrowser $browser = new menubrowser(DOC_ROOT);

// instantiate menu (3) $menu = new menu($browser->getMenu());

// output the sitemap $menu->show('sitemap');

Now, use e.g. simple XML files to store your content and additional menu informations (title!). Subclass exploreFile() depending on your file format.

Class Trees for HTML_MenuBrowser

  • HTML_MenuBrowser

前のページ | ホーム | 次のページ
constructor HTML_Menu_SigmaTreeRenderer() | 上に戻る | constructor HTML_MenuBrowser::HTML_MenuBrowser()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_MenuBrowser::addFileInfo()

HTML_MenuBrowser::addFileInfo() -- Adds further informations to the menu hash gathered from the files in it

概要

require_once 'HTML/MenuBrowser.php';

array HTML_MenuBrowser::addFileInfo (mixed $menu)

説明

このパッケージに関する文書は、未作成です。

パラメータ

mixed $menu

返り値

returns Modified menu hash with the new informations

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor HTML_MenuBrowser::HTML_MenuBrowser() | 上に戻る | HTML_MenuBrowser::browse()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_MenuBrowser::browse()

HTML_MenuBrowser::browse() -- Recursive function that does the scan and builds the menu (3) hash.

概要

require_once 'HTML/MenuBrowser.php';

array HTML_MenuBrowser::browse (string $dir [, integer $id = 0 [, boolean $noindex = FALSE]])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $dir

directory to scan

integer $id

entry id - used only for recursion

boolean $noindex

??? - used only for recursion

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_MenuBrowser::addFileInfo() | 上に戻る | HTML_MenuBrowser::exploreFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_MenuBrowser::exploreFile()

HTML_MenuBrowser::exploreFile() -- Returns additional menu informations decoded in the file that appears in the menu.

概要

require_once 'HTML/MenuBrowser.php';

void HTML_MenuBrowser::exploreFile (string $file)

説明

You should subclass this method to make it work with your own file formats. I used a simple XML format to store the content.

パラメータ

string $file

filename

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_MenuBrowser::browse() | 上に戻る | HTML_MenuBrowser::getMenu()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_MenuBrowser::getMenu()

HTML_MenuBrowser::getMenu() -- Returns a hash to be used with menu(3)'s setMenu().

概要

require_once 'HTML/MenuBrowser.php';

void HTML_MenuBrowser::getMenu ([string $dir = '' [, string $prefix = '']])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $dir

directory to scan

string $prefix

id prefix

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_MenuBrowser::exploreFile() | 上に戻る | HTML_MenuBrowser::setDirectory()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor HTML_MenuBrowser::HTML_MenuBrowser()

constructor HTML_MenuBrowser::HTML_MenuBrowser() -- Creates the object and optionally sets the directory to scan.

概要

require_once 'HTML/MenuBrowser.php';

void constructor HTML_MenuBrowser::HTML_MenuBrowser ([string $dir = '' [, string $index = '' [, string $file_suffix = '']]])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $dir

Directory to scan

string $index

Filename of index pages

string $file_suffix

Suffix for files containing the additional data

例外・エラー

throws no exceptions thrown

参照

see HTML_MenuBrowser::$dir

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Class Summary HTML_MenuBrowser | 上に戻る | HTML_MenuBrowser::addFileInfo()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_MenuBrowser::setDirectory()

HTML_MenuBrowser::setDirectory() -- Sets the directory to scan.

概要

require_once 'HTML/MenuBrowser.php';

void HTML_MenuBrowser::setDirectory (string $dir)

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $dir

directory to scan

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_MenuBrowser::getMenu() | 上に戻る | HTML_MenuBrowser::setIDPrefix()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_MenuBrowser::setIDPrefix()

HTML_MenuBrowser::setIDPrefix() -- Sets the prefix for every id in the menu hash.

概要

require_once 'HTML/MenuBrowser.php';

void HTML_MenuBrowser::setIDPrefix (string $prefix)

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $prefix

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_MenuBrowser::setDirectory() | 上に戻る | Package HTML_Menu Constants

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction

Introduction -- Menu structure and supported output modes

Menu hash structure

The menu structure is defined by a multidimensional hash. This makes it quite easy to generate and traverse:

例 41-1Menu multidimensional hash

array(
    1 => array(
        'title' => 'Menu item 1',
        'url' => '/item1.php',
        'sub' => array(
            11 => array('title' => 'Menu item 1.1', 'url' => '/item1.1.php'),
            12 => array(
                'title' => 'Menu item 1.2',
                'url' => '/item1.2.php',
                'sub' => array(
                    121 => array('title' => 'Menu item 1.2.1', 'url' => '/item1.2.1.php'),
                    122 => array('title' => 'Menu item 1.2.2', 'url' => '/item1.2.2.php')
                )
            )
        )
    ),
    2 => array(
        'title' => 'Menu item 2',
        'url' => '/item2.php',
        'sub' => array(
            21 => array('title' => 'Menu item 2.1', 'url' => '/item2.1.php'),
            22 => array('title' => 'Menu item 2.2', 'url' => '/item2.2.php')
        )
    )
);
Each entry should have at least 'url' and 'title' keys and may also have 'sub' key containing the children of this entry. Note that keys in the entry arrays serve as node identifiers and should be unique.

The menu entries can also contain custom keys. If such keys are present, then they will be used by renderers in creating the output (this usually means that the content of such a key will be assigned to the template placeholder with the same name).

Supported output modes

HTML_Menu supports five output modes: 'tree' (default), 'rows', 'urhere', 'prevnext' and 'sitemap'. Lets use the array defined above as menu structure assuming that element 'Menu item 1.2' is currently active and try each menu type.

Possible menu types

'tree'

This type of the menu mostly follows the internal structure of the menu hash. Different levels of the menu are marked by indentation, only the elements leading to the active item or immediately following it are shown.

例 41-2Output for menu type 'tree'

Menu item 1
    Menu item 1.1
    Menu item 1.2
        Menu item 1.2.1
        Menu item 1.2.2
Menu item 2

'rows'

This is quite similar to 'tree' type, only different levels are not marked by indentation, but are shown on different rows of the menu.

例 41-3Output for menu type 'rows'

Menu item 1  Menu item 2
Menu item 1.1  Menu item 1.2
Menu item 1.2.1  Menu item 1.2.2

'urhere'

This is so-called 'breadcrumb' navigation, allowing to easily understand your position within site hierarchy.

例 41-4Output for menu type 'urhere'

Menu item 1 >> Menu item 1.2

'prevnext'

This is the menu often used in documentation (including the PEAR manual), the links lead to previous, next and parent entries of the current entry.

例 41-5Output for menu type 'prevnext'

<< Menu item 1.1  ^ Menu item 1 ^  Menu item 1.2.1 >>

'sitemap'

This is 'tree' type menu, but with all entries shown.

例 41-6Output for menu type 'sitemap'

Menu item 1
    Menu item 1.1
    Menu item 1.2
        Menu item 1.2.1
        Menu item 1.2.2
Menu item 2
    Menu item 2.1
    Menu item 2.2

Usage example

例 41-7Very basic usage example

// Load the class
require_once 'HTML/Menu.php';

// Instantiate the menu object, we presume that $data contains menu structure
$menu =& new HTML_Menu($data, 'tree');

// Output the menu
$menu->show();
前のページ | ホーム | 次のページ
HTML_Menu | 上に戻る | constructor HTML_Menu::HTML_Menu()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Page2

目次
作成 -- 新しいページの作成
ヘッダ -- タイトルやその他のメタデータの設定
本文 -- 中身の追加
出力 -- 最後の処理

HTML でページを作成するための API です。

前のページ | ホーム | 次のページ
Package HTML_Menu Constants | 上に戻る | 作成

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


本文

本文 -- 中身の追加

説明

ページの作成とヘッダの設定を済ませたら、次は実際の中身をページに追加しましょう。 そのために使用するメソッドが addBodyContent() です。

デフォルトでは、このメソッドは既存の内容の後に追記します。 もし既存の内容を上書きしてしまいたい場合は、 setBody() を使用します。 unsetBody() を使用すると、新しい内容を追加せずに既存の内容をすべて空にします。 prependBodyContent() を使用して、既存の内容の先頭に何かを追加することもできます。

次の定数 HTML_PAGE2_APPEND、HTML_PAGE2_PREPEND および HTML_PAGE2_REPLACE を、フラグ属性として指定することができます。 これらの使い方は、その名前のとおりです。

<?php
$page->addBodyContent('<h1>こんにちは!</h1>');
$page->addBodyContent('<p>これは段落です。</p>');
?>
前のページ | ホーム | 次のページ
ヘッダ | 上に戻る | 出力

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


作成

作成 -- 新しいページの作成

説明

html ページを作成するには、新しい html_page2 オブジェクトのインスタンスを作成します。 属性の配列をコンストラクタに渡すこともできますが、必須ではありません。 デフォルトの設定は十分直感的です。

デフォルトのページの設定

  • Unix の改行 (\n)

  • 文字セットは UTF-8

  • MIME 型は text/html

  • doctype は XHTML 1.0 Transitional

  • 言語は英語

これらの設定が気に入らない場合は、設定の配列を コンストラクタ に渡すか、あるいは setDoctype()、 setMimeEncoding() あるいは setCharset() のような設定用メソッドを使用します。

例 41-1HTML ページの作成

<?php
require_once 'HTML/Page2.php';
$page = new HTML_Page2();
$page->setTitle('My first HTML page');
$page->addBodyContent('<h1>Hello!</h1>');
$page->display();
?>
前のページ | ホーム | 次のページ
HTML_Page2 | 上に戻る | ヘッダ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


ヘッダ

ヘッダ -- タイトルやその他のメタデータの設定

ヘッダの設定

ここで使用するであろうメソッドは setTitle() です。これはページのタイトルを設定します。 このタイトルが、ブラウザのタイトルバーあるいはウィンドウバーに表示されます。

<?php
$page->setTitle('はじめての HTML ページ');
?>

meta タグを設定するには setMetaData() を使用します。指定するパラメータは、タグの名前とその内容のふたつです。

<?php
$page->setMetaData('author', 'Christian Weiske');
?>

ブックマーク (お気に入り) 用のアイコン (favicon) へのリンクを設定するには addFavicon() を使用します。

関連するページ (previous, next, home など) へのリンクを追加するには addHeadLink() を使用します。最初のパラメータに URL を指定し、 二番目のパラメータで関連を指定します。

<?php
$page->addHeadLink('home.htm', 'Start');
?>

CSS (Cascading stylesheets: スタイルシート) の追加

HTML ページには二種類の形式でスタイルシートを含めることができます。 インラインで css を指定する方法と、外部の .css ファイルへのリンクを指定する方法です。

インライン CSS の指定するには addStyleDeclaration() を使用します。

$page->addStyleDeclaration('
div.block {
    border: 1px solid #000;
}
');

外部の CSS ファイルへのリンクを作成するには addStyleSheet() を使用します。オプションの三番目のパラメータでは、 そのスタイルシートを使用するメディアタイプを指定することができます。

<?php
$page->addStyleSheet('css/dark.css');
$page->addStyleSheet('css/print.css', 'text/css', 'print');
?>

スクリプトの追加

javascript のコードをページに追加することもあるかもしれません。 その方法としては、インラインで指定するものと外部の .js ファイルへリンクするものがあります。

インラインのコードブロックを追加するには addScriptDeclaration() を使用します。オプションの二番目のパラメータのデフォルトは text/javascript ですが、これは必要に応じて変更することが可能です。

<?php
$page->addScriptDeclaration('
function javaScriptTest() {
    alert("テスト");
}
');
?>

外部のスクリプトファイルへのリンクを作成するには addScript() を使用します。

<?php
$page->addScript('js/functions.js');
?>
前のページ | ホーム | 次のページ
作成 | 上に戻る | 本文

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


出力

出力 -- 最後の処理

説明

ヘッダと本文をページに追加したら、次はそれをユーザに見せましょう。 display() で、ページの内容を直接ブラウザに送ることができます。

ブラウザに内容を送る前に何かの処理をしたい場合は、 toHtml() を使用します。これはページの内容を文字列として返すもので、 その後で何らかの加工をすることができます。

<?php
// ブラウザに送信します
$page->display();
// あるいは変数に保存します
$html = $page->toHtml();
?>
前のページ | ホーム | 次のページ
本文 | 上に戻る | HTML_QuickForm

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm

PEAR::HTML_QuickForm パッケージは、HTML フォームの生成、検証および処理を行うメソッドを提供します。

イントロダクション

目次
クイックスタートガイド -- HTML_QuickForm チュートリアル
クイックヘルプ -- よくある質問への回答
QuickForm の要素型 -- QuickForm に追加できる要素
バージョン 3.2 への移行 -- API の注意すべき変更点
サブパッケージ -- QuickForm のサブパッケージおよび QuickForm を使用しているパッケージの概要

HTML_QuickForm は、HTML フォームを便利に扱うためのライブラリです。 Javascript もしくはサーバサイドでの検証を行えますし、 いろいろな方法でカスタマイズや拡張が可能です。 HTML_QuickForm は、複数のファイルから構成されています。 中心となるファイルは、pear/HTML ディレクトリにインストールされた QuickForm.php です。 他に重要なファイルとしては、フォーム要素に関連したメソッドが記述された element.php ファイルや、要素グループを扱うメソッドが書かれた group.php ファイルが挙げられます。どちらも、他のオブジェクトと同様に、 HTML/QuickForm ディレクトリにあります。 input.php には、(text, password 等の) 入力可能なタイプのすべての要素の 共通クラスが記述されています。HTML_QuickForm には、select, text, password, checkbox, file, submit, reset, button, image, radio, hidden, textarea といった 標準的なフォーム要素のそれぞれに対応するオブジェクトが定義されています。 さらに、APIを合致させれば、独自の要素を作ることも可能です。

基本的なフォームの生成

目次
コンストラクタ HTML_QuickForm::HTML_QuickForm() -- クラスのコンストラクタ
HTML_QuickForm::addElement() -- フォームへ要素を追加する
HTML_QuickForm::apiVersion() -- 現在の API のバージョンを返す
HTML_QuickForm::createElement() -- 与えられた種類の要素をフォームに作成する
HTML_QuickForm::elementExists() -- フォームに要素があるか調べる
HTML_QuickForm::errorMessage() -- エラーコードからエラーメッセージを返す
HTML_QuickForm::getElementType() -- 与えられた要素の種類を返す
HTML_QuickForm::getElement() -- 要素へのリファレンスを返す
HTML_QuickForm::getMaxFileSize() -- MAX_FILE_SIZE 隠し要素の値を返す
HTML_QuickForm::getRegisteredTypes() -- 登録済みの要素の種類を返す
HTML_QuickForm::insertElementBefore() -- 新しい要素を、他の要素の直前に挿入する
HTML_QuickForm::isError() -- 結果がエラーかどうか知らせる
HTML_QuickForm::isTypeRegistered() -- フォーム要素の種類をサポートするか調べる
HTML_QuickForm::registerElementType() -- 新規要素タイプを登録する
HTML_QuickForm::removeElement() -- 要素の削除
HTML_QuickForm::setMaxFileSize() -- MAX_FILE_SIZE 隠し要素の値を設定する
HTML_QuickForm::updateElementAttr() -- ひとつまたは複数の要素の属性を更新する

To be written.

フォーム要素を表現したクラス群

To be written

基本クラス群

目次
HTML_QuickForm_element クラス概要 -- フォーム要素の基底クラス
コンストラクタ HTML_QuickForm_element() -- クラスのコンストラクタ
HTML_QuickForm_element::accept() -- レンダラを受け入れる
HTML_QuickForm_element::apiVersion() -- API のバージョンを返す
HTML_QuickForm_element::exportValue() -- '安全な' 要素の値を返す （パッケージ開発者用）
HTML_QuickForm_element::freeze() -- 要素を凍結する
HTML_QuickForm_element::getFrozenHtml() -- HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_element::getLabel() -- 要素のラベルを返す
HTML_QuickForm_element::getName() -- 要素の名前を返す
HTML_QuickForm_element::getType() -- 要素の型を返す
HTML_QuickForm_element::getValue() -- フォーム要素の値を返す
HTML_QuickForm_element::isFrozen() -- 要素が凍結されているかどうかを返す
HTML_QuickForm_element::onQuickFormEvent() -- この要素上でフォームイベントが発生した際に HTML_QuickForm からコールされる （パッケージ開発者用）
HTML_QuickForm_element::setLabel() -- 要素のラベルを設定する
HTML_QuickForm_element::setName() -- 入力フィールドの名前を設定する
HTML_QuickForm_element::setPersistantFreeze() -- freeze() の際に要素の値を持続させるかどうかを設定する
HTML_QuickForm_element::setValue() -- フォーム要素の値を設定する
HTML_QuickForm_element::unfreeze() -- 要素の凍結を解除する
HTML_QuickForm_input クラス概要 -- フォームの入力要素のための基底クラス
コンストラクタ HTML_QuickForm_input() -- クラスのコンストラクタ
HTML_QuickForm_input::setType() -- 要素の型を設定する

標準的 HTML 要素

目次
HTML_QuickForm_button クラス概要 -- button 型の要素のための HTML クラス
コンストラクタ HTML_QuickForm_button() -- クラスのコンストラクタ
HTML_QuickForm_checkbox クラス概要 -- checkbox 型のフィールドのための HTML クラス
コンストラクタ HTML_QuickForm_checkbox() -- クラスのコンストラクタ
HTML_QuickForm_checkbox::getChecked() -- チェックボックスがチェックされているかどうかを返す
HTML_QuickForm_checkbox::getText() -- チェックボックスのテキストを返す
HTML_QuickForm_checkbox::setChecked() -- チェックボックスがチェックされているかどうかを設定する
HTML_QuickForm_checkbox::setText() -- チェックボックスのテキストを設定する
HTML_QuickForm_file クラス概要 -- file 型の要素のための HTML クラス
コンストラクタ HTML_QuickForm_file() -- クラスのコンストラクタ
HTML_QuickForm_file::getSize() -- file 要素のサイズを返す
HTML_QuickForm_file::getValue() -- アップロードされたファイルの情報を返す
HTML_QuickForm_file::isUploadedFile() -- アップロードされたファイルが要素に含まれているかどうかを調べる
HTML_QuickForm_file::moveUploadedFile() -- アップロードされたファイルを移動する
HTML_QuickForm_file::setSize() -- file 要素のサイズを設定する
HTML_QuickForm_hidden クラス概要 -- hidden 型の要素のための HTML クラス
コンストラクタ HTML_QuickForm_hidden() -- クラスのコンストラクタ
HTML_QuickForm_image クラス概要 -- image 型の要素のための HTML クラス
コンストラクタ HTML_QuickForm_image() -- クラスのコンストラクタ
HTML_QuickForm_image::setAlign() -- image 要素の配置を設定する
HTML_QuickForm_image::setBorder() -- image 要素の枠線のサイズを設定する
HTML_QuickForm_image::setSource() -- image 要素のソースを設定する
HTML_QuickForm_password クラス概要 -- password 型のフィールドのための HTML クラス
コンストラクタ HTML_QuickForm_password() -- クラスのコンストラクタ
HTML_QuickForm_password::setMaxlength() -- password 要素の maxlength を設定する
HTML_QuickForm_password::setSize() -- password 要素のサイズを設定する
HTML_QuickForm_radio クラス概要 -- radio 型の要素のための HTML クラス
コンストラクタ HTML_QuickForm_radio() -- クラスのコンストラクタ
HTML_QuickForm_radio::getChecked() -- ラジオボタンがチェックされているかどうかを返す
HTML_QuickForm_radio::getText() -- ラジオボタンのテキストを返す
HTML_QuickForm_radio::setChecked() -- ラジオボタンがチェックされているかどうかを設定する
HTML_QuickForm_radio::setText() -- ラジオボタンのテキストを設定する
HTML_QuickForm_reset クラス概要 -- reset 型の要素のための HTML クラス
コンストラクタ HTML_QuickForm_reset() -- クラスのコンストラクタ
HTML_QuickForm_select クラス概要 -- HTML SELECT を動的に作成するためのクラス
コンストラクタ HTML_QuickForm_select() -- クラスのコンストラクタ
HTML_QuickForm_select::addOption() -- SELECT に新しい OPTION を追加する
HTML_QuickForm_select::getMultiple() -- select の mutiple 属性を返す
HTML_QuickForm_select::getPrivateName() -- 要素名を返す (角括弧が追加される可能性あり)
HTML_QuickForm_select::getSelected() -- 選択された値の配列を返す
HTML_QuickForm_select::getSize() -- select フィールドのサイズを返す
HTML_QuickForm_select::load() -- さまざまな型のデータソースから選択肢を読み込む
HTML_QuickForm_select::loadArray() -- 連想配列から選択肢を読み込む
HTML_QuickForm_select::loadDbResult() -- DB_result オブジェクトから選択肢を読み込む
HTML_QuickForm_select::loadQuery() -- データベースに問い合わせ、その結果から選択肢を読み込む
HTML_QuickForm_select::setMultiple() -- select の mutiple 属性を設定する
HTML_QuickForm_select::setSelected() -- セレクトボックスのデフォルト値を設定する
HTML_QuickForm_select::setSize() -- select フィールドのサイズを設定する ('multiple' select についてのみ適用される)
HTML_QuickForm_submit クラス概要 -- submit 型の要素のための HTML クラス
コンストラクタ HTML_QuickForm_submit() -- クラスのコンストラクタ
HTML_QuickForm_text クラス概要 -- テキストフィールドのための HTML クラス
コンストラクタ HTML_QuickForm_text -- クラスのコンストラクタ
HTML_QuickForm_text::setMaxlength() -- テキストフィールドの最大長を設定する
HTML_QuickForm_text::setSize() -- テキストフィールドのサイズを設定する
HTML_QuickForm_textarea クラス概要 -- textarea 型のフィールドのための HTML クラス
コンストラクタ HTML_QuickForm_textarea() -- クラスのコンストラクタ
HTML_QuickForm_textarea::setCols() -- textarea 要素の幅を列数で設定する
HTML_QuickForm_textarea::setRows() -- textarea 要素の高さを行数で設定する
HTML_QuickForm_textarea::setWrap() -- textarea 要素の自動改行の方式を設定する
HTML_QuickForm_xbutton クラス概要 -- HTML 4.0 <button> 要素のためのクラス
コンストラクタ HTML_QuickForm_xbutton() -- クラスのコンストラクタ
HTML_QuickForm_xbutton::setContent() -- 要素の内容を設定する

カスタム要素

目次
HTML_QuickForm_advcheckbox クラス概要 -- アドバンスドチェックボックス型のフィールドのための HTML クラス
コンストラクタ HTML_QuickForm_advcheckbox() -- クラスのコンストラクタ
HTML_QuickForm_advcheckbox::getOnclickJs() -- onclick イベント用の javascript を作成する
HTML_QuickForm_advcheckbox::getPrivateName() -- 要素のプライベート名を取得する
HTML_QuickForm_advcheckbox::setValues() -- hidden 要素で使用する値を設定する
HTML_QuickForm_autocomplete クラス概要 -- 自動補完機能つきのテキストフィールドのための HTML クラス
コンストラクタ HTML_QuickForm_autocomplete -- クラスのコンストラクタ
HTML_QuickForm_autocomplete::setoptions() -- テキスト入力要素の自動補完のためのオプションを設定する
HTML_QuickForm_date クラス概要 -- 日付 (および時刻) の入力に使用する要素グループのためのクラス
コンストラクタ HTML_QuickForm_date() -- クラスのコンストラクタ
HTML_QuickForm_header クラス概要 -- フォームにヘッダを追加する際に使用する擬似要素
コンストラクタ HTML_QuickForm_header() -- クラスのコンストラクタ
HTML_QuickForm_hiddenselect クラス概要 -- select の値を保持する hidden 要素を作成する
コンストラクタ HTML_QuickForm_hiddenselect() -- クラスのコンストラクタ
HTML_QuickForm_hierselect クラス概要 -- 連結した HTML Select 要素を動的に作成するためのクラスで、 各要素の選択によって次の要素の内容が変化する
コンストラクタ HTML_QuickForm_hierselect() -- クラスのコンストラクタ
HTML_QuickForm_hierselect::setOptions() -- select 要素の選択肢を設定する
HTML_QuickForm_hierselect::setMainOptions() -- 非推奨: 最初の select のオプションを設定する
HTML_QuickForm_hierselect::setSecOptions() -- 非推奨: 2 番目の select のオプションを設定する
HTML_QuickForm_html クラス概要 -- フォームに生の HTML を追加するために使用する擬似要素 (廃止予定)
コンストラクタ HTML_QuickForm_html() -- クラスのコンストラクタ
HTML_QuickForm_link クラス概要 -- link 型のフィールドのための HTML クラス
コンストラクタ HTML_QuickForm_link() -- クラスのコンストラクタ
HTML_QuickForm_link::setHref() -- リンク先を設定する
HTML_QuickForm_static クラス概要 -- 静的なデータのための HTML クラス
コンストラクタ HTML_QuickForm_static() -- クラスのコンストラクタ
HTML_QuickForm_static::setText() -- テキストを設定する

グループの使用

目次
HTML_QuickForm::addGroup() -- 要素グループを追加する
HTML_QuickForm_group クラス概要 -- フォーム要素のグループのための HTML クラス
コンストラクタ HTML_QuickForm_group() -- クラスのコンストラクタ
HTML_QuickForm_group::getElementName() -- グループ内の要素の名前を返す
HTML_QuickForm_group::getElements() -- グループ化された要素を取得する
HTML_QuickForm_group::getGroupType() -- その要素に基づいたグループ型を取得する
HTML_QuickForm_group::setElements() -- グループ化される要素を設定する

To be written.

要素値の処理

各要素の値を管理し、入力された値を処理するメソッドです。

要素値の取得、設定および処理

目次
HTML_QuickForm::setConstants() -- フォームの定数値を設定する
HTML_QuickForm::setDefaults() -- フォームのデフォルト値を設定する
HTML_QuickForm::isSubmitted() -- フォームが既に送信済みかどうかを返す
HTML_QuickForm::exportValue() -- 要素の "安全な" 値を返す
HTML_QuickForm::exportValues() -- 要素の "安全な" 値を返す
HTML_QuickForm::getElementValue() -- 要素の生の値を返す
HTML_QuickForm::getSubmitValue() -- 送信された要素の値を返す
HTML_QuickForm::getSubmitValues() -- フォームから送信された値を返す
HTML_QuickForm::process() -- フォームデータの処理を実行する

検証およびフィルタ

目次
導入 - 検証およびフィルタ -- 送信されたデータを処理する方法
HTML_QuickForm::addRule() -- 指定したフィールドに検証規則を追加する
HTML_QuickForm::addGroupRule() -- 指定したグループの検証規則を追加する
HTML_QuickForm::addFormRule() -- 全体的な検証規則を追加する
HTML_QuickForm::isElementRequired() -- フォーム要素が必須項目かどうかを返す
HTML_QuickForm::validate() -- サーバ側での検証を行う
HTML_QuickForm::getElementError() -- 検証された要素に対応するエラーを返す
HTML_QuickForm::setElementError() -- フォーム要素のエラーメッセージを設定する
HTML_QuickForm::registerRule() -- 新しい検証規則を登録する
HTML_QuickForm::getRegisteredRules() -- 登録された検証規則を返す
HTML_QuickForm::isRuleRegistered() -- 規則がサポートされているかどうかを返す
HTML_QuickForm::applyFilter() -- 指定したフィールドにフィルタを適用する

HTML_QuickForm は、「検証ルール」をサポートしています。 自らの検証ルールを書き、QuickForm に登録した後、自身のスクリプトからコールします。 デフォルトでは、正規表現による検証（preg_match 形式） が、検証が要求された要素についてのみ行われます。 また、クライアント側での検証を行いたい場合は、必要な javascript コードが生成されます。 サーバ側での検証は（デフォルトでは）常に行われます。

フォームへのデータのインポートや、送信されたフォームの処理に際して、フィルタを利用することができます。 フィルタは、時前に登録の必要がないことを除き、検証ルールと同様に動作します。 フィルタ関数を書き、スクリプトからコールします。 (trim, addslashes, htmlentities, などの) すべての PHP 関数が使用できますし、要素値へ再帰的に適用されます。

フォームの出力

HTML_QuickForm は、いろいろな種類のレンダラの使用が可能ですので、 フォームの出力を様々にカスタマイズすることができます。 デフォルトのレンダラを使えば、各要素の属性値やエラーメッセージ・ヘッダ・必須入力欄の表示といった点を カスタマイズできますし、独自のレンダラを書くことも可能です。

フォームのカスタマイズと出力ヘルパー

目次
HTML_QuickForm::freeze() -- フォームの要素を "凍結" する
HTML_QuickForm::isElementFrozen() -- 要素が凍結されているかどうかを調べる
HTML_QuickForm::isFrozen() -- フォームが凍結されているかどうかを調べる
HTML_QuickForm::setRequiredNote() -- 必須入力の注意書きを設定する
HTML_QuickForm::setJsWarnings() -- JavaScript 警告メッセージを設定する
HTML_QuickForm::getRequiredNote() -- 必須入力の注意書きを返す
HTML_QuickForm::getValidationScript() -- クライアント側の検証スクリプトを返す
HTML_QuickForm::accept() -- レンダラを受け取る
HTML_QuickForm::defaultRenderer() -- デフォルトレンダラオブジェクトへの参照を返す
HTML_QuickForm::toArray() -- フォームの内容を配列で返す
HTML_QuickForm::toHtml() -- フォームを HTML で返す
HTML_QuickForm::display() -- フォームを HTML で出力する

基本的なレンダラ

目次
導入 - レンダラ -- フォームを出力する方法
HTML_QuickForm_Renderer_Default -- デフォルトのレンダラ
HTML_QuickForm_Renderer_Default::clearAllTemplates() -- すべてのテンプレートを消去する
HTML_QuickForm_Renderer_Default::setElementTemplate() -- 要素のテンプレートを設定する
HTML_QuickForm_Renderer_Default::setFormTemplate() -- フォームのテンプレートを設定する
HTML_QuickForm_Renderer_Default::setGroupElementTemplate() -- グループ要素のテンプレートを設定する
HTML_QuickForm_Renderer_Default::setGroupTemplate() -- グループラッパーのテンプレートを設定する
HTML_QuickForm_Renderer_Default::setHeaderTemplate() -- ヘッダのテンプレートを設定する
HTML_QuickForm_Renderer_Default::setRequiredNoteTemplate() -- 'required' の記述のテンプレートを設定する
HTML_QuickForm_Renderer_Default::toHtml() -- HTML を返す
HTML_QuickForm_Renderer_Array -- フォームを配列で表す
constructor HTML_QuickForm_Renderer_Array::HTML_QuickForm_Renderer_Array() -- コンストラクタ
HTML_QuickForm_Renderer_Array::setElementStyle() -- 要素のレンダリングに使用するスタイルを設定する
HTML_QuickForm_Renderer_Array::toArray() -- 結果の配列を返す

これらのレンダラは、バージョン 3.0 以前の HTML_QuickForm コードを基礎としており、動作に他のクラスを必要としません。

テンプレートベースのレンダラ

目次
HTML_QuickForm_Renderer_ArraySmarty -- '静的な' Smarty テンプレートのためのレンダラ
constructor HTML_QuickForm_Renderer_ArraySmarty::HTML_QuickForm_Renderer_ArraySmarty() -- コンストラクタ
HTML_QuickForm_Renderer_ArraySmarty::setErrorTemplate() -- 検証エラーが発生した要素をレンダリングする方法を設定する
HTML_QuickForm_Renderer_ArraySmarty::setRequiredTemplate() -- 必須要素をレンダリングする方法を設定する
HTML_QuickForm_Renderer_ITDynamic -- 統合されたテンプレート用の動的なレンダラ
constructor HTML_QuickForm_Renderer_ITDynamic::HTML_QuickForm_Renderer_ITDynamic() -- コンストラクタ
HTML_QuickForm_Renderer_ITDynamic::setElementBlock() -- 要素のレンダリングに使用するブロックを設定する
HTML_QuickForm_Renderer_ITDynamic::setHeaderBlock() -- ヘッダのレンダリングに使用するブロックの名前を設定する
HTML_QuickForm_Renderer_ITStatic -- 統合されたテンプレート用の静的なレンダラ
constructor HTML_QuickForm_Renderer_ITStatic::HTML_QuickForm_Renderer_ITStatic() -- コンストラクタ
HTML_QuickForm_Renderer_ITStatic::setErrorTemplate() -- 検証エラーが発生した要素をレンダリングする方法を設定する
HTML_QuickForm_Renderer_ITStatic::setRequiredTemplate() -- 必須要素をレンダリングする方法を設定する
HTML_QuickForm_Renderer_QuickHtml -- 簡単で柔軟な方式を用いて、フォーム要素を HTML にレンダリングする
constructor HTML_QuickForm_Renderer_QuickHtml::HTML_QuickForm_Renderer_QuickHtml() -- コンストラクタ
HTML_QuickForm_Renderer_QuickHtml::toHtml() -- HTML を返す
HTML_QuickForm_Renderer_QuickHtml::elementToHtml() -- 指定したフォーム要素を HTML にレンダリングする

これらのレンダラは、フォームの HTML 出力の生成にテンプレートエンジンを使用します。

レンダラのインフラストラクチャ

目次
HTML_QuickForm_Renderer -- レンダラの基底クラスとなる抽象クラス （パッケージ開発者用）
HTML_QuickForm_Renderer::startForm() -- フォームの処理を開始する （パッケージ開発者用）
HTML_QuickForm_Renderer::finishForm() -- フォームの処理を終了する （パッケージ開発者用）
HTML_QuickForm_Renderer::startGroup() -- グループの処理を開始する （パッケージ開発者用）
HTML_QuickForm_Renderer::finishGroup() -- グループの処理を終了する （パッケージ開発者用）
HTML_QuickForm_Renderer::renderElement() -- 要素を処理する （パッケージ開発者用）
HTML_QuickForm_Renderer::renderHeader() -- ヘッダを処理する （パッケージ開発者用）
HTML_QuickForm_Renderer::renderHidden() -- hidden 要素を処理する （パッケージ開発者用）
HTML_QuickForm_Renderer::renderHtml() -- 生の HTML/テキスト 要素を処理する （パッケージ開発者用）

既存のレンダラを拡張したり、新しいレンダラを書く場合には、以下が参考となるでしょう。

前のページ | ホーム | 次のページ
出力 | 上に戻る | HTML_QuickForm_Controller

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Controller

目次
導入 -- このパッケージを使用すると、何がうれしいのか
FAQ -- このパッケージの機能について理解する
HTML_QuickForm_Controller クラス概要 -- PageController パターンを実装したクラス
constructor HTML_QuickForm_Controller() -- クラスのコンストラクタ
Controller::addAction() -- 指定したアクションのハンドラを登録する
Controller::addPage() -- 新しいページをフォームに追加する
Controller::applyDefaults() -- 指定したページのデフォルト値を設定する
Controller::container() -- フォームの値のコンテナへの参照を返す
Controller::exportValue() -- 要素の値を返す
Controller::exportValues() -- フォームの値を返す
Controller::findInvalid() -- 入力内容が無効な (最初の) ページを探す
Controller::getActionName() -- 現在のページおよびアクションの名前を取得する
Controller::getNextName() -- 指定したページの次のページの名前を返す
Controller::getPage() -- ページを返す
Controller::getPrevName() -- 指定したページの前のページの名前を返す
Controller::handle() -- アクションを処理する
Controller::isModal() -- フォームがモーダルかどうかを調べる
Controller::isValid() -- コントローラのページが有効かどうかを調べる
Controller::run() -- リクエストを処理する
Controller::setConstants() -- フォームの定数値を初期化する
Controller::setDefaults() -- フォームをデフォルト値で初期化する
HTML_QuickForm_Page クラス概要 -- 複数ページフォームの個々のページを表すクラス
constructor HTML_QuickForm_Page() -- クラスコンストラクタ
Page::addAction() -- 特定のアクション用のハンドラを登録する
Page::buildForm() -- フォームを構築する
Page::getButtonName() -- 特定のアクションを起動する submit ボタンの名前を返す
Page::handle() -- アクションを処理する
Page::isFormBuilt() -- フォームが既に構築されたかどうかをチェックする
Page::loadValues() -- 送信された値を配列から読み込む
Page::setDefaultAction() -- ページ内のフォームから起動されるデフォルトのアクションを設定する
HTML_QuickForm_Action クラス概要 -- HTTP リクエストで実行するアクションを表すクラス
Action::perform() -- リクエストを処理する
HTML_QuickForm_Action_Back クラス概要 -- ウィザード形式の複数ページフォームでの、'back' ボタンのアクション
HTML_QuickForm_Action_Direct クラス概要 -- 複数ページのフォームで、特定のページに移動できるようにするアクション
HTML_QuickForm_Action_Display クラス概要 -- フォームの出力を処理するアクション
HTML_QuickForm_Action_Jump クラス概要 -- 特定のページへの HTTP リダイレクトを処理するアクション
HTML_QuickForm_Action_Next クラス概要 -- ウィザード形式の複数ページフォームでの、'next' ボタンのアクション
HTML_QuickForm_Action_Submit クラス概要 -- 'submit' ボタンのアクション

このパッケージは HTML_QuickForm へのアドオンで、複数ページにまたがるフォームの作成機能 (およびその他の機能) を提供します。

以下のような素敵な機能があります。

  • 複数ページにまたがるフォームを簡単に作成できるよう、 いくつかのデフォルトアクションが含まれています。

  • 一般的な使用例 (単一ページのフォーム、ウィザード、タブ形式のフォーム) が含まれています。

前のページ | ホーム | 次のページ
HTML_QuickForm | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


FAQ

FAQ -- このパッケージの機能について理解する

説明

この文書は、PEAR general メーリングリスト に投稿された質問を基にして作成されています。 メーリングリストのアーカイブを検索すると、 より詳細な回答や例が見つけられるでしょう。

このパッケージは複雑すぎます! さっぱりわかりません!

ごめんなさい。HTML_QuickForm_Controller は PHP の初心者向けのものではないのです。 「これらのクラスが何者なのかがわからない」 「これまでに QuickForm を使用した経験がない」 「コピペ大好き」 そんな人たちには、このパッケージは向きません。

確かにこのパッケージは複雑ですが、あなたが作成しようとしている フォームだって同様に複雑なはずです。パッケージに同梱されている 複数ページフォームの例を、このパッケージを使用しないで書き直してみましょう。 そうすれば我々の言いたいことがお分かりになることでしょう。

Meta-question: actions

混乱を避けるため、ここでは アクションの名前を表す文字列のことを「アクション」、 HTML_QuickForm_Action のサブクラスのことを「アクションハンドラ」と表記します。

デフォルトのアクションおよびデフォルトのアクションハンドラ

独自のアクション名を使用してそのハンドラを作成することも可能ですが、 まずはデフォルトのアクション名およびそのハンドラを理解する必要があります。

デフォルトのアクション名

'display'

このアクションのデフォルトハンドラは HTML_QuickForm_Action_Display で、これはデフォルトのレンダラを使用してフォームを表示します。 出力内容を変更したい場合は、このハンドラのサブクラスを 作成する必要があります。 このアクションは、ページを表示する必要がある際に自動的にコールされます。 getButtonName() でボタンに関連付けられるべきでは ありません。

'submit'

このアクションは、フォームの "グローバル" な送信ボタンに 関連付けなければなりません。単一ページのフォームや タブ形式の複数ページフォームでは "submit" ボタン、 あるいはウィザードでは "finish" ボタンに 関連付けることができます。このアクションのデフォルトハンドラは HTML_QuickForm_Action_Submit で、フォームの全ページの入力内容を検証したあとで、 'process' ハンドラをコールするか 無効な入力用のページを表示します。

'next'

このアクションは、(通常は) モーダルな複数ページフォーム (ウィザード) の "Next" ボタンに関連付けなければなりません。 このアクションのデフォルトハンドラは HTML_QuickForm_Action_Next で、現在のページの入力内容の妥当性を検証した後で、もし内容に問題がなければ (あるいはフォームがモーダルでなければ) 次のページにリダイレクトします。 モーダルな複数ページフォームの最後のページにいる場合は、 デフォルトの 'submit' ハンドラと同じように動作します。

'back'

このアクションは、(通常は) モーダルな複数ページフォーム (ウィザード) の "Back" ボタンに関連付けなければなりません。 このアクションのデフォルトハンドラは HTML_QuickForm_Action_Back で、前のページが存在する場合にそのページにリダイレクトします。 QFC 0.9.3 以降では、'back' アクションの際にはフォームの検証は行われなくなりました。

'jump'

このアクションのデフォルトハンドラは HTML_QuickForm_Action_Jump で、単にフォーム内の指定したページへの HTTP リダイレクトを行います。 このアクションは getButtonName() でボタンに関連付けられるべきでは ありません。

'process'

このアクションは、デフォルトの 'submit' および 'next' (ウィザードの 最終ページの場合のみ) のハンドラとして、 フォームの送信処理が成功した (つまり、入力にエラーがなかった) 際に コールされます。このアクションにはデフォルトのハンドラが存在しません。 独自のハンドラを定義して、フォームの値を処理するために必要な すべてのロジックを実装する必要があります。

これ以外にも HTML_QuickForm_Action_Direct というデフォルトのハンドラがあり、これはデフォルトのアクションを 持っていません。 これはフォームの指定したページに移動する際に使用され、 Page::addAction() あるいは Controller::addAction() を使用して明示的に追加しなければなりません。その際には、 移動先のページの名前を $actionName に指定し、getButtonName() を使用して同じ名前でボタンにバインドします。

アクションハンドラをコールする方法は?

Page の handle() メソッドを使用しなければなりません。
$page->handle('action');
Controller の handle() メソッドは、必要に応じて自動的にコールされます。

独自のアクションを作成する方法は?

HTML_QuickForm_Action のサブクラスを作成し、必要な処理を perform() メソッドに追加します。作成したクラスを、addAction() で適切な名前を指定して Page あるいは Controller に追加します。

getButtonName() でこのアクションを何らかのボタンに バインドしたい場合は、 container() の中の値を保存することに注意しなければなりません。

  1. フォームを作成する。

  2. コンテナへの参照を取得する。

  3. コンテナの ['values'][$pageName] および ['valid'][$pageName] 要素を指定する。

いつものように、 使用例はデフォルトのアクションハンドラのソースを参照ください。

アクションを送信ボタン以外にバインドすることはできますか?

コントローラは、<input type="image" /> コントロールにバインドしたアクションも正しく処理することができます。 何も特別なことをする必要はなく、単に getButtonName() でコントロールの名前を指定すればよいのです。

ハイパーリンクなどにアクションをバインドしたい場合には、 次のことを考慮する必要があります。フォームの値を取得するためには、 フォームを送信しなけらばなりません。 そのため、javascript などでフォームを送信する処理を記述し、 何らかの方法でコントローラにアクション名を渡す必要があります。

フォームをリセットする方法は?

コントローラは、フォームのデータや検証状態を、 セッション内のコンテナに保持します。このコンテナには container() メソッドを使用してアクセスできます。 フォームをリセットするためには、このコンテナを消去する必要があります。 そのためには、container() に TRUE を渡します。

フォームのページ間で追加のデータを渡す方法は?

答えはきわめて簡単です。HTML_QuickForm_Controller の container() メソッドを使用して、このようにしなければなりません。
// 参照であることに注意
$data =& $page->controller->container();
$data['_my_stuff'] = $stuff;
受け取り側のページでは、以下のようにします。
$data =& $page->controller->container();
$stuff = $data['_my_stuff'];
QFC の将来のバージョンで名前の衝突が起こることを避けるため、 あなたが作成するフィールドには独自のプレフィックスを使用するか、 あるいはアンダースコアで始まる名前を使用してください。

Controller は、あなたが追加したデータについては 何も知らないことに注意しましょう。 exportValues() メソッドや類似のメソッドでこのデータが返されることを期待しないでください。 container() メソッドを使用し、自分でデータを抽出しなければなりません。 しかし、コンテナがリセットされる際には あなたが追加したデータも削除されます。

テンプレートベースのレンダラを使用するには?

まず最初に、HTML_QuickForm_Page が HTML_QuickForm のサブクラスであること、 そのため親クラスの変更内容はすべて子クラスにも適用されるということを 理解してください。 HTML_QuickForm の レンダラについての節 および使用したいレンダラのドキュメントを 読むことをお勧めします。QuickForm 配布物の docs/renderers/ ディレクトリの中に、使用例があります。

すでに説明したとおり、もしページの出力内容をカスタマイズして ページの 'display' アクションの ハンドラとしてこのサブクラスのインスタンスを追加したいのなら、 HTML_QuickForm_Action_Display クラスのサブクラスを作成しなければなりません。 レンダラ固有のコードは、すべてその _renderForm() に含めます。

Controller によって発生する唯一の新しい問題は、 getButtonName() を使用してアクションにバインドしたボタンです。 動的なレンダラを使用している場合は、これは問題にはなりません。 というのも、要素の名前に気を使う必要がないからです。しかし、 静的なレンダラを使用してフォームを出力する場合には、 要素の名前を知っておく必要があります。

ここでは ITStatic レンダラを使用すると仮定しますが、 それ以外の静的レンダラでも同じようになります。 基本的に、3 つの選択肢があります。

  1. getButtonName() で自動生成された名前を使用して、ボタン/プレースホルダを フォームに手動で追加します。この方法は 推奨されません。なぜなら、名前を気にするのは Controller 自身のみであるべきで、 直接使用すべきものではないからです。

  2. 自動的に命名されたボタンを グループ に追加します。グループにはお好みの名前をつけることができますが、 $appendName を false に設定することを忘れないでください。 ITStatic は、プレースホルダ {form_element_html} を発見すると、グループの HTML をそこに代入します。

  3. テンプレートの中から getButtonName() をコールします。 テンプレートに次の内容を追加し、
    <input type="submit" value="Bla-bla" name="func_buttonName('action')" ... />
    HTML_QuickForm_Action_Display のサブクラスの _renderForm() メソッドに次の内容を追加します。
    $tpl->setCallbackFunction('buttonName', array(&$page, 'getButtonName'));
    このコードは HTML_Template_Sigma で動作します。 HTML_Template_ITX (X に注意) の場合はもう少し調整しなければなりません。

オプションのページを持つウィザードを作成するには?

この質問に貢献してくれた Donald Lobo に感謝します。

3 つのページからなるウィザードがあるとしましょう。

  • ページ 1 には、ユーザに次のページを選択させるコントロールがあります。

  • 入力内容に応じて、ユーザはページ 2A あるいはページ 2B のどちらかに移動します。

  • ページ 2A および 2B のどちらからもページ 3 に移動します (これは、プログラミングに関する書籍では一般的に StateMachine と呼ばれているものです)。

QFC のデフォルトの HTML_QuickForm_Action_Next および HTML_QuickForm_Action_Back に基づいたアクションハンドラを作成する必要があります。 これは、ページレベルおよびコントローラレベルのどちらでも行うことが可能です。 ページレベルでサブクラスを作成するほうがシンプルですが、 複雑な StateMachine を使用するなら複数のサブクラスを作成することになります。

上の例の場合、ページ 1 の 'next' アクションは、 ユーザの入力内容に応じてページ 2 あるいはページ 3 のいずれかに 'user' を送信します。このハンドラは、訪れなかったほうのページに 大しても 'valid' フラグを設定します。

ページ 2A および 2B の 'back' アクションは、 ユーザをページ 1 に戻します。一方、'next' アクションはページ 3 に移動します。

最後に、ページ 3 の 'back' アクションハンドラは、 ページ 1 での入力内容に応じてページ 2A あるいは 2B のいずれかに移動します。

実際に動作する例は、statemachine.php ファイルです。

クライアント側での検証を使用しています。'Back' ボタンの場合に検証をしないようにするにはどうしたらいいですか?

クライアント側の検証は、フォームの onSubmit ハンドラからコールされます。このハンドラを削除すれば、検証は実行されません。 つまり、ユーザが 'Back' ボタンを押した際に このハンドラを削除しなければならないということです。例えば ボタンの onClick ハンドラに以下のように記述すれば、 これが実現できます。
this.form.onsubmit = null; return true;

前のページ | ホーム | 次のページ
導入 | 上に戻る | HTML_QuickForm_Controller クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Action_Back クラス概要

HTML_QuickForm_Action_Back クラス概要 -- ウィザード形式の複数ページフォームでの、'back' ボタンのアクション

説明

このパッケージに関する文書は、未作成です。

HTML_QuickForm_Action_Back のクラス階層

  • HTML_QuickForm_Action

    • HTML_QuickForm_Action_Back

前のページ | ホーム | 次のページ
Action::perform() | 上に戻る | HTML_QuickForm_Action_Direct クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Action_Direct クラス概要

HTML_QuickForm_Action_Direct クラス概要 -- 複数ページのフォームで、特定のページに移動できるようにするアクション

説明

addAction() でこのアクションを使用する際の名前は、 'direct' 「ではなく」、移動したいページの名前であることに注意してください。

HTML_QuickForm_Action_Direct のクラス階層

  • HTML_QuickForm_Action

    • HTML_QuickForm_Action_Direct

前のページ | ホーム | 次のページ
HTML_QuickForm_Action_Back クラス概要 | 上に戻る | HTML_QuickForm_Action_Display クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Action_Display クラス概要

HTML_QuickForm_Action_Display クラス概要 -- フォームの出力を処理するアクション

説明

フォームの表示内容を変更したい場合は、このクラスのサブクラスを作成して _renderForm() メソッドをオーバーライドします。 perform() メソッド自体を変更する必要はありません。

HTML_QuickForm_Action_Display のクラス階層

  • HTML_QuickForm_Action

    • HTML_QuickForm_Action_Display

前のページ | ホーム | 次のページ
HTML_QuickForm_Action_Direct クラス概要 | 上に戻る | HTML_QuickForm_Action_Jump クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Action_Jump クラス概要

HTML_QuickForm_Action_Jump クラス概要 -- 特定のページへの HTTP リダイレクトを処理するアクション

説明

このパッケージに関する文書は、未作成です。

HTML_QuickForm_Action_Jump のクラス階層

  • HTML_QuickForm_Action

    • HTML_QuickForm_Action_Jump

前のページ | ホーム | 次のページ
HTML_QuickForm_Action_Display クラス概要 | 上に戻る | HTML_QuickForm_Action_Next クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Action_Next クラス概要

HTML_QuickForm_Action_Next クラス概要 -- ウィザード形式の複数ページフォームでの、'next' ボタンのアクション

説明

このパッケージに関する文書は、未作成です。

HTML_QuickForm_Action_Next のクラス階層

  • HTML_QuickForm_Action

    • HTML_QuickForm_Action_Next

前のページ | ホーム | 次のページ
HTML_QuickForm_Action_Jump クラス概要 | 上に戻る | HTML_QuickForm_Action_Submit クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Action_Submit クラス概要

HTML_QuickForm_Action_Submit クラス概要 -- 'submit' ボタンのアクション

説明

このパッケージに関する文書は、未作成です。

HTML_QuickForm_Action_Submit のクラス階層

  • HTML_QuickForm_Action

    • HTML_QuickForm_Action_Submit

前のページ | ホーム | 次のページ
HTML_QuickForm_Action_Next クラス概要 | 上に戻る | HTML_QuickForm_Renderer_Tableless

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Action クラス概要

HTML_QuickForm_Action クラス概要 -- HTTP リクエストで実行するアクションを表すクラス

説明

リクエストの内容に応じてコントローラが適切なアクションを選択し、その perform() メソッドをコールします。 必要な処理ロジックは、このクラスのサブクラスで実装する必要があります。

デフォルトのアクションハンドラについては、 FAQ で説明されています。

HTML_QuickForm_Action のクラス階層

  • HTML_QuickForm_Action

表 41-1HTML_QuickForm_Action を継承したクラス

クラス | 概要
HTML_QuickForm_Action_Back | ウィザード形式の複数ページフォームでの、'back' ボタンのアクション
HTML_QuickForm_Action_Direct | 複数ページのフォームで、特定のページに移動できるようにするアクション
HTML_QuickForm_Action_Display | フォームの出力を処理するアクション
HTML_QuickForm_Action_Jump | 特定のページへの HTTP リダイレクトを処理するアクション
HTML_QuickForm_Action_Next | ウィザード形式の複数ページフォームでの、'next' ボタンのアクション
HTML_QuickForm_Action_Submit | 'submit' ボタンのアクション

前のページ | ホーム | 次のページ
Page::setDefaultAction() | 上に戻る | Action::perform()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Action::perform()

Action::perform() -- リクエストを処理する

概要

require_once 'HTML/QuickForm/Action.php';

void HTML_QuickForm_Action::perform (object HTML_QuickForm_Page &$page, string $actionName)

説明

子クラスでこのメソッドをオーバーライドし、必要となるロジックを提供しなければなりません。

パラメータ

object HTML_QuickForm_Page &$page

現在のフォームページ。

string $actionName

現在のアクション名。ひとつの Action オブジェクトで 複数のアクションを扱えるため、指定する必要があります。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Action クラス概要 | 上に戻る | HTML_QuickForm_Action_Back クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Controller クラス概要

HTML_QuickForm_Controller クラス概要 -- PageController パターンを実装したクラス

説明

このクラスでは、フォームのページおよび (デフォルトの) アクションハンドラを 扱います。セッション内でフォームの値を管理し、フォーム全体の デフォルト値や定数を設定し、そしてフォームから送信された値を取得します。

通常は、このクラスのサブクラスを作成する必要はありません。

HTML_QuickForm_Controller のクラス階層

  • HTML_QuickForm_Controller

前のページ | ホーム | 次のページ
FAQ | 上に戻る | constructor HTML_QuickForm_Controller()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Controller::addAction()

Controller::addAction() -- 指定したアクションのハンドラを登録する

概要

require_once 'HTML/QuickForm/Controller.php';

void HTML_QuickForm_Controller::addAction (string $actionName, object HTML_QuickForm_Action &$action)

説明

何らかのアクションを処理する必要のあるページ自身が ハンドラを保持していない場合に、このハンドラが使用されます。

パラメータ

string $actionName

アクションの名前。

object HTML_QuickForm_Action &$action

アクションに対するハンドラ。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor HTML_QuickForm_Controller() | 上に戻る | Controller::addPage()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Controller::addPage()

Controller::addPage() -- 新しいページをフォームに追加する

概要

require_once 'HTML/QuickForm/Controller.php';

void HTML_QuickForm_Controller::addPage (object HTML_QuickForm_Page &$page)

説明

このパッケージに関する文書は、未作成です。

パラメータ

object HTML_QuickForm_Page &$page

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Controller::addAction() | 上に戻る | Controller::applyDefaults()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Controller::applyDefaults()

Controller::applyDefaults() -- 指定したページのデフォルト値を設定する

概要

require_once 'HTML/QuickForm/Controller.php';

void HTML_QuickForm_Controller::applyDefaults (string $pageName)

説明

これは、ページのデフォルト値や定数を container から読み込むために使用されます。

パラメータ

string $pageName

ページの名前。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Controller::addPage() | 上に戻る | Controller::container()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Controller::container()

Controller::container() -- フォームの値のコンテナへの参照を返す

概要

require_once 'HTML/QuickForm/Controller.php';

array &HTML_QuickForm_Controller::container ([bool $reset = FALSE])

説明

セッションの初期化 このパッケージはデータをセッションに保存します。しかし、セッションを自動的には開始 しません。HTML_QuickForm_Controller のインスタンスを作成する前に、自分で session_start() をコールしなければなりません。

フォーム内のページの値やページの検証状態を含むセッション変数への参照を返します。 これは "低レベル" のメソッドです。 単にフォームの値を知りたいだけの場合は exportValues() を使用してください。

コンテナの構造は以下のようになります。
array (
    'defaults'  => array(... フォームのデフォルト値 ...),
    'constants' => array(... フォームの定数値 ...),
    'values'    => array(
        'page1' => array(... このページから送信された値 ...),
        ...
        'pageN' => array(... このページから送信された値 ...)
    ),
    'valid'     => array(
        'page1' => ページの内容が検証されていない場合に null、内容が有効な場合に true、それ以外の場合に false
        ...
        'pageN' => ページの内容が検証されていない場合に null、内容が有効な場合に true、それ以外の場合に false
    )
)

パラメータ

boolean $reset

true の場合は、コンテナをリセットします。つまり、 すべてのデフォルト値、定数値および送信内容を消去します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Controller::applyDefaults() | 上に戻る | Controller::exportValue()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Controller::exportValue()

Controller::exportValue() -- 要素の値を返す

概要

require_once 'HTML/QuickForm/Controller.php';

mixed HTML_QuickForm_Controller::exportValue (string $pageName, string $elementName)

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $pageName

ページの名前。

string $elementName

ページ内の要素の名前。

返り値

要素の値を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Controller::container() | 上に戻る | Controller::exportValues()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Controller::exportValues()

Controller::exportValues() -- フォームの値を返す

概要

require_once 'HTML/QuickForm/Controller.php';

array HTML_QuickForm_Controller::exportValues ([string $pageName = NULL])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $pageName

ページの名前。指定しなかった場合はすべてのページの値を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Controller::exportValue() | 上に戻る | Controller::findInvalid()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Controller::findInvalid()

Controller::findInvalid() -- 入力内容が無効な (最初の) ページを探す

概要

require_once 'HTML/QuickForm/Controller.php';

string HTML_QuickForm_Controller::findInvalid ()

説明

このパッケージに関する文書は、未作成です。

返り値

無効なページの名前を返します。

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Controller::exportValues() | 上に戻る | Controller::getActionName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Controller::getActionName()

Controller::getActionName() -- 現在のページおよびアクションの名前を取得する

概要

require_once 'HTML/QuickForm/Controller.php';

array HTML_QuickForm_Controller::getActionName ()

説明

このメソッドは、$_REQUEST 配列から 指定した名前の 要素を探し、それをページ名とアクションに分割します。 要素が見つからなかった場合は、デフォルトとして最初のページの 'display' アクションが返されます。

返り値

最初の要素がページ名、次の要素がアクション名である配列を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Controller::findInvalid() | 上に戻る | Controller::getNextName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Controller::getNextName()

Controller::getNextName() -- 指定したページの次のページの名前を返す

概要

require_once 'HTML/QuickForm/Controller.php';

string HTML_QuickForm_Controller::getNextName (string $pageName)

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $pageName

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Controller::getActionName() | 上に戻る | Controller::getPage()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Controller::getPage()

Controller::getPage() -- ページを返す

概要

require_once 'HTML/QuickForm/Controller.php';

object HTML_QuickForm_Page &HTML_QuickForm_Controller::getPage (string $pageName)

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $pageName

ページの名前。

返り値

ページへの参照を返します。

例外・エラー

PEAR_Error をスローします。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Controller::getNextName() | 上に戻る | Controller::getPrevName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Controller::getPrevName()

Controller::getPrevName() -- 指定したページの前のページの名前を返す

概要

require_once 'HTML/QuickForm/Controller.php';

string HTML_QuickForm_Controller::getPrevName (string $pageName)

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $pageName

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Controller::getPage() | 上に戻る | Controller::handle()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Controller::handle()

Controller::handle() -- アクションを処理する

概要

require_once 'HTML/QuickForm/Controller.php';

void HTML_QuickForm_Controller::handle (object HTML_QuickForm_Page &$page, string $actionName)

説明

このメソッドは、指定したアクションに対応するハンドラをページ自身が 持たない場合にコールされます。また、アクションが指定されていない場合には、 このメソッドはアクション共通のデフォルトハンドラを読み込んで使用します。

パラメータ

object HTML_QuickForm_Page &$page

アクションの処理に失敗したページ。

string $actionName

アクションの名前。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Controller::getPrevName() | 上に戻る | Controller::isModal()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor HTML_QuickForm_Controller()

constructor HTML_QuickForm_Controller() -- クラスのコンストラクタ

概要

require_once 'HTML/QuickForm/Controller.php';

void constructor HTML_QuickForm_Controller::HTML_QuickForm_Controller (string $name [, bool $modal = TRUE])

説明

フォーム名とモーダル/非モーダルを設定します。 複数ページフォームが 2 つ以上ある場合には、それぞれ別の名前を 指定しなければなりません。というのも、セッションにフォームの値を 保存する際にこの名前が使用されるからです。モーダルフォームの場合は、 それ以前のページの入力がすべて問題ない場合にしか次のページに進めません。

パラメータ

string $name

フォーム名。

boolean $modal

フォームをモーダルにするか否か。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Controller クラス概要 | 上に戻る | Controller::addAction()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Controller::isModal()

Controller::isModal() -- フォームがモーダルかどうかを調べる

概要

require_once 'HTML/QuickForm/Controller.php';

bool HTML_QuickForm_Controller::isModal ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Controller::handle() | 上に戻る | Controller::isValid()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Controller::isValid()

Controller::isValid() -- コントローラのページが有効かどうかを調べる

概要

require_once 'HTML/QuickForm/Controller.php';

bool HTML_QuickForm_Controller::isValid ([string $pageName = NULL])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $pageName

設定した場合は、そのページより前のページについてのみ調べます (そのページは調べません)。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Controller::isModal() | 上に戻る | Controller::run()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Controller::run()

Controller::run() -- リクエストを処理する

概要

require_once 'HTML/QuickForm/Controller.php';

void HTML_QuickForm_Controller::run ()

説明

このメソッドは、現在のページとアクションを取得して、ページの handle() メソッドにアクションを渡します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Controller::isValid() | 上に戻る | Controller::setConstants()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Controller::setConstants()

Controller::setConstants() -- フォームの定数値を初期化する

概要

require_once 'HTML/QuickForm/Controller.php';

void HTML_QuickForm_Controller::setConstants ([array $constantValues = NULL])

説明

これらの値は、POST や GET の内容によって上書きされることはありません。

パラメータ

array $constantValues

定数の値。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Controller::run() | 上に戻る | Controller::setDefaults()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Controller::setDefaults()

Controller::setDefaults() -- フォームをデフォルト値で初期化する

概要

require_once 'HTML/QuickForm/Controller.php';

void HTML_QuickForm_Controller::setDefaults ([array $defaultValues = NULL])

説明

このパッケージに関する文書は、未作成です。

パラメータ

array $defaultValues

デフォルト値。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Controller::setConstants() | 上に戻る | HTML_QuickForm_Page クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Page クラス概要

HTML_QuickForm_Page クラス概要 -- 複数ページフォームの個々のページを表すクラス

説明

通常は、このクラスのサブクラスを作成し、 buildForm() メソッドをオーバーライドして 独自のフォームを作成する必要があります。このクラスのインスタンスを 直接作成して手動でフォームを作成することも可能ですが、推奨されません。

HTML_QuickForm_Page のクラス階層

  • HTML_QuickForm

    • HTML_QuickForm_Page

前のページ | ホーム | 次のページ
Controller::setDefaults() | 上に戻る | constructor HTML_QuickForm_Page()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Page::addAction()

Page::addAction() -- 特定のアクション用のハンドラを登録する

概要

require_once 'HTML/QuickForm/Page.php';

void HTML_QuickForm_Page::addAction (string $actionName, object HTML_QuickForm_Action &$action)

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $actionName

アクションの名前です。

object HTML_QuickForm_Action &$action

アクションのハンドラです。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor HTML_QuickForm_Page() | 上に戻る | Page::buildForm()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Page::buildForm()

Page::buildForm() -- フォームを構築する

概要

require_once 'HTML/QuickForm/Page.php';

void HTML_QuickForm_Page::buildForm ()

説明

フォームを構築します。 HTML_QuickForm_Page のサブクラスでは、 このメソッドをオーバーライドする必要があります。その中では、 addElement(),、 applyFilter()、 addRule() そしておそらく setDefaults() および setConstants() をコールする必要があります。 このメソッドは、要求に応じて (on demand) コールされます。そのため、 このメソッドが一度だけしかコールされないようにするためには $_formBuilt プロパティを TRUE に設定するようにしましょう。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Page::addAction() | 上に戻る | Page::getButtonName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Page::getButtonName()

Page::getButtonName() -- 特定のアクションを起動する submit ボタンの名前を返す

概要

require_once 'HTML/QuickForm/Page.php';

string HTML_QuickForm_Page::getButtonName (string $actionName)

説明

特定のアクションを起動する submit ボタン (もしくは <input type="image"> コントロール) の名前を返します。これは以下のようなことを意味します。 buildForm() メソッド内で
$this->addElement('submit', $this->getButtonName('foo'), 'Foo');
のように使用し、このボタンを用いてフォームを送信した際には 'foo' ハンドラ ( addAction() で追加されたもの) がコールされるということです。

パラメータ

string $actionName

アクションの名前です。

返り値

returns submit ボタンの "name" 属性です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Page::buildForm() | 上に戻る | Page::handle()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Page::handle()

Page::handle() -- アクションを処理する

概要

require_once 'HTML/QuickForm/Page.php';

void HTML_QuickForm_Page::handle (string $actionName)

説明

このメソッドは単に、このアクション名で 登録された アクションオブジェクトの perform() メソッドをコールします。 アクションオブジェクトが登録されていなければ、 コントローラの handle() メソッドがコールされます。

パラメータ

string $actionName

アクションの名前です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Page::getButtonName() | 上に戻る | Page::isFormBuilt()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor HTML_QuickForm_Page()

constructor HTML_QuickForm_Page() -- クラスコンストラクタ

概要

require_once 'HTML/QuickForm/Page.php';

void constructor HTML_QuickForm_Page::HTML_QuickForm_Page (string $formName [, string $method = 'post' [, string $target = '_self' [, mixed $attributes = NULL]]])

説明

HTML_QuickForm のコンストラクタとは異なり、 $action が存在しないことに注意しましょう。 これは、フォームが常に現在のページから送信されるためです。 また、$formName が オプションではないことにも注意しましょう。

パラメータ

string $formName

フォーム名です。

string $method

フォームのメソッドです。

string $target

フォームのターゲットです。

mixed $attributes

フォームタグのためのその他の属性です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Page クラス概要 | 上に戻る | Page::addAction()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Page::isFormBuilt()

Page::isFormBuilt() -- フォームが既に構築されたかどうかをチェックする

概要

require_once 'HTML/QuickForm/Page.php';

bool HTML_QuickForm_Page::isFormBuilt ()

説明

これは、buildForm() を呼ぶ必要があるかどうかをチェックするために使用します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Page::handle() | 上に戻る | Page::loadValues()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Page::loadValues()

Page::loadValues() -- 送信された値を配列から読み込む

概要

require_once 'HTML/QuickForm/Page.php';

void HTML_QuickForm_Page::loadValues (array $values)

説明

このメソッドは、一般的な使用を想定したものでは「ありません」。 フォームの値を代入する際には、実際のリクエストデータではなく container を使用すべきです。

パラメータ

array $values

'submit' された値。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Page::isFormBuilt() | 上に戻る | Page::setDefaultAction()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Page::setDefaultAction()

Page::setDefaultAction() -- ページ内のフォームから起動されるデフォルトのアクションを設定する

概要

require_once 'HTML/QuickForm/Page.php';

void HTML_QuickForm_Page::setDefaultAction (string $actionName)

説明

ユーザが、送信ボタンを押さずに単に Enter キーを押した場合には アクション名がスクリプトに渡されません。そのため、 このメソッドが必要になります。

このメソッドは、特別な hidden 要素をフォームに追加します。 送信された値の中にアクション名が見つからなかった場合に Controller がこれを使用します。

パラメータ

string $actionName

デフォルトのアクション名。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Page::loadValues() | 上に戻る | HTML_QuickForm_Action クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- このパッケージを使用すると、何がうれしいのか

なぜ "Controller" なの?

このパッケージは、PageController デザインパターンを実装したものです。 これは、リクエストの受け取りと (受け取った GET データあるいは POST データに依存した) アクションの実行をひとつのページで行うことを意味します。 PageController パターンについては、 Martin Fowler のウェブサイト および WACT プロジェクトのウェブサイト でより詳しく説明されています。

QuickForm においてこれがどのような意味を持つかというと、 ひとつのスクリプト内で、リクエストの内容に応じて さまざまなフォームの表示や入力内容の検証を行うということです。 これにより、複数ページで構成される複雑なフォーム (ウィザードなどを思い浮かべでください) を ほんとうに簡単に作成できるようになります。

PageController パターンの最も基本的な実装は、以下のようになります。
switch ($_REQUEST['action']) {
    case 'foo':
        doFoo();
        break;
    case 'bar':
        doBar();
        break;
    default:
        echo 'Hello, world!';
}
HTML_QuickForm_Controller はこれより少しだけ複雑で、 3 つの基底クラスが存在します。

  • HTML_QuickForm_Controller: このクラスは、リクエストからアクション名を抽出して 適切なハンドラをコールします。ここには複数のページが含まれます。

  • HTML_QuickForm_Page: このクラス (HTML_QuickForm を継承しています) は、 フォームの各ページを表します。

  • HTML_QuickForm_Action: このクラスは、Command デザインパターン (つまり、オブジェクト指向のコールバック) を実装します。

リクエストで送信されるアクションは ページ名とアクション名で構成され、それによって どのページ (例: 画面表示・フォームの検証など) がリクエストを処理するか・ そのページが何を行うのか が決まります。

基本的な使用例

セッションの初期化 ページ間でのデータのやりとりの必要がないため、この例ではセッションを使用しません。 しかし、実際に複数ページのフォームを使用する際にはきっとセッションが必要となるでしょう。 HTML_QuickForm_Controller は、セッションを自動的には開始 しません。コントローラクラスのインスタンスを作成する前に、 session_start() を明示的にコールする必要があります。

このパッケージの機能について理解するため、 HTML_QuickForm チュートリアル の例を HTML_QuickForm_Controller で書き直してみましょう。

例 41-1基本的なコントローラの使用法

// コントローラを読み込みます
require_once 'HTML/QuickForm/Controller.php';
// 基底アクションクラスを読み込みます
// (これを継承したクラスをあとで作成します)
require_once 'HTML/QuickForm/Action.php';

// フォームを表すクラス
class FirstPage extends HTML_QuickForm_Page
{
    function buildForm()
    {
        $this->_formBuilt = true;

        // フォームに要素を追加します
        $this->addElement('header', null, 'QuickForm tutorial example');
        $this->addElement('text', 'name', 'Enter your name:', array('size' => 50, 'maxlength' => 255));
        // submit ボタンの名前を設定する方法に注意してください
        $this->addElement('submit', $this->getButtonName('submit'), 'Send');

        // フィルタと検証ルールを追加します
        $this->applyFilter('name', 'trim');
        $this->addRule('name', 'Please enter your name', 'required', null, 'client');

        $this->setDefaultAction('submit');
    }
}

// フォームを処理するアクション
class ActionProcess extends HTML_QuickForm_Action
{
    function perform(&$page, $actionName)
    {
        echo '<h1>Hello, ' . htmlspecialchars($page->exportValue('name')) . '!</h1>';
    }
}

$page =& new FirstPage('firstForm');

// 'process' ハンドラのみを追加します
// コントローラはこれをデフォルトとして使用します
$page->addAction('process', new ActionProcess());

// コントローラをインスタンス化します
$controller =& new HTML_QuickForm_Controller('tutorial');

// フォーム要素のデフォルト値を設定します
$controller->setDefaults(array(
    'name' => 'Joe User'
));

// コントローラにページを追加します
$controller->addPage($page);

// リクエストを処理します
$controller->run();

もとのコードより冗長になってしまっていると思われるかもしれません。 確かにそのとおりですが、3 ページからなるウィザード形式のフォームを 作成する場合のことを考えてみましょう。HTML_QuickForm_Controller を使用している場合は、 HTML_QuickForm_Page のサブクラスを 3 つ作成し、 HTML_QuickForm_Action に基づいた 'process' イベントのハンドラを作成して それらをコントローラに追加するだけですみます。 しかし、HTML_QuickForm_Controller を使用していない場合は 大量のプログラミングが必要となることでしょう。

独自のページを作成する

まず HTML_QuickForm_Page のサブクラスを作成し、 buildForm() メソッドをオーバーライドする必要があります。 (QuickForm になじみが深い方なら) その内容は見慣れているでしょうが、多少の例外があります。
$this->_formBuilt = true;
フォームの作成は "重たい" 処理です。そのため、 本当に必要な場合にのみ buildForm() をコールするようにします。この処理を 2 回コールする (そして要素のセットを 2 回取得する) ことを避けるためには $_formBuilt プロパティを設定します。

2 番目に注意すべき点は、以下の行です。
$this->addElement('submit', $this->getButtonName('submit'), 'Send');
getButtonName() メソッドを使用して送信ボタンの名前を指定し、 ボタンがクリックされた際に 'submit' アクションが実行されるようにしています。

3 番目は、以下の行です。
$this->setDefaultAction('submit');
フォームのボタンをクリックする以外にも、Enter キーを押すことで フォームを送信することができます。このような場合 ほとんどのブラウザでは特定の送信ボタンが押されたとは考えず、 そのためボタンの名前が送信されません。 setDefaultAction() で、このような場合にコールされるアクションを (フォームに特別な hidden フィールドを追加することで) 設定します。

独自のアクションを作成する

通常は、'process' および 'display' の 2 つのアクションについてのハンドラを作成する必要があります。 前者については、ここで説明することは困難です。というのも、 そのフォームで何をどのように処理すべきなのかを知っているのは あなた自身だけだからです。後者については、 HTML_QuickForm_Action_Display のサブクラスを作成してその _renderForm() メソッドをオーバーライドし、適切な レンダラ をコールして独自の出力を行えるようにする必要があります。

すべてをひとつにまとめる

次に、上で定義したページクラスのインスタンスを作成します。
$page =& new FirstPage('firstForm');
そして、そこに独自のアクションハンドラを追加します。
$page->addAction('process', new ActionProcess());
フォームの入力内容が有効だった場合は、 'submit' アクションのデフォルトハンドラとして 'process' アクションがコールされます。

それから、コントローラのインスタンスを作成します。
$controller =& new HTML_QuickForm_Controller('tutorial');
コントローラ名が必須パラメータであることに注意しましょう。 もしアプリケーション内で複数のコントローラを使用するのであれば、 それぞれ別の名前を指定する必要があります。なぜなら、 セッション内に値を保存する際にコントローラ名が使用されるからです。

それから、フォームのデフォルト値を設定してそれをページに追加します。
$controller->setDefaults(array(
    'name' => 'Joe User'
));
$controller->addPage($page);
この方法以外にも、buildForm() の中でページの setDefaults() をコールする方法もあります。しかし、前者のアプローチが すべてのフォームのデフォルト値を一度に指定できるのに対して、 後者の方法では特定のページについてしか設定できません。

最後に、コントローラの run() メソッドをコールします。
$controller->run();
これにより、現在のアクション名を取得して適切なハンドラがコールされます。 以上です。

高度な使用例

は、パッケージのアーカイブに含まれています。 上で説明した例と似たものに加えて、 さらに 2 つの複数ページフォームの例が含まれています。

  • ウィザード: フォームの各ページには 'Next' ボタンおよび 'Back' ボタンが含まれており、 現在のページの入力内容が有効でない限り次のページには進めません。

  • タブ形式のフォーム: フォームはいくつかのページで構成されており、 対応するページに直接ボタンで移動できます。 共通 'Submit' ボタンが押されたときにのみ 入力内容が検証されます。

前のページ | ホーム | 次のページ
HTML_QuickForm_Controller | 上に戻る | FAQ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_DHTMLRulesTableless

HTML_QuickForm_DHTMLRulesTableless は、HTML_QuickForm が作成するクライアント側の検証時の警告画面を、標準の JavaScript アラートウインドウから DHTML に置き換えるものです。 HTML_QuickForm_Renderer_Tableless レンダラ を利用する際に使用します。

HTML_QuickForm の標準的な機能 (クライアント側の検証時のエラーを "onSubmit" イベントで表示する) だけでなく、このパッケージでは "onBlur" イベントや "onChange" イベントでもエラーを表示させることができます (これを有効にする方法は、以下を参照ください)。

使用法

このパッケージを使用するには、単にこのようにすればいいだけです。

require_once 'HTML/QuickForm.php';
require_once 'HTML/QuickForm/DHTMLRulesTableless.php';
require_once 'HTML/QuickForm/Renderer/Tableless.php';

$form = new HTML_QuickForm_DHTMLRulesTableless(...);
$renderer = new HTML_QuickForm_Renderer_Tableless();

// ここに通常のコードを書きます。
// たとえばフォームのフィールドや規則など……。

$form->accept($renderer);
echo $renderer->toHtml();

先ほどテーブルレスレンダラのところで説明したように、 完全に妥当な XHTML コードを出力させるには以下の行を追加しなければなりません。

$form->removeAttribute('name');

注意 $form の使用方法は、標準の HTML_QuickForm パッケージと同じです。まったく違いはありません。

"onBlur" イベントや "onChange" イベントでの検証を有効にするには、 $form->accept($renderer); をコールする前に次の行を追加します。

$form->getValidationScript();
前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_Tableless | 上に戻る | HTML_Table

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_Tableless

HTML_QuickForm のデフォルトのレンダラを置き換えるパッケージです。 XHTML と CSS を用いた出力を行い、table タグは使用しません。 また、完全に妥当な XHTML を出力します。

導入

目次
導入 -- HTML_QuickForm_Renderer_Tableless の導入
FAQ -- よくある質問への回答

重要なメソッド

目次
HTML_QuickForm_Renderer_Tableless::addStopFieldsetElements() -- fieldset の最後をあらわす要素名を追加する (次のヘッダ要素が現れた際に、新しい fieldset が開始される)
HTML_QuickForm_Renderer_Tableless::clearAllTemplates() -- 要素などを囲むテンプレートから、すべての HTML を消去する
HTML_QuickForm_Renderer_Tableless::setElementTemplate() -- 要素のテンプレートを設定する
HTML_QuickForm_Renderer_Tableless::setCloseFieldsetTemplate() -- fieldset を閉じる際に使用するテンプレートを設定する
HTML_QuickForm_Renderer_Tableless::setFormTemplate() -- フォームのテンプレートを設定する
HTML_QuickForm_Renderer_Tableless::setGroupElementTemplate() -- グループ内要素の要素テンプレートを設定する
HTML_QuickForm_Renderer_Tableless::setGroupTemplate() -- グループをラップするテンプレートを設定する
HTML_QuickForm_Renderer_Tableless::setHeaderTemplate() -- ヘッダのテンプレートを設定する
HTML_QuickForm_Renderer_Tableless::setOpenFieldsetTemplate() -- fieldset を開く際に使用するテンプレートを設定する
HTML_QuickForm_Renderer_Tableless::setOpenHiddenFieldsetTemplate() -- 隠し fieldset (ヘッダ要素なしで開く fieldset) を開く際に使用するテンプレートを設定する
HTML_QuickForm_Renderer_Tableless::setRequiredNoteTemplate() -- 必須項目であることを示す文言を設定する
HTML_QuickForm_Renderer_Tableless::toHtml() -- フォーム用に生成した HTML を返す
前のページ | ホーム | 次のページ
HTML_QuickForm_Action_Submit クラス概要 | 上に戻る | HTML_QuickForm_DHTMLRulesTableless

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


FAQ

FAQ -- よくある質問への回答

説明

この文書は、PEAR general メーリングリスト やその他のメーリングリスト・掲示板に投稿された質問をもとにして作成されています。

HTML_QuickForm_Renderer_Tableless FAQ

1. 要素テンプレートの div タグが壊れています。 最後のクォートが抜けているようです。修正してもらえますか?
2. フォームの hidden 要素が div タグの内部に配置され、スタイル display: none が指定されている理由は?

1. 要素テンプレートの div タグが壊れています。 最後のクォートが抜けているようです。修正してもらえますか?

いいえ。抜けてしまっているわけではありませんし、 要素テンプレートを修正する必要もありません。

HTML_QuickForm_Renderer_Tableless を使用するには、HTML_QuickForm >= 3.2.6 がインストールされていなければなりません。 それ以前のバージョンでは要素テンプレートが正常に動作せず、 ふたつのエラーブロックがあらわれてしまいます。

PEAR インストーラを使用すると、将来このような問題が発生することを防げます。 インストーラが、パッケージ間の依存性をきちんと考慮してくれるからです。

2. フォームの hidden 要素が div タグの内部に配置され、スタイル display: none が指定されている理由は?

確かに不思議に感じるかもしれません。というのも、hidden 要素はもともと明らかに非表示のはずだからです。 このようにしている理由は、妥当な XHTML を作成するためです。

XHTML では、input 要素はブロック要素の内部でしか記述できません。 form はブロック要素ではありませんが div はブロック要素です。 そこで、このような記述をすることで、妥当な XHTML にしているのです。

前のページ | ホーム | 次のページ
導入 | 上に戻る | HTML_QuickForm_DHTMLRulesTableless

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_Tableless::addStopFieldsetElements

PEAR マニュアル
前のページ 次のページ

HTML_QuickForm_Renderer_Tableless::addStopFieldsetElements()

HTML_QuickForm_Renderer_Tableless::addStopFieldsetElements() -- fieldset の最後をあらわす要素名を追加する (次のヘッダ要素が現れた際に、新しい fieldset が開始される)

概要

void HTML_QuickForm_Renderer_Tableless::addStopFieldsetElements (mixed $element)

説明

fieldset の最後をあらわす要素名を追加します (次のヘッダ要素が現れた際に、新しい fieldset が開始されます)。

パラメータ

mixed $element

要素名 (文字列あるいは配列)。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_Tableless | 上に戻る | HTML_QuickForm_Renderer_Tableless::clearAllTemplates()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_Tableless::clearAllTemplates

PEAR マニュアル
前のページ 次のページ

HTML_QuickForm_Renderer_Tableless::clearAllTemplates()

HTML_QuickForm_Renderer_Tableless::clearAllTemplates() -- 要素などを囲むテンプレートから、すべての HTML を消去する

概要

void HTML_QuickForm_Renderer_tableless::clearAllTemplates ()

説明

addData() を使用して、まったく独自のフォームを作成したい場合に有用です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_Tableless::addStopFieldsetElements() | 上に戻る | HTML_QuickForm_Renderer_Tableless::setElementTemplate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_Tableless::setCloseFieldsetTemplate

PEAR マニュアル
前のページ 次のページ

HTML_QuickForm_Renderer_Tableless::setCloseFieldsetTemplate()

HTML_QuickForm_Renderer_Tableless::setCloseFieldsetTemplate() -- fieldset を閉じる際に使用するテンプレートを設定する

概要

void HTML_QuickForm_Renderer_Tableless::setCloseFieldsetTemplate (string $html)

説明

fieldset を閉じる際に使用するテンプレートを設定します。

パラメータ

string $html

fieldset を閉じる際に使用する HTML。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_Tableless::setElementTemplate() | 上に戻る | HTML_QuickForm_Renderer_Tableless::setFormTemplate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_Tableless::setElementTemplate

PEAR マニュアル
前のページ 次のページ

HTML_QuickForm_Renderer_Tableless::setElementTemplate()

HTML_QuickForm_Renderer_Tableless::setElementTemplate() -- 要素のテンプレートを設定する

概要

void HTML_QuickForm_Renderer_Tableless::setElementTemplate (string $html [, string $element = NULL])

説明

要素のテンプレートを設定します。

パラメータ

string $html

要素を囲む HTML。

string $element

(オプション) テンプレートを適用する要素の名前。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_Tableless::clearAllTemplates() | 上に戻る | HTML_QuickForm_Renderer_Tableless::setCloseFieldsetTemplate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_Tableless::setFormTemplate

PEAR マニュアル
前のページ 次のページ

HTML_QuickForm_Renderer_Tableless::setFormTemplate()

HTML_QuickForm_Renderer_Tableless::setFormTemplate() -- フォームのテンプレートを設定する

概要

void HTML_QuickForm_Renderer_Tableless::setFormTemplate (string $html)

説明

フォームのテンプレートを設定します。

パラメータ

string $html

フォームタグを囲む HTML。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_Tableless::setCloseFieldsetTemplate() | 上に戻る | HTML_QuickForm_Renderer_Tableless::setGroupElementTemplate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_Tableless::setGroupElementTemplate

PEAR マニュアル
前のページ 次のページ

HTML_QuickForm_Renderer_Tableless::setGroupElementTemplate()

HTML_QuickForm_Renderer_Tableless::setGroupElementTemplate() -- グループ内要素の要素テンプレートを設定する

概要

void HTML_QuickForm_Renderer_tableless::setGroupElementTemplate (string $html, string $group)

説明

グループ内要素の要素テンプレートを設定します。

パラメータ

string $html

要素を囲む HTML。

string $group

テンプレートを適用するグループの名前。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_Tableless::setFormTemplate() | 上に戻る | HTML_QuickForm_Renderer_Tableless::setGroupTemplate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_Tableless::setGroupTemplate

PEAR マニュアル
前のページ 次のページ

HTML_QuickForm_Renderer_Tableless::setGroupTemplate()

HTML_QuickForm_Renderer_Tableless::setGroupTemplate() -- グループをラップするテンプレートを設定する

概要

void HTML_QuickForm_Renderer_Tableless::setGroupTemplate (string $html, string $group)

説明

このテンプレートは、setTemplate() で指定する、 グループを要素として扱うテンプレートの中に含まれます。 また、このテンプレートの内部には、setGroupElementTemplate() で指定するグループ内要素のテンプレートが含まれます。

パラメータ

string $html

グループ要素を囲む HTML。

string $group

テンプレートを適用するグループの名前。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_Tableless::setGroupElementTemplate() | 上に戻る | HTML_QuickForm_Renderer_Tableless::setHeaderTemplate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_Tableless::setHeaderTemplate

PEAR マニュアル
前のページ 次のページ

HTML_QuickForm_Renderer_Tableless::setHeaderTemplate()

HTML_QuickForm_Renderer_Tableless::setHeaderTemplate() -- ヘッダのテンプレートを設定する

概要

void HTML_QuickForm_Renderer_Tableless::setHeaderTemplate (string $html)

説明

ヘッダのテンプレートを設定します。

パラメータ

string $html

ヘッダを囲む HTML。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_Tableless::setGroupTemplate() | 上に戻る | HTML_QuickForm_Renderer_Tableless::setOpenFieldsetTemplate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_Tableless::setOpenFieldsetTemplate

PEAR マニュアル
前のページ 次のページ

HTML_QuickForm_Renderer_Tableless::setOpenFieldsetTemplate()

HTML_QuickForm_Renderer_Tableless::setOpenFieldsetTemplate() -- fieldset を開く際に使用するテンプレートを設定する

概要

void HTML_QuickForm_Renderer_Tableless::setOpenFieldsetTemplate (string $html)

説明

fieldset を開く際に使用するテンプレートを設定します。

パラメータ

string $html

fieldset を開く際に使用する HTML。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_Tableless::setHeaderTemplate() | 上に戻る | HTML_QuickForm_Renderer_Tableless::setOpenHiddenFieldsetTemplate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_Tableless::setOpenHiddenFieldsetTemplate

PEAR マニュアル
前のページ 次のページ

HTML_QuickForm_Renderer_Tableless::setOpenHiddenFieldsetTemplate()

HTML_QuickForm_Renderer_Tableless::setOpenHiddenFieldsetTemplate() -- 隠し fieldset (ヘッダ要素なしで開く fieldset) を開く際に使用するテンプレートを設定する

概要

void HTML_QuickForm_Renderer_Tableless::setOpenHiddenFieldsetTemplate (string $html)

説明

隠し fieldset (ヘッダ要素なしで開く fieldset) を開く際に使用するテンプレートを設定します。

パラメータ

string $html

隠し fieldset を開く際に使用する HTML。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_Tableless::setOpenFieldsetTemplate() | 上に戻る | HTML_QuickForm_Renderer_Tableless::setRequiredNoteTemplate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_Tableless::setRequiredNoteTemplate

PEAR マニュアル
前のページ 次のページ

HTML_QuickForm_Renderer_Tableless::setRequiredNoteTemplate()

HTML_QuickForm_Renderer_Tableless::setRequiredNoteTemplate() -- 必須項目であることを示す文言を設定する

概要

void HTML_QuickForm_Renderer_Tableless::setRequiredNoteTemplate (string $html)

説明

必須項目であることを示す文言を設定します。

パラメータ

string $html

必須項目をあらわす文章を囲む HTML。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_Tableless::setOpenHiddenFieldsetTemplate() | 上に戻る | HTML_QuickForm_Renderer_Tableless::toHtml()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_Tableless::toHtml

PEAR マニュアル
前のページ 次のページ

HTML_QuickForm_Renderer_Tableless::toHtml()

HTML_QuickForm_Renderer_Tableless::toHtml() -- フォーム用に生成した HTML を返す

概要

string HTML_QuickForm_Renderer_Tableless::toHtml ()

説明

フォーム用に生成した HTML を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_Tableless::setRequiredNoteTemplate() | 上に戻る | HTML_QuickForm_DHTMLRulesTableless

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- HTML_QuickForm_Renderer_Tableless の導入

概要

HTML_QuickForm_Renderer_Tableless は、HTML_QuickForm のデフォルトのレンダラを置き換えるものです。目標は次の二点です。

アクセシビリティ: table タグを廃止してその代わりに label タグの for 属性やフォーム要素タグの id 属性を用いることで、 出力結果はアクセシビリティの高いものになります。 体の不自由な方はスクリーンリーダを使用されることもあるでしょうし、 そうでない人にとっても、ラベルをクリックすることで、 関連するフォーム要素にフォーカスを移動させられるという利点があります。

妥当性: このレンダラが生成する出力は、妥当な XHTML 1.1 形式となります。

使用法

このレンダラを使用するには、スタイルシートをコピーし (そして必要に応じて書き換え)、そして次のように書くだけです。

require_once 'HTML/QuickForm.php';
require_once 'HTML/QuickForm/Renderer/Tableless.php';

$form =& new HTML_QuickForm();
$renderer =& new HTML_QuickForm_Renderer_Tableless();

// ここに通常のコードを書きます。
// たとえばフォームのフィールドや規則など……。

$form->accept($renderer);
echo $renderer->toHtml();

完全に妥当な XHTML を生成させるには、次の行をコードに追加する必要があります。

$form->removeAttribute('name');
前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_Tableless | 上に戻る | FAQ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_advcheckbox クラス概要

HTML_QuickForm_advcheckbox クラス概要 -- アドバンスドチェックボックス型のフィールドのための HTML クラス

説明

アドバンスドチェックボックス型のフィールドのための HTML クラスです。 基本的に、これは「チェックボックスではひとつの値 (チェックされているチェックボックスの値) しか渡せない」 という HTML の問題点を解決するものです。 チェックボックスがチェックされていない場合にはその値を渡すことができません。 そのため、未チェック状態で送信すると、そのチェックボックスの値が 存在しないことになってしまいます。

ここでは、まず指定された名前の hidden フィールドおよび名前のないチェックボックスを作成します。 そしてチェックボックスの onclick で、javascript によって hidden フィールドの値を設定します。

HTML_QuickForm_advcheckbox のクラス階層

  • HTML_Common

    • HTML_QuickForm_element

      • HTML_QuickForm_input

        • HTML_QuickForm_checkbox

          • HTML_QuickForm_advcheckbox

HTML_QuickForm_advcheckbox が継承しているメソッド

表 41-1HTML_QuickForm_checkbox から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_checkbox::HTML_QuickForm_checkbox() | クラスのコンストラクタ
HTML_QuickForm_checkbox::exportValue() | チェックボックスがチェックされている場合に true、チェックされていない場合に null を返す (getValue() は false を返す)
HTML_QuickForm_checkbox::getChecked() | チェックボックスがチェックされているかどうかを返す
HTML_QuickForm_checkbox::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_checkbox::getText() | チェックボックスのテキストを返す
HTML_QuickForm_checkbox::getValue() | フォーム要素の値を返す
HTML_QuickForm_checkbox::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_checkbox::setChecked() | チェックボックスがチェックされているかどうかを設定する
HTML_QuickForm_checkbox::setText() | チェックボックスのテキストを設定する
HTML_QuickForm_checkbox::setValue() | フォーム要素の値を設定する

表 41-2HTML_QuickForm_input から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_input::HTML_QuickForm_input() | クラスのコンストラクタ
HTML_QuickForm_input::exportValue() | ボタン要素 (submit を除く) やファイル要素の値を取得する必要はない
HTML_QuickForm_input::getName() | 要素名を返す
HTML_QuickForm_input::getValue() | フォーム要素の値を返す
HTML_QuickForm_input::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_input::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_input::setType() | 要素の型を設定する
HTML_QuickForm_input::setValue() | フォーム要素の値を設定する

表 41-3HTML_QuickForm_element から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_element::HTML_QuickForm_element() | クラスのコンストラクタ
HTML_QuickForm_element::accept() | レンダラを受け入れる
HTML_QuickForm_element::apiVersion() | 現在の API のバージョンを返す
HTML_QuickForm_element::exportValue() | '安全な' 要素の値を返す
HTML_QuickForm_element::freeze() | 要素を凍結し、その値のみを返す
HTML_QuickForm_element::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_element::getLabel() | 要素の表示テキストを返す
HTML_QuickForm_element::getName() | 要素名を返す
HTML_QuickForm_element::getType() | 要素の型を返す
HTML_QuickForm_element::getValue() | フォーム要素の値を返す
HTML_QuickForm_element::isFrozen() | 要素が凍結されているかどうかを返す
HTML_QuickForm_element::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_element::setLabel() | 要素の表示テキストを設定する
HTML_QuickForm_element::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_element::setPersistantFreeze() | 要素の値を、それが凍結されているかどうかにかかわらず hidden フィールドに保持し続けるかどうかを設定する
HTML_QuickForm_element::setValue() | フォーム要素の値を設定する
HTML_QuickForm_element::unfreeze() | フォーム要素の凍結を解除する

前のページ | ホーム | 次のページ
HTML_QuickForm | 上に戻る | コンストラクタ HTML_QuickForm_advcheckbox()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_advcheckbox::getOnclickJs()

HTML_QuickForm_advcheckbox::getOnclickJs() -- onclick イベント用の javascript を作成する

概要

require_once 'HTML/QuickForm/advcheckbox.php';

string HTML_QuickForm_advcheckbox::getOnclickJs (string $elementName)

説明

onclick イベント用の javascript を作成します。これは、hidden フィールドの値を設定します。

パラメータ

string $elementName

要素名。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
コンストラクタ HTML_QuickForm_advcheckbox() | 上に戻る | HTML_QuickForm_advcheckbox::getPrivateName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_advcheckbox::getPrivateName()

HTML_QuickForm_advcheckbox::getPrivateName() -- 要素のプライベート名を取得する

概要

require_once 'HTML/QuickForm/advcheckbox.php';

string HTML_QuickForm_advcheckbox::getPrivateName (string $elementName)

説明

これは、実際のチェックボックスに使用される名前です。

パラメータ

string $elementName

内部で使用する要素名。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_advcheckbox::getOnclickJs() | 上に戻る | HTML_QuickForm_advcheckbox::setValues()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ HTML_QuickForm_advcheckbox()

コンストラクタ HTML_QuickForm_advcheckbox() -- クラスのコンストラクタ

概要

require_once 'HTML/QuickForm/advcheckbox.php';

void constructor HTML_QuickForm_advcheckbox::HTML_QuickForm_advcheckbox ([string $elementName = NULL [, string $elementLabel = NULL [, string $text = NULL [, mixed $attributes = NULL [, mixed $values = NULL]]]]])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $elementName

(オプション) Input フィールドの name 属性。

string $elementLabel

(オプション) Input フィールドのラベル。

string $text

(オプション) チェックボックスの後に表示するテキスト。

mixed $attributes

(オプション) 典型的な HTML 属性の文字列あるいは連想配列。

mixed $values

(オプション) チェックされているかどうかを渡す値。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_advcheckbox クラス概要 | 上に戻る | HTML_QuickForm_advcheckbox::getOnclickJs()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_advcheckbox::setValues()

HTML_QuickForm_advcheckbox::setValues() -- hidden 要素で使用する値を設定する

概要

require_once 'HTML/QuickForm/advcheckbox.php';

void HTML_QuickForm_advcheckbox::setValues (mixed $values)

説明

$values が文字列の場合は、 チェックされた状態を表すためにその文字列を使用します。 配列の場合は、チェックされていない状態を $values[0]、 チェックされた状態を $values[1] で表すようにします。

パラメータ

mixed $values

使用する値。文字列あるいは配列で設定します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_advcheckbox::getPrivateName() | 上に戻る | HTML_QuickForm_autocomplete クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_autocomplete クラス概要

HTML_QuickForm_autocomplete クラス概要 -- 自動補完機能つきのテキストフィールドのための HTML クラス

説明

この要素は通常の HTML 入力テキスト要素と似ています。 キーが押されたときの javascript イベントでオプション配列の内容を検索し、 その中に一致するものがあれば、テキストが自動補完されます。 これは、ブラウザのアドレス欄に URL を入力する際の挙動と同じようなものです。

HTML_QuickForm_autocomplete のクラス階層

  • HTML_Common

    • HTML_QuickForm_element

      • HTML_QuickForm_input

        • HTML_QuickForm_text

          • HTML_QuickForm_text

HTML_QuickForm_autocomplete が継承しているメソッド

表 41-1HTML_QuickForm_text から継承したもの

メソッド名 | 概要
HTML_QuickForm_text::HTML_QuickForm_text() | クラスのコンストラクタ
HTML_QuickForm_text::setMaxLength() | テキストフィールドの最大長を設定する
HTML_QuickForm_text::setSize() | テキストフィールドの大きさを設定する

表 41-2HTML_QuickForm_input から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_input::HTML_QuickForm_input() | クラスのコンストラクタ
HTML_QuickForm_input::exportValue() | (submit 以外の) ボタン型や file 要素からは値を取得する必要はない
HTML_QuickForm_input::getName() | 要素名を返す
HTML_QuickForm_input::getValue() | フォーム要素の値を返す
HTML_QuickForm_input::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_input::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_input::setType() | 要素の型を設定する
HTML_QuickForm_input::setValue() | フォーム要素の値を設定する

表 41-3HTML_QuickForm_element から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_element::HTML_QuickForm_element() | クラスのコンストラクタ
HTML_QuickForm_element::accept() | レンダラを受け入れる
HTML_QuickForm_element::apiVersion() | 現在の API のバージョンを返す
HTML_QuickForm_element::exportValue() | '安全な' 要素の値を返す
HTML_QuickForm_element::freeze() | 要素を凍結し、その値のみを返す
HTML_QuickForm_element::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_element::getLabel() | 要素の表示テキストを返す
HTML_QuickForm_element::getName() | 要素名を返す
HTML_QuickForm_element::getType() | 要素の型を返す
HTML_QuickForm_element::getValue() | フォーム要素の値を返す
HTML_QuickForm_element::isFrozen() | 要素が凍結されているかどうかを返す
HTML_QuickForm_element::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_element::setLabel() | 要素の表示テキストを設定する
HTML_QuickForm_element::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_element::setPersistantFreeze() | 要素の値を、それが凍結されているかどうかにかかわらず hidden フィールドに保持し続けるかどうかを設定する
HTML_QuickForm_element::setValue() | フォーム要素の値を設定する
HTML_QuickForm_element::unfreeze() | フォーム要素の凍結を解除する

前のページ | ホーム | 次のページ
HTML_QuickForm_advcheckbox::setValues() | 上に戻る | コンストラクタ HTML_QuickForm_autocomplete

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ HTML_QuickForm_autocomplete

コンストラクタ HTML_QuickForm_autocomplete -- クラスのコンストラクタ

概要

require_once 'HTML/QuickForm/autocomplete.php';

void constructor HTML_QuickForm_autocomplete::HTML_QuickForm_autocomplete ([string $elementName = NULL [, string $elementLabel = NULL [, array $options = NULL [, mixed $attributes = NULL]]]])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $elementName

(オプション) Input フィールドの name 属性。

string $elementLabel

(オプション) Input フィールドのラベル。

array $options

自動補完のオプション。

mixed $attributes

(オプション) 典型的な HTML 属性の文字列あるいは連想配列。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_autocomplete クラス概要 | 上に戻る | HTML_QuickForm_autocomplete::setoptions()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_autocomplete::setoptions()

HTML_QuickForm_autocomplete::setoptions() -- テキスト入力要素の自動補完のためのオプションを設定する

概要

require_once 'HTML/QuickForm/autocomplete.php';

void HTML_QuickForm_autocomplete::setOptions (array $options)

説明

この配列の中の文字列が javascript 関数によってチェックされ、 入力されたテキストに一致するかどうかが調べられます。 テキストに一致するものがあった場合は、それが自動補完されます。

パラメータ

array $options

テキスト入力要素の自動補完用オプションの配列。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
コンストラクタ HTML_QuickForm_autocomplete | 上に戻る | HTML_QuickForm_date クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_button クラス概要

HTML_QuickForm_button クラス概要 -- button 型の要素のための HTML クラス

説明

このパッケージに関する文書は、未作成です。

HTML_QuickForm_button のクラス階層

  • HTML_Common

    • HTML_QuickForm_element

      • HTML_QuickForm_input

        • HTML_QuickForm_button

HTML_QuickForm_button が継承するメソッド

表 41-1HTML_QuickForm_input から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_input::HTML_QuickForm_input() | クラスのコンストラクタ
HTML_QuickForm_input::exportValue() | ボタン要素 (submit を除く) やファイル要素の値を取得する必要はない
HTML_QuickForm_input::getName() | 要素名を返す
HTML_QuickForm_input::getValue() | フォーム要素の値を返す
HTML_QuickForm_input::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_input::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_input::setType() | 要素の型を設定する
HTML_QuickForm_input::setValue() | フォーム要素の値を設定する

表 41-2HTML_QuickForm_element から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_element::HTML_QuickForm_element() | クラスのコンストラクタ
HTML_QuickForm_element::accept() | レンダラを受け入れる
HTML_QuickForm_element::apiVersion() | 現在の API のバージョンを返す
HTML_QuickForm_element::exportValue() | '安全な' 要素の値を返す
HTML_QuickForm_element::freeze() | 要素を凍結し、その値のみを返す
HTML_QuickForm_element::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_element::getLabel() | 要素の表示テキストを返す
HTML_QuickForm_element::getName() | 要素名を返す
HTML_QuickForm_element::getType() | 要素の型を返す
HTML_QuickForm_element::getValue() | フォーム要素の値を返す
HTML_QuickForm_element::isFrozen() | 要素が凍結されているかどうかを返す
HTML_QuickForm_element::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_element::setLabel() | 要素の表示テキストを設定する
HTML_QuickForm_element::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_element::setPersistantFreeze() | 要素の値を、それが凍結されているかどうかにかかわらず hidden フィールドに保持し続けるかどうかを設定する
HTML_QuickForm_element::setValue() | フォーム要素の値を設定する
HTML_QuickForm_element::unfreeze() | フォーム要素の凍結を解除する

前のページ | ホーム | 次のページ
HTML_QuickForm | 上に戻る | コンストラクタ HTML_QuickForm_button()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ HTML_QuickForm_button()

コンストラクタ HTML_QuickForm_button() -- クラスのコンストラクタ

概要

require_once 'HTML/QuickForm/button.php';

void constructor HTML_QuickForm_button::HTML_QuickForm_button ([string $elementName = NULL [, string $value = NULL [, mixed $attributes = NULL]]])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $elementName

(オプション) Input フィールドの name 属性。

string $value

(オプション) Input フィールドの値。

mixed $attributes

(オプション) 典型的な HTML 属性の文字列あるいは連想配列。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_button クラス概要 | 上に戻る | HTML_QuickForm_checkbox クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_checkbox クラス概要

HTML_QuickForm_checkbox クラス概要 -- checkbox 型のフィールドのための HTML クラス

説明

このパッケージに関する文書は、未作成です。

HTML_QuickForm_checkbox のクラス階層

  • HTML_Common

    • HTML_QuickForm_element

      • HTML_QuickForm_input

        • HTML_QuickForm_checkbox

表 41-1HTML_QuickForm_checkbox を継承するクラス

クラス | 概要
HTML_QuickForm_advcheckbox | advanced checkbox 型のフィールドのための HTML クラス

HTML_QuickForm_checkbox が継承しているメソッド

表 41-2HTML_QuickForm_input から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_input::HTML_QuickForm_input() | クラスのコンストラクタ
HTML_QuickForm_input::exportValue() | ボタン要素 (submit を除く) やファイル要素の値を取得する必要はない
HTML_QuickForm_input::getName() | 要素名を返す
HTML_QuickForm_input::getValue() | フォーム要素の値を返す
HTML_QuickForm_input::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_input::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_input::setType() | 要素の型を設定する
HTML_QuickForm_input::setValue() | フォーム要素の値を設定する

表 41-3HTML_QuickForm_element から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_element::HTML_QuickForm_element() | クラスのコンストラクタ
HTML_QuickForm_element::accept() | レンダラを受け入れる
HTML_QuickForm_element::apiVersion() | 現在の API のバージョンを返す
HTML_QuickForm_element::exportValue() | '安全な' 要素の値を返す
HTML_QuickForm_element::freeze() | 要素を凍結し、その値のみを返す
HTML_QuickForm_element::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_element::getLabel() | 要素の表示テキストを返す
HTML_QuickForm_element::getName() | 要素名を返す
HTML_QuickForm_element::getType() | 要素の型を返す
HTML_QuickForm_element::getValue() | フォーム要素の値を返す
HTML_QuickForm_element::isFrozen() | 要素が凍結されているかどうかを返す
HTML_QuickForm_element::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_element::setLabel() | 要素の表示テキストを設定する
HTML_QuickForm_element::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_element::setPersistantFreeze() | 要素の値を、それが凍結されているかどうかにかかわらず hidden フィールドに保持し続けるかどうかを設定する
HTML_QuickForm_element::setValue() | フォーム要素の値を設定する
HTML_QuickForm_element::unfreeze() | フォーム要素の凍結を解除する

前のページ | ホーム | 次のページ
コンストラクタ HTML_QuickForm_button() | 上に戻る | コンストラクタ HTML_QuickForm_checkbox()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_checkbox::getChecked()

HTML_QuickForm_checkbox::getChecked() -- チェックボックスがチェックされているかどうかを返す

概要

require_once 'HTML/QuickForm/checkbox.php';

bool HTML_QuickForm_checkbox::getChecked ()

説明

チェックボックスに "checked" 属性が設定されている場合に TRUE、 それ以外の場合に FALSE を返します。 getValue() は、このメソッドのエイリアスです。 したがって、QuickForm においてチェックボックスが保持できる値は TRUE のみです。

例外・エラー

例外はスローされません。

参照

setChecked() も参照ください。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
コンストラクタ HTML_QuickForm_checkbox() | 上に戻る | HTML_QuickForm_checkbox::getText()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_checkbox::getText()

HTML_QuickForm_checkbox::getText() -- チェックボックスのテキストを返す

概要

require_once 'HTML/QuickForm/checkbox.php';

string HTML_QuickForm_checkbox::getText ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

参照

setText() も参照ください。

注意

since 1.1

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_checkbox::getChecked() | 上に戻る | HTML_QuickForm_checkbox::setChecked()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ HTML_QuickForm_checkbox()

コンストラクタ HTML_QuickForm_checkbox() -- クラスのコンストラクタ

概要

require_once 'HTML/QuickForm/checkbox.php';

void constructor HTML_QuickForm_checkbox::HTML_QuickForm_checkbox ([string $elementName = NULL [, string $elementLabel = NULL [, string $text = '' [, mixed $attributes = NULL]]]])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $elementName

(オプション) Input フィールドの name 属性。

string $elementLabel

(オプション) Input フィールドのラベル。

string $text

(オプション) チェックボックスの表示テキスト。

mixed $attributes

(オプション) 典型的な HTML 属性の文字列あるいは連想配列。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_checkbox クラス概要 | 上に戻る | HTML_QuickForm_checkbox::getChecked()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_checkbox::setChecked()

HTML_QuickForm_checkbox::setChecked() -- チェックボックスがチェックされているかどうかを設定する

概要

require_once 'HTML/QuickForm/checkbox.php';

void HTML_QuickForm_checkbox::setChecked (bool $checked)

説明

これは、$checked の値に基づいて 要素の "checked" 属性を設定または削除します。 setValue() は、このメソッドのエイリアスです。

パラメータ

boolean $checked

フィールドがチェックされているかどうか。

例外・エラー

例外はスローされません。

参照

getChecked() も参照ください。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_checkbox::getText() | 上に戻る | HTML_QuickForm_checkbox::setText()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_checkbox::setText()

HTML_QuickForm_checkbox::setText() -- チェックボックスのテキストを設定する

概要

require_once 'HTML/QuickForm/checkbox.php';

void HTML_QuickForm_checkbox::setText (string $text)

説明

これはチェックボックスとともに表示されるテキストのことを意味し、 自動的に <label> タグで囲まれます。 QuickForm で言うところのラベルを設定するには、setLabel() を使用します。

パラメータ

string $text

例外・エラー

例外はスローされません。

参照

getText() も参照ください。

注意

since 1.1

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_checkbox::setChecked() | 上に戻る | HTML_QuickForm_file クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_date クラス概要

HTML_QuickForm_date クラス概要 -- 日付 (および時刻) の入力に使用する要素グループのためのクラス

説明

この要素は日付および時刻を入力するためのもので、基本的には <select> のグループです。

HTML_QuickForm_date のクラス階層

  • HTML_Common

    • HTML_QuickForm_element

      • HTML_QuickForm_group

        • HTML_QuickForm_date

HTML_QuickForm_date が継承しているメソッド

表 41-1HTML_QuickForm_group から継承したもの

メソッド名 | 概要
コンストラクタHTML_QuickForm_group::HTML_QuickForm_group() | クラスのコンストラクタ
HTML_QuickForm_group::accept() | レンダラを受け入れる
HTML_QuickForm_group::exportValue() | 通常は、グループの値を取得するには個々の要素に対してアクセスする
HTML_QuickForm_group::getElementName() | html フォーム中に見られる、グループ内の要素名を返す
HTML_QuickForm_group::getElements() | グループ化された要素群を取得する
HTML_QuickForm_group::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_group::getGroupType() | グループ内の要素の型を取得する。複数の型の要素から構成されている場合は 'mixed' を返す
HTML_QuickForm_group::getName() | グループ名を返す
HTML_QuickForm_group::getValue() | グループの値を返す
HTML_QuickForm_group::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_group::setElements() | グループ化された要素群を設定する
HTML_QuickForm_group::setName() | グループ名を設定する
HTML_QuickForm_group::setValue() | グループの要素の値を設定する

表 41-2HTML_QuickForm_element から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_element::HTML_QuickForm_element() | クラスのコンストラクタ
HTML_QuickForm_element::accept() | レンダラを受け入れる
HTML_QuickForm_element::apiVersion() | 現在の API のバージョンを返す
HTML_QuickForm_element::exportValue() | '安全な' 要素の値を返す
HTML_QuickForm_element::freeze() | 要素を凍結し、その値のみを返す
HTML_QuickForm_element::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_element::getLabel() | 要素の表示テキストを返す
HTML_QuickForm_element::getName() | 要素名を返す
HTML_QuickForm_element::getType() | 要素の型を返す
HTML_QuickForm_element::getValue() | フォーム要素の値を返す
HTML_QuickForm_element::isFrozen() | 要素が凍結されているかどうかを返す
HTML_QuickForm_element::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_element::setLabel() | 要素の表示テキストを設定する
HTML_QuickForm_element::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_element::setPersistantFreeze() | 要素の値を、それが凍結されているかどうかにかかわらず hidden フィールドに保持し続けるかどうかを設定する
HTML_QuickForm_element::setValue() | フォーム要素の値を設定する
HTML_QuickForm_element::unfreeze() | フォーム要素の凍結を解除する

前のページ | ホーム | 次のページ
HTML_QuickForm_autocomplete::setoptions() | 上に戻る | コンストラクタ HTML_QuickForm_date()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ HTML_QuickForm_date()

コンストラクタ HTML_QuickForm_date() -- クラスのコンストラクタ

概要

require_once 'HTML/QuickForm/date.php';

void constructor HTML_QuickForm_date::HTML_QuickForm_date ([string $elementName = NULL [, mixed $elementLabel = NULL [, array $options = array() [, mixed $attributes = NULL]]]])

説明

$options パラメータで、要素の見た目を制御します。 これは、'オプション名' => 'オプションの値' という形式の連想配列となります。

使用可能なオプション名

'language'

表示に使用する言語コード。 デフォルトは 'en'。

date 要素では多くの言語をサポートしています。 もしあなたの使用している言語がサポートされていない場合は、 我々に翻訳を送っていただければ取り入れさせていただきます。

'format'

PHP の date() 関数に基づいた日付書式指定文字列。以下の文字を認識します。
D => Short names of days
l => Long names of days
d => Day numbers
M => Short names of months
F => Long names of months
m => Month numbers
Y => Four digit year
y => Two digit year
h => 12 hour format
H => 23 hour  format
i => Minutes
s => Seconds
a => am/pm
A => AM/PM
g => 12 hour format w/o leading zeroes
W => week of the year
デフォルトは 'dMY' です。

'minYear'

年の選択肢の最小値。デフォルトは 2001 です。

'maxYear'

年の選択肢の最大値。デフォルトは 2010 です。

'minYear' および 'maxYear' について 'minYear' > 'maxYear' の場合は、年の選択肢が逆順に表示されます。

'addEmptyOption'

各選択肢の最初に空の要素を追加するかどうか。デフォルトは FALSE です。 array('format char' => TRUE, ..., 'another format char' => FALSE) 形式の配列を渡した場合は、個々のフィールドに対しても設定されます。

'emptyOptionValue'

空の要素を選択した際に渡される値。デフォルトは '' です。

'emptyOptionText'

空の要素の表示テキスト。デフォルトは '&nbsp;' です。 array('format char' => 'some text', ..., 'another format char' => 'some other text') 形式の配列を渡した場合は、個々のフィールドに対しても設定されます。

'optionIncrement'

オプションの値の増加幅。現在使用可能な書式は 'i' および 's' で、 デフォルトは array('i' => 1, 's' => 1) です。

パラメータ

string $elementName

要素の名前。

mixed $elementLabel

要素のラベル。

array $options

要素の表示内容を制御するオプション。

mixed $attributes

典型的な HTML 属性の文字列あるいは連想配列。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_date クラス概要 | 上に戻る | HTML_QuickForm_header クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_element クラス概要

HTML_QuickForm_element クラス概要 -- フォーム要素の基底クラス

説明

これは、すべての QuickForm 要素の基底クラスです。 実際のフォーム要素を表すすべての子クラスによって実装される API を定義します。実際にはこれらの子クラスを使用すべきで、 直接 HTML_QuickForm_element のインスタンスを作成する必要はありません。

QuickForm で使用するための独自の要素を作成したい場合は、 このクラスあるいはその子孫クラスのひとつを継承する必要があります。 その際に、ここで定義されているすべてのメソッドを実装するようにしましょう。 それに加えて、HTML_Common で定義されている toHtml() メソッドも実装しなければなりません。

HTML_QuickForm_element クラス階層

  • HTML_Common

    • HTML_QuickForm_element

表 41-1HTML_QuickForm_element を継承するクラス

クラス | 概要
HTML_QuickForm_group | フォーム要素グループのための HTML クラス
HTML_QuickForm_input | フォーム入力要素のための基底クラス
HTML_QuickForm_select | HTML SELECT を動的に作成するためのクラス
HTML_QuickForm_static | 静的データのための HTML クラス
HTML_QuickForm_textarea | テキストエリア型のフィールドのための HTML クラス

前のページ | ホーム | 次のページ
HTML_QuickForm | 上に戻る | コンストラクタ HTML_QuickForm_element()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_element::accept()

HTML_QuickForm_element::accept() -- レンダラを受け入れる

概要

require_once 'HTML/QuickForm/element.php';

void HTML_QuickForm_element::accept (object HTML_QuickForm_Renderer &$renderer [, bool $required = FALSE [, string $error = NULL]])

説明

このメソッドを直接コールすることは、まずありません。通常は HTML_QuickForm::accept() メソッドの中からコールされます。

パラメータ

object HTML_QuickForm_Renderer &$renderer

HTML_QuickForm_Renderer のサブクラスのインスタンス。

boolean $required

要素が必須であるかどうか。

string $error

要素に関連付けられたエラーメッセージ。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
コンストラクタ HTML_QuickForm_element() | 上に戻る | HTML_QuickForm_element::apiVersion()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_element::apiVersion()

HTML_QuickForm_element::apiVersion() -- API のバージョンを返す

概要

require_once 'HTML/QuickForm/element.php';

float HTML_QuickForm_element::apiVersion ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_element::accept() | 上に戻る | HTML_QuickForm_element::exportValue()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_element::exportValue()

HTML_QuickForm_element::exportValue() -- '安全な' 要素の値を返す （パッケージ開発者用）

概要

require_once 'HTML/QuickForm/element.php';

mixed HTML_QuickForm_element::exportValue (array &$submitValues [, bool $assoc = FALSE])

説明

このメソッドは、直接コールされることを想定していません。 HTML_QuickForm::exportValue() および HTML_QuickForm::exportValues() メソッドからコールされます。

このメソッドは、渡された配列の中からまず自分自身の値を見つけようとします。 見つからなかった場合は、 getValue() を使用して値を取得します。 その後、この要素から正しく送信できないであろう値をフィルタリングした上で結果を返します。

パラメータ

array &$submitValues

送信された値の配列。

boolean $assoc

結果を連想配列で返すかどうか。

例外・エラー

例外はスローされません。

参照

getValue()、
HTML_QuickForm::exportValue()、
HTML_QuickForm::exportValues()
も参照ください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_element::apiVersion() | 上に戻る | HTML_QuickForm_element::freeze()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_element::freeze()

HTML_QuickForm_element::freeze() -- 要素を凍結する

概要

require_once 'HTML/QuickForm/element.php';

void HTML_QuickForm_element::freeze ()

説明

freeze() をコールした後に要素を表示すると、 値が表示されるだけで入力タグは表示されません。そのため、 要素を編集することはできなくなります。持続的な凍結が設定されると、 hidden フィールドの値も出力されます。

注意 このメソッドが意味をなすのは、もともと編集可能であった要素についてだけです。 ボタン、画像、hidden フィールド、静的コンテンツなどには何の影響も及ぼしません。

例外・エラー

例外はスローされません。

参照

unfreeze()、
isFrozen()、
setPersistantFreeze()、
getFrozenHtml()、
HTML_QuickForm::freeze()、
HTML_QuickForm::isFrozen()
も参照ください。

注意

この関数は、スタティックにコールする ことはできません。

例

例 41-1テキスト要素の凍結

require_once 'HTML/QuickForm.php';

$text =& HTML_QuickForm::createElement('text', 'freezeMe');
$text->setValue('Some value');
echo $text->toHtml() . "\n";
$text->freeze();
echo $text->toHtml() . "\n";
$text->setPersistantFreeze(false);
echo $text->toHtml() . "\n";
$text->unfreeze();
echo $text->toHtml() . "\n";

例 41-2出力

<input name="freezeMe" type="text" value="Some value" />
Some value<input type="hidden" name="freezeMe" value="Some value" />
Some value
<input name="freezeMe" type="text" value="Some value" />
前のページ | ホーム | 次のページ
HTML_QuickForm_element::exportValue() | 上に戻る | HTML_QuickForm_element::getFrozenHtml()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_element::getFrozenHtml()

HTML_QuickForm_element::getFrozenHtml() -- HTML タグを含めずにフィールドの値を返す

概要

require_once 'HTML/QuickForm/element.php';

string HTML_QuickForm_element::getFrozenHtml ()

説明

このメソッドは、 凍結された状態の要素の HTML を返します。 これを直接コールする必要は、まずないでしょう。

例外・エラー

例外はスローされません。

参照

isFrozen()、
setPersistantFreeze()、
freeze()
も参照ください。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_element::freeze() | 上に戻る | HTML_QuickForm_element::getLabel()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_element::getLabel()

HTML_QuickForm_element::getLabel() -- 要素のラベルを返す

概要

require_once 'HTML/QuickForm/element.php';

string HTML_QuickForm_element::getLabel ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

参照

setLabel() も参照ください。

注意

since 1.3

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_element::getFrozenHtml() | 上に戻る | HTML_QuickForm_element::getName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_element::getName()

HTML_QuickForm_element::getName() -- 要素の名前を返す

概要

require_once 'HTML/QuickForm/element.php';

string HTML_QuickForm_element::getName ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

参照

setName() も参照ください。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_element::getLabel() | 上に戻る | HTML_QuickForm_element::getType()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_element::getType()

HTML_QuickForm_element::getType() -- 要素の型を返す

概要

require_once 'HTML/QuickForm/element.php';

string HTML_QuickForm_element::getType ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_element::getName() | 上に戻る | HTML_QuickForm_element::getValue()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_element::getValue()

HTML_QuickForm_element::getValue() -- フォーム要素の値を返す

概要

require_once 'HTML/QuickForm/element.php';

mixed HTML_QuickForm_element::getValue ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

参照

setValue()、 HTML_QuickForm::getElementValue() も参照ください。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_element::getType() | 上に戻る | HTML_QuickForm_element::isFrozen()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ HTML_QuickForm_element()

コンストラクタ HTML_QuickForm_element() -- クラスのコンストラクタ

概要

require_once 'HTML/QuickForm/element.php';

void constructor HTML_QuickForm_element::HTML_QuickForm_element ([string $elementName = NULL [, mixed $elementLabel = NULL [, mixed $attributes = NULL]]])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $elementName

要素の名前。

mixed $elementLabel

要素のラベル。

mixed $attributes

タグの属性や HTML の属性を name="value" のペアで表した連想配列。

例外・エラー

例外はスローされません。

参照

setName()、 setLabel() も参照ください。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_element クラス概要 | 上に戻る | HTML_QuickForm_element::accept()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_element::isFrozen()

HTML_QuickForm_element::isFrozen() -- 要素が凍結されているかどうかを返す

概要

require_once 'HTML/QuickForm/element.php';

bool HTML_QuickForm_element::isFrozen ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

参照

freeze() も参照ください。

注意

since 1.3

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_element::getValue() | 上に戻る | HTML_QuickForm_element::onQuickFormEvent()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_element::onQuickFormEvent()

HTML_QuickForm_element::onQuickFormEvent() -- この要素上でフォームイベントが発生した際に HTML_QuickForm からコールされる （パッケージ開発者用）

概要

require_once 'HTML/QuickForm/element.php';

void HTML_QuickForm_element::onQuickFormEvent (string $event, mixed $arg, object &$caller)

説明

注意このメソッドは、直接コールされることを想定していません。

独自の要素を作成する場合は、このメソッドをオーバーライドし、 使用可能な QuickForm イベントのハンドラを作成する必要があります。

QuickForm イベント

'addElement'

このイベントは、フォームに新しい要素を追加する際に HTML_QuickForm::addElement() メソッドから送信されます。そのハンドラからは、通常は 'createElement' および 'updateValue' イベントが送信されます。

'createElement'

このイベントは、要素オブジェクトのインスタンスが作成された後に HTML_QuickForm::createElement() メソッドから送信されます。そのハンドラは、通常は $arg の内容をパラメータに使用して クラスのコンストラクタをコールしなければなりません。

'setGroupValue'

このイベントは、グループ化した各要素について HTML_QuickForm_group::setValue() メソッドから送信されます。そのハンドラは、通常は $arg を要素の値に設定しなければなりません。

'updateValue'

このイベントは、要素がフォームに追加されて フォームのデフォルト値および定数値が設定された際に QuickForm から送信されます。 このイベントのハンドラは、最も複雑なものになります。 このハンドラではフォームの定数値、送信された値 (もし適切なものがあれば) およびデフォルト値をこの順序で探し、 最初に見つかったものをその要素の値として設定します。

パラメータ

string $event

イベントの名前。

mixed $arg

イベントの引数。

object &$caller

呼び出し元のオブジェクト。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_element::isFrozen() | 上に戻る | HTML_QuickForm_element::setLabel()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_element::setLabel()

HTML_QuickForm_element::setLabel() -- 要素のラベルを設定する

概要

require_once 'HTML/QuickForm/element.php';

void HTML_QuickForm_element::setLabel (mixed $label)

説明

ラベルとは、要素のそばに表示される説明文のことです。 ひとつの要素に対して複数のラベルを設定できるレンダラもあります。

パラメータ

mixed $label

要素のついて表示するテキスト。

例外・エラー

例外はスローされません。

参照

getLabel() も参照ください。

注意

since 1.3

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_element::onQuickFormEvent() | 上に戻る | HTML_QuickForm_element::setName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_element::setName()

HTML_QuickForm_element::setName() -- 入力フィールドの名前を設定する

概要

require_once 'HTML/QuickForm/element.php';

void HTML_QuickForm_element::setName (string $name)

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $name

入力フィールドの name 属性。

例外・エラー

例外はスローされません。

参照

getName() も参照ください。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_element::setLabel() | 上に戻る | HTML_QuickForm_element::setPersistantFreeze()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_element::setPersistantFreeze()

HTML_QuickForm_element::setPersistantFreeze() -- freeze() の際に要素の値を持続させるかどうかを設定する

概要

require_once 'HTML/QuickForm/element.php';

void HTML_QuickForm_element::setPersistantFreeze ([bool $persistant = FALSE])

説明

要素が凍結された際に、その値を hidden フィールドに保持し続けるかどうかを設定します。

パラメータ

boolean $persistant

永続的な値の場合は True 。

例外・エラー

例外はスローされません。

参照

freeze()、 getFrozenHtml() も参照ください。

注意

since 2.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_element::setName() | 上に戻る | HTML_QuickForm_element::setValue()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_element::setValue()

HTML_QuickForm_element::setValue() -- フォーム要素の値を設定する

概要

require_once 'HTML/QuickForm/element.php';

void HTML_QuickForm_element::setValue (mixed $value)

説明

要素の表示値を設定します。送信される値とは別のものにすることも可能です。

パラメータ

mixed $value

フォーム要素のデフォルト値。

例外・エラー

例外はスローされません。

参照

getValue() も参照ください。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_element::setPersistantFreeze() | 上に戻る | HTML_QuickForm_element::unfreeze()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_element::unfreeze()

HTML_QuickForm_element::unfreeze() -- 要素の凍結を解除する

概要

require_once 'HTML/QuickForm/element.php';

void HTML_QuickForm_element::unfreeze ()

説明

要素の凍結を解除し、再び編集できるようにします。

例外・エラー

例外はスローされません。

参照

freeze()、
isFrozen()、
setPersistantFreeze()、
getFrozenHtml()、
HTML_QuickForm::freeze()、
HTML_QuickForm::isFrozen()
も参照ください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_element::setValue() | 上に戻る | HTML_QuickForm_input クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_file クラス概要

HTML_QuickForm_file クラス概要 -- file 型の要素のための HTML クラス

説明

通常の要素のメソッドに加え、このクラスはファイルアップロードのための特別なメソッドを保持しています。 このクラスをインクルードすると、アップロードされたファイルの検証用の規則も同時に登録されます。

HTML_QuickForm_file のクラス階層

  • HTML_Common

    • HTML_QuickForm_element

      • HTML_QuickForm_input

        • HTML_QuickForm_file

HTML_QuickForm_file が継承するメソッド

表 41-1HTML_QuickForm_input から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_input::HTML_QuickForm_input() | クラスのコンストラクタ
HTML_QuickForm_input::exportValue() | ボタン要素 (submit を除く) やファイル要素の値を取得する必要はない
HTML_QuickForm_input::getName() | 要素名を返す
HTML_QuickForm_input::getValue() | フォーム要素の値を返す
HTML_QuickForm_input::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_input::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_input::setType() | 要素の型を設定する
HTML_QuickForm_input::setValue() | フォーム要素の値を設定する

表 41-2HTML_QuickForm_element から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_element::HTML_QuickForm_element() | クラスのコンストラクタ
HTML_QuickForm_element::accept() | レンダラを受け入れる
HTML_QuickForm_element::apiVersion() | 現在の API のバージョンを返す
HTML_QuickForm_element::exportValue() | '安全な' 要素の値を返す
HTML_QuickForm_element::freeze() | 要素を凍結し、その値のみを返す
HTML_QuickForm_element::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_element::getLabel() | 要素の表示テキストを返す
HTML_QuickForm_element::getName() | 要素名を返す
HTML_QuickForm_element::getType() | 要素の型を返す
HTML_QuickForm_element::getValue() | フォーム要素の値を返す
HTML_QuickForm_element::isFrozen() | 要素が凍結されているかどうかを返す
HTML_QuickForm_element::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_element::setLabel() | 要素の表示テキストを設定する
HTML_QuickForm_element::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_element::setPersistantFreeze() | 要素の値を、それが凍結されているかどうかにかかわらず hidden フィールドに保持し続けるかどうかを設定する
HTML_QuickForm_element::setValue() | フォーム要素の値を設定する
HTML_QuickForm_element::unfreeze() | フォーム要素の凍結を解除する

前のページ | ホーム | 次のページ
HTML_QuickForm_checkbox::setText() | 上に戻る | コンストラクタ HTML_QuickForm_file()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_file::getSize()

HTML_QuickForm_file::getSize() -- file 要素のサイズを返す

概要

require_once 'HTML/QuickForm/file.php';

int HTML_QuickForm_file::getSize ()

説明

これは、<input /> 要素の 'size' 属性を意味します。 アップロードされるファイルのサイズではありません。

例外・エラー

例外はスローされません。

参照

setSize() も参照ください。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
コンストラクタ HTML_QuickForm_file() | 上に戻る | HTML_QuickForm_file::getValue()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_file::getValue()

HTML_QuickForm_file::getValue() -- アップロードされたファイルの情報を返す

概要

require_once 'HTML/QuickForm/file.php';

array HTML_QuickForm_file::getValue ()

説明

アップロードされたファイルについて、$_FILES 配列に含まれる情報を返します。setValue() メソッドもありますが、これは何も行わないことに注意しましょう。 フォームを送信しない限り、file 要素は値を持ちません。

例外・エラー

例外はスローされません。

注意

since 3.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_file::getSize() | 上に戻る | HTML_QuickForm_file::isUploadedFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ HTML_QuickForm_file()

コンストラクタ HTML_QuickForm_file() -- クラスのコンストラクタ

概要

require_once 'HTML/QuickForm/file.php';

void constructor HTML_QuickForm_file::HTML_QuickForm_file ([string $elementName = NULL [, string $elementLabel = NULL [, mixed $attributes = NULL]]])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $elementName

Input フィールドの name 属性。

string $elementLabel

Input フィールドのラベル。

mixed $attributes

(オプション) 典型的な HTML 属性の文字列あるいは連想配列。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_file クラス概要 | 上に戻る | HTML_QuickForm_file::getSize()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_file::isUploadedFile()

HTML_QuickForm_file::isUploadedFile() -- アップロードされたファイルが要素に含まれているかどうかを調べる

概要

require_once 'HTML/QuickForm/file.php';

bool HTML_QuickForm_file::isUploadedFile ()

説明

このパッケージに関する文書は、未作成です。

返り値

ファイルがアップロードされている場合に true、 それ以外の場合に false を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_file::getValue() | 上に戻る | HTML_QuickForm_file::moveUploadedFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_file::moveUploadedFile()

HTML_QuickForm_file::moveUploadedFile() -- アップロードされたファイルを移動する

概要

require_once 'HTML/QuickForm/file.php';

bool HTML_QuickForm_file::moveUploadedFile (string $dest [, string $fileName = ''])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $dest

移動先ディレクトリのパス。

string $fileName

新しいファイル名 (指定しなかった場合は、もとのファイル名が使用されます)。

返り値

ファイルの移動に成功した場合に true、 それ以外の場合に false を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_file::isUploadedFile() | 上に戻る | HTML_QuickForm_file::setSize()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_file::setSize()

HTML_QuickForm_file::setSize() -- file 要素のサイズを設定する

概要

require_once 'HTML/QuickForm/file.php';

void HTML_QuickForm_file::setSize (int $size)

説明

このパッケージに関する文書は、未作成です。

パラメータ

integer $size

file 要素のサイズ。

例外・エラー

例外はスローされません。

参照

getSize() も参照ください。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_file::moveUploadedFile() | 上に戻る | HTML_QuickForm_hidden クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_group クラス概要

HTML_QuickForm_group クラス概要 -- フォーム要素のグループのための HTML クラス

説明

いくつかの個別の要素をひとつのエンティティにまとめ、それを通常の要素と同様に扱えるようにします。 グループのメソッドのほとんどは、グループを構成している要素自体のメソッドをそのまま使用します。 例えば、グループ自体には値を保持していません。グループの setValue() および getValue() メソッドは、グループ内の個々の要素のメソッドを使用して 値の設定および取得を行います。

複数の要素の視覚的なグループ化 (例えば、同一行に "送信" および "リセット" の 2 つのボタンを配置するなど)、同名の要素のグループ化 (例えば、チェックボックスや ラジオボタンのグループなど)、そして要素の論理的なグループ化 (例えば、姓・名の 2 つのテキストフィールドをひとつの「名前」グループとして扱うなど) といった用途に使用することができます。

HTML_QuickForm_group のクラス階層

  • HTML_Common

    • HTML_QuickForm_element

      • HTML_QuickForm_group

表 41-1HTML_QuickForm_group を継承するクラス

クラス | 概要
HTML_QuickForm_date | 日付 (および時刻) を入力するための要素グループ用のクラス
HTML_QuickForm_hierselect | 2 つの HTML Select 要素を動的に作成するためのクラス。最初の select の選択内容によって、2 つめの select の選択肢が変化する

HTML_QuickForm_group が継承しているメソッド

表 41-2HTML_QuickForm_element から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_element::HTML_QuickForm_element() | クラスのコンストラクタ
HTML_QuickForm_element::accept() | レンダラを受け入れる
HTML_QuickForm_element::apiVersion() | 現在の API のバージョンを返す
HTML_QuickForm_element::exportValue() | '安全な' 要素の値を返す
HTML_QuickForm_element::freeze() | 要素を凍結し、その値のみを返す
HTML_QuickForm_element::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_element::getLabel() | 要素の表示テキストを返す
HTML_QuickForm_element::getName() | 要素名を返す
HTML_QuickForm_element::getType() | 要素の型を返す
HTML_QuickForm_element::getValue() | フォーム要素の値を返す
HTML_QuickForm_element::isFrozen() | 要素が凍結されているかどうかを返す
HTML_QuickForm_element::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_element::setLabel() | 要素の表示テキストを設定する
HTML_QuickForm_element::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_element::setPersistantFreeze() | 要素の値を、それが凍結されているかどうかにかかわらず hidden フィールドに保持し続けるかどうかを設定する
HTML_QuickForm_element::setValue() | フォーム要素の値を設定する
HTML_QuickForm_element::unfreeze() | フォーム要素の凍結を解除する

前のページ | ホーム | 次のページ
HTML_QuickForm::addGroup() | 上に戻る | コンストラクタ HTML_QuickForm_group()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_group::getElementName()

HTML_QuickForm_group::getElementName() -- グループ内の要素の名前を返す

概要

require_once 'HTML/QuickForm/group.php';

mixed HTML_QuickForm_group::getElementName (mixed $index)

説明

グループ内の要素の名前を返します。 この名前は、フォームの HTML 出力時に表示されます。

パラメータ

mixed $index

要素名あるいはグループ内の要素インデックス。

返り値

要素名をあらわす文字列、あるいは見つからなかった場合に false を返します。

例外・エラー

例外はスローされません。

注意

since 3.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
コンストラクタ HTML_QuickForm_group() | 上に戻る | HTML_QuickForm_group::getElements()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_group::getElements()

HTML_QuickForm_group::getElements() -- グループ化された要素を取得する

概要

require_once 'HTML/QuickForm/group.php';

array &HTML_QuickForm_group::getElements ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

注意

since 2.4

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_group::getElementName() | 上に戻る | HTML_QuickForm_group::getGroupType()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_group::getGroupType()

HTML_QuickForm_group::getGroupType() -- その要素に基づいたグループ型を取得する

概要

require_once 'HTML/QuickForm/group.php';

string HTML_QuickForm_group::getGroupType ()

説明

複数の型の要素から構成されるグループの場合は 'mixed' を返します。

返り値

グループの要素型を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_group::getElements() | 上に戻る | HTML_QuickForm_group::setElements()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ HTML_QuickForm_group()

コンストラクタ HTML_QuickForm_group() -- クラスのコンストラクタ

概要

require_once 'HTML/QuickForm/group.php';

void constructor HTML_QuickForm_group::HTML_QuickForm_group ([string $elementName = NULL [, array $elementLabel = NULL [, array $elements = NULL [, mixed $separator = NULL [, bool $appendName = TRUE]]]]])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $elementName

(オプション) グループ名。

array $elementLabel

(オプション) グループのラベル。

array $elements

(オプション) グループの要素。

mixed $separator

(オプション) セパレータを表す文字列、 あるいは複数のセパレータを表す配列。

boolean $appendName

(オプション) 要素の名前を $groupName[$elementName] 形式に変更するか、それともそのままにしておくか。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_group クラス概要 | 上に戻る | HTML_QuickForm_group::getElementName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_group::setElements()

HTML_QuickForm_group::setElements() -- グループ化される要素を設定する

概要

require_once 'HTML/QuickForm/group.php';

void HTML_QuickForm_group::setElements (array $elements)

説明

このパッケージに関する文書は、未作成です。

パラメータ

array $elements

要素の配列。

例外・エラー

例外はスローされません。

注意

since 1.1

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_group::getGroupType() | 上に戻る | HTML_QuickForm_Controller

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_header クラス概要

HTML_QuickForm_header クラス概要 -- フォームにヘッダを追加する際に使用する擬似要素

説明

この要素は、フォームにヘッダを追加する際に使用します。 通常の静的な要素と異なり、ヘッダは特別なテンプレートを使用してレンダリングされます。

HTML_QuickForm_header のクラス階層

  • HTML_Common

    • HTML_QuickForm_element

      • HTML_QuickForm_static

        • HTML_QuickForm_header

HTML_QuickForm_header が継承しているメソッド

表 41-1HTML_QuickForm_static から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_static::HTML_QuickForm_static() | クラスのコンストラクタ
HTML_QuickForm_static::exportValue() | 静的な要素からは値を受け取る必要がないため、ここでオーバーライドする
HTML_QuickForm_static::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_static::getName() | 要素名を返す
HTML_QuickForm_static::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_static::setName() | 要素名を設定する
HTML_QuickForm_static::setText() | テキストを設定する
HTML_QuickForm_static::setValue() | テキストを設定する (通常の setValue のコールでフォーム要素をエミュレートするために使用)

表 41-2HTML_QuickForm_element から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_element::HTML_QuickForm_element() | クラスのコンストラクタ
HTML_QuickForm_element::accept() | レンダラを受け入れる
HTML_QuickForm_element::apiVersion() | 現在の API のバージョンを返す
HTML_QuickForm_element::exportValue() | '安全な' 要素の値を返す
HTML_QuickForm_element::freeze() | 要素を凍結し、その値のみを返す
HTML_QuickForm_element::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_element::getLabel() | 要素の表示テキストを返す
HTML_QuickForm_element::getName() | 要素名を返す
HTML_QuickForm_element::getType() | 要素の型を返す
HTML_QuickForm_element::getValue() | フォーム要素の値を返す
HTML_QuickForm_element::isFrozen() | 要素が凍結されているかどうかを返す
HTML_QuickForm_element::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_element::setLabel() | 要素の表示テキストを設定する
HTML_QuickForm_element::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_element::setPersistantFreeze() | 要素の値を、それが凍結されているかどうかにかかわらず hidden フィールドに保持し続けるかどうかを設定する
HTML_QuickForm_element::setValue() | フォーム要素の値を設定する
HTML_QuickForm_element::unfreeze() | フォーム要素の凍結を解除する

前のページ | ホーム | 次のページ
コンストラクタ HTML_QuickForm_date() | 上に戻る | コンストラクタ HTML_QuickForm_header()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ HTML_QuickForm_header()

コンストラクタ HTML_QuickForm_header() -- クラスのコンストラクタ

概要

require_once 'HTML/QuickForm/header.php';

void constructor HTML_QuickForm_header::HTML_QuickForm_header ([string $elementName = NULL [, string $text = NULL]])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $elementName

ヘッダの名前。

string $text

ヘッダのテキスト。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_header クラス概要 | 上に戻る | HTML_QuickForm_hiddenselect クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_hidden クラス概要

HTML_QuickForm_hidden クラス概要 -- hidden 型の要素のための HTML クラス

説明

このパッケージに関する文書は、未作成です。

HTML_QuickForm_hidden のクラス階層

  • HTML_Common

    • HTML_QuickForm_element

      • HTML_QuickForm_input

        • HTML_QuickForm_hidden

HTML_QuickForm_hidden が継承しているメソッド

表 41-1HTML_QuickForm_input から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_input::HTML_QuickForm_input() | クラスのコンストラクタ
HTML_QuickForm_input::exportValue() | ボタン要素 (submit を除く) やファイル要素の値を取得する必要はない
HTML_QuickForm_input::getName() | 要素名を返す
HTML_QuickForm_input::getValue() | フォーム要素の値を返す
HTML_QuickForm_input::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_input::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_input::setType() | 要素の型を設定する
HTML_QuickForm_input::setValue() | フォーム要素の値を設定する

表 41-2HTML_QuickForm_element から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_element::HTML_QuickForm_element() | クラスのコンストラクタ
HTML_QuickForm_element::accept() | レンダラを受け入れる
HTML_QuickForm_element::apiVersion() | 現在の API のバージョンを返す
HTML_QuickForm_element::exportValue() | '安全な' 要素の値を返す
HTML_QuickForm_element::freeze() | 要素を凍結し、その値のみを返す
HTML_QuickForm_element::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_element::getLabel() | 要素の表示テキストを返す
HTML_QuickForm_element::getName() | 要素名を返す
HTML_QuickForm_element::getType() | 要素の型を返す
HTML_QuickForm_element::getValue() | フォーム要素の値を返す
HTML_QuickForm_element::isFrozen() | 要素が凍結されているかどうかを返す
HTML_QuickForm_element::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_element::setLabel() | 要素の表示テキストを設定する
HTML_QuickForm_element::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_element::setPersistantFreeze() | 要素の値を、それが凍結されているかどうかにかかわらず hidden フィールドに保持し続けるかどうかを設定する
HTML_QuickForm_element::setValue() | フォーム要素の値を設定する
HTML_QuickForm_element::unfreeze() | フォーム要素の凍結を解除する

前のページ | ホーム | 次のページ
HTML_QuickForm_file::setSize() | 上に戻る | コンストラクタ HTML_QuickForm_hidden()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ HTML_QuickForm_hidden()

コンストラクタ HTML_QuickForm_hidden() -- クラスのコンストラクタ

概要

require_once 'HTML/QuickForm/hidden.php';

void constructor HTML_QuickForm_hidden::HTML_QuickForm_hidden ([string $elementName = NULL [, string $value = '' [, mixed $attributes = NULL]]])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $elementName

(オプション) Input フィールドの name 属性。

string $value

(オプション) Input フィールドの値。

mixed $attributes

(オプション) 典型的な HTML 属性の文字列あるいは連想配列。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_hidden クラス概要 | 上に戻る | HTML_QuickForm_image クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_hiddenselect クラス概要

HTML_QuickForm_hiddenselect クラス概要 -- select の値を保持する hidden 要素を作成する

説明

このクラスは select 要素と同じ引数を受け取りますが、<select> ではなく hidden 要素を作成します。その値は、setDefaults() あるいは setConstants() で事前に選択された状態になります。 select で選択された内容を渡したいが、渡された先ではそれを表示したくない場合などに有用です。

HTML_QuickForm_hiddenselect のクラス階層

  • HTML_Common

    • HTML_QuickForm_element

      • HTML_QuickForm_select

        • HTML_QuickForm_hiddenselect

HTML_QuickForm_hiddenselect が継承しているメソッド

表 41-1HTML_QuickForm_select から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_select::HTML_QuickForm_select() | クラスのコンストラクタ
HTML_QuickForm_select::addOption() | SELECT に新しい OPTION を追加する
HTML_QuickForm_select::apiVersion() | 現在の API のバージョンを返す
HTML_QuickForm_select::exportValue() | 選択肢の内容を調べ、設定可能な値のみを返す
HTML_QuickForm_select::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_select::getMultiple() | select の multiple 属性を返す
HTML_QuickForm_select::getName() | 要素名を返す
HTML_QuickForm_select::getPrivateName() | 要素名を返す (角括弧が追加される可能性あり)
HTML_QuickForm_select::getSelected() | 選択された値の配列を返す
HTML_QuickForm_select::getSize() | select フィールドのサイズを返す
HTML_QuickForm_select::getValue() | 選択された値の配列を返す
HTML_QuickForm_select::load() | さまざまな型のデータソースから選択肢を読み込む
HTML_QuickForm_select::loadArray() | 連想配列から選択肢を読み込む
HTML_QuickForm_select::loadDbResult() | DB_result オブジェクトから選択肢を読み込む
HTML_QuickForm_select::loadQuery() | データベースに問い合わせ、その結果から選択肢を読み込む
HTML_QuickForm_select::setMultiple() | select の multiple 属性を設定する
HTML_QuickForm_select::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_select::setSelected() | select のデフォルト値を設定する
HTML_QuickForm_select::setSize() | select フィールドのサイズを設定する。'multiple' の場合にのみ適用される
HTML_QuickForm_select::setValue() | フォーム要素の値を設定する

表 41-2HTML_QuickForm_element から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_element::HTML_QuickForm_element() | クラスのコンストラクタ
HTML_QuickForm_element::accept() | レンダラを受け入れる
HTML_QuickForm_element::apiVersion() | 現在の API のバージョンを返す
HTML_QuickForm_element::exportValue() | '安全な' 要素の値を返す
HTML_QuickForm_element::freeze() | 要素を凍結し、その値のみを返す
HTML_QuickForm_element::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_element::getLabel() | 要素の表示テキストを返す
HTML_QuickForm_element::getName() | 要素名を返す
HTML_QuickForm_element::getType() | 要素の型を返す
HTML_QuickForm_element::getValue() | フォーム要素の値を返す
HTML_QuickForm_element::isFrozen() | 要素が凍結されているかどうかを返す
HTML_QuickForm_element::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_element::setLabel() | 要素の表示テキストを設定する
HTML_QuickForm_element::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_element::setPersistantFreeze() | 要素の値を、それが凍結されているかどうかにかかわらず hidden フィールドに保持し続けるかどうかを設定する
HTML_QuickForm_element::setValue() | フォーム要素の値を設定する
HTML_QuickForm_element::unfreeze() | フォーム要素の凍結を解除する

前のページ | ホーム | 次のページ
コンストラクタ HTML_QuickForm_header() | 上に戻る | コンストラクタ HTML_QuickForm_hiddenselect()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ HTML_QuickForm_hiddenselect()

コンストラクタ HTML_QuickForm_hiddenselect() -- クラスのコンストラクタ

概要

require_once 'HTML/QuickForm/hiddenselect.php';

void constructor HTML_QuickForm_hiddenselect::HTML_QuickForm_hiddenselect ([string $elementName = NULL [, mixed $elementLabel = NULL [, mixed $options = NULL [, mixed $attributes = NULL]]]])

説明

実際のところこれは隠し要素なので、使用されないパラメータもあることに注意しましょう。

パラメータ

string $elementName

select の name 属性。

mixed $elementLabel

select のラベル (使用されません)。

mixed $options

選択肢として使用されるデータ。

mixed $attributes

典型的な HTML 属性の文字列あるいは連想配列 (使用されません)。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_hiddenselect クラス概要 | 上に戻る | HTML_QuickForm_hierselect クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_hierselect クラス概要

HTML_QuickForm_hierselect クラス概要 -- 連結した HTML Select 要素を動的に作成するためのクラスで、 各要素の選択によって次の要素の内容が変化する

説明

"連結した" HTML Select 要素を動的に作成するためのクラスです。 最初の <select> を選択すると 2 番目の選択肢の内容が変化し、 それ以降も同様になります。

この要素はグループの一種と考えられます。各 select 要素の名前は groupName[0], groupName[1], ... となります。

例 41-1データベースのテーブルの内容をもとに hierselect 要素を作成する

require_once 'HTML/QuickForm.php';
$form = new HTML_QuickForm('example');

$form->setDefaults(array('test' => array('4','15')));
$sel =& $form->addElement('hierselect', 'test', 'Test:', null, '/');

$mainOptions = $db->getAssoc('select pkparent, par_desc from parent');

$result = $db->query("select fk_parent, pkchild, chi_desc from child");
while ($result->fetchInto($row)) {
    $secOptions[$row[0]][$row[1]] = $row[2];
}
// setMainOptions および setSecOptions は廃止予定なので
// setOptions を使用してください

$sel->setOptions(array($mainOptions, $secOptions));

$form->display();
2 つより多くの select 要素を組み合わせるのも、これと同様です。

例 41-23 つの select 要素からなる hierselect 要素を作成する

require_once 'HTML/QuickForm.php';
$form = new HTML_QuickForm('example');

$select1[0] = 'Pop';
$select1[1] = 'Classical';
$select1[2] = 'Funeral doom';

// 2 番目の select
$select2[0][0] = '--- Artist ---';
$select2[0][1] = 'Red Hot Chil Peppers';
$select2[0][2] = 'The Pixies';

$select2[1][0] = '--- Artist ---';
$select2[1][1] = 'Wagner';
$select2[1][2] = 'Strauss';

$select2[2][0] = '--- Artist ---';
$select2[2][1] = 'Pantheist';
$select2[2][2] = 'Skepticism';

// 3 番目の select で、CD の価格を指定します
$select3[0][0][0] = '--- Choose the artist ---';
$select3[0][1][0] = '15.00$';
$select3[0][2][1] = '17.00$';
$select3[1][0][0] = '--- Choose the artist ---';
$select3[1][1][0] = '15.00$';
$select3[1][2][1] = '17.00$';
$select3[2][0][0] = '--- Choose the artist ---';
$select3[2][1][0] = '15.00$';
$select3[2][2][1] = '17.00$';

// 要素を作成します
$sel =& $form->addElement('hierselect', 'cds', 'Choose CD:');

// そして選択肢を追加します
$sel->setOptions(array($select1, $select2, $select3));

$form->display();

HTML_QuickForm_hierselect のクラス階層

  • HTML_Common

    • HTML_QuickForm_element

      • HTML_QuickForm_group

        • HTML_QuickForm_hierselect

HTML_QuickForm_hierselect が継承しているメソッド

表 41-1HTML_QuickForm_group から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_group::HTML_QuickForm_group() | クラスのコンストラクタ
HTML_QuickForm_group::accept() | レンダラを受け入れる
HTML_QuickForm_group::exportValue() | 通常は、グループの値を取得するには個々の要素に対してアクセスする
HTML_QuickForm_group::getElementName() | html フォーム中に見られる、グループ内の要素名を返す
HTML_QuickForm_group::getElements() | グループ化された要素群を取得する
HTML_QuickForm_group::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_group::getGroupType() | グループ内の要素の型を取得する。複数の型の要素から構成されている場合は 'mixed' を返す
HTML_QuickForm_group::getName() | グループ名を返す
HTML_QuickForm_group::getValue() | グループの値を返す
HTML_QuickForm_group::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_group::setElements() | グループ化された要素群を設定する
HTML_QuickForm_group::setName() | グループ名を設定する
HTML_QuickForm_group::setValue() | グループの要素の値を設定する

表 41-2HTML_QuickForm_element から継承したもの

メソッド名 | 概要
Constructor HTML_QuickForm_element::HTML_QuickForm_element() | クラスのコンストラクタ
HTML_QuickForm_element::accept() | レンダラを受け入れる
HTML_QuickForm_element::apiVersion() | 現在の API のバージョンを返す
HTML_QuickForm_element::exportValue() | '安全な' 要素の値を返す
HTML_QuickForm_element::freeze() | 要素を凍結し、その値のみを返す
HTML_QuickForm_element::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_element::getLabel() | 要素の表示テキストを返す
HTML_QuickForm_element::getName() | 要素名を返す
HTML_QuickForm_element::getType() | 要素の型を返す
HTML_QuickForm_element::getValue() | フォーム要素の値を返す
HTML_QuickForm_element::isFrozen() | 要素が凍結されているかどうかを返す
HTML_QuickForm_element::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_element::setLabel() | 要素の表示テキストを設定する
HTML_QuickForm_element::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_element::setPersistantFreeze() | 要素の値を、それが凍結されているかどうかにかかわらず hidden フィールドに保持し続けるかどうかを設定する
HTML_QuickForm_element::setValue() | フォーム要素の値を設定する
HTML_QuickForm_element::unfreeze() | フォーム要素の凍結を解除する

前のページ | ホーム | 次のページ
コンストラクタ HTML_QuickForm_hiddenselect() | 上に戻る | コンストラクタ HTML_QuickForm_hierselect()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ HTML_QuickForm_hierselect()

コンストラクタ HTML_QuickForm_hierselect() -- クラスのコンストラクタ

概要

require_once 'HTML/QuickForm/hierselect.php';

void constructor HTML_QuickForm_hierselect::HTML_QuickForm_hierselect ([string $elementName = NULL [, string $elementLabel = NULL [, mixed $attributes = NULL [, mixed $separator = NULL]]]])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $elementName

(オプション) Input フィールドの name 属性。

注意ひとつのページに複数のフォームを表示する場合は、 それぞれの hierselect には別の名前をつけなければなりません。 そうしないと、同名の hierselect が複数存在した場合に 最後に登場した hierselect の値がそれまでの値を上書きしてしまいます。 現在の QuickForm の仕組みではこの問題をきれいに解決することは非常に困難です。 そのため、別の名前にするという回避策を使用するようにしてください。 詳細は Request #5718 を参照ください。

string $elementLabel

(オプション) フォーム内の input フィールドのラベル。

mixed $attributes

(オプション) 典型的な HTML 属性の文字列あるいは連想配列。

mixed $separator

グループ化された要素を区切る文字列。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_hierselect クラス概要 | 上に戻る | HTML_QuickForm_hierselect::setOptions()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_hierselect::setMainOptions()

HTML_QuickForm_hierselect::setMainOptions() -- 非推奨: 最初の select のオプションを設定する

概要

require_once 'HTML/QuickForm/hierselect.php';

void HTML_QuickForm_hierselect::setMainOptions (array $options)

説明

select 要素の標準的な キー/値 の組み合わせを設定します。 setSecOptions() に例があります。

このメソッドは非推奨です。かわりに setOptions() を使用してください。

パラメータ

array $options

最初の select に使用するオプションの配列。

例外・エラー

例外はスローされません。

参照

HTML_QuickForm_select::loadArray()、 setSecOptions() も参照ください。

注意

この関数は、スタティックにコールする ことはできません。

警告

この関数は 非推奨の関数です。 今後、このパッケージの将来のバージョンでは、 サポートされないかもしれません。

リリース 3.2.2 で廃止予定です。

前のページ | ホーム | 次のページ
HTML_QuickForm_hierselect::setOptions() | 上に戻る | HTML_QuickForm_hierselect::setSecOptions()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_hierselect::setOptions()

HTML_QuickForm_hierselect::setOptions() -- select 要素の選択肢を設定する

概要

require_once 'HTML/QuickForm/hierselect.php';

void HTML_QuickForm_hierselect::setOptions (array $options)

説明

hierselect 内の select 要素の選択肢を設定します。実際に表示される選択肢の数は、 この関数に渡された配列の要素数によって決まることに注意しましょう。

パラメータ

array $options

要素の選択肢の配列。次のような形式になります。
array(
  // 最初の要素の選択肢
  array(
    'key_1' => 'value 1',
    'key_2' => 'value 2',
    ...
    'key_N' => 'value N',
  ),
  // 2 番目の要素の選択肢
  array(
    'key_1' => array(
      'key_1_1' => 'value 1.1',
      'key_1_2' => 'value 1.2',
      ...
      'key_1_M1' => 'value 1.M1'
    ),
    'key_2' => array(
      'key_2_1' => 'value 2.1',
      'key_2_2' => 'value 2.2',
      ...
      'key_2_M2' => 'value 2.M2'
    ),
    ...
    'key_N' => array(
      'key_N_1' => 'value N.1',
      'key_N_2' => 'value N.2',
      ...
      'key_N_MN' => 'value N.MN'
    )
  )
  // それ以降の要素の選択肢
  ...
)

注意 後に続く要素の選択肢には、ひとつ前の要素のすべての選択肢に対応する要素が含まれなければなりません。 選択肢のない select は HTML として無効な形式であり、hierselect の JavaScript が動作しなくなります。 Bug #5218 も参照ください。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

since 3.2.2

例

例 41-1hierselect の選択肢の設定

<?php
$select1 = $select2 = $select3 = array();

$select1[0] = 'Pop';
$select1[1] = 'Classical';
$select1[2] = 'Funeral doom';

// 2 つめの select
$select2[0][0] = '--- Artist ---';
$select2[0][1] = 'Red Hot Chil Peppers';
$select2[0][2] = 'The Pixies';

$select2[1][0] = '--- Artist ---';
$select2[1][1] = 'Wagner';
$select2[1][2] = 'Strauss';

$select2[2][0] = '--- Artist ---';
$select2[2][1] = 'Pantheist';
$select2[2][2] = 'Skepticism';

// 3 つめの select では CD の価格を選択します
$select3[0][0][0] = '--- Choose the artist ---';
$select3[0][1][0] = '15.00$';
$select3[0][2][1] = '17.00$';
$select3[1][0][0] = '--- Choose the artist ---';
$select3[1][1][0] = '15.00$';
$select3[1][2][1] = '17.00$';
$select3[2][0][0] = '--- Choose the artist ---';
$select3[2][1][0] = '15.00$';
$select3[2][2][1] = '17.00$';

// 要素を作成します
$sel =& $form->addElement('hierselect', 'cds', 'Choose CD:');

// そして選択肢を追加します
$sel->setOptions(array($select1, $select2, $select3));
?>
前のページ | ホーム | 次のページ
コンストラクタ HTML_QuickForm_hierselect() | 上に戻る | HTML_QuickForm_hierselect::setMainOptions()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_hierselect::setSecOptions()

HTML_QuickForm_hierselect::setSecOptions() -- 非推奨: 2 番目の select のオプションを設定する

概要

require_once 'HTML/QuickForm/hierselect.php';

void HTML_QuickForm_hierselect::setSecOptions (array $options)

説明

2 番目の select のオプションを設定します。オプションは 2 次元の配列で渡し、 最初のキーが親の ID、2 番目のキーが子の ID となります。 2 番目のオプションの内容を設定するには、親のオプションの内容が必要となります。

このメソッドは非推奨です。かわりに setOptions() を使用してください。

パラメータ

array $options

2 番目の select のオプションの配列。

例外・エラー

例外はスローされません。

参照

setMainOptions() も参照ください。

注意

この関数は、スタティックにコールする ことはできません。

警告

この関数は 非推奨の関数です。 今後、このパッケージの将来のバージョンでは、 サポートされないかもしれません。

リリース 3.2.2 で廃止予定です。

例

例 41-1hierselect のオプションの設定

<?php
$hierSel =& $form->addElement('hierselect', 'test', 'Test:', null, '/');

$main[0] = 'Pop';
$main[1] = 'Classical';
$main[2] = 'Funeral doom';

$sec[0][1] = 'Red Hot Chili Peppers';
$sec[0][2] = 'The Pixies';
$sec[1][3] = 'Wagner';
$sec[1][4] = 'Strauss';
$sec[2][5] = 'Pantheist';
$sec[2][6] = 'Skepticism';

$hierSel->setMainOptions($main);
$hierSel->setSecOptions($sec);
?>
前のページ | ホーム | 次のページ
HTML_QuickForm_hierselect::setMainOptions() | 上に戻る | HTML_QuickForm_html クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_html クラス概要

HTML_QuickForm_html クラス概要 -- フォームに生の HTML を追加するために使用する擬似要素 (廃止予定)

説明

フォーム出力に生の HTML を追加するために使用する擬似要素です。 要素テンプレートが適用されることなく、内容がそのまま出力されます。

警告

この要素は推奨されません。今後はバグ修正や機能変更は行われず、 次のメジャーバージョンでは削除される予定です。 フォームに生の HTML を追加する必要がある場合は、代わりに 'static' 要素の使用を検討してください。

警告

この要素は、 デフォルトのレンダラ と組み合わせた場合にのみ使用可能で、 それ以外のレンダラを使用した場合はこの要素は完全に無視されます。 この機能に頼るのではなく、何らかのテンプレートベースのレンダラを使用することを検討してください。

HTML_QuickForm_html のクラス階層

  • HTML_Common

    • HTML_QuickForm_element

      • HTML_QuickForm_static

        • HTML_QuickForm_html

HTML_QuickForm_html が継承しているメソッド

表 41-1HTML_QuickForm_static から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_static::HTML_QuickForm_static() | クラスのコンストラクタ
HTML_QuickForm_static::exportValue() | 静的な要素からは値を受け取る必要がないため、ここでオーバーライドする
HTML_QuickForm_static::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_static::getName() | 要素名を返す
HTML_QuickForm_static::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_static::setName() | 要素名を設定する
HTML_QuickForm_static::setText() | テキストを設定する
HTML_QuickForm_static::setValue() | テキストを設定する (通常の setValue のコールでフォーム要素をエミュレートするために使用)

表 41-2HTML_QuickForm_element から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_element::HTML_QuickForm_element() | クラスのコンストラクタ
HTML_QuickForm_element::accept() | レンダラを受け入れる
HTML_QuickForm_element::apiVersion() | 現在の API のバージョンを返す
HTML_QuickForm_element::exportValue() | '安全な' 要素の値を返す
HTML_QuickForm_element::freeze() | 要素を凍結し、その値のみを返す
HTML_QuickForm_element::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_element::getLabel() | 要素の表示テキストを返す
HTML_QuickForm_element::getName() | 要素名を返す
HTML_QuickForm_element::getType() | 要素の型を返す
HTML_QuickForm_element::getValue() | フォーム要素の値を返す
HTML_QuickForm_element::isFrozen() | 要素が凍結されているかどうかを返す
HTML_QuickForm_element::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_element::setLabel() | 要素の表示テキストを設定する
HTML_QuickForm_element::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_element::setPersistantFreeze() | 要素の値を、それが凍結されているかどうかにかかわらず hidden フィールドに保持し続けるかどうかを設定する
HTML_QuickForm_element::setValue() | フォーム要素の値を設定する
HTML_QuickForm_element::unfreeze() | フォーム要素の凍結を解除する

前のページ | ホーム | 次のページ
HTML_QuickForm_hierselect::setSecOptions() | 上に戻る | コンストラクタ HTML_QuickForm_html()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ HTML_QuickForm_html()

コンストラクタ HTML_QuickForm_html() -- クラスのコンストラクタ

概要

require_once 'HTML/QuickForm/html.php';

void constructor HTML_QuickForm_html::HTML_QuickForm_html ([string $text = NULL])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $text

追加する生の HTML。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_html クラス概要 | 上に戻る | HTML_QuickForm_link クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_image クラス概要

HTML_QuickForm_image クラス概要 -- image 型の要素のための HTML クラス

説明

このパッケージに関する文書は、未作成です。

HTML_QuickForm_image のクラス階層

  • HTML_Common

    • HTML_QuickForm_element

      • HTML_QuickForm_input

        • HTML_QuickForm_image

HTML_QuickForm_image が継承しているメソッド

表 41-1HTML_QuickForm_input から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_input::HTML_QuickForm_input() | クラスのコンストラクタ
HTML_QuickForm_input::exportValue() | ボタン要素 (submit を除く) やファイル要素の値を取得する必要はない
HTML_QuickForm_input::getName() | 要素名を返す
HTML_QuickForm_input::getValue() | フォーム要素の値を返す
HTML_QuickForm_input::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_input::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_input::setType() | 要素の型を設定する
HTML_QuickForm_input::setValue() | フォーム要素の値を設定する

表 41-2HTML_QuickForm_element から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_element::HTML_QuickForm_element() | クラスのコンストラクタ
HTML_QuickForm_element::accept() | レンダラを受け入れる
HTML_QuickForm_element::apiVersion() | 現在の API のバージョンを返す
HTML_QuickForm_element::exportValue() | '安全な' 要素の値を返す
HTML_QuickForm_element::freeze() | 要素を凍結し、その値のみを返す
HTML_QuickForm_element::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_element::getLabel() | 要素の表示テキストを返す
HTML_QuickForm_element::getName() | 要素名を返す
HTML_QuickForm_element::getType() | 要素の型を返す
HTML_QuickForm_element::getValue() | フォーム要素の値を返す
HTML_QuickForm_element::isFrozen() | 要素が凍結されているかどうかを返す
HTML_QuickForm_element::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_element::setLabel() | 要素の表示テキストを設定する
HTML_QuickForm_element::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_element::setPersistantFreeze() | 要素の値を、それが凍結されているかどうかにかかわらず hidden フィールドに保持し続けるかどうかを設定する
HTML_QuickForm_element::setValue() | フォーム要素の値を設定する
HTML_QuickForm_element::unfreeze() | フォーム要素の凍結を解除する

前のページ | ホーム | 次のページ
コンストラクタ HTML_QuickForm_hidden() | 上に戻る | コンストラクタ HTML_QuickForm_image()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ HTML_QuickForm_image()

コンストラクタ HTML_QuickForm_image() -- クラスのコンストラクタ

概要

require_once 'HTML/QuickForm/image.php';

void constructor HTML_QuickForm_image::HTML_QuickForm_image ([string $elementName = NULL [, string $src = '' [, mixed $attributes = NULL]]])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $elementName

(オプション) 要素の name 属性。

string $src

(オプション) 画像のソース。

mixed $attributes

(オプション) 典型的な HTML 属性の文字列あるいは連想配列。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_image クラス概要 | 上に戻る | HTML_QuickForm_image::setAlign()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_image::setAlign()

HTML_QuickForm_image::setAlign() -- image 要素の配置を設定する

概要

require_once 'HTML/QuickForm/image.php';

void HTML_QuickForm_image::setAlign (string $align)

説明

これは、単に以下の処理と同じことをします。
$element->updateAttributes(array('align' => $align));

パラメータ

string $align

image 要素の配置。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
コンストラクタ HTML_QuickForm_image() | 上に戻る | HTML_QuickForm_image::setBorder()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_image::setBorder()

HTML_QuickForm_image::setBorder() -- image 要素の枠線のサイズを設定する

概要

require_once 'HTML/QuickForm/image.php';

void HTML_QuickForm_image::setBorder (string $border)

説明

これは、単に以下の処理と同じことをします。
$element->updateAttributes(array('border' => $border));

パラメータ

string $border

image 要素の枠線。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_image::setAlign() | 上に戻る | HTML_QuickForm_image::setSource()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_image::setSource()

HTML_QuickForm_image::setSource() -- image 要素のソースを設定する

概要

require_once 'HTML/QuickForm/image.php';

void HTML_QuickForm_image::setSource (string $src)

説明

これは、単に以下の処理と同じことをします。
$element->updateAttributes(array('src' => $src));

パラメータ

string $src

image 要素のソース。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_image::setBorder() | 上に戻る | HTML_QuickForm_password クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_input クラス概要

HTML_QuickForm_input クラス概要 -- フォームの入力要素のための基底クラス

説明

<input> 要素はとれも非常に似た HTML 表現なので、共通の基底クラスを持っています。 このクラスを直接インスタンス化する必要はなく、子クラスのいずれかを使用します。

HTML_QuickForm_input のクラス階層

  • HTML_Common

    • HTML_QuickForm_element

      • HTML_QuickForm_input

表 41-1HTML_QuickForm_input を継承するクラス

クラス | 概要
HTML_QuickForm_button | button 型の要素のための HTML クラス
HTML_QuickForm_checkbox | checkbox 型のフィールドのための HTML クラス
HTML_QuickForm_file | file 型の要素のための HTML クラス
HTML_QuickForm_hidden | hidden 型の要素のための HTML クラス
HTML_QuickForm_image | image 型の要素のための HTML クラス
HTML_QuickForm_password | password 型のフィールドのための HTML クラス
HTML_QuickForm_radio | radio 型の要素のための HTML クラス
HTML_QuickForm_reset | reset 型の要素のための HTML クラス
HTML_QuickForm_submit | submit 型の要素のための HTML クラス
HTML_QuickForm_text | text フィールドのための HTML クラス

HTML_QuickForm_input が継承しているメソッド

表 41-2 HTML_QuickForm_element から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_element::HTML_QuickForm_element() | クラスのコンストラクタ
HTML_QuickForm_element::accept() | レンダラを受け入れる
HTML_QuickForm_element::apiVersion() | 現在の API のバージョンを返す
HTML_QuickForm_element::exportValue() | '安全な' 要素の値を返す
HTML_QuickForm_element::freeze() | 要素を凍結し、その値のみを返す
HTML_QuickForm_element::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_element::getLabel() | 要素の表示テキストを返す
HTML_QuickForm_element::getName() | 要素名を返す
HTML_QuickForm_element::getType() | 要素の型を返す
HTML_QuickForm_element::getValue() | フォーム要素の値を返す
HTML_QuickForm_element::isFrozen() | 要素が凍結されているかどうかを返す
HTML_QuickForm_element::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_element::setLabel() | 要素の表示テキストを設定する
HTML_QuickForm_element::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_element::setPersistantFreeze() | 要素の値を、それが凍結されているかどうかにかかわらず hidden フィールドに保持し続けるかどうかを設定する
HTML_QuickForm_element::setValue() | フォーム要素の値を設定する
HTML_QuickForm_element::unfreeze() | フォーム要素の凍結を解除する

前のページ | ホーム | 次のページ
HTML_QuickForm_element::unfreeze() | 上に戻る | コンストラクタ HTML_QuickForm_input()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ HTML_QuickForm_input()

コンストラクタ HTML_QuickForm_input() -- クラスのコンストラクタ

概要

require_once 'HTML/QuickForm/input.php';

void constructor HTML_QuickForm_input::HTML_QuickForm_input ([string $elementName = NULL [, mixed $elementLabel = NULL [, mixed $attributes = NULL]]])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $elementName

入力フィールドの name 属性。

mixed $elementLabel

入力フィールドのラベル。

mixed $attributes

標準的な HTML 属性を表す文字列あるいは連想配列。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_input クラス概要 | 上に戻る | HTML_QuickForm_input::setType()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_input::setType()

HTML_QuickForm_input::setType() -- 要素の型を設定する

概要

require_once 'HTML/QuickForm/input.php';

void HTML_QuickForm_input::setType (string $type)

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $type

要素の型。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
コンストラクタ HTML_QuickForm_input() | 上に戻る | HTML_QuickForm_Controller

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_link クラス概要

HTML_QuickForm_link クラス概要 -- link 型のフィールドのための HTML クラス

説明

これは、標準の要素テンプレートの中に <a href="...">...</a> タグを追加するために使用されます。

HTML_QuickForm_link のクラス階層

  • HTML_Common

    • HTML_QuickForm_element

      • HTML_QuickForm_static

        • HTML_QuickForm_link

HTML_QuickForm_link が継承しているメソッド

表 41-1HTML_QuickForm_static から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_static::HTML_QuickForm_static() | クラスのコンストラクタ
HTML_QuickForm_static::exportValue() | 静的な要素からは値を受け取る必要がないため、ここでオーバーライドする
HTML_QuickForm_static::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_static::getName() | 要素名を返す
HTML_QuickForm_static::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_static::setName() | 要素名を設定する
HTML_QuickForm_static::setText() | テキストを設定する
HTML_QuickForm_static::setValue() | テキストを設定する (通常の setValue のコールでフォーム要素をエミュレートするために使用)

表 41-2HTML_QuickForm_element から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_element::HTML_QuickForm_element() | クラスのコンストラクタ
HTML_QuickForm_element::accept() | レンダラを受け入れる
HTML_QuickForm_element::apiVersion() | 現在の API のバージョンを返す
HTML_QuickForm_element::exportValue() | '安全な' 要素の値を返す
HTML_QuickForm_element::freeze() | 要素を凍結し、その値のみを返す
HTML_QuickForm_element::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_element::getLabel() | 要素の表示テキストを返す
HTML_QuickForm_element::getName() | 要素名を返す
HTML_QuickForm_element::getType() | 要素の型を返す
HTML_QuickForm_element::getValue() | フォーム要素の値を返す
HTML_QuickForm_element::isFrozen() | 要素が凍結されているかどうかを返す
HTML_QuickForm_element::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_element::setLabel() | 要素の表示テキストを設定する
HTML_QuickForm_element::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_element::setPersistantFreeze() | 要素の値を、それが凍結されているかどうかにかかわらず hidden フィールドに保持し続けるかどうかを設定する
HTML_QuickForm_element::setValue() | フォーム要素の値を設定する
HTML_QuickForm_element::unfreeze() | フォーム要素の凍結を解除する

前のページ | ホーム | 次のページ
コンストラクタ HTML_QuickForm_html() | 上に戻る | コンストラクタ HTML_QuickForm_link()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ HTML_QuickForm_link()

コンストラクタ HTML_QuickForm_link() -- クラスのコンストラクタ

概要

require_once 'HTML/QuickForm/link.php';

void constructor HTML_QuickForm_link::HTML_QuickForm_link ([mixed $elementName = NULL [, string $elementLabel = NULL [, string $href = NULL [, string $text = NULL [, mixed $attributes = NULL]]]]])

説明

このパッケージに関する文書は、未作成です。

パラメータ

mixed $elementName

string $elementLabel

(オプション) リンクのラベル。

string $href

(オプションl) リンク先。

string $text

(オプション) リンクの表示テキスト。

mixed $attributes

(オプション) 典型的な HTML 属性の文字列あるいは連想配列。

例外・エラー

throws

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_link クラス概要 | 上に戻る | HTML_QuickForm_link::setHref()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_link::setHref()

HTML_QuickForm_link::setHref() -- リンク先を設定する

概要

require_once 'HTML/QuickForm/link.php';

void HTML_QuickForm_link::setHref (string $href)

説明

これは、単に以下の処理と同じことをします。
$element->updateAttributes(array('href' => $href));

パラメータ

string $href

例外・エラー

throws

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
コンストラクタ HTML_QuickForm_link() | 上に戻る | HTML_QuickForm_static クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_password クラス概要

HTML_QuickForm_password クラス概要 -- password 型のフィールドのための HTML クラス

説明

このパッケージに関する文書は、未作成です。

HTML_QuickForm_password のクラス階層

  • HTML_Common

    • HTML_QuickForm_element

      • HTML_QuickForm_input

        • HTML_QuickForm_password

HTML_QuickForm_password が継承しているメソッド

表 41-1HTML_QuickForm_input から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_input::HTML_QuickForm_input() | クラスのコンストラクタ
HTML_QuickForm_input::exportValue() | ボタン要素 (submit を除く) やファイル要素の値を取得する必要はない
HTML_QuickForm_input::getName() | 要素名を返す
HTML_QuickForm_input::getValue() | フォーム要素の値を返す
HTML_QuickForm_input::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_input::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_input::setType() | 要素の型を設定する
HTML_QuickForm_input::setValue() | フォーム要素の値を設定する

表 41-2HTML_QuickForm_element から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_element::HTML_QuickForm_element() | クラスのコンストラクタ
HTML_QuickForm_element::accept() | レンダラを受け入れる
HTML_QuickForm_element::apiVersion() | 現在の API のバージョンを返す
HTML_QuickForm_element::exportValue() | '安全な' 要素の値を返す
HTML_QuickForm_element::freeze() | 要素を凍結し、その値のみを返す
HTML_QuickForm_element::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_element::getLabel() | 要素の表示テキストを返す
HTML_QuickForm_element::getName() | 要素名を返す
HTML_QuickForm_element::getType() | 要素の型を返す
HTML_QuickForm_element::getValue() | フォーム要素の値を返す
HTML_QuickForm_element::isFrozen() | 要素が凍結されているかどうかを返す
HTML_QuickForm_element::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_element::setLabel() | 要素の表示テキストを設定する
HTML_QuickForm_element::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_element::setPersistantFreeze() | 要素の値を、それが凍結されているかどうかにかかわらず hidden フィールドに保持し続けるかどうかを設定する
HTML_QuickForm_element::setValue() | フォーム要素の値を設定する
HTML_QuickForm_element::unfreeze() | フォーム要素の凍結を解除する

前のページ | ホーム | 次のページ
HTML_QuickForm_image::setSource() | 上に戻る | コンストラクタ HTML_QuickForm_password()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ HTML_QuickForm_password()

コンストラクタ HTML_QuickForm_password() -- クラスのコンストラクタ

概要

require_once 'HTML/QuickForm/password.php';

void constructor HTML_QuickForm_password::HTML_QuickForm_password ([string $elementName = NULL [, string $elementLabel = NULL [, mixed $attributes = NULL]]])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $elementName

(オプション) Input フィールドの name 属性。

string $elementLabel

(オプション) Input フィールドのラベル。

mixed $attributes

(オプション) 典型的な HTML 属性の文字列あるいは連想配列。

例外・エラー

throws

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_password クラス概要 | 上に戻る | HTML_QuickForm_password::setMaxlength()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_password::setMaxlength()

HTML_QuickForm_password::setMaxlength() -- password 要素の maxlength を設定する

概要

require_once 'HTML/QuickForm/password.php';

void HTML_QuickForm_password::setMaxlength (string $maxlength)

説明

これは、単に以下の処理と同じことをします。
$element->updateAttributes(array('maxlength' => $maxlength));

パラメータ

string $maxlength

password フィールドの最大長。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
コンストラクタ HTML_QuickForm_password() | 上に戻る | HTML_QuickForm_password::setSize()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_password::setSize()

HTML_QuickForm_password::setSize() -- password 要素のサイズを設定する

概要

require_once 'HTML/QuickForm/password.php';

void HTML_QuickForm_password::setSize (string $size)

説明

これは、単に以下の処理と同じことをします。
$element->updateAttributes(array('size' => $size));

パラメータ

string $size

password フィールドのサイズ。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_password::setMaxlength() | 上に戻る | HTML_QuickForm_radio クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_radio クラス概要

HTML_QuickForm_radio クラス概要 -- radio 型の要素のための HTML クラス

説明

このパッケージに関する文書は、未作成です。

HTML_QuickForm_radio のクラス階層

  • HTML_Common

    • HTML_QuickForm_element

      • HTML_QuickForm_input

        • HTML_QuickForm_radio

HTML_QuickForm_radio が継承しているメソッド

表 41-1HTML_QuickForm_input から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_input::HTML_QuickForm_input() | クラスのコンストラクタ
HTML_QuickForm_input::exportValue() | ボタン要素 (submit を除く) やファイル要素の値を取得する必要はない
HTML_QuickForm_input::getName() | 要素名を返す
HTML_QuickForm_input::getValue() | フォーム要素の値を返す
HTML_QuickForm_input::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_input::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_input::setType() | 要素の型を設定する
HTML_QuickForm_input::setValue() | フォーム要素の値を設定する

表 41-2HTML_QuickForm_element から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_element::HTML_QuickForm_element() | クラスのコンストラクタ
HTML_QuickForm_element::accept() | レンダラを受け入れる
HTML_QuickForm_element::apiVersion() | 現在の API のバージョンを返す
HTML_QuickForm_element::exportValue() | '安全な' 要素の値を返す
HTML_QuickForm_element::freeze() | 要素を凍結し、その値のみを返す
HTML_QuickForm_element::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_element::getLabel() | 要素の表示テキストを返す
HTML_QuickForm_element::getName() | 要素名を返す
HTML_QuickForm_element::getType() | 要素の型を返す
HTML_QuickForm_element::getValue() | フォーム要素の値を返す
HTML_QuickForm_element::isFrozen() | 要素が凍結されているかどうかを返す
HTML_QuickForm_element::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_element::setLabel() | 要素の表示テキストを設定する
HTML_QuickForm_element::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_element::setPersistantFreeze() | 要素の値を、それが凍結されているかどうかにかかわらず hidden フィールドに保持し続けるかどうかを設定する
HTML_QuickForm_element::setValue() | フォーム要素の値を設定する
HTML_QuickForm_element::unfreeze() | フォーム要素の凍結を解除する

前のページ | ホーム | 次のページ
HTML_QuickForm_password::setSize() | 上に戻る | コンストラクタ HTML_QuickForm_radio()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_radio::getChecked()

HTML_QuickForm_radio::getChecked() -- ラジオボタンがチェックされているかどうかを返す

概要

require_once 'HTML/QuickForm/radio.php';

string HTML_QuickForm_radio::getChecked ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

参照

setChecked() も参照ください。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
コンストラクタ HTML_QuickForm_radio() | 上に戻る | HTML_QuickForm_radio::getText()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_radio::getText()

HTML_QuickForm_radio::getText() -- ラジオボタンのテキストを返す

概要

require_once 'HTML/QuickForm/radio.php';

string HTML_QuickForm_radio::getText ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

参照

setText() も参照ください。

注意

since 1.1

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_radio::getChecked() | 上に戻る | HTML_QuickForm_radio::setChecked()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ HTML_QuickForm_radio()

コンストラクタ HTML_QuickForm_radio() -- クラスのコンストラクタ

概要

require_once 'HTML/QuickForm/radio.php';

void constructor HTML_QuickForm_radio::HTML_QuickForm_radio ([string $elementName = NULL [, mixed $elementLabel = NULL [, string $text = NULL [, string $value = NULL [, mixed $attributes = NULL]]]]])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $elementName

Input フィールドの name 属性。

mixed $elementLabel

フィールドのラベル。

string $text

ラジオボタンのそばに表示するテキスト。

string $value

Input フィールドの値。

mixed $attributes

典型的な HTML 属性の文字列あるいは連想配列。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_radio クラス概要 | 上に戻る | HTML_QuickForm_radio::getChecked()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_radio::setChecked()

HTML_QuickForm_radio::setChecked() -- ラジオボタンがチェックされているかどうかを設定する

概要

require_once 'HTML/QuickForm/radio.php';

void HTML_QuickForm_radio::setChecked (bool $checked)

説明

このパッケージに関する文書は、未作成です。

パラメータ

boolean $checked

フィールドがチェックされているかどうか。

例外・エラー

例外はスローされません。

参照

getChecked() も参照ください。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_radio::getText() | 上に戻る | HTML_QuickForm_radio::setText()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_radio::setText()

HTML_QuickForm_radio::setText() -- ラジオボタンのテキストを設定する

概要

require_once 'HTML/QuickForm/radio.php';

void HTML_QuickForm_radio::setText (string $text)

説明

これはラジオボタンとともに表示されるテキストのことを意味し、 自動的に <label> タグで囲まれます。 QuickForm で言うところのラベルを設定するには、setLabel() を使用します。

パラメータ

string $text

ラジオボタンのそばに表示するテキスト。

例外・エラー

例外はスローされません。

参照

getText() も参照ください。

注意

since 1.1

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_radio::setChecked() | 上に戻る | HTML_QuickForm_reset クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer

HTML_QuickForm_Renderer -- レンダラの基底クラスとなる抽象クラス （パッケージ開発者用）

説明

子クラスで実装する抽象メソッドを定義します。

QuickForm のレンダラは、Visitor デザインパターンを実装しています。 つまり、各フォーム要素が accept() メソッドを保持しており、 レンダラのインスタンスをパラメータに指定してこのメソッドがコールされるということです。 このメソッドが行う内容は、以下のとおりです。

  • その要素が他の要素を含んでいる場合 (HTML_QuickForm_group および HTML_QuickForm それ自身) は、含まれている各要素の accept() メソッドを順にコールし、コンテナのレンダリングのためのメソッド (例: startForm() および finishForm()) をコールします。

  • その要素が単純なものである場合は、レンダラのメソッド (例: renderHeader()) をコールしてレンダリングを行います。

レンダラオブジェクトは、本来なら各 HTML_QuickForm_concreteElement に対して renderConcreteElement() メソッドを保持すべきです。しかし、 幸いにもほとんどの要素が要求するレンダリングは似通っています。そのため、 renderTextarea() や renderCheckbox() などのように分割するかわりに、一般化した renderElement() メソッドを使用しています。

レンダラは、メソッドに渡された情報を "蓄積" し、 それに基づいて何らかの形式の出力を行わなければなりません。 内部の実装方法は、レンダラの型に依存します。

独自のレンダラを作成する

まず最初に、どうやって情報を蓄積するかを決める必要があります。 おそらく、そのためには何らかのデータ構造を作成する必要があるでしょう (テンプレートオブジェクトなどに情報を一度に渡そうとしているのでない限り)。

次に、HTML_QuickForm_Renderer で定義されている全ての抽象メソッドに、具体的な処理を実装しなければなりません。 注意すべき例外は renderHtml() メソッドで、これはデフォルトのレンダラのみで実装されます。

それ以外にも、出力をカスタマイズしてその結果を得るためのパブリックメソッドを 追加したいと思われるかもしれません。しかし、これはレンダラの型に大きく依存します。

あなたが作成したレンダラを QuickForm に寄贈したいとお考えなら、以下の点に気をつけてください。

  • そのコードが他人にとっても有用でなければなりません (例えば、個人的に使用している 無名なテンプレートエンジンのためのレンダラなどは不向きです)。

  • レンダラには、ある程度の量の使用例が必要です。

  • 最後に、特に注意すべき点として、 PEAR コーディング規約に従ったコードでなければなりません。

ティップ 既存のレンダラに関して、更なる使用例を提供してくださることも歓迎します。

前のページ | ホーム | 次のページ
HTML_QuickForm | 上に戻る | HTML_QuickForm_Renderer::startForm()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_Array

HTML_QuickForm_Renderer_Array -- フォームを配列で表す

説明

このレンダラは自分自身では何も出力せず、フォームの構造を配列で返します。 この配列は、後で出力を生成する際に使用されます。 このレンダラと Smarty テンプレートエンジンを使用した例が、 docs/renderers ディレクトリにあります。

フォームの配列は、以下のようになります。
array(
  'frozen'           => 'フォームが凍結されているかどうか',
  'javascript'       => 'クライアント側での検証用の javascript',
  'attributes'       => '<form> タグの属性',
  'requirednote      => '必須要素の注意書き',
  // hidden 要素を収集するオプションを設定した場合
  'hidden'           => 'すべての hidden 要素を集めた html',
  // 検証エラーがあった場合
  'errors' => array(
    '1st element name' => '最初の要素のエラー',
    ...
    'nth element name' => 'n 番目の要素のエラー'
  ),
  // フォームにヘッダがない場合
  'elements' => array(
    element_1,
    ...
    element_N
  )
  // フォームにヘッダがある場合
  'sections' => array(
    array(
      'header'   => '最初のヘッダのテキスト',
      'name'     => '最初のヘッダの名前',
      'elements' => array(
         element_1,
         ...
         element_K1
      )
    ),
    ...
    array(
      'header'   => 'M 番目のヘッダ',
      'elements' => array(
         element_1,
         ...
         element_KM
      )
    )
  )
);
element_i は、次のような配列となります。
array(
  'name'      => '要素の名前',
  'value'     => '要素の値',
  'type'      => '要素の型',
  'frozen'    => '要素が凍結されているかどうか',
  'label'     => '要素のラベル',
  'required'  => '要素が必須かどうか',
  'error'     => '要素に関連するエラー',
  'style'     => '要素の型に関する情報 (例: Smarty)',
  // グループでない要素の場合
  'html'      => '要素の HTML'
  // 要素がグループである場合
  'separator' => 'グループ要素のセパレータ',
  'elements'  => array(
    element_1,
    ...
    element_N
  )
);

ティップ HTML_QuickForm::toArray() メソッドは、Array レンダラを内部で使用しています。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_Default::toHtml() | 上に戻る | constructor HTML_QuickForm_Renderer_Array::HTML_QuickForm_Renderer_Array()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor HTML_QuickForm_Renderer_Array::HTML_QuickForm_Renderer_Array()

constructor HTML_QuickForm_Renderer_Array::HTML_QuickForm_Renderer_Array() -- コンストラクタ

概要

require_once 'HTML/QuickForm/Renderer/Array.php';

void HTML_QuickForm_Renderer_Array::HTML_QuickForm_Renderer_Array ([bool $collectHidden = FALSE bool $staticLabels = FALSE]])

説明

このパッケージに関する文書は、未作成です。

パラメータ

boolean $collectHidden

TRUE: すべての hidden 要素を文字列にまとめます。FALSE: hidden 要素を通常のフォーム要素として処理します。

boolean $staticLabels

TRUE: ラベルの配列を結果配列の 'label' 要素にまとめてしまうのではなく、 'label_$key' という名前の別々のキーを作成します。 $key は、ラベルの配列のキーです (数値の場合は key + 1 となります)。 配列の最初の要素は 'label' 要素です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_Array | 上に戻る | HTML_QuickForm_Renderer_Array::setElementStyle()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_Array::setElementStyle()

HTML_QuickForm_Renderer_Array::setElementStyle() -- 要素のレンダリングに使用するスタイルを設定する

概要

require_once 'HTML/QuickForm/Renderer/Array.php';

void HTML_QuickForm_Renderer_Array::setElementStyle (mixed $elementName [, string $styleName = NULL])

説明

要素のレンダリングに使用するスタイルを設定します (このスタイルは、例えばテンプレートエンジンなどによって後で使用されます)。

パラメータ

mixed $elementName

要素名あるいは配列 ('要素名' => 'スタイル名')。

string $styleName

$elementName が配列でない場合に、スタイル名。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor HTML_QuickForm_Renderer_Array::HTML_QuickForm_Renderer_Array() | 上に戻る | HTML_QuickForm_Renderer_Array::toArray()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_Array::toArray()

HTML_QuickForm_Renderer_Array::toArray() -- 結果の配列を返す

概要

require_once 'HTML/QuickForm/Renderer/Array.php';

array HTML_QuickForm_Renderer_Array::toArray (void)

説明

レンダラによって作成された、フォームの配列表現を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_Array::setElementStyle() | 上に戻る | HTML_QuickForm_Controller

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_ArraySmarty

HTML_QuickForm_Renderer_ArraySmarty -- '静的な' Smarty テンプレートのためのレンダラ

説明

このレンダラは Thomas Schulz が作成しました。バージョン 3.0 より前からある HTML_QuickForm::toArray() および ITStatic レンダラのコードをもとにしています。 これは、フォームの出力内容を '静的な' Smarty テンプレートに投入するために使用されます。 使用例は、docs/renderers にあります。

フォームの配列は、以下のようになります。
array (
 ['frozen']       => 'フォーム全体が凍結されているかどうか',
 ['javascript']   => 'クライアント側での検証用の javascript',
 ['attributes']   => '<form> タグの属性',
 ['hidden']       => 'すべての hidden 要素の html',
 ['requirednote'] => '必須要素の注意書き',
 ['errors'] => Array
     (
         ['1st_element_name'] => '最初の要素のエラー',
         ...
         ['nth_element_name'] => 'n 番目の要素のエラー',
     ),

 ['header'] => Array
     (
         ['1st_header_name'] => '最初のヘッダのテキスト',
         ...
         ['nth_header_name'] => 'n 番目のヘッダのテキスト'
     ),

 ['1st_element_name'] => '最初の要素の配列',
 ...
 ['nth_element_name'] => 'n 番目の要素の配列'
);
element の配列は以下のようになります。
array(
         ['name']      => '要素の名前',
         ['value']     => '要素の値',
         ['type']      => '要素の型',
         ['frozen']    => '要素が凍結されているかどうか',
         ['label']     => '要素のラベル',
         ['required']  => '要素が必須かどうか',
// グループでない要素の場合
         ['html']      => '要素の HTML',
// 要素がグループである場合
         ['separator'] => 'グループ要素のセパレータ',
         ['1st_gitem_name'] => 'グループ内の最初の要素の配列',
         ...
         ['nth_gitem_name'] => 'グループ内の n 番目の要素の配列'
);

前のページ | ホーム | 次のページ
HTML_QuickForm | 上に戻る | constructor HTML_QuickForm_Renderer_ArraySmarty::HTML_QuickForm_Renderer_ArraySmarty()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor HTML_QuickForm_Renderer_ArraySmarty::HTML_QuickForm_Renderer_ArraySmarty()

constructor HTML_QuickForm_Renderer_ArraySmarty::HTML_QuickForm_Renderer_ArraySmarty() -- コンストラクタ

概要

require_once 'HTML/QuickForm/Renderer/ArraySmarty.php';

void HTML_QuickForm_Renderer_ArraySmarty::HTML_QuickForm_Renderer_ArraySmarty (mixed &$tpl)

説明

このパッケージに関する文書は、未作成です。

パラメータ

object &$tpl

フォームの出力に使用する Smarty オブジェクト。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_ArraySmarty | 上に戻る | HTML_QuickForm_Renderer_ArraySmarty::setErrorTemplate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_ArraySmarty::setErrorTemplate()

HTML_QuickForm_Renderer_ArraySmarty::setErrorTemplate() -- 検証エラーが発生した要素をレンダリングする方法を設定する

概要

require_once 'HTML/QuickForm/Renderer/ArraySmarty.php';

void HTML_QuickForm_Renderer_ArraySmarty::setErrorTemplate (string $template)

説明

プレースホルダ {$label} あるいは {$html} を使用し、 要素のラベルや HTML がエラーメッセージのどの部分に配置されるのかを指定することができます。 これらのプレースホルダは、正しい値に適切に置き換えられます。 エラーメッセージは、プレースホルダ {$error} の部分と置き換えられます。 例えば、{if $error}<span style="color: red;">{$error}</span>{/if}{$html} は、要素の HTML の上部に赤いエラーメッセージを配置します。

すべてのエラーメッセージをメインエラーブロックに出力したい場合は、 レンダリング結果の配列の {$form.errors} の部分を使用します。 ここには、生のエラーメッセージがすべてまとめられています。

すべてのエラーメッセージを手動で配置したい場合は、 {$html} や {$label} を指定しないでください。

グループには特別なレイアウトを使用することが可能です。 そのような場合は、エラーメッセージを手動で作成する必要があります。 フォーム内でエラーメッセージを出力したい場所に {$form.group.error} を使用します。

パラメータ

string $template

要素エラーのテンプレート。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor HTML_QuickForm_Renderer_ArraySmarty::HTML_QuickForm_Renderer_ArraySmarty() | 上に戻る | HTML_QuickForm_Renderer_ArraySmarty::setRequiredTemplate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_ArraySmarty::setRequiredTemplate()

HTML_QuickForm_Renderer_ArraySmarty::setRequiredTemplate() -- 必須要素をレンダリングする方法を設定する

概要

require_once 'HTML/QuickForm/Renderer/ArraySmarty.php';

void HTML_QuickForm_Renderer_ArraySmarty::setRequiredTemplate (string $template)

説明

プレースホルダ {$label} あるいは {$html} を使用し、 要素のラベルや HTML が必須要素のどの部分に配置されるのかを指定することができます。 これらのプレースホルダは、正しい値に適切に置き換えられます。 ここでは、smarty のすべての構文、特に I18N 用のカスタム修正子などを使用することができます。 例えば、{if $required}<span style="color: red;">*</span>{/if}{$label|translate} は、必須要素のラベルの先頭に赤い星印をつけ、ラベルを翻訳します。

パラメータ

string $template

必須要素のテンプレート。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_ArraySmarty::setErrorTemplate() | 上に戻る | HTML_QuickForm_Renderer_ITDynamic

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_Default

HTML_QuickForm_Renderer_Default -- デフォルトのレンダラ

説明

このレンダラは、フォームの HTML を直接生成して出力します。 これは、バージョン 3.0 以前に組み込まれていたフォーム出力ロジックをもとにしたものです。

このレンダラには、要素のテンプレートが組み込まれており、そのフォーマットは HTML_Template_Sigma あるいは HTML_Template_IT と似ています (ただ、サポートされるのはプレースホルダとブロックのみです)。 レンダラの renderSomething() メソッドがコールされると、 その要素用のテンプレートを探して必要な置き換えを行い、その結果を フォームの HTML に追記します。

使用例

アプリケーションでテンプレートエンジンを使用していない場合、 あるいはフォームの出力をカスタマイズする必要がない場合には、 デフォルトレンダラの使用をお勧めします。 このレンダラを使用すると、最も高速にフォームを出力できます。

例 41-1デフォルトレンダラの使用法

<?php
require_once 'HTML/QuickForm/Renderer/Default.php';

$renderer =& new HTML_QuickForm_Renderer_Default();
$form->accept($renderer);

echo $renderer->toHtml();
?>

ティップHTML_QuickForm::toHtml() メソッドは、その内部でデフォルトレンダラを使用します。

前のページ | ホーム | 次のページ
導入 - レンダラ | 上に戻る | HTML_QuickForm_Renderer_Default::clearAllTemplates()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_Default::clearAllTemplates()

HTML_QuickForm_Renderer_Default::clearAllTemplates() -- すべてのテンプレートを消去する

概要

require_once 'HTML/QuickForm/Renderer/Default.php';

void HTML_QuickForm_Renderer_Default::clearAllTemplates (void)

説明

要素などを囲むテンプレートの、すべての HTML 出力を消去します。

addElement('html', '...') を使用して独自のフォームを作成したい場合に有用です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_Default | 上に戻る | HTML_QuickForm_Renderer_Default::setElementTemplate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_Default::setElementTemplate()

HTML_QuickForm_Renderer_Default::setElementTemplate() -- 要素のテンプレートを設定する

概要

require_once 'HTML/QuickForm/Renderer/Default.php';

void HTML_QuickForm_Renderer_Default::setElementTemplate (string $html [, string $element = NULL])

説明

要素のテンプレートを設定します。パラメータを 1 つ指定してコールすると、 デフォルト要素のテンプレートを設定します。パラメータを 2 つ指定してコールすると、 具象要素のテンプレートを設定します。テンプレートは、少なくとも {element} プレースホルダを含まなければなりません。

デフォルトの要素テンプレートは次のようになります。
"\n\t<tr>\n\t\t<td align=\"right\" valign=\"top\"><!-- BEGIN required --><span style=\"color: #ff0000\">*</span><!-- END required --><b>{label}</b></td>\n\t\t<td valign=\"top\" align=\"left\"><!-- BEGIN error --><span style=\"color: #ff0000\">{error}</span><br /><!-- END error -->\t{element}</td>\n\t</tr>"

パラメータ

string $html

要素を囲む HTML。

string $element

(オプション) テンプレートを適用する要素の名前。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_Default::clearAllTemplates() | 上に戻る | HTML_QuickForm_Renderer_Default::setFormTemplate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_Default::setFormTemplate()

HTML_QuickForm_Renderer_Default::setFormTemplate() -- フォームのテンプレートを設定する

概要

require_once 'HTML/QuickForm/Renderer/Default.php';

void HTML_QuickForm_Renderer_Default::setFormTemplate (string $html)

説明

フォームのテンプレートを設定します。このテンプレートは、プレースホルダ {attributes} および {content} を含まなければなりません。

デフォルトのフォームテンプレートは次のようになります。
"\n<form{attributes}>\n<table border=\"0\">\n{content}\n</table>\n</form>"

パラメータ

string $html

フォームタグを囲む HTML。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_Default::setElementTemplate() | 上に戻る | HTML_QuickForm_Renderer_Default::setGroupElementTemplate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_Default::setGroupElementTemplate()

HTML_QuickForm_Renderer_Default::setGroupElementTemplate() -- グループ要素のテンプレートを設定する

概要

require_once 'HTML/QuickForm/Renderer/Default.php';

void HTML_QuickForm_Renderer_Default::setGroupElementTemplate (string $html, string $group)

説明

グループ内の要素の要素テンプレートを設定します。

デフォルトでは、このテンプレートは空です。

パラメータ

string $html

要素を囲む HTML。

string $group

テンプレートを適用するグループの名前。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_Default::setFormTemplate() | 上に戻る | HTML_QuickForm_Renderer_Default::setGroupTemplate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_Default::setGroupTemplate()

HTML_QuickForm_Renderer_Default::setGroupTemplate() -- グループラッパーのテンプレートを設定する

概要

require_once 'HTML/QuickForm/Renderer/Default.php';

void HTML_QuickForm_Renderer_Default::setGroupTemplate (string $html, string $group)

説明

グループラッパーのテンプレートを設定します。

このテンプレートは、 setElementTemplate() で設定した (グループを要素として扱う) テンプレートの中に含まれ、その中には setGroupElementTemplate() で設定したグループ要素テンプレートを含みます。

デフォルトでは、このテンプレートは空です。

パラメータ

string $html

グループ要素を囲む HTML。

string $group

テンプレートを適用するグループの名前。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_Default::setGroupElementTemplate() | 上に戻る | HTML_QuickForm_Renderer_Default::setHeaderTemplate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_Default::setHeaderTemplate()

HTML_QuickForm_Renderer_Default::setHeaderTemplate() -- ヘッダのテンプレートを設定する

概要

require_once 'HTML/QuickForm/Renderer/Default.php';

void HTML_QuickForm_Renderer_Default::setHeaderTemplate (string $html)

説明

ヘッダのテンプレートを設定します。このテンプレートは、プレースホルダ {header} を含まなければなりません。

デフォルトのヘッダテンプレートは次のようになります。
"\n\t<tr>\n\t\t<td style=\"white-space: nowrap; background-color: #CCCCCC;\" align=\"left\" valign=\"top\" colspan=\"2\"><b>{header}</b></td>\n\t</tr>"

パラメータ

string $html

ヘッダを囲む HTML。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_Default::setGroupTemplate() | 上に戻る | HTML_QuickForm_Renderer_Default::setRequiredNoteTemplate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_Default::setRequiredNoteTemplate()

HTML_QuickForm_Renderer_Default::setRequiredNoteTemplate() -- 'required' の記述のテンプレートを設定する

概要

require_once 'HTML/QuickForm/Renderer/Default.php';

void HTML_QuickForm_Renderer_Default::setRequiredNoteTemplate (string $html)

説明

必須フィールドを示す説明文のテンプレートを設定します。 このテンプレートは、プレースホルダ {requiredNote} を含まなければなりません。

デフォルトのテンプレートは次のようになります。
"\n\t<tr>\n\t\t<td></td>\n\t<td align=\"left\" valign=\"top\">{requiredNote}</td>\n\t</tr>"

パラメータ

string $html

必須項目の説明文を囲む HTML。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_Default::setHeaderTemplate() | 上に戻る | HTML_QuickForm_Renderer_Default::toHtml()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_Default::toHtml()

HTML_QuickForm_Renderer_Default::toHtml() -- HTML を返す

概要

require_once 'HTML/QuickForm/Renderer/Default.php';

string HTML_QuickForm_Renderer_Default::toHtml (void)

説明

フォーム用に生成した HTML を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_Default::setRequiredNoteTemplate() | 上に戻る | HTML_QuickForm_Renderer_Array

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_ITDynamic

HTML_QuickForm_Renderer_ITDynamic -- 統合されたテンプレート用の動的なレンダラ

説明

レンダラの名前にある 'dynamic' の意味は、実際のフォームの配置が スクリプトの実行時に決まるということです。また、すべての フォームに対して ひとつの テンプレートファイルを適用できるということでもあります。 このテンプレートには、フォーム中ののすべての要素の見た目を設定するための ブロックおよびいくつかの特別なブロックが含まれます。 ある要素に特別なブロックが設定されていない場合は、 デフォルトのブロックを使用してレンダリングを行います。

もしほとんどのフォームが同じ見た目になる場合は (バックエンドの管理用インターフェイスなど)、この動的なレンダラを使用するのが最適です。 個々のフォームがそれぞれ独特なレイアウトを使用するのなら、静的なレンダラを使用すべきです。

テンプレートの構造

この例は最小限の記述しかしていないテンプレートですが、 このパッケージで定義するあらゆるフォームをレンダリングするのに必要な要素はすべて含まれています。
{qf_javascript}
<form {qf_attributes}>
<!-- BEGIN qf_hidden_loop -->
{qf_hidden}
<!-- END qf_hidden_loop -->

<table>

<!-- BEGIN qf_errors -->
    <tr>
        <td>
            Collected errors:
            <ul>
                <!-- BEGIN qf_error_loop -->
                <li>{qf_error}</li>
                <!-- END qf_error_loop -->
            </ul>
        </td>
    </tr>
<!-- END qf_errors -->

<!-- BEGIN qf_main_loop -->
    <!-- BEGIN qf_header -->
    <tr>
        <th colspan="2">{qf_header}</th>
    </tr>
    <!-- END qf_header -->

    <!-- BEGIN qf_element -->
    <tr valign="top">
        <td align="right">
            <!-- BEGIN qf_element_required --><span style="color: #FF0000;">*</span><!-- END qf_element_required -->
            <b>{qf_label}</b>
        </td>
        <td>
            <!-- BEGIN qf_element_error --><span style="color: #FF0000;">{qf_error}</span><br /><!-- END qf_element_error -->
            {qf_element}
        </td>
    </tr>
    <!-- END qf_element -->

    <!-- BEGIN qf_group -->
    <tr valign="top">
        <td align="right">
            <!-- BEGIN qf_group_required --><span style="color: #FF0000;">*</span><!-- END qf_group_required -->
            <b>{qf_group_label}</b>
        </td>
        <td>
            <!-- BEGIN qf_group_error --><span style="color: #FF0000;">{qf_error}</span><br /><!-- END qf_group_error -->
            <!-- BEGIN qf_group_loop -->
                <!-- BEGIN qf_group_element -->{qf_separator}{qf_label}{qf_element}<!-- END qf_group_element -->
            <!-- END qf_group_loop -->
        </td>
    </tr>
    <!-- END qf_group -->

<!-- END qf_main_loop -->

<!-- BEGIN qf_required_note -->
    <tr>
        <td>&nbsp;</td>
        <td align="left" valign="top">{qf_required_note}</td>
    </tr>
<!-- END qf_required_note -->
</table>
</form>

テンプレート内のブロック

qf_main_loop

このブロックは常に存在する必要があり、 すべての可視要素ブロックの親となります。 "流れ (flow)" を実装し、個々の要素を順にレンダリングするために使用されます。

qf_element

フォーム要素をレンダリングするためのブロックです。 このブロックは常に存在する必要があります。 レンダラが要素の出力を行う際には、使用するブロックを次の手順で決めます。

  1. 要素に対して特別なブロックが設定されていれば、それを使用します。

  2. qf_%要素の型% (例えば qf_password) というブロックが存在すれば、それを使用します。

  3. qf_element を使用します。

qf_element_required

要素が必須である場合に、ブロックは touch されます。

qf_element_error

要素に関連付けられたエラーは、ここに出力されます。

qf_header

ヘッダを出力する際に使用されるデフォルトのブロックです。 フォームにヘッダが存在する場合は必須です。

qf_group

出力グループのデフォルトブロックです。 グループ化した要素が存在する場合は必須です。

qf_group_loop

qf_main_loop に対応するもので、 グループの要素を順にレンダリングするために使用されます。 %グループのブロック%_loop は、常に %グループのブロック% の中に存在しなければなりません。

qf_group_element

グループの要素をレンダリングするためのデフォルトのブロックです。 %グループのブロック%_element は、常に %グループのブロック%_loop の中に存在しなければなりません (qf_element が qf_main_loop の中に存在しなければならないのと同じ理由です)。

qf_error_loop

要素に関するエラーのうち、%element's block%_error ブロックを持っていないものを出力するために使用されます。

qf_hidden_loop

<input type="hidden" /> 要素がここにレンダリングされます。

テンプレート内のプレースホルダ

{qf_javascript}

クライアント側の検証に使用する Javascript がここに出力されます。

{qf_required_note}

フォーム内に必須要素がある場合、注意書きがここに出力されます。

使用例

テンプレートが ./qform.html にあるものとします。
<?php
require_once 'HTML/QuickForm/Renderer/ITDynamic.php';
require_once 'HTML/Template/Sigma.php';

// テンプレートオブジェクトのインスタンスを作成し、テンプレートファイルを読み込みます
$tpl =& new HTML_Template_Sigma('.');
$tpl->loadTemplateFile('qform.html');

// レンダラのインスタンスを作成し、フォームを処理します
$renderer =& new HTML_QuickForm_Renderer_ITDynamic($tpl);
$form->accept($renderer);

// 結果を出力します
$tpl->show();
?>
フォームを作成する部分についてはここで示していないことに注意しましょう。この例は、 どんなフォームであっても動作するからです。

テンプレートクラスの互換性 このレンダラは、 HTML_Template_Sigma を使用して開発およびテストを行っています。おそらく HTML_Template_IT でも動作するでしょうが、それを保証することはできません。

空のブロックの削除 このレンダラは、テンプレートオブジェクト内の空のブロックが事前に取り除かれていることを想定しています (これはデフォルトの振る舞いです)。もしそうでない場合、期待通りの出力結果は得られないでしょう。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_ArraySmarty::setRequiredTemplate() | 上に戻る | constructor HTML_QuickForm_Renderer_ITDynamic::HTML_QuickForm_Renderer_ITDynamic()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor HTML_QuickForm_Renderer_ITDynamic::HTML_QuickForm_Renderer_ITDynamic()

constructor HTML_QuickForm_Renderer_ITDynamic::HTML_QuickForm_Renderer_ITDynamic() -- コンストラクタ

概要

require_once 'HTML/QuickForm/Renderer/ITDynamic.php';

void HTML_QuickForm_Renderer_ITDynamic::HTML_QuickForm_Renderer_ITDynamic (object &$tpl)

説明

このパッケージに関する文書は、未作成です。

パラメータ

object &$tpl

使用する HTML_Template_ITX/HTML_Template_Sigma オブジェクト。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_ITDynamic | 上に戻る | HTML_QuickForm_Renderer_ITDynamic::setElementBlock()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_ITDynamic::setElementBlock()

HTML_QuickForm_Renderer_ITDynamic::setElementBlock() -- 要素のレンダリングに使用するブロックを設定する

概要

require_once 'HTML/QuickForm/Renderer/ITDynamic.php';

void HTML_QuickForm_Renderer_ITDynamic::setElementBlock (mixed $elementName [, string $blockName = NULL])

説明

要素のレンダリングに使用するブロックを設定します。

パラメータ

mixed $elementName

要素名あるいは配列 ('要素名' => 'ブロック名')。

string $blockName

$elementName が配列でない場合に、ブロック名。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor HTML_QuickForm_Renderer_ITDynamic::HTML_QuickForm_Renderer_ITDynamic() | 上に戻る | HTML_QuickForm_Renderer_ITDynamic::setHeaderBlock()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_ITDynamic::setHeaderBlock()

HTML_QuickForm_Renderer_ITDynamic::setHeaderBlock() -- ヘッダのレンダリングに使用するブロックの名前を設定する

概要

require_once 'HTML/QuickForm/Renderer/ITDynamic.php';

void HTML_QuickForm_Renderer_ITDynamic::setHeaderBlock (string $blockName)

説明

ヘッダのレンダリングに使用するブロックの名前を設定します。

パラメータ

string $blockName

ブロックの名前。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_ITDynamic::setElementBlock() | 上に戻る | HTML_QuickForm_Renderer_ITStatic

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_ITStatic

HTML_QuickForm_Renderer_ITStatic -- 統合されたテンプレート用の静的なレンダラ

説明

レンダラの名前にある 'static' の意味は、実際のフォームの配置は スクリプトが開始する前に決まっているということです。また、 このレンダラを使用する際には各フォームについて独自のテンプレートを用意する必要があります。

IT Dynamic レンダラとは異なり、IT Static レンダラはより柔軟な方法でフォームを表示することができます。 その代わり、(IT Dynamic レンダラと比べて) 実装するのには少し時間がかかることになるでしょう。 もし常に同じようなパターンで要素ラベルやフォーム要素の html を出力するのなら、 動的レンダラを使用するほうがお勧めです。一方、もしいろいろなパターンでフォーム要素を出力するのなら (例えばテキストやフォーム要素の出力方法を切り替えたいのなら)、静的レンダラの使用を推奨します。

使用例

ITStatic レンダラを使用するには、どの要素 (あるあいは要素グループ) を使用してフォームを作成するのかを事前に知っている必要があります。 そこで、まずは要素を定義するところからはじめることにしましょう。

例 41-1要素の定義

require_once ("HTML/QuickForm.php");

$form = new HTML_QuickForm('myform', 'POST');
$form->addElement('header', 'myheader', 'Registration form');

$form->addElement('hidden', 'session', '123456');

$name['last'] = &HTML_QuickForm::createElement('text', 'first', 'First', array('size' => 10));
$name['first'] = &HTML_QuickForm::createElement('text', 'last', 'Last', array('size' => 10));
$form->addGroup($name, 'name', 'Name:', '-');

$form->addElement('text', 'email', 'Your email:');

$select = array(''   => 'Please select...',
                'AU' => 'Australia',
                'FR' => 'France',
                'DE' => 'Germany',
                'IT' => 'Italy');
$form->addElement('select', 'country', 'Country:', $select);

$form->addElement('reset', 'reset', 'Reset');
$form->addElement('submit', 'submit', 'Register');

$form->addElement('checkbox', 'news', '', " Check this box if you don't want to receive our newsletter.");
このフォームには、これらの要素が含まれることになります。

  • header: 'Registration form'

  • hidden フィールド

  • firstname および lastname のふたつの text フィールドからなる group

  • E-Mail アドレス用の text フィールド

  • 国を指定する selectbox (デフォルト値は空白)

  • リセットおよび登録の、ふたつの button

  • ニュースレターの購読を申し込むための checkbox

これで、フォームを構成する要素がわかりました。HTML エディタを使用するなりして、 このフォームの配置を WYSIWYG で作成するのは簡単なことでしょう。 そうやって作成したフォームについて、ラベルや要素の html の部分にプレースホルダを使用するようにします。 プレースホルダの名前はフォーム名および要素名 (グループ名) によって決まり、 formName_elementName あるいは formName_groupName_elementName のようになります。そしてそこに _label または _html を追加します。次のようなコードを template.html という名前のファイルに保存してください。

例 41-2テンプレート

<html>
<head><title>My Form</title>
{myform_javascript}
</head>
<body>
<form {myform_attributes}>
 {myform_session_html}
 <table>
 <tr><th colspan="2">{myform_myheader}</th></tr>
 <tr><td>{myform_name_label}</td><td>{myform_name_html}</td></tr>
 <tr><td>{myform_email_label}</td><td>{myform_email_html}</td></tr>
 <tr><td>{myform_country_label}</td><td>{myform_country_html}</td></tr>
 <tr><td colspan="2" align="right">{myform_reset_html} {myform_submit_html}</td></tr>
</table>
<br /><br />
{myform_news_html}
</form>
</body>
</html>

お気づきのように、このレイアウトは静的なものです。 つまり、実行時にフォームが変更されることがない場合に限り、 静的なレンダラが有用になるということです。しかし、 HTML_Template_IT / HTML_Template_Sigma の removeEmptyBlocks オプションを使用することで、 ブロックを非表示にすることができます。 これで要素とテンプレートの準備ができました。それでは静的レンダラを使用してみましょう。

例 41-3レンダラの使用

require_once 'HTML/Template/Sigma.php';
require_once 'HTML/QuickForm/Renderer/ITStatic.php';

$tpl =& new HTML_Template_Sigma('.');
$tpl->loadTemplateFile('template.html'); // or whatever you called it

$renderer =& new HTML_QuickForm_Renderer_ITStatic($tpl);
$renderer->setRequiredTemplate('{label}<font color="red" size="1">*</font>');
$renderer->setErrorTemplate('<font color="red">{error}</font><br />{html}');

$form->accept($renderer);
$tpl->show();

必須要素の表示方法や検証エラーの表示方法について指定することも可能です。 それには、それぞれ setRequiredTemplate() および setErrorTemplate() を使用します。 与えられた文字列中のお望みの場所に、プレースホルダ {label} あるいは {html} を配置することができます。 エラーメッセージをひとまとめにして同じ場所に表示したい場合は、 setErrorTemplate() には空の文字列を渡し、 テンプレート内のお望みの場所にこのブロックを追加します。
<!-- BEGIN myform_error_loop -->
<font color="red">{myform_error}</font><br />
<!-- END myform_error_loop -->

静的レンダラを使用して、グループのレンダリング方法をカスタマイズすることもできます。 単にグループ全体に対してプレースホルダを使用した場合には、そのグループは HTML_QuickForm のデフォルトレンダラでレンダリングされます。 つまり、セパレータ文字列 (あるいはセパレータの配列) が指定されていた場合は それが通常通りに使用されるということです。今回のフォームでは、グループ 'name' がこの方式でレンダリングされています。要素の区切り文字として - が使用されています。

ここで問題なのは、グループ内の要素についてはラベルが表示されないということです。 そのため、2 つのテキストフィールドのうちどちらが苗字でどちらが名前なのかがわかりません。 要素 'name' のレイアウトをこれらの新しいプレースホルダで置き換えることで、 グループの表示方法を変更することができます。
(...)
 <tr>
  <td>{myform_name_label}</td>
  <td>
   <!-- BEGIN myform_name_error -->{myform_name_error}<!-- END myform_name_error -->
   <table>
    <tr><td>{myform_name_first_html}</td><td>{myform_name_last_html}</td></tr>
    <tr><td>{myform_name_first_label}</td><td>{myform_name_last_label}</td></tr>
    </table>
   </td>
 </tr>
(...)

新しいブロックとプレースホルダを追加して、 このグループに関連するエラーの表示場所を指定する必要があります。 お気づきのように、プレースホルダの名前はグループ名と要素名から構成されています。

ティップ また、同じ名前の複数の要素を使用している場合 (例えばグループに属さないラジオボタンなど)、 プレースホルダの名前に 0 から始まるインデックスを追加しなければならないことにも注意しましょう。 例えば {myform_myradio_0_html}, {myform_myradio_1_html}... のようになります。

静的レンダラを使用して、標準的な要素や要素グループを扱う方法について見てきました。 またエラー表示や必須要素の表示方法についても説明しました。今回のフォームでは 検証規則を何も設定していないため、これらの内容は表示されません。 練習問題として、検証規則を追加することを試してみるとよいでしょう。 特別なプレースホルダ {myform_required_note} をテンプレート内で指定すると、必須要素であることを示す注意書きをそこに表示させることができます。 このレンダラの使用法はとても簡単です。もしこのレンダラが気に入ったのなら、 動的レンダラについても確認してみましょう。 場合によってはこちらのほうがあなたのお望みの動作をするかもしれません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_ITDynamic::setHeaderBlock() | 上に戻る | constructor HTML_QuickForm_Renderer_ITStatic::HTML_QuickForm_Renderer_ITStatic()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor HTML_QuickForm_Renderer_ITStatic::HTML_QuickForm_Renderer_ITStatic()

constructor HTML_QuickForm_Renderer_ITStatic::HTML_QuickForm_Renderer_ITStatic() -- コンストラクタ

概要

require_once 'HTML/QuickForm/Renderer/ITStatic.php';

void HTML_QuickForm_Renderer_ITStatic::HTML_QuickForm_Renderer_ITStatic (object &$tpl)

説明

このパッケージに関する文書は、未作成です。

パラメータ

object &$tpl

使用する、HTML_Template_IT あるいは互換テンプレートのオブジェクト。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_ITStatic | 上に戻る | HTML_QuickForm_Renderer_ITStatic::setErrorTemplate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_ITStatic::setErrorTemplate()

HTML_QuickForm_Renderer_ITStatic::setErrorTemplate() -- 検証エラーが発生した要素をレンダリングする方法を設定する

概要

require_once 'HTML/QuickForm/Renderer/ITStatic.php';

void HTML_QuickForm_Renderer_ITStatic::setErrorTemplate (string $template)

説明

プレースホルダ {label} あるいは {html} を使用し、 要素のラベルや HTML がエラーメッセージのどの部分に配置されるのかを指定することができます。 これらのプレースホルダは、正しい値に適切に置き換えられます。 エラーメッセージは、プレースホルダ {error} の部分と置き換えられます。 例えば、<font color="red">{error}</font>{html} は、要素の HTML の上部に赤いエラーメッセージを配置します。

すべてのエラーメッセージをメインエラーブロックに出力したい場合は、 {html} や {label} を指定しないでください。

グループには特別なレイアウトを使用することが可能です。 そのような場合は、エラーメッセージを配置する場所をレンダラが知っている必要があります。 それには、フォーム内でエラーメッセージを表示したい場所で <!-- BEGIN form_group_error -->{form_group_error}<!-- END form_group_error --> のようなエラーブロックを使用します。

パラメータ

string $template

要素エラーのテンプレート。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor HTML_QuickForm_Renderer_ITStatic::HTML_QuickForm_Renderer_ITStatic() | 上に戻る | HTML_QuickForm_Renderer_ITStatic::setRequiredTemplate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_ITStatic::setRequiredTemplate()

HTML_QuickForm_Renderer_ITStatic::setRequiredTemplate() -- 必須要素をレンダリングする方法を設定する

概要

require_once 'HTML/QuickForm/Renderer/ITStatic.php';

void HTML_QuickForm_Renderer_ITStatic::setRequiredTemplate (string $template)

説明

プレースホルダ {label} あるいは {html} を使用し、 要素のラベルや HTML が必須要素のどの部分に配置されるのかをレンダラに教えることができます。 これらのプレースホルダは、正しい値に適切に置き換えられます。 例えば、<font color="red">*</font>{label} は、必須要素のラベルの先頭に赤い星印をつけます。

パラメータ

string $template

必須要素のテンプレート。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_ITStatic::setErrorTemplate() | 上に戻る | HTML_QuickForm_Renderer_QuickHtml

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_QuickHtml

HTML_QuickForm_Renderer_QuickHtml -- 簡単で柔軟な方式を用いて、フォーム要素を HTML にレンダリングする

説明

このレンダラには 3 つの大きな特徴があります。独自のフォームを簡単に作成できること、 フォーム要素の作成とその見た目を分離できること、 そしてウィジェットベースのテンプレートシステムの中で QuickForm を使用できることです。

どんなレンダラでも、独自のフォームを作成することは可能です。 しかし、デフォルトのレンダラとは異なり、 QuickHtml は独自のフォームを作成することだけに重点を置いています。 そのため以下に説明するような利点があります。

フォーム要素や検証規則の作成を、実際の表示部分と分離したいことはよくあるでしょう。 例えば MVC デザインパターンでは、フォーム要素や検証規則の作成をモデルクラスに置き、 送信されたデータを保存する方法 (フィールドの長さ、使用できる文字など) を制御すると便利です。一方それらの要素のレンダリングはビュークラスに置き、 ここではページをどのように表示するかだけを管理させます。

ウィジェットとは html の一部を再利用可能なようにまとめたもので、 他のウィジェットと組み合わせることでウェブページを作成します。 ウィジェットをサポートしているテンプレートシステム (ほとんどすべてがそうです) なら何でも QuickHtml と一緒に使用できます。 例に示すウィジェットは、フォーム要素のための場所が予約済みのテーブルで構成されています。 フォーム要素はそこにレンダリングされ、さらにフォームタグ、残りのフォーム要素 (例えば hidden 要素など)、そして検証用の javascript などがテーブルウィジェットに含められます。

使用例

QuickHtml レンダラの使用例を以下に示します。ここで使用する 「テンプレート」システムは単なるシンプルな html ウィジェットで、 フォーム要素を配置するだけのものですが、 より複雑なテンプレートシステムに置き換えることもできます。 より複雑な使用例は、 docs/renderers/QuickHtml_example.php を参照ください。

例 41-1QuickHtml レンダラの例

<?php
require_once 'HTML/QuickForm.php';
require_once 'HTML/QuickForm/Renderer/QuickHtml.php';

// フォーム要素とレンダラを作成します。
$form =& new HTML_QuickForm('tmp_form','POST');
$renderer =& new HTML_QuickForm_Renderer_QuickHtml();
// hidden 要素を作成します。これを明示的にはレンダリングしないことに注意しましょう。
// QuickHtml レンダラは、フォームの先頭で自動的にレンダリングを行います。
$form->addElement('hidden','tmp_hidden');
// 2 つの radio 要素を作成します。それぞれに値を設定していることに注意しましょう。
// この値が、2 つの radio を識別するための唯一の方法となります。
$form->addElement('radio','tmp_radio',null,null,'Y');
$form->addElement('radio','tmp_radio',null,null,'N');
// グループと規則を作成します。
$text = array();
$text[] =& HTML_QuickForm::createElement('text','',null,array('size' => 3));
$text[] =& HTML_QuickForm::createElement('text','',null,array('size' => 4));
$text[] =& HTML_QuickForm::createElement('text','',null,array('size' => 3));
$form->addGroup($text, 'tmp_phone', null, '-');
$form->addRule('tmp_phone','電話番号は空欄にはできません。','required',null,'client');

// フォームを作成するおまじないです。注意: ここでは順序が重要です。
// この処理は、フォーム要素を作成した後、それをレンダリングする前に
// 実行しなければなりません。
$form->accept($renderer);

// フォーム用の非常に基本的なテンプレートを作成します。
$html_template = '
<div style="text-align: center; font-weight: bold;">QuickHtml - 基本的な例</div>
<div style="text-align: center; background-color: #ccc; margin: 1px;">電話番号: %phoneNumber%</div>
<div style="text-align: left; background-color: #ccc; margin: 1px;">Yes: %radioElementYes% No: %radioElementNo%</div>';

// テンプレートにフォーム要素を挿入します。
$html_template = str_replace('%phoneNumber%', $renderer->elementToHtml('tmp_phone'), $html_template);
$html_template = str_replace('%radioElementYes%', $renderer->elementToHtml('tmp_radio', 'Y'), $html_template);
$html_template = str_replace('%radioElementNo%', $renderer->elementToHtml('tmp_radio', 'N'), $html_template);

// form タグ、javascript そして hidden 要素は
// html テンプレートにラップされます。
echo $renderer->toHtml($html_template);
?>

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_ITStatic::setRequiredTemplate() | 上に戻る | constructor HTML_QuickForm_Renderer_QuickHtml::HTML_QuickForm_Renderer_QuickHtml()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_QuickHtml::elementToHtml()

HTML_QuickForm_Renderer_QuickHtml::elementToHtml() -- 指定したフォーム要素を HTML にレンダリングする

概要

require_once 'HTML/QuickForm/Renderer/QuickHtml.php';

string HTML_QuickForm_Renderer_QuickHtml::elementToHtml (string $elementName [, string $elementValue])

説明

指定したフォーム要素用に生成した HTML を返し、 その要素にレンダリング済みマークをつけます。

パラメータ

$elementName

レンダリング対象のフォーム要素の名前。

$elementValue

フォーム要素に与える値。(ラジオボタンなど) 同じ名前を持つ要素がある場合にのみ有用です。 この場合、各要素に与えた値によってのみ要素が区別されます。

例外・エラー

例外はスローされません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_QuickHtml::toHtml() | 上に戻る | HTML_QuickForm_Controller

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor HTML_QuickForm_Renderer_QuickHtml::HTML_QuickForm_Renderer_QuickHtml()

constructor HTML_QuickForm_Renderer_QuickHtml::HTML_QuickForm_Renderer_QuickHtml() -- コンストラクタ

概要

require_once 'HTML/QuickForm/Renderer/QuickHtml.php';

void HTML_QuickForm_Renderer_QuickHtml::HTML_QuickForm_Renderer_QuickHtml (void)

説明

HTML_QuickForm_Renderer_QuickHtml() のコンストラクタです。

例外・エラー

例外はスローされません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer_QuickHtml | 上に戻る | HTML_QuickForm_Renderer_QuickHtml::toHtml()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer_QuickHtml::toHtml()

HTML_QuickForm_Renderer_QuickHtml::toHtml() -- HTML を返す

概要

require_once 'HTML/QuickForm/Renderer/QuickHtml.php';

string HTML_QuickForm_Renderer_QuickHtml::toHtml ([string $data])

説明

指定したフォーム要素用に生成した HTML を返します。

パラメータ

$data

フォームタグの中に配置する html。通常は、 フォーム要素をレンダリングした html テンプレートとなります。

例外・エラー

例外はスローされません。

前のページ | ホーム | 次のページ
constructor HTML_QuickForm_Renderer_QuickHtml::HTML_QuickForm_Renderer_QuickHtml() | 上に戻る | HTML_QuickForm_Renderer_QuickHtml::elementToHtml()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer::finishForm()

HTML_QuickForm_Renderer::finishForm() -- フォームの処理を終了する （パッケージ開発者用）

概要

require_once 'HTML/QuickForm/Renderer.php';

void HTML_QuickForm_Renderer::finishForm (object &$form)

説明

訪れたフォームで、すべてのフォーム要素の処理が終わった後でコールされます。

パラメータ

object &$form

処理する HTML_QuickForm オブジェクト。

例外・エラー

例外はスローされません。

注意

abstract

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer::startForm() | 上に戻る | HTML_QuickForm_Renderer::startGroup()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer::finishGroup()

HTML_QuickForm_Renderer::finishGroup() -- グループの処理を終了する （パッケージ開発者用）

概要

require_once 'HTML/QuickForm/Renderer.php';

void HTML_QuickForm_Renderer::finishGroup (object &$group)

説明

訪れたグループで、すべてのグループ要素の処理が終わった後でコールされます。

パラメータ

object &$group

処理する HTML_QuickForm_group オブジェクト。

例外・エラー

例外はスローされません。

注意

abstract

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer::startGroup() | 上に戻る | HTML_QuickForm_Renderer::renderElement()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer::renderElement()

HTML_QuickForm_Renderer::renderElement() -- 要素を処理する （パッケージ開発者用）

概要

require_once 'HTML/QuickForm/Renderer.php';

void HTML_QuickForm_Renderer::renderElement (object &$element, bool $required, string $error)

説明

要素を訪問する際にコールされます。

パラメータ

object &$element

処理する HTML_QuickForm_element オブジェクト。

boolean $required

必須要素であるかどうか。

string $error

要素に関連付けられたエラーメッセージ。

例外・エラー

例外はスローされません。

注意

abstract

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer::finishGroup() | 上に戻る | HTML_QuickForm_Renderer::renderHeader()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer::renderHeader()

HTML_QuickForm_Renderer::renderHeader() -- ヘッダを処理する （パッケージ開発者用）

概要

require_once 'HTML/QuickForm/Renderer.php';

void HTML_QuickForm_Renderer::renderHeader (object &$header)

説明

ヘッダ要素を訪問する際にコールされます。

パラメータ

object &$header

処理する HTML_QuickForm_header 要素。

例外・エラー

例外はスローされません。

注意

abstract

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer::renderElement() | 上に戻る | HTML_QuickForm_Renderer::renderHidden()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer::renderHidden()

HTML_QuickForm_Renderer::renderHidden() -- hidden 要素を処理する （パッケージ開発者用）

概要

require_once 'HTML/QuickForm/Renderer.php';

void HTML_QuickForm_Renderer::renderHidden (object &$element)

説明

hidden 要素を訪問する際にコールされます。

パラメータ

object &$element

処理する HTML_QuickForm_hidden オブジェクト。

例外・エラー

例外はスローされません。

注意

abstract

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer::renderHeader() | 上に戻る | HTML_QuickForm_Renderer::renderHtml()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer::renderHtml()

HTML_QuickForm_Renderer::renderHtml() -- 生の HTML/テキスト 要素を処理する （パッケージ開発者用）

概要

require_once 'HTML/QuickForm/Renderer.php';

void HTML_QuickForm_Renderer::renderHtml (object &$data)

説明

生の HTML/テキスト 擬似要素を訪問する際にコールされます。

Implementation of the method HTML_QuickForm_html 要素は、フォーム出力に直接 HTML を追加する際に使用されます。そのため、デフォルトのレンダラでは有用ですが、 テンプレートベースのレンダラでは使えません。現在このメソッドを実装しているのは、 デフォルトのレンダラのみです。それ以外のレンダラでは HTML_QuickForm_html 要素を黙って無視します。

パラメータ

object &$data

処理する HTML_QuickForm_html 要素。

例外・エラー

例外はスローされません。

注意

abstract

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer::renderHidden() | 上に戻る | HTML_QuickForm_Controller

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer::startForm()

HTML_QuickForm_Renderer::startForm() -- フォームの処理を開始する （パッケージ開発者用）

概要

require_once 'HTML/QuickForm/Renderer.php';

void HTML_QuickForm_Renderer::startForm (object &$form)

説明

フォームを訪問する際に、フォーム要素を処理する前にコールされます。

パラメータ

object &$form

処理する HTML_QuickForm オブジェクト。

例外・エラー

例外はスローされません。

注意

abstract

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer | 上に戻る | HTML_QuickForm_Renderer::finishForm()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_Renderer::startGroup()

HTML_QuickForm_Renderer::startGroup() -- グループの処理を開始する （パッケージ開発者用）

概要

require_once 'HTML/QuickForm/Renderer.php';

void HTML_QuickForm_Renderer::startGroup (object &$group, bool $required, string $error)

説明

グループを訪問する際に、グループ要素を処理する前にコールされます。

パラメータ

object &$group

処理する HTML_QuickForm_group オブジェクト。

boolean $required

グループが必須であるかどうか。

string $error

グループに関連付けられたエラーメッセージ。

例外・エラー

例外はスローされません。

注意

abstract

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_Renderer::finishForm() | 上に戻る | HTML_QuickForm_Renderer::finishGroup()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_reset クラス概要

HTML_QuickForm_reset クラス概要 -- reset 型の要素のための HTML クラス

説明

このパッケージに関する文書は、未作成です。

HTML_QuickForm_reset のクラス階層

  • HTML_Common

    • HTML_QuickForm_element

      • HTML_QuickForm_input

        • HTML_QuickForm_reset

HTML_QuickForm_reset が継承しているメソッド

表 41-1HTML_QuickForm_input から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_input::HTML_QuickForm_input() | クラスのコンストラクタ
HTML_QuickForm_input::exportValue() | ボタン要素 (submit を除く) やファイル要素の値を取得する必要はない
HTML_QuickForm_input::getName() | 要素名を返す
HTML_QuickForm_input::getValue() | フォーム要素の値を返す
HTML_QuickForm_input::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_input::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_input::setType() | 要素の型を設定する
HTML_QuickForm_input::setValue() | フォーム要素の値を設定する

表 41-2HTML_QuickForm_element から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_element::HTML_QuickForm_element() | クラスのコンストラクタ
HTML_QuickForm_element::accept() | レンダラを受け入れる
HTML_QuickForm_element::apiVersion() | 現在の API のバージョンを返す
HTML_QuickForm_element::exportValue() | '安全な' 要素の値を返す
HTML_QuickForm_element::freeze() | 要素を凍結し、その値のみを返す
HTML_QuickForm_element::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_element::getLabel() | 要素の表示テキストを返す
HTML_QuickForm_element::getName() | 要素名を返す
HTML_QuickForm_element::getType() | 要素の型を返す
HTML_QuickForm_element::getValue() | フォーム要素の値を返す
HTML_QuickForm_element::isFrozen() | 要素が凍結されているかどうかを返す
HTML_QuickForm_element::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_element::setLabel() | 要素の表示テキストを設定する
HTML_QuickForm_element::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_element::setPersistantFreeze() | 要素の値を、それが凍結されているかどうかにかかわらず hidden フィールドに保持し続けるかどうかを設定する
HTML_QuickForm_element::setValue() | フォーム要素の値を設定する
HTML_QuickForm_element::unfreeze() | フォーム要素の凍結を解除する

前のページ | ホーム | 次のページ
HTML_QuickForm_radio::setText() | 上に戻る | コンストラクタ HTML_QuickForm_reset()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ HTML_QuickForm_reset()

コンストラクタ HTML_QuickForm_reset() -- クラスのコンストラクタ

概要

require_once 'HTML/QuickForm/reset.php';

void constructor HTML_QuickForm_reset::HTML_QuickForm_reset ([string $elementName = NULL [, string $value = NULL [, mixed $attributes = NULL]]])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $elementName

(オプション) Input フィールドの name 属性。

string $value

(オプション) Input フィールドの値。

mixed $attributes

(オプション) 典型的な HTML 属性の文字列あるいは連想配列。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_reset クラス概要 | 上に戻る | HTML_QuickForm_select クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_select クラス概要

HTML_QuickForm_select クラス概要 -- HTML SELECT を動的に作成するためのクラス

説明

このクラスの売りは、連想配列やデータベースから選択肢の内容を作成できることです。

HTML_QuickForm_select のクラス階層

  • HTML_Common

    • HTML_QuickForm_element

      • HTML_QuickForm_select

表 41-1HTML_QuickForm_select を継承するクラス

クラス | 概要
HTML_QuickForm_hiddenselect | select の値を持つ hidden 要素を作成する

HTML_QuickForm_select が継承しているメソッド

表 41-2HTML_QuickForm_element から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_element::HTML_QuickForm_element() | クラスのコンストラクタ
HTML_QuickForm_element::accept() | レンダラを受け入れる
HTML_QuickForm_element::apiVersion() | 現在の API のバージョンを返す
HTML_QuickForm_element::exportValue() | '安全な' 要素の値を返す
HTML_QuickForm_element::freeze() | 要素を凍結し、その値のみを返す
HTML_QuickForm_element::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_element::getLabel() | 要素の表示テキストを返す
HTML_QuickForm_element::getName() | 要素名を返す
HTML_QuickForm_element::getType() | 要素の型を返す
HTML_QuickForm_element::getValue() | フォーム要素の値を返す
HTML_QuickForm_element::isFrozen() | 要素が凍結されているかどうかを返す
HTML_QuickForm_element::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_element::setLabel() | 要素の表示テキストを設定する
HTML_QuickForm_element::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_element::setPersistantFreeze() | 要素の値を、それが凍結されているかどうかにかかわらず hidden フィールドに保持し続けるかどうかを設定する
HTML_QuickForm_element::setValue() | フォーム要素の値を設定する
HTML_QuickForm_element::unfreeze() | フォーム要素の凍結を解除する

前のページ | ホーム | 次のページ
コンストラクタ HTML_QuickForm_reset() | 上に戻る | コンストラクタ HTML_QuickForm_select()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_select::addOption()

HTML_QuickForm_select::addOption() -- SELECT に新しい OPTION を追加する

概要

require_once 'HTML/QuickForm/select.php';

void HTML_QuickForm_select::addOption (string $text, string $value [, mixed $attributes = NULL])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $text

OPTION の表示用テキスト。

string $value

OPTION の値。

mixed $attributes

典型的な HTML 属性の文字列あるいは連想配列。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
コンストラクタ HTML_QuickForm_select() | 上に戻る | HTML_QuickForm_select::getMultiple()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_select::getMultiple()

HTML_QuickForm_select::getMultiple() -- select の mutiple 属性を返す

概要

require_once 'HTML/QuickForm/select.php';

bool HTML_QuickForm_select::getMultiple ()

説明

このメソッドは、select に multiple 属性が設定されている場合に TRUE、それ以外の場合に FALSE を返します。

返り値

multiple が設定されている場合に true、それ以外の場合に false を返します。

例外・エラー

例外はスローされません。

参照

setMultiple() も参照ください。

注意

since 1.2

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_select::addOption() | 上に戻る | HTML_QuickForm_select::getPrivateName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_select::getPrivateName()

HTML_QuickForm_select::getPrivateName() -- 要素名を返す (角括弧が追加される可能性あり)

概要

require_once 'HTML/QuickForm/select.php';

string HTML_QuickForm_select::getPrivateName ()

説明

select が multiple 属性を保持している場合、 このメソッドは名前に角括弧を追加したものを返します。 それ以外の場合は、返される結果は getName() と同じです。

例外・エラー

例外はスローされません。

参照

getName()、 getMultiple() も参照ください。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_select::getMultiple() | 上に戻る | HTML_QuickForm_select::getSelected()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_select::getSelected()

HTML_QuickForm_select::getSelected() -- 選択された値の配列を返す

概要

require_once 'HTML/QuickForm/select.php';

array HTML_QuickForm_select::getSelected ()

説明

この関数は、 getValue() のエイリアスです。

返り値

選択された値を返します。

例外・エラー

例外はスローされません。

参照

getValue()、 setSelected() も参照ください。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_select::getPrivateName() | 上に戻る | HTML_QuickForm_select::getSize()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_select::getSize()

HTML_QuickForm_select::getSize() -- select フィールドのサイズを返す

概要

require_once 'HTML/QuickForm/select.php';

int HTML_QuickForm_select::getSize ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

参照

setSize() も参照ください。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_select::getSelected() | 上に戻る | HTML_QuickForm_select::load()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ HTML_QuickForm_select()

コンストラクタ HTML_QuickForm_select() -- クラスのコンストラクタ

概要

require_once 'HTML/QuickForm/select.php';

void constructor HTML_QuickForm_select::HTML_QuickForm_select ([string $elementName = NULL [, mixed $elementLabel = NULL [, mixed $options = NULL [, mixed $attributes = NULL]]]])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $elementName

select の name 属性。

mixed $elementLabel

select のラベル。

mixed $options

選択肢として使用されるデータ。

mixed $attributes

典型的な HTML 属性の文字列あるいは連想配列。

例外・エラー

例外はスローされません。

参照

load() も参照ください。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_select クラス概要 | 上に戻る | HTML_QuickForm_select::addOption()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_select::load()

HTML_QuickForm_select::load() -- さまざまな型のデータソースから選択肢を読み込む

概要

require_once 'HTML/QuickForm/select.php';

PEAR_Error HTML_QuickForm_select::load (mixed &$options [, mixed $param1 = NULL [, mixed $param2 = NULL [, mixed $param3 = NULL [, mixed $param4 = NULL]]]])

説明

このメソッドは、オーバーロードされたメソッドのように振舞います。 最初の引数以外の引数はオプションで、 最初の引数の内容によってその意味合いが変わります。

最初の引数が配列の場合、すべての引数がその順に loadArray() に渡されます。最初の引数が DB_Result の場合、すべての引数がその順に loadDbResult() に渡されます。最初の引数が文字列あるいは DB 接続の場合、 すべての引数がその順に loadQuery() に渡されます。

パラメータ

mixed &$options

選択肢のソース。現在は連想配列あるいは DB_result をサポートしています。

mixed $param1

(オプション) 関数の詳細を参照ください。

mixed $param2

(オプション) 関数の詳細を参照ください。

mixed $param3

(オプション) 関数の詳細を参照ください。

mixed $param4

(オプション) 関数の詳細を参照ください。

返り値

成功した場合に TRUE を返します。

例外・エラー

PEAR_Error をスローします。

参照

loadArray()、
loadDbResult()、
loadQuery()
も参照ください。

注意

since 1.1

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_select::getSize() | 上に戻る | HTML_QuickForm_select::loadArray()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_select::loadArray()

HTML_QuickForm_select::loadArray() -- 連想配列から選択肢を読み込む

概要

require_once 'HTML/QuickForm/select.php';

mixed HTML_QuickForm_select::loadArray (array $arr [, mixed $values = NULL])

説明

配列の書式は 'オプションの value' => 'オプションの表示テキストoption text' となります。

パラメータ

array $arr

選択肢の連想配列。

mixed $values

(オプション) 選択された値を表す、配列あるいはカンマ区切り文字列。

返り値

成功した場合に TRUE を返します。

例外・エラー

PEAR_Error をスローします。

参照

load()、 addOption()、 も参照ください。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_select::load() | 上に戻る | HTML_QuickForm_select::loadDbResult()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_select::loadDbResult()

HTML_QuickForm_select::loadDbResult() -- DB_result オブジェクトから選択肢を読み込む

概要

require_once 'HTML/QuickForm/select.php';

mixed HTML_QuickForm_select::loadDbResult (object DB_Result &$result [, string $textCol = NULL [, string $valueCol = NULL [, mixed $values = NULL]]])

説明

カラム名が指定されていない場合、結果の最初の 2 つのカラムが それぞれ表示テキストおよび値として使用されます。

パラメータ

object &$result

DB_result オブジェクト。

string $textCol

(オプション) OPTION のテキストとして表示するカラムの名前。

string $valueCol

(オプション) OPTION の値として使用するカラムの名前。

mixed $values

(オプション) 選択された値を表す、配列あるいはカンマ区切り文字列。

返り値

成功した場合に TRUE、それ以外の場合に PEAR_Error を返します。

例外・エラー

PEAR_Error をスローします。

参照

load()、 addOption() も参照ください。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_select::loadArray() | 上に戻る | HTML_QuickForm_select::loadQuery()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_select::loadQuery()

HTML_QuickForm_select::loadQuery() -- データベースに問い合わせ、その結果から選択肢を読み込む

概要

require_once 'HTML/QuickForm/select.php';

mixed HTML_QuickForm_select::loadQuery (mixed &$conn, string $sql [, string $textCol = NULL [, string $valueCol = NULL [, mixed $values = NULL]]])

説明

カラム名が指定されていない場合、結果の中の最初の 2 つのカラムが それぞれ表示テキストおよび値として使用されます。

パラメータ

mixed &$conn

既存の DB 接続あるいは有効な DSN。

string $sql

SQL クエリ文字列。

string $textCol

(オプション) OPTION のテキストとして表示するカラムの名前。

string $valueCol

(オプション) OPTION の値として使用するカラムの名前。

mixed $values

(オプション) 選択された値を表す、配列あるいはカンマ区切り文字列。

例外・エラー

PEAR_Error をスローします。

参照

load()、
loadDbResult()、
addOption()
も参照ください。

注意

since 1.1

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_select::loadDbResult() | 上に戻る | HTML_QuickForm_select::setMultiple()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_select::setMultiple()

HTML_QuickForm_select::setMultiple() -- select の mutiple 属性を設定する

概要

require_once 'HTML/QuickForm/select.php';

void HTML_QuickForm_select::setMultiple (bool $multiple)

説明

このメソッドは、$multiple の値に応じて select の multiple 属性を追加または削除します。

パラメータ

boolean $multiple

select が複数選択をサポートするかどうか。

例外・エラー

例外はスローされません。

参照

getMultiple() も参照ください。

注意

since 1.2

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_select::loadQuery() | 上に戻る | HTML_QuickForm_select::setSelected()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_select::setSelected()

HTML_QuickForm_select::setSelected() -- セレクトボックスのデフォルト値を設定する

概要

require_once 'HTML/QuickForm/select.php';

void HTML_QuickForm_select::setSelected (mixed $values)

説明

このメソッドは、 setValue() のエイリアスです。複数選択可能な select の場合は、 配列あるいはカンマ区切り文字列で値を渡すことが可能です。

パラメータ

mixed $values

選択された値を表す、配列あるいはカンマ区切り文字列。

例外・エラー

例外はスローされません。

参照

getSelected() も参照ください。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_select::setMultiple() | 上に戻る | HTML_QuickForm_select::setSize()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_select::setSize()

HTML_QuickForm_select::setSize() -- select フィールドのサイズを設定する ('multiple' select についてのみ適用される)

概要

require_once 'HTML/QuickForm/select.php';

void HTML_QuickForm_select::setSize (int $size)

説明

このパッケージに関する文書は、未作成です。

パラメータ

integer $size

select フィールドのサイズ。

例外・エラー

例外はスローされません。

参照

getSize() も参照ください。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_select::setSelected() | 上に戻る | HTML_QuickForm_submit クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_static クラス概要

HTML_QuickForm_static クラス概要 -- 静的なデータのための HTML クラス

説明

静的要素とは、送信する値を持たず、入力によって値が変わることのない要素です。 このような要素は、一般的にフォームの見た目をよくするために使用されます。 HTML_QuickForm_static 型の要素は、 デフォルトでは通常のフォーム要素と同じテンプレートでレンダリングされます。

HTML_QuickForm_static のクラス階層

  • HTML_Common

    • HTML_QuickForm_element

      • HTML_QuickForm_static

表 41-1HTML_QuickForm_static を継承するクラス

クラス | 概要
HTML_QuickForm_header | フォームにヘッダを追加する際に使用する擬似要素
HTML_QuickForm_html | フォームに生の HTML を追加するために使用する擬似要素
HTML_QuickForm_link | リンク型のフィールドのための HTML クラス

HTML_QuickForm_static が継承しているメソッド

表 41-2HTML_QuickForm_element から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_element::HTML_QuickForm_element() | クラスのコンストラクタ
HTML_QuickForm_element::accept() | レンダラを受け入れる
HTML_QuickForm_element::apiVersion() | 現在の API のバージョンを返す
HTML_QuickForm_element::exportValue() | '安全な' 要素の値を返す
HTML_QuickForm_element::freeze() | 要素を凍結し、その値のみを返す
HTML_QuickForm_element::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_element::getLabel() | 要素の表示テキストを返す
HTML_QuickForm_element::getName() | 要素名を返す
HTML_QuickForm_element::getType() | 要素の型を返す
HTML_QuickForm_element::getValue() | フォーム要素の値を返す
HTML_QuickForm_element::isFrozen() | 要素が凍結されているかどうかを返す
HTML_QuickForm_element::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_element::setLabel() | 要素の表示テキストを設定する
HTML_QuickForm_element::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_element::setPersistantFreeze() | 要素の値を、それが凍結されているかどうかにかかわらず hidden フィールドに保持し続けるかどうかを設定する
HTML_QuickForm_element::setValue() | フォーム要素の値を設定する
HTML_QuickForm_element::unfreeze() | フォーム要素の凍結を解除する

前のページ | ホーム | 次のページ
HTML_QuickForm_link::setHref() | 上に戻る | コンストラクタ HTML_QuickForm_static()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ HTML_QuickForm_static()

コンストラクタ HTML_QuickForm_static() -- クラスのコンストラクタ

概要

require_once 'HTML/QuickForm/static.php';

void constructor HTML_QuickForm_static::HTML_QuickForm_static ([string $elementName = NULL [, mixed $elementLabel = NULL [, string $text = NULL]]])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $elementName

要素の名前。

mixed $elementLabel

(オプション) ラベル。

string $text

(オプション) 表示テキスト。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_static クラス概要 | 上に戻る | HTML_QuickForm_static::setText()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_static::setText()

HTML_QuickForm_static::setText() -- テキストを設定する

概要

require_once 'HTML/QuickForm/static.php';

void HTML_QuickForm_static::setText (string $text)

説明

このテキストは、本質的には静的要素そのものです。 setValue() は setText() のエイリアスであることに注意しましょう。

パラメータ

string $text

要素のテキスト。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
コンストラクタ HTML_QuickForm_static() | 上に戻る | HTML_QuickForm_Controller

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_submit クラス概要

HTML_QuickForm_submit クラス概要 -- submit 型の要素のための HTML クラス

説明

このパッケージに関する文書は、未作成です。

HTML_QuickForm_submit のクラス階層

  • HTML_Common

    • HTML_QuickForm_element

      • HTML_QuickForm_input

        • HTML_QuickForm_submit

HTML_QuickForm_submit が継承しているメソッド

表 41-1HTML_QuickForm_input から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_input::HTML_QuickForm_input() | クラスのコンストラクタ
HTML_QuickForm_input::exportValue() | ボタン要素 (submit を除く) やファイル要素の値を取得する必要はない
HTML_QuickForm_input::getName() | 要素名を返す
HTML_QuickForm_input::getValue() | フォーム要素の値を返す
HTML_QuickForm_input::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_input::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_input::setType() | 要素の型を設定する
HTML_QuickForm_input::setValue() | フォーム要素の値を設定する

表 41-2HTML_QuickForm_element から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_element::HTML_QuickForm_element() | クラスのコンストラクタ
HTML_QuickForm_element::accept() | レンダラを受け入れる
HTML_QuickForm_element::apiVersion() | 現在の API のバージョンを返す
HTML_QuickForm_element::exportValue() | '安全な' 要素の値を返す
HTML_QuickForm_element::freeze() | 要素を凍結し、その値のみを返す
HTML_QuickForm_element::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_element::getLabel() | 要素の表示テキストを返す
HTML_QuickForm_element::getName() | 要素名を返す
HTML_QuickForm_element::getType() | 要素の型を返す
HTML_QuickForm_element::getValue() | フォーム要素の値を返す
HTML_QuickForm_element::isFrozen() | 要素が凍結されているかどうかを返す
HTML_QuickForm_element::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_element::setLabel() | 要素の表示テキストを設定する
HTML_QuickForm_element::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_element::setPersistantFreeze() | 要素の値を、それが凍結されているかどうかにかかわらず hidden フィールドに保持し続けるかどうかを設定する
HTML_QuickForm_element::setValue() | フォーム要素の値を設定する
HTML_QuickForm_element::unfreeze() | フォーム要素の凍結を解除する

前のページ | ホーム | 次のページ
HTML_QuickForm_select::setSize() | 上に戻る | コンストラクタ HTML_QuickForm_submit()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ HTML_QuickForm_submit()

コンストラクタ HTML_QuickForm_submit() -- クラスのコンストラクタ

概要

require_once 'HTML/QuickForm/submit.php';

void constructor HTML_QuickForm_submit::HTML_QuickForm_submit ([string $elementName = NULL [, string $value = NULL [, mixed $attributes = NULL]]])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $elementName

Input フィールドの name 属性。

string $value

Input フィールドの値。

mixed $attributes

典型的な HTML 属性の文字列あるいは連想配列。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_submit クラス概要 | 上に戻る | HTML_QuickForm_text クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_text クラス概要

HTML_QuickForm_text クラス概要 -- テキストフィールドのための HTML クラス

説明

このパッケージに関する文書は、未作成です。

HTML_QuickForm_text のクラス階層

  • HTML_Common

    • HTML_QuickForm_element

      • HTML_QuickForm_input

        • HTML_QuickForm_text

表 41-1HTML_QuickForm_text を継承するクラス

クラス | 概要
HTML_QuickForm_autocomplete | 自動補完機能つきのテキストフィールドのための HTML クラス

HTML_QuickForm_text が継承しているメソッド

表 41-2HTML_QuickForm_input から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_input::HTML_QuickForm_input() | クラスのコンストラクタ
HTML_QuickForm_input::exportValue() | ボタン要素 (submit を除く) やファイル要素の値を取得する必要はない
HTML_QuickForm_input::getName() | 要素名を返す
HTML_QuickForm_input::getValue() | フォーム要素の値を返す
HTML_QuickForm_input::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_input::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_input::setType() | 要素の型を設定する
HTML_QuickForm_input::setValue() | フォーム要素の値を設定する

表 41-3HTML_QuickForm_element から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_element::HTML_QuickForm_element() | クラスのコンストラクタ
HTML_QuickForm_element::accept() | レンダラを受け入れる
HTML_QuickForm_element::apiVersion() | 現在の API のバージョンを返す
HTML_QuickForm_element::exportValue() | '安全な' 要素の値を返す
HTML_QuickForm_element::freeze() | 要素を凍結し、その値のみを返す
HTML_QuickForm_element::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_element::getLabel() | 要素の表示テキストを返す
HTML_QuickForm_element::getName() | 要素名を返す
HTML_QuickForm_element::getType() | 要素の型を返す
HTML_QuickForm_element::getValue() | フォーム要素の値を返す
HTML_QuickForm_element::isFrozen() | 要素が凍結されているかどうかを返す
HTML_QuickForm_element::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_element::setLabel() | 要素の表示テキストを設定する
HTML_QuickForm_element::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_element::setPersistantFreeze() | 要素の値を、それが凍結されているかどうかにかかわらず hidden フィールドに保持し続けるかどうかを設定する
HTML_QuickForm_element::setValue() | フォーム要素の値を設定する
HTML_QuickForm_element::unfreeze() | フォーム要素の凍結を解除する

前のページ | ホーム | 次のページ
コンストラクタ HTML_QuickForm_submit() | 上に戻る | コンストラクタ HTML_QuickForm_text

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ HTML_QuickForm_text

コンストラクタ HTML_QuickForm_text -- クラスのコンストラクタ

概要

require_once 'HTML/QuickForm/text.php';

void constructor HTML_QuickForm_text::HTML_QuickForm_text ([string $elementName = NULL [, string $elementLabel = NULL [, mixed $attributes = NULL]]])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $elementName

(オプション) Input フィールドの name 属性。

string $elementLabel

(オプション) Input フィールドのラベル。

mixed $attributes

(オプション) 典型的な HTML 属性の文字列あるいは連想配列。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_text クラス概要 | 上に戻る | HTML_QuickForm_text::setMaxlength()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_text::setMaxlength()

HTML_QuickForm_text::setMaxlength() -- テキストフィールドの最大長を設定する

概要

require_once 'HTML/QuickForm/text.php';

void HTML_QuickForm_text::setMaxlength (string $maxlength)

説明

これは、単に以下の処理と同じことをします。
$element->updateAttributes(array('maxlength' => $maxlength));

パラメータ

string $maxlength

テキストフィールドの最大長。

例外・エラー

例外はスローされません。

注意

since 1.3

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
コンストラクタ HTML_QuickForm_text | 上に戻る | HTML_QuickForm_text::setSize()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_text::setSize()

HTML_QuickForm_text::setSize() -- テキストフィールドのサイズを設定する

概要

require_once 'HTML/QuickForm/text.php';

void HTML_QuickForm_text::setSize (string $size)

説明

これは、単に以下の処理と同じことをします。
$element->updateAttributes(array('size' => $size));

パラメータ

string $size

テキストフィールドのサイズ。

例外・エラー

例外はスローされません。

注意

since 1.3

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_text::setMaxlength() | 上に戻る | HTML_QuickForm_textarea クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_textarea クラス概要

HTML_QuickForm_textarea クラス概要 -- textarea 型のフィールドのための HTML クラス

textarea 型のフィールドのための HTML クラス

このパッケージに関する文書は、未作成です。

HTML_QuickForm_textarea のクラス階層

  • HTML_Common

    • HTML_QuickForm_element

      • HTML_QuickForm_textarea

HTML_QuickForm_textarea が継承しているメソッド

表 41-1HTML_QuickForm_element から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_element::HTML_QuickForm_element() | クラスのコンストラクタ
HTML_QuickForm_element::accept() | レンダラを受け入れる
HTML_QuickForm_element::apiVersion() | 現在の API のバージョンを返す
HTML_QuickForm_element::exportValue() | '安全な' 要素の値を返す
HTML_QuickForm_element::freeze() | 要素を凍結し、その値のみを返す
HTML_QuickForm_element::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_element::getLabel() | 要素の表示テキストを返す
HTML_QuickForm_element::getName() | 要素名を返す
HTML_QuickForm_element::getType() | 要素の型を返す
HTML_QuickForm_element::getValue() | フォーム要素の値を返す
HTML_QuickForm_element::isFrozen() | 要素が凍結されているかどうかを返す
HTML_QuickForm_element::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_element::setLabel() | 要素の表示テキストを設定する
HTML_QuickForm_element::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_element::setPersistantFreeze() | 要素の値を、それが凍結されているかどうかにかかわらず hidden フィールドに保持し続けるかどうかを設定する
HTML_QuickForm_element::setValue() | フォーム要素の値を設定する
HTML_QuickForm_element::unfreeze() | フォーム要素の凍結を解除する

前のページ | ホーム | 次のページ
HTML_QuickForm_text::setSize() | 上に戻る | コンストラクタ HTML_QuickForm_textarea()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ HTML_QuickForm_textarea()

コンストラクタ HTML_QuickForm_textarea() -- クラスのコンストラクタ

概要

require_once 'HTML/QuickForm/textarea.php';

void constructor HTML_QuickForm_textarea::HTML_QuickForm_textarea ([string $elementName = NULL [, mixed $elementLabel = NULL [, mixed $attributes = NULL]]])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $elementName

Input フィールドの name 属性。

mixed $elementLabel

フィールドのラベル。

mixed $attributes

典型的な HTML 属性の文字列あるいは連想配列。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_textarea クラス概要 | 上に戻る | HTML_QuickForm_textarea::setCols()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_textarea::setCols()

HTML_QuickForm_textarea::setCols() -- textarea 要素の幅を列数で設定する

概要

require_once 'HTML/QuickForm/textarea.php';

void HTML_QuickForm_textarea::setCols (string $cols)

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $cols

列数で表した幅。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
コンストラクタ HTML_QuickForm_textarea() | 上に戻る | HTML_QuickForm_textarea::setRows()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_textarea::setRows()

HTML_QuickForm_textarea::setRows() -- textarea 要素の高さを行数で設定する

概要

require_once 'HTML/QuickForm/textarea.php';

void HTML_QuickForm_textarea::setRows (string $rows)

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $rows

行数で表した高さ。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_textarea::setCols() | 上に戻る | HTML_QuickForm_textarea::setWrap()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_textarea::setWrap()

HTML_QuickForm_textarea::setWrap() -- textarea 要素の自動改行の方式を設定する

概要

require_once 'HTML/QuickForm/textarea.php';

void HTML_QuickForm_textarea::setWrap (string $wrap)

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $wrap

自動改行の方式。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm_textarea::setRows() | 上に戻る | HTML_QuickForm_xbutton クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_xbutton クラス概要

HTML_QuickForm_xbutton クラス概要 -- HTML 4.0 <button> 要素のためのクラス

HTML 4.0 <button> 要素のためのクラス

このクラスが 'xbutton' という名前になっている理由は、 <input type="button" /> HTML 要素を表すクラスとして 'button' という名前がすでに使用されているからです。 HTML_QuickForm リリース 3.2.3 以降で使用可能です。

HTML_QuickForm_xbutton のクラス階層

  • HTML_Common

    • HTML_QuickForm_element

      • HTML_QuickForm_xbutton

HTML_QuickForm_xbutton が継承しているメソッド

表 41-1HTML_QuickForm_element から継承したもの

メソッド名 | 概要
コンストラクタ HTML_QuickForm_element::HTML_QuickForm_element() | クラスのコンストラクタ
HTML_QuickForm_element::accept() | レンダラを受け入れる
HTML_QuickForm_element::apiVersion() | 現在の API のバージョンを返す
HTML_QuickForm_element::exportValue() | '安全な' 要素の値を返す
HTML_QuickForm_element::freeze() | 要素を凍結し、その値のみを返す
HTML_QuickForm_element::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す
HTML_QuickForm_element::getLabel() | 要素の表示テキストを返す
HTML_QuickForm_element::getName() | 要素名を返す
HTML_QuickForm_element::getType() | 要素の型を返す
HTML_QuickForm_element::getValue() | フォーム要素の値を返す
HTML_QuickForm_element::isFrozen() | 要素が凍結されているかどうかを返す
HTML_QuickForm_element::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる
HTML_QuickForm_element::setLabel() | 要素の表示テキストを設定する
HTML_QuickForm_element::setName() | 入力フィールドの名前を設定する
HTML_QuickForm_element::setPersistantFreeze() | 要素の値を、それが凍結されているかどうかにかかわらず hidden フィールドに保持し続けるかどうかを設定する
HTML_QuickForm_element::setValue() | フォーム要素の値を設定する
HTML_QuickForm_element::unfreeze() | フォーム要素の凍結を解除する

前のページ | ホーム | 次のページ
HTML_QuickForm_textarea::setWrap() | 上に戻る | コンストラクタ HTML_QuickForm_xbutton()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ HTML_QuickForm_xbutton()

コンストラクタ HTML_QuickForm_xbutton() -- クラスのコンストラクタ

概要

require_once 'HTML/QuickForm/xbutton.php';

void constructor HTML_QuickForm_xbutton::HTML_QuickForm_xbutton ([string $elementName = NULL [, string $elementContent = NULL [, mixed $attributes = NULL]]])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $elementName

(オプション) ボタンの名前。

string $elementContent

(オプション) ボタンの内容 (<button></button> タグの間に追加する HTML)。

mixed $attributes

(オプション) 典型的な HTML 属性の文字列あるいは連想配列。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

since 3.2.3

前のページ | ホーム | 次のページ
HTML_QuickForm_xbutton クラス概要 | 上に戻る | HTML_QuickForm_xbutton::setContent()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm_xbutton::setContent()

HTML_QuickForm_xbutton::setContent() -- 要素の内容を設定する

概要

require_once 'HTML/QuickForm/xbutton.php';

void HTML_QuickForm_xbutton::setContent (string $content)

説明

ボタン要素の内容、つまり <button></button> タグの間に追加する HTML を設定します。

パラメータ

string $content

<button></button> タグの間に追加する HTML。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

since 3.2.3

前のページ | ホーム | 次のページ
コンストラクタ HTML_QuickForm_xbutton() | 上に戻る | HTML_QuickForm_Controller

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::accept()

HTML_QuickForm::accept() -- レンダラを受け取る

概要

require_once 'HTML/QuickForm.php';

void HTML_QuickForm::accept (object &$renderer)

説明

レンダラを受け取ります。 このメソッドは、ビジター・デザインパターンの実装の一部です。

パラメータ

object &$renderer

HTML_QuickForm_Rendererオブジェクトです。

例外・エラー

例外はスローされません。

注意

since 3.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::getValidationScript() | 上に戻る | HTML_QuickForm::defaultRenderer()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::addElement()

HTML_QuickForm::addElement() -- フォームへ要素を追加する

概要

require_once 'HTML/QuickForm.php';

object &HTML_QuickForm::addElement (mixed $element)

説明

フォームに要素を追加します。 $element が要素型の文字列表現である場合は、 このメソッドは可変引数を受け取ります。それらの引数の意味および引数の数は、 要素の型によって異なります。

パラメータ

mixed $element

要素オブジェクトか、追加する要素種類(text, textarea, file...)

返り値

return 追加した要素へのリファレンス。

例外・エラー

表 41-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 解決
QUICKFORM_UNREGISTERED_ELEMENT | Element '$element' does not exist in HTML_QuickForm::_loadElement() | 未知の要素種類の追加を試みました。 | HTML_QuickForm::registerElementType() を使って種類名のつづりを確認してください。
QUICKFORM_INVALID_ELEMENT_NAME | Element 'elementName' already exists in HTML_QuickForm::addElement() | 要素の追加を試みましたが、既に同名の要素がありました。 | 違う要素名を選んでください。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
コンストラクタ HTML_QuickForm::HTML_QuickForm() | 上に戻る | HTML_QuickForm::apiVersion()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::addFormRule()

HTML_QuickForm::addFormRule() -- 全体的な検証規則を追加する

概要

require_once 'HTML/QuickForm.php';

void HTML_QuickForm::addFormRule (mixed $rule)

説明

複数のフィールドにまたがる規則を追加したい場合、 あるいはフォームにまったく独自の検証を適用したい場合に これを使用します。検証に成功した場合は、 関数/メソッドは TRUE を返します。また、エラーが発生した場合は 配列 array('要素名' => 'エラー') が返されます。

パラメータ

mixed $rule

有効なコールバックです。

例外・エラー

表 41-1PEAR_Error の値

エラーコード | エラーメッセージ | 意味 | 解決
QUICKFORM_INVALID_RULE | Callback function does not exist in HTML_QuickForm::addFormRule() | callback として存在しない関数の名前を使用しようとします。 | スペルチェックをしてください。

注意

since 3.1

この関数は、スタティックにコールする ことはできません。

例

例 41-1addFormRule() の使用法

<?php
require_once ('HTML/QuickForm.php');

$form = new HTML_QuickForm();

// この関数は、パスワードが同じかどうかを調べます
function cmpPass($fields)
{
    if (strlen($fields['passwd1']) && strlen($fields['passwd2']) &&
        $fields['passwd1'] != $fields['passwd2']) {
        return array('passwd1' => 'パスワードが違います');
    }
    return true;
}

$form->addElement('password', 'passwd1', 'パスワードを入力してください');
$form->addElement('password', 'passwd2', 'もう一度パスワードを入力してください');

$form->addFormRule('cmpPass');
?>
前のページ | ホーム | 次のページ
HTML_QuickForm::addGroupRule() | 上に戻る | HTML_QuickForm::isElementRequired()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::addGroup()

HTML_QuickForm::addGroup() -- 要素グループを追加する

概要

require_once 'HTML/QuickForm.php';

object &HTML_QuickForm::addGroup (array $elements [, string $name = NULL [, mixed $groupLabel = '' [, string $separator = NULL [, string $appendName = TRUE]]]])

説明

要素グループを追加します。

パラメータ

array $elements

グループを構成する要素の配列。

string $name

(オプション) グループ名。

mixed $groupLabel

(オプション) グループのラベル。

mixed $separator

(オプション) 要素を区切るために使用する、文字列あるいは文字列の配列。

boolean $appendName

(オプション) フォーム要素の名前にグループ名を使用するかどうか、 つまり groupName[elementName] にするかそれとも elementName にするか。

返り値

追加された要素グループへの参照を返します。

例外・エラー

表 41-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応
QUICKFORM_INVALID_ELEMENT_NAME | Element '$elementName' already exists in HTML_QuickForm::addElement() | 既存の要素と同じ名前のグループを追加しようとしました。 | グループには別の名前を指定します。

注意

since 2.8

この関数は、スタティックにコールする ことはできません。

例

例 41-1addGroup() の使用法

<?php

$group[] =& HTML_QuickForm::createElement('text', 'first', 'First');
$group[] =& HTML_QuickForm::createElement('text', 'last', 'Last');

$form->addGroup($group, 'name', 'Name:', ',&nbsp;');

?>
前のページ | ホーム | 次のページ
HTML_QuickForm | 上に戻る | HTML_QuickForm_group クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::addGroupRule()

HTML_QuickForm::addGroupRule() -- 指定したグループの検証規則を追加する

概要

require_once 'HTML/QuickForm.php';

void HTML_QuickForm::addGroupRule (string $group, mixed $arg1 [, string $type = '' [, string $format = '' [, int $howmany = 0 [, string $validation = 'server' [, bool $reset = FALSE]]]]])

説明

指定した要素グループに検証規則を追加します。

検証規則は、名前がつけられているグループにのみ追加できます。 グループ内の要素に対する検証を行う必要がある場合に addGroupRule() を使用してください。 グループ全体に対する検証を行う必要がある場合には addRule() を使用することもできます。

パラメータ

string $group

フォームのグループ名。

mixed $arg1

複数要素の配列、あるいはひとつの要素のエラーメッセージ文字列。 配列の場合は、以下のような構造となります。
array (
    '要素の名称あるいはインデックス' => array(
        array(規則のデータ),
        ...
        array(規則のデータ)
    ),
    ...
    '要素の名称あるいはインデックス' => array(
        array(規則のデータ),
        ...
        array(規則のデータ)
    )
)
ここで、規則のデータの内容は addRule() メソッドのパラメータと同じ並び順・同じ意味となります。

注意 このパラメータが配列の場合、それ以降のパラメータの内容は無視されます。 検証規則に追加したい内容は、すべてこの配列で渡す必要があります (以下の例を参照ください)。

string $type

(オプション) 規則の型。 getRegisteredRules() を使用して取得します。HTML_QuickForm_Rule の派生クラスの名前や、そのクラスのインスタンスを渡すことも可能です。

string $format

(オプション) 追加の検証データのために必要。

integer $howmany

(オプション) グループ内のいくつの要素が規則を満たすべきか。

string $validation

(オプション) 検証を行う位置。 "server" あるいは "client"。

boolean $reset

クライアント側: 検証に失敗した場合に、 要素の内容をリセットして元の状態に戻すかどうか。

例外・エラー

表 41-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応
QUICKFORM_NONEXIST_ELEMENT | Group '$group' does not exist in HTML_QuickForm::addGroupRule() | 存在しないグループに規則を追加しようとしました。 | グループ名の綴りを調べます。
QUICKFORM_NONEXIST_ELEMENT | Element '$elementIndex' not found in group '$group' in HTML_QuickForm::addGroupRule() | $arg1 が配列で、 グループ内に存在しない要素のインデックスを含んでいます。 | 要素インデックスの綴りを調べます。
QUICKFORM_INVALID_RULE | Rule '$type' is not registered in HTML_QuickForm::addGroupRule() | QuickForm が知らない規則を指定しています。 | 規則の型の綴りを調べるか、 HTML_QuickForm::registerRule() を使用します。

注意

since 2.5

この関数は、スタティックにコールする ことはできません。

例

例 41-1addGroupRule() の使用法

<?php
// 4 つのチェックボックスからなるグループ
$checkbox[] = &HTML_QuickForm::createElement('checkbox', 'A', null, 'A');
$checkbox[] = &HTML_QuickForm::createElement('checkbox', 'B', null, 'B');
$checkbox[] = &HTML_QuickForm::createElement('checkbox', 'C', null, 'C');
$checkbox[] = &HTML_QuickForm::createElement('checkbox', 'D', null, 'D');
$form->addGroup($checkbox, 'ichkABCD', 'ABCD:', array('&nbsp;', '<br />'));
// 単純な規則の例: 少なくとも 2 つのチェックボックスがチェックされていなければなりません
$form->addGroupRule('ichkABCD', '少なくとも 2 つはチェックしてください', 'required', null, 2);

$idGrp[] = &HTML_QuickForm::createElement('text', 'lastname', 'Name', array('size' => 30));
$idGrp[] = &HTML_QuickForm::createElement('text', 'code', 'Code', array('size' => 5, 'maxlength' => 4));
$form->addGroup($idGrp, 'id', 'ID:', ',&nbsp');
// グループの要素についての複雑な規則の例
$form->addGroupRule('id', array(
    'lastname' => array(
        array('名前は文字のみで指定します', 'lettersonly'),
        array('名前は必須です', 'required', null, 'client')
    ),
    'code' => array(
        array('コードは数値でなければなりません', 'numeric')
    )
));
?>
前のページ | ホーム | 次のページ
HTML_QuickForm::addRule() | 上に戻る | HTML_QuickForm::addFormRule()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::addRule()

HTML_QuickForm::addRule() -- 指定したフィールドに検証規則を追加する

概要

require_once 'HTML/QuickForm.php';

void HTML_QuickForm::addRule (mixed $element, string $message, string $type [, string $format = '' [, string $validation = 'server' [, boolean $reset = FALSE [, boolean $force = FALSE]]]])

説明

もし要素がグループであった場合は、それ全体が要素として扱われ、 個々の要素の値の配列が検証関数に渡されます。 グループ化された要素を個々の要素単位で検証するには、 addGroupRule() を使用します。

パラメータ

mixed $element

フォームの要素名。組み込まれている規則のうち、 このパラメータに配列を渡してもきちんと処理してくれるのは、現在は compare だけです。
$form->addElement('password', 'cmpPasswd', 'パスワード:');
$form->addElement('password', 'cmpRepeat', 'パスワード(もう一度):');
$form->addRule(array('cmpPasswd', 'cmpRepeat'), 'パスワードが一致しません', 'compare', null, 'client');
その他の組み込み規則は、単一の要素名しかサポートしません。

string $message

データが無効な場合に表示されるメッセージ。

string $type

規則の型。 getRegisteredRules() を使用して取得します。HTML_QuickForm_Rule の派生クラスの名前や、そのクラスのインスタンスを渡すことも可能です。

string $format

(オプション) 追加の検証データのために必要。

string $validation

(オプション) 検証を行う位置。 "server" あるいは "client"。

boolean $reset

クライアント側: エラーがあった場合に、 要素の内容をリセットして元の状態に戻すかどうか。

boolean $force

対象となるフォーム要素が存在しない場合にも強制的に規則を適用します。

例外・エラー

表 41-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応
QUICKFORM_NONEXIST_ELEMENT | Element '$element' does not exist in HTML_QuickForm::addRule() | 存在しない要素に規則を追加しようとしました。 | 要素名の綴りを調べるか、$force を使用してエラーを抑制します。
QUICKFORM_INVALID_RULE | Rule '$type' is not registered in HTML_QuickForm::addRule() | QuickForm が知らない規則を指定しています。 | 規則の型の綴りを調べるか、 HTML_QuickForm::registerRule() を使用します。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
導入 - 検証およびフィルタ | 上に戻る | HTML_QuickForm::addGroupRule()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::apiVersion()

HTML_QuickForm::apiVersion() -- 現在の API のバージョンを返す

概要

require_once 'HTML/QuickForm.php';

float HTML_QuickForm::apiVersion (void)

説明

現在の API のバージョンを返します。

例外・エラー

throws 投げられる例外はありません。

注意

since 1.0

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
HTML_QuickForm::addElement() | 上に戻る | HTML_QuickForm::createElement()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::applyFilter()

HTML_QuickForm::applyFilter() -- 指定したフィールドにフィルタを適用する

概要

require_once 'HTML/QuickForm.php';

void HTML_QuickForm::applyFilter (mixed $element, mixed $filter)

説明

指定したフィールドにフィルタを適用します。フィルタは、再帰的に適用されます。

パラメータ

mixed $element

フォームの要素名、あるいは要素名の配列。 '__ALL__' を指定すると、 フォーム上のすべての要素が対象になります。

mixed $filter

コールバック。関数名あるいは array(&$object, 'メソッド名') で指定します。

例外・エラー

表 41-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応
QUICKFORM_INVALID_FILTER | Callback function does not exist in QuickForm::applyFilter() | 存在しない関数をコールバックとして指定しようとしました。 | 綴りを調べます。

注意

since 2.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::isRuleRegistered() | 上に戻る | HTML_QuickForm_Controller

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::createElement()

HTML_QuickForm::createElement() -- 与えられた種類の要素をフォームに作成する

概要

require_once 'HTML/QuickForm.php';

object &HTML_QuickForm::createElement (string $elementType)

説明

与えられた種類の要素をフォームに作成します。 このメソッドが受け取るパラメータの数は可変です。 パラメータの意味や数は、$elementType によって変わります。

2 番目以降のパラメータは、各要素のコンストラクタに渡されます。 どのようなパラメータが渡されるかについては、 それぞれの要素 のドキュメントを参照ください。

パラメータ

string $elementType

作成する要素の種類 (text, textarea, file...)

返り値

return HTML_QuickForm_element の子オブジェクト。

例外・エラー

表 41-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 解決
QUICKFORM_UNREGISTERED_ELEMENT | Element '$element' does not exist in HTML_QuickForm::_loadElement() | 未知の種類の要素の作成をしようとした。 | HTML_QuickForm::registerElementType() を使ってタイプ名のつづりを確認してください。

注意

since 1.0

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
HTML_QuickForm::apiVersion() | 上に戻る | HTML_QuickForm::elementExists()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::defaultRenderer()

HTML_QuickForm::defaultRenderer() -- デフォルトレンダラオブジェクトへの参照を返す

概要

require_once 'HTML/QuickForm.php';

object &HTML_QuickForm::defaultRenderer (void)

説明

デフォルトレンダラオブジェクトへの参照を返します。 次のように使用することで、
<?php
$renderer =& $form->defaultRenderer();
?>
以下のように書くのにくらべてほんの少しだけタイプ量を減らせます。
<?php
require_once 'HTML/QuickForm/Renderer/Default.php';

$renderer =& new HTML_QuickForm_Renderer_Default();
?>
また、これは内部的には toHtml() および廃止予定のいくつかのメソッドを実装するために使用されています。

返り値

デフォルトレンダラオブジェクトを返します。

例外・エラー

例外はスローされません。

注意

since 3.0

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
HTML_QuickForm::accept() | 上に戻る | HTML_QuickForm::toArray()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::display()

HTML_QuickForm::display() -- フォームを HTML で出力する

概要

require_once 'HTML/QuickForm.php';

string HTML_QuickForm::display ()

説明

フォームを HTML で出力します。 Default renderer を使用します。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::toHtml() | 上に戻る | HTML_QuickForm_Controller

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::elementExists()

HTML_QuickForm::elementExists() -- フォームに要素があるか調べる

概要

require_once 'HTML/QuickForm.php';

boolean HTML_QuickForm::elementExists ([string $element = NULL])

説明

もし要素がフォームにある場合は TRUE が、そうでなければ FALSE を返します。

パラメータ

string $element

調べるフォーム要素名

例外・エラー

throws 投げられる例外はありません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::createElement() | 上に戻る | HTML_QuickForm::errorMessage()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::errorMessage()

HTML_QuickForm::errorMessage() -- エラーコードからエラーメッセージを返す

概要

require_once 'HTML/QuickForm.php';

string HTML_QuickForm::errorMessage (int $value)

説明

QuickForm エラーコードからエラーメッセージを返します。

パラメータ

integer $value

整数のエラーコード。

返り値

return エラーメッセージ。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
HTML_QuickForm::elementExists() | 上に戻る | HTML_QuickForm::getElementType()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::exportValue()

HTML_QuickForm::exportValue() -- 要素の "安全な" 値を返す

概要

require_once 'HTML/QuickForm.php';

mixed HTML_QuickForm::exportValue (string $element)

説明

このメソッドは、まず最初に きれいにした 送信値を探します。もし指定した要素に対応する送信値がなかった場合は setValue() /setDefaults() /setConstants() で設定された値を返します。

送信されるはずのない値 (例えば、<select> 要素の選択肢の中に存在しない値など) は、有効な値とはみなされず、 返されません。

このメソッドおよび exportValues() が返す値は、 そのまますぐに処理したりどこかに保存したりすることが想定されています。 file 要素の値については、その他の要素とは明らかに異なる処理が必要となるため このメソッドからは返されません。

パラメータ

string $element

要素の名前。

返り値

要素の値を返します。

例外・エラー

表 41-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応
QUICKFORM_NONEXIST_ELEMENT | Element '$element' does not exist in HTML_QuickForm::exportValue() | 存在しない要素の値を取得しようとしました。 | 要素名の綴りを調べます。

注意

since 3.1

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::isSubmitted() | 上に戻る | HTML_QuickForm::exportValues()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::exportValues()

HTML_QuickForm::exportValues() -- 要素の "安全な" 値を返す

概要

require_once 'HTML/QuickForm.php';

array HTML_QuickForm::exportValues ([mixed $elementList = NULL])

説明

フォーム要素の値を返します。まず最初に フィルタリングされた 送信値を探し、見つからなかった場合には setDefaults() あるいは setConstants() で設定された値を返します。

getSubmitValues() とは異なり、この関数は フォームに追加された 要素に対応する値で実際に送信されたもののみを返します。 'はい'/'いいえ' を選択するラジオボタンがあった場合、'たぶん' は有効な送信値とはみなされません。また、このメソッドでは file 要素の値を取得することもできません。

パラメータ

mixed $elementList

値を取得したい要素の名前を表す配列あるいは文字列。 設定しなかった場合は、すべての要素を返します。

返り値

要素の値の連想配列を返します。

例外・エラー

表 41-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応
QUICKFORM_NONEXIST_ELEMENT | Element '$element' does not exist in HTML_QuickForm::exportValue() | 存在しない要素の値を取得しようとしました。 | 要素名の綴りを調べます。

注意

since 3.1

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::exportValue() | 上に戻る | HTML_QuickForm::getElementValue()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::freeze()

HTML_QuickForm::freeze() -- フォームの要素を "凍結" する

概要

require_once 'HTML/QuickForm.php';

void HTML_QuickForm::freeze ([mixed $elementList = NULL])

説明

要素を凍結します。要素の値が表示される際に、HTML の input タグは出力されません。

パラメータ

mixed $elementList

凍結させる要素を表す配列あるいは文字列。NULL を指定すると、 フォームのすべての要素が凍結されます。

例外・エラー

表 41-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応
QUICKFORM_NONEXIST_ELEMENT | Element '$element' does not exist in HTML_QuickForm::freeze() | 存在しない要素を凍結しようとしました。 | 要素名の綴りを調べます。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm | 上に戻る | HTML_QuickForm::isElementFrozen()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::getElement()

HTML_QuickForm::getElement() -- 要素へのリファレンスを返す

概要

require_once 'HTML/QuickForm.php';

object &HTML_QuickForm::getElement (string $element)

説明

フォーム要素へのリファレンスを返します。

パラメータ

string $element

要素名

返り値

return 要素へのリファレンス。

例外・エラー

表 41-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 解決
QUICKFORM_NONEXIST_ELEMENT | Element '$element' does not exist in HTML_QuickForm::getElement() | 存在しない要素の取得を試みました。 | 要素名のスペルを確認してください。

注意

since 2.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::getElementType() | 上に戻る | HTML_QuickForm::getMaxFileSize()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::getElementError()

HTML_QuickForm::getElementError() -- 検証された要素に対応するエラーを返す

概要

require_once 'HTML/QuickForm.php';

string HTML_QuickForm::getElementError (string $element)

説明

検証された要素に対応するエラーを返します。通常、エラーは validate() メソッドによって要素に割り当てられます。

パラメータ

string $element

調べるフォーム要素の名前。

返り値

調べた要素に対応するエラーメッセージを返します。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::validate() | 上に戻る | HTML_QuickForm::setElementError()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::getElementType()

HTML_QuickForm::getElementType() -- 与えられた要素の種類を返す

概要

require_once 'HTML/QuickForm.php';

string HTML_QuickForm::getElementType (string $element)

説明

与えられた要素の種類を返します。

パラメータ

string $element

フォーム要素の名前を指定します。

返り値

return 要素の種類か、要素が存在しない場合はFALSEを返します。

例外・エラー

throws 投げられる例外はありません。

注意

since 1.1

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::errorMessage() | 上に戻る | HTML_QuickForm::getElement()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::getElementValue()

HTML_QuickForm::getElementValue() -- 要素の生の値を返す

概要

require_once 'HTML/QuickForm.php';

mixed &HTML_QuickForm::getElementValue (string $element)

説明

フォームから送信された値 (フィルタリング されていません) 、 あるいは setDefaults() や setConstants() で設定された値のような、フォーム要素の生の値を返します。

パラメータ

string $element

要素名。

返り値

要素の値を返します。

例外・エラー

表 41-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応
QUICKFORM_NONEXIST_ELEMENT | Element '$element' does not exist in HTML_QuickForm::getElementValue() | 存在しない要素の値を取得しようとしました。 | 要素名の綴りを調べます。

注意

since 2.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::exportValues() | 上に戻る | HTML_QuickForm::getSubmitValue()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::getMaxFileSize()

HTML_QuickForm::getMaxFileSize() -- MAX_FILE_SIZE 隠し要素の値を返す

概要

require_once 'HTML/QuickForm.php';

int HTML_QuickForm::getMaxFileSize (void)

説明

MAX_FILE_SIZE 隠し要素の値を返します (ファイルアップロードで使用します)。

返り値

return アップロード可能な最大ファイルサイズのバイト数。

例外・エラー

throws 投げられる例外はありません。

注意

since 3.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::getElement() | 上に戻る | HTML_QuickForm::getRegisteredTypes()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::getRegisteredRules()

HTML_QuickForm::getRegisteredRules() -- 登録された検証規則を返す

概要

require_once 'HTML/QuickForm.php';

array HTML_QuickForm::getRegisteredRules (void)

説明

登録された検証規則の配列を返します。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::registerRule() | 上に戻る | HTML_QuickForm::isRuleRegistered()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::getRegisteredTypes()

HTML_QuickForm::getRegisteredTypes() -- 登録済みの要素の種類を返す

概要

require_once 'HTML/QuickForm.php';

array HTML_QuickForm::getRegisteredTypes (void)

説明

登録済みの要素の種類の配列を返します。

例外・エラー

throws

注意

since 1.0

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
HTML_QuickForm::getMaxFileSize() | 上に戻る | HTML_QuickForm::insertElementBefore()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::getRequiredNote()

HTML_QuickForm::getRequiredNote() -- 必須入力の注意書きを返す

概要

require_once 'HTML/QuickForm.php';

string HTML_QuickForm::getRequiredNote (void)

説明

必須入力の注意書きを返します。この注意書きは、 フォームに必須入力フィールドが含まれている場合に 通常はフォームの下に表示されます。

例外・エラー

例外はスローされません。

注意

since 2.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::setJsWarnings() | 上に戻る | HTML_QuickForm::getValidationScript()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::getSubmitValue()

HTML_QuickForm::getSubmitValue() -- 送信された要素の値を返す

概要

require_once 'HTML/QuickForm.php';

mixed HTML_QuickForm::getSubmitValue (string $element)

説明

送信された要素の値を返します。値は フィルタリング されます。

パラメータ

string $element

要素名。

返り値

送信された要素の値、あるいは設定されていない場合に NULL を返します。

例外・エラー

例外はスローされません。

注意

since 2.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::getElementValue() | 上に戻る | HTML_QuickForm::getSubmitValues()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::getSubmitValues()

HTML_QuickForm::getSubmitValues() -- フォームから送信された値を返す

概要

require_once 'HTML/QuickForm.php';

array HTML_QuickForm::getSubmitValues ([bool $mergeFiles = FALSE])

説明

フォームから送信された値を返します。アップロードされたファイルも扱えるでしょう。

パラメータ

boolean $mergeFiles

アップロードされたファイルも返すかどうか。

例外・エラー

例外はスローされません。

注意

since 2.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::getSubmitValue() | 上に戻る | HTML_QuickForm::process()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::getValidationScript()

HTML_QuickForm::getValidationScript() -- クライアント側の検証スクリプトを返す

概要

require_once 'HTML/QuickForm.php';

string HTML_QuickForm::getValidationScript (void)

説明

クライアント側でフォームの検証を行うために使用する JavaScript を返します。 'client' 修正子に規則が追加されていない場合は、空の文字列を返します。

例外・エラー

例外はスローされません。

注意

since 2.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::getRequiredNote() | 上に戻る | HTML_QuickForm::accept()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ HTML_QuickForm::HTML_QuickForm()

コンストラクタ HTML_QuickForm::HTML_QuickForm() -- クラスのコンストラクタ

概要

require_once 'HTML/QuickForm.php';

void HTML_QuickForm::HTML_QuickForm ([string $formName = '' [, string $method = 'post' [, string $action = '' [, string $target = '' [, mixed $attributes = NULL [, bool $trackSubmit = FALSE]]]]]])

説明

コンストラクタです。 <form> タグの属性と送信する値のロードをします。

パラメータ

string $formName

フォームの名称を指定します。

string $method

(オプション) フォームのメソッドを指定します。

string $action

(オプション) フォームのアクションを指定します。

string $target

(オプション) フォームのターゲットを指定します。

mixed $attributes

(オプション) その他の <form> タグの属性を指定します。

boolean $trackSubmit

(オプション) フォームから送信されたことを確認する機能を 使用するため、hidden フィールドを追加するかどうかを指定します。 $_GET あるいは $_POST の値にそのフィールドが存在しない場合、 フォームは送信されなかったと考えられます。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm | 上に戻る | HTML_QuickForm::addElement()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::insertElementBefore()

HTML_QuickForm::insertElementBefore() -- 新しい要素を、他の要素の直前に挿入する

概要

require_once 'HTML/QuickForm.php';

object &HTML_QuickForm::insertElementBefore (object &$element, string $nameAfter)

説明

新しい要素を、他の要素の直前に挿入します。

$element が既にフォームに追加されているかどうかを 調べる方法はありません。そのため、もし既存の要素を別の場所に移動させたいのなら removeElement() を以下のように使用する必要があります。
$form->insertElementBefore($form->removeElement('foo', false), 'bar');

パラメータ

object &$element

挿入する要素 (HTML_QuickForm_element のインスタンス)。

string $nameAfter

直前に新しい要素を挿入することになる要素の名前。

返り値

挿入された要素への参照を返します。

例外・エラー

表 41-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応
QUICKFORM_INVALID_ELEMENT_NAME | Several elements named $nameAfter exist in HTML_QuickForm::insertElementBefore() | $nameAfter という名前の要素が、 フォーム内に複数存在します (例: ラジオボタン)。 このメソッドは、そのような場合に対応していません。 | 別の要素の前に挿入します。一意な名前を持つダミーの要素を追加することを 検討してください。
QUICKFORM_INVALID_ELEMENT_NAME | Element '$elementName' already exists in HTML_QuickForm::insertElementBefore() | $element と同じ名前で、 型の違う要素が存在します。 | 挿入する要素に別の名前を指定します。
QUICKFORM_NONEXIST_ELEMENT | Element $nameAfter does not exist in HTML_QuickForm::insertElementBefore() | 存在しない要素の前に挿入しようとしました。 | 要素名の綴りを調べます。

注意

since 3.2.4

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::getRegisteredTypes() | 上に戻る | HTML_QuickForm::isError()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::isElementFrozen()

HTML_QuickForm::isElementFrozen() -- 要素が凍結されているかどうかを調べる

概要

require_once 'HTML/QuickForm.php';

boolean HTML_QuickForm::isElementFrozen (string $element)

説明

フォーム要素が凍結されているかどうかを返します。

パラメータ

string $element

フォーム要素名。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::freeze() | 上に戻る | HTML_QuickForm::isFrozen()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::isElementRequired()

HTML_QuickForm::isElementRequired() -- フォーム要素が必須項目かどうかを返す

概要

require_once 'HTML/QuickForm.php';

boolean HTML_QuickForm::isElementRequired (string $element)

説明

フォーム要素が必須項目かどうか、すなわち規則 'required' が適用されているかどうかを返します。

パラメータ

string $element

フォーム要素名。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::addFormRule() | 上に戻る | HTML_QuickForm::validate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::isError()

HTML_QuickForm::isError() -- 結果がエラーかどうか知らせる

概要

require_once 'HTML/QuickForm.php';

bool HTML_QuickForm::isError (mixed $value)

説明

結果がエラーかどうか知らせます (例えば $value が HTML_QuickForm_Error のインスタンスかどうか)。

パラメータ

mixed $value

QuickForm 関数の返り値

返り値

return $value がエラーかどうか。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
HTML_QuickForm::insertElementBefore() | 上に戻る | HTML_QuickForm::isTypeRegistered()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::isFrozen()

HTML_QuickForm::isFrozen() -- フォームが凍結されているかどうかを調べる

概要

require_once 'HTML/QuickForm.php';

boolean HTML_QuickForm::isFrozen (void)

説明

フォーム全体が凍結されているかどうかを返します。

例外・エラー

例外はスローされません。

注意

since 3.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::isElementFrozen() | 上に戻る | HTML_QuickForm::setRequiredNote()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::isRuleRegistered()

HTML_QuickForm::isRuleRegistered() -- 規則がサポートされているかどうかを返す

概要

require_once 'HTML/QuickForm.php';

boolean HTML_QuickForm::isRuleRegistered (string $name)

説明

指定した規則がサポートされているかどうかを返します。新しい規則は registerRule() メソッドを用いて登録します。

パラメータ

string $name

検証規則名。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::getRegisteredRules() | 上に戻る | HTML_QuickForm::applyFilter()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::isSubmitted()

HTML_QuickForm::isSubmitted() -- フォームが既に送信済みかどうかを返す

概要

require_once 'HTML/QuickForm.php';

boolean HTML_QuickForm::isSubmitted (void)

説明

フォームが既に送信済みかどうかを返します。QuickForm の コンストラクタ で $trackSubmit パラメータを使用する際にこのメソッドを使用すると、 フォームの送信値が空であるかどうかを確認するより信頼性が高くなります。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

since 3.2.5

前のページ | ホーム | 次のページ
HTML_QuickForm::setDefaults() | 上に戻る | HTML_QuickForm::exportValue()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::isTypeRegistered()

HTML_QuickForm::isTypeRegistered() -- フォーム要素の種類をサポートするか調べる

概要

require_once 'HTML/QuickForm.php';

boolean HTML_QuickForm::isTypeRegistered (string $type)

説明

フォーム要素の種類をサポートするかどうかを返します。 新規の種類はHTML_QuickForm::registerElementType() で追加します。

パラメータ

string $type

フォーム要素の種類です。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
HTML_QuickForm::isError() | 上に戻る | HTML_QuickForm::registerElementType()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::process()

HTML_QuickForm::process() -- フォームデータの処理を実行する

概要

require_once 'HTML/QuickForm.php';

void HTML_QuickForm::process (mixed $callback [, bool $mergeFiles = TRUE])

説明

フォームデータの処理を実行します。実際は、 $callback をコールして、 フォームから送信された値 (そして $mergeFiles=TRUE の場合はファイル) を渡します。

パラメータ

mixed $callback

コールバック。関数名あるいは array(&$object, 'method') 形式です。

boolean $mergeFiles

アップロードされたファイルも処理するかどうか。

例外・エラー

表 41-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応
QUICKFORM_INVALID_PROCESS | Callback function does not exist in QuickForm::process() | 存在しない関数をコールバックとして渡そうとしました。 | 綴りを調べます。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::getSubmitValues() | 上に戻る | HTML_QuickForm_Controller

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::registerElementType()

HTML_QuickForm::registerElementType() -- 新規要素タイプを登録する

概要

require_once 'HTML/QuickForm.php';

void HTML_QuickForm::registerElementType (string $typeName, string $include, string $className)

説明

新規要素タイプを登録します。 このタイプの要素はその後、createElement()とaddElement() によってフォームに追します。

パラメータ

string $typeName

要素タイプの名前です。

string $include

要素タイプを含むパスです。 (訳注:要素タイプのクラスが記述されたファイルのパスです)

string $className

要素クラス名です。

例外・エラー

throws 投げられる例外はありません。

注意

since 1.0

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
HTML_QuickForm::isTypeRegistered() | 上に戻る | HTML_QuickForm::removeElement()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::registerRule()

HTML_QuickForm::registerRule() -- 新しい検証規則を登録する

概要

require_once 'HTML/QuickForm.php';

void HTML_QuickForm::registerRule (string $ruleName, string $type, string $data1 [, string $data2 = NULL])

説明

新しい検証規則を登録します。

パラメータ

string $ruleName

検証規則の名前。

string $type

'regex' あるいは 'callback' (過去との互換性のため、'function' も使用できます)。 HTML_QuickForm_Rule のサブクラスを登録する場合は、 ここで何でも渡すことができます。できれば NULL あるいは空の文字列にしましょう。

string $data1

関数の名前、正規表現、HTML_QuickForm_Rule のサブクラスの名前あるいはクラスのインスタンス。

string $data2

上の関数の親オブジェクト、あるいは HTML_QuickForm_Rule のサブクラスを含むファイルの名前。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::setElementError() | 上に戻る | HTML_QuickForm::getRegisteredRules()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::removeElement()

HTML_QuickForm::removeElement() -- 要素の削除

概要

require_once 'HTML/QuickForm.php';

object &HTML_QuickForm::removeElement (string $elementName [, boolean $removeRules = TRUE])

説明

フォームから要素を取り除きます。

パラメータ

string $elementName

エレメント名

boolean $removeRules

TRUE もしこの要素用のルールが削除されることになっている場合。

返り値

削除される要素への参照を返します。

例外・エラー

表 41-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 解決
QUICKFORM_NONEXIST_ELEMENT | Element '$elementName' does not exist in HTML_QuickForm::removeElement() | 存在しない要素の削除を試みた。 | 要素の名称のスペルを確認してください。

注意

since 2.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::registerElementType() | 上に戻る | HTML_QuickForm::setMaxFileSize()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::setConstants()

HTML_QuickForm::setConstants() -- フォームの定数値を設定する

概要

require_once 'HTML/QuickForm.php';

void HTML_QuickForm::setConstants ([array $constantValues = NULL [, mixed $filter = NULL]])

説明

フォームの定数値を設定します。これらの値は、デフォルト値 ( setDefaults() で設定したもの) や (POST や GET で) 送信された値などで上書きされることはありません。

パラメータ

array $constantValues

フォームに設定する値。array('要素名' => '要素の値')

mixed $filter

(オプション) すべてのデフォルト値に適用するフィルタ。

例外・エラー

表 41-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応
QUICKFORM_INVALID_FILTER | Callback function does not exist in QuickForm::setConstants() | 存在しない関数をコールバックとして渡そうとしました。 | 綴りを調べます。

注意

since 2.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm | 上に戻る | HTML_QuickForm::setDefaults()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::setDefaults()

HTML_QuickForm::setDefaults() -- フォームのデフォルト値を設定する

概要

require_once 'HTML/QuickForm.php';

void HTML_QuickForm::setDefaults ([array $defaultValues = NULL [, mixed $filter = NULL]])

説明

フォームのデフォルト値を設定します。これらの値は、定数値 ( setConstants() で設定したもの) や (POST や GET で) 送信された値などで上書きされることがあります。

パラメータ

array $defaultValues

フォームに設定する値。array('要素名' => '要素の値')

mixed $filter

(オプション) すべてのデフォルト値に適用するフィルタ。

例外・エラー

表 41-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応
QUICKFORM_INVALID_FILTER | Callback function does not exist in QuickForm::setConstants() | 存在しない関数をコールバックとして渡そうとしました。 | 綴りを調べます。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::setConstants() | 上に戻る | HTML_QuickForm::isSubmitted()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::setElementError()

HTML_QuickForm::setElementError() -- フォーム要素のエラーメッセージを設定する

概要

require_once 'HTML/QuickForm.php';

void HTML_QuickForm::setElementError (string $element, string $message)

説明

フォーム要素のエラーメッセージを設定します。フォーム要素のエラーは、通常は validate() メソッドで設定されます。要素のエラーメッセージを明示的に指定したい場合にこれを使用します。

パラメータ

string $element

エラーを設定するフォーム要素の名前。

string $message

エラーメッセージ。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::getElementError() | 上に戻る | HTML_QuickForm::registerRule()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::setJsWarnings()

HTML_QuickForm::setJsWarnings() -- JavaScript 警告メッセージを設定する

概要

require_once 'HTML/QuickForm.php';

void HTML_QuickForm::setJsWarnings (string $pref, string $post)

説明

JavaScript 警告メッセージを設定します。 最初のメッセージは要素のエラーの前に表示され、 2 番目のメッセージは要素のエラーの後に表示されます。 フォームに 'client' 規則が設定されていない場合は無意味です。

パラメータ

string $pref

事前の警告。

string $post

事後の警告。

例外・エラー

例外はスローされません。

注意

since 1.1

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::setRequiredNote() | 上に戻る | HTML_QuickForm::getRequiredNote()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::setMaxFileSize()

HTML_QuickForm::setMaxFileSize() -- MAX_FILE_SIZE 隠し要素の値を設定する

概要

require_once 'HTML/QuickForm.php';

void HTML_QuickForm::setMaxFileSize ([int $bytes])

説明

MAX_FILE_SIZE 隠し要素の値を設定します (ファイルアップロードに使用します)。

パラメータ

integer $bytes

サイズをバイトで指定します。

例外・エラー

throws 投げられる例外はありません。

注意

since 3.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::removeElement() | 上に戻る | HTML_QuickForm::updateElementAttr()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::setRequiredNote()

HTML_QuickForm::setRequiredNote() -- 必須入力の注意書きを設定する

概要

require_once 'HTML/QuickForm.php';

void HTML_QuickForm::setRequiredNote (string $note)

説明

必須入力の注意書きを設定します。この注意書きは、 フォームに必須入力フィールドが含まれている場合に 通常はフォームの下に表示されます。

パラメータ

string $note

必須入力要素が含まれていることを示すメッセージ。

例外・エラー

例外はスローされません。

注意

since 1.1

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::isFrozen() | 上に戻る | HTML_QuickForm::setJsWarnings()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::toArray()

HTML_QuickForm::toArray() -- フォームの内容を配列で返す

概要

require_once 'HTML/QuickForm.php';

array HTML_QuickForm::toArray ([boolean $collectHidden = FALSE])

説明

フォームの内容を返します。これには、 Array レンダラ を使用します。

パラメータ

boolean $collectHidden

(レンダラのコンストラクタ に渡す) hidden 要素をまとめるかどうか。

返り値

フォームの内容を配列で返します。配列の構造は レンダラのドキュメント で説明されています。

例外・エラー

例外はスローされません。

注意

since 2.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::defaultRenderer() | 上に戻る | HTML_QuickForm::toHtml()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::toHtml()

HTML_QuickForm::toHtml() -- フォームを HTML で返す

概要

require_once 'HTML/QuickForm.php';

string HTML_QuickForm::toHtml ([string $in_data = NULL])

説明

フォームの HTML を返します。これには、 デフォルトレンダラ を使用します。

パラメータ

string $in_data

(オプション) フォームのレンダリングの前に挿入される追加データ。 データは、addElement('html', $in_data) で追加されます。

返り値

フォームの HTML を返します。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::toArray() | 上に戻る | HTML_QuickForm::display()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::updateElementAttr()

HTML_QuickForm::updateElementAttr() -- ひとつまたは複数の要素の属性を更新する

概要

require_once 'HTML/QuickForm.php';

void HTML_QuickForm::updateElementAttr (mixed $elements, mixed $attrs)

説明

ひとつまたは複数の要素の属性を更新します。

警告

グループや、グループをもとにした要素 (date、hierselect) では動作しないかもしれません。 これらの要素に対して確実に動作させるには、 グループ化された要素の属性を手動で更新しなければなりません。

パラメータ

mixed $elements

要素名かオブジェクトの配列または更新する要素文字列です。

mixed $attrs

HTML 属性の配列か文字列です。

例外・エラー

例外はスローされません。

注意

since 2.10

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::setMaxFileSize() | 上に戻る | HTML_QuickForm_Controller

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_QuickForm::validate()

HTML_QuickForm::validate() -- サーバ側での検証を行う

概要

require_once 'HTML/QuickForm.php';

boolean HTML_QuickForm::validate (void)

説明

サーバ側での検証を行います。

返り値

エラーが見つからなかった場合に TRUE を返します。

例外・エラー

例外はスローされません。

注意

since 1.0

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_QuickForm::isElementRequired() | 上に戻る | HTML_QuickForm::getElementError()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


QuickForm の要素型

QuickForm の要素型 -- QuickForm に追加できる要素

要素の概要

リリース 3.2.5 の時点で HTML_QuickForm は 23 種類の要素をサポートしており、これらは createElement() で作成した上で addElement() によって追加できます。これらの要素は、大きく 2 種類 (標準 HTML 要素およびカスタム要素) に分けられます。

標準 HTML 要素

'button'

<input type="button" /> 要素のためのクラスは HTML_QuickForm_button です。

'checkbox'

<input type="checkbox" /> 要素のためのクラスは HTML_QuickForm_checkbox です。

'file'

<input type="file" /> 要素のためのクラスは HTML_QuickForm_file です。

'hidden'

<input type="hidden" /> 要素のためのクラスは HTML_QuickForm_hidden です。

'image'

<input type="image" /> 要素のためのクラスは HTML_QuickForm_image です。

'password'

<input type="password" /> 要素のためのクラスは HTML_QuickForm_password です。

'radio'

<input type="radio" /> 要素のためのクラスは HTML_QuickForm_radio です。

'reset'

<input type="reset" /> 要素のためのクラスは HTML_QuickForm_reset です。

'select'

<select> 要素のためのクラスは HTML_QuickForm_select です。 このクラスは、配列あるいはデータベースから <option> 要素を読み込めます。

'submit'

<input type="submit" /> 要素のためのクラスは HTML_QuickForm_submit です。

'text'

<input type="text" /> 要素のためのクラスは HTML_QuickForm_text です。

'textarea'

<textarea> 要素のためのクラスは HTML_QuickForm_textarea です。

'xbutton'

<button> 要素のためのクラスは、 HTML_QuickForm_xbutton です。

カスタム要素型

'advcheckbox'

アドバンスドチェックボックス型のフィールドのためのクラスは HTML_QuickForm_advcheckbox です。 基本的に、これは「チェックボックスではひとつの値 (チェックされているチェックボックスの値) しか渡せない」 という HTML の問題点を解決するものです。

'autocomplete'

自動補完機能つきのテキストフィールドのためのクラスは HTML_QuickForm_autocomplete です。 この要素は通常の HTML テキスト入力要素と似ていますが、 キーが押されるたびに javascript のイベントが起動し、 もし入力内容とオプションの配列が一致すればその内容を自動的に補完します。

'date'

日付 (および時刻) を入力するために使用する要素のグループのためのクラスは HTML_QuickForm_date です。

'group'

フォーム要素のグループのためのクラスは HTML_QuickForm_group です。 QuickForm では、いくつかの要素をひとつにまとめて それをひとつの新しい要素として扱うことができます。

'header'

フォームにヘッダを追加するためのクラスは HTML_QuickForm_header です。

'hiddenselect'

このクラス HTML_QuickForm_hiddenselect は select 要素と似た動作をしますが、select 要素ではなく hidden 要素を作成します。すべての値は、 setDefaults() あるいは setConstants() で事前に選択されています。

'hierselect'

複数の HTML <select> 要素を "連動させる" ためのクラスは HTML_QuickForm_hierselect です。 最初の <select> のオプションを選択すると その内容に応じて 2 番目の select 要素の内容が変化し、2 番目を選択すると ... というようになります。

'html'

廃止予定: 生の HTML をフォームに追加するために使用される擬似要素が HTML_QuickForm_html です。 デフォルトのレンダラでの使用のみが考慮されており、 テンプレートベースのレンダラではこれは無視されることでしょう。

'link'

リンク型のフィールドのためのクラスは HTML_QuickForm_link です。

'static'

静的データのためのクラスは HTML_QuickForm_static です。

前のページ | ホーム | 次のページ
クイックヘルプ | 上に戻る | バージョン 3.2 への移行

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


クイックヘルプ

クイックヘルプ -- よくある質問への回答

説明

この文書は、PEAR general メーリングリスト に投稿された質問を基にして作成されています。 メーリングリストのアーカイブを検索すると、 より詳細な回答や例が見つけられるでしょう。

HTML_QuickForm FAQ

1. HTML_QuickForm で作成したフォームから送信することができません。 ページの HTML ソースを見ると、<formArray> みたいなのがあります。
2. フォームを含むスクリプトに GET パラメータを渡すと、 QuickForm ではフォームが既に送信されているものととらえてしまい、 検証エラーが発生するようです。
3. 'date' 要素のデフォルト値や定数を設定するにはどうすればよいですか?
4. "Call to a member function on a non-object" とか "Undefined function" のような変なエラーが発生します。 特にグループを使用している場合に発生するようです。
5. QuickForm の生成するコードが XHTML Strict ではありません!
6. 'required' ルールがうまく動作しません!
7. 入力チェック用のメッセージ * denotes required field や Invalid information entered. / Please correct these fields. を変更するにはどうすればいいのですか?

1. HTML_QuickForm で作成したフォームから送信することができません。 ページの HTML ソースを見ると、<formArray> みたいなのがあります。

最近のバージョンの HTML_QuickForm package を正しく動作させるためには、 HTML_Common パッケージのバージョン 1.2.1 (HTML/Common.php の CVS リビジョン 1.8) が必要です。もしこれより古いバージョンの HTML_Common が読み込まれていると、(それだけで) この現象が発生します。

以下のコマンドを入力すると、

$ pear list
HTML_Common 1.2.1 が インストールされている かどうかを調べることができます。適切なバージョンが インストールされているにもかかわらず、別の場所にある古いバージョンの HTML_Common をインクルードしてしまっている場合もありえます。 php.ini の include_path や、PHP の get_included_files() 関数で、実際に インクルードされているのが どのファイルなのかを確認しましょう。

2. フォームを含むスクリプトに GET パラメータを渡すと、 QuickForm ではフォームが既に送信されているものととらえてしまい、 検証エラーが発生するようです。

HTML_QuickForm の コンストラクタ には $trackSubmit というパラメータを指定することができます。 これを TRUE にすると、実際にフォームが送信されたのかどうかを QuickForm がチェックするようになります。また、これは 1 つのページに複数のフォームが定義されている場合にも有用です。

3. 'date' 要素のデフォルト値や定数を設定するにはどうすればよいですか?

Date 要素は、本質的には select 要素の グループ です。 要素を作成する 際に 'format' オプションを指定することで、このグループの構造を定義することができます。
$form->addElement('date', 'foo', 'The date:', array('format' => 'Y m d'));
つまり、その他のグループと同様に、 デフォルト値を配列として設定できるということです。
$form->setDefaults(array(
    'foo' => array('Y' => 2004, 'm' => 9, 'd' => 29)
));

データベースと連携しているアプリケーションで使用しやすくするために、 (mktime() で作成した) Unix タイムスタンプや日付文字列を date 要素に指定することもできるようになっています。日付文字列は strtotime() 関数で生成したものを想定しているので、この関数の制限を考慮してください。

4. "Call to a member function on a non-object" とか "Undefined function" のような変なエラーが発生します。 特にグループを使用している場合に発生するようです。

これらのエラーが発生しやすいのは、 addGroup() に渡した $elements 配列の中身が HTML_QuickForm_element でない場合です。 例えば PEAR_Error が含まれていることが考えられます (配列の内容をチェックするか、エラー処理ロジックを記述しましょう)。 あるいは php.ini で register_globals がオンになっている場合には、フォームの送信内容が含まれてしまっていることも 考えられます (配列に要素を追加する前には、まず配列をクリアしましょう)。

5. QuickForm の生成するコードが XHTML Strict ではありません!

QuickForm は <form> タグに 'name' 属性を追加しますが、これは XHTML Strict に違反しています。Quickform のリリース 3.2.2 以降ではもはやこの属性を使用していませんが、 単に過去との互換性を保つためだけのために残されています。 もしどうしても XHTML Strict に準拠したい場合で あなたの コードがこの属性に依存していない場合は、removeAttribute() メソッドから該当部分を削除することが可能です。

6. 'required' ルールがうまく動作しません!

  • ファイルアップロード要素を使用しているのなら、代わりに 'uploadedfile' ルールを使用すべきです。

  • group 要素を使用しているのなら、 addRule() の代わりに addGroupRule() メソッドを使用すべきです。 group 要素をもとにして作成されている要素である 'date' や 'hierselect' についても同様です。

7. 入力チェック用のメッセージ * denotes required field や Invalid information entered. / Please correct these fields. を変更するにはどうすればいいのですか?

それぞれ、 setRequiredNote() および setJsWarnings() メソッドで変更します。

前のページ | ホーム | 次のページ
クイックスタートガイド | 上に戻る | QuickForm の要素型

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


バージョン 3.2 への移行

バージョン 3.2 への移行 -- API の注意すべき変更点

なぜ変更されたのですか?

バージョン 2.x 以降 HTML_QuickForm の機能は大きく向上しました。 新たにレンダラの層が追加されたのに伴い、QuickForm の本体クラスに存在した多くのメソッドがレンダラのメソッドにコピーされました。 本体クラスのメソッドはユーザの移行作業のために残されていましたが、 リリース 3.2 では削除されました。これにより、QuickForm クラスが より軽量でしっかりしたものとなりました。

同時に、ファイルアップロードの検証機能は file 要素に移動しました。 こちらのほうがより適切な場所だからです。

削除されたメソッドは以下のとおりです。

  • QuickForm 関連

    • HTML_QuickForm::getAttributesString()

    • HTML_QuickForm::addElementGroup()

    • HTML_QuickForm::addHeader()

    • HTML_QuickForm::addData()

  • レンダラ関連

    • HTML_QuickForm::setElementTemplate()

    • HTML_QuickForm::setHeaderTemplate()

    • HTML_QuickForm::setFormTemplate()

    • HTML_QuickForm::setRequiredNoteTemplate()

    • HTML_QuickForm::clearAllTemplates()

    • HTML_QuickForm_group::setElementTemplate()

    • HTML_QuickForm_group::setGroupTemplate()

  • ファイルアップロード関連

    • HTML_QuickForm::isUploadedFile()

    • HTML_QuickForm::getUploadedFile()

    • HTML_QuickForm::moveUploadedFile()

あなたのコードを対応させる方法

QuickForm 関連

HTML_QuickForm::getAttributesString()

$form->getAttributes(true);
とすると、HTML_Common::getAttributes() メソッドと同じ値を返します。

HTML_QuickForm::addElementGroup()

引数の順番が変更されました。これは addElement() を使用して QuickForm に要素を追加する際の方法に合わせるためです。 代わりに HTML_QuickForm::addGroup() を使用し、要素ラベルと要素名を入れ替えてください。

HTML_QuickForm::addHeader()

ヘッダは、その他の要素と同じ扱いになりました。 HTML_QuickForm_static を拡張した HTML_QuickForm_header 要素が新しく作成されています。
$form->addElement('header', $header_name, $header_text);
このようにすることでも、指定した名前のヘッダのレンダリングをカスタマイズ可能です。

HTML_QuickForm::addData()

ほんとうにこの機能が必要なら、以下を使用してください。
$form->addElement('html', $data)
あるいは、何らかのテンプレートベースのレンダラを使用することを検討してください。

レンダラ関連

これらのメソッドはレンダラが処理するようになっています。 これらのメソッドの使用法は、選択したレンダラに依存します。 QuickForm のデフォルトレンダラの場合は、このように使用します。
$form =& new HTML_QuickForm('myform');

$renderer =& $form->defaultRenderer();
$renderer->setFormTemplate('<table><form{attributes}>{content}</form></table>');
$renderer->setHeaderTemplate('<tr><td colspan="2"><b>{header}</b></td></tr>');
$renderer->setGroupTemplate('<table><tr>{content}</tr></table>');
$renderer->setGroupElementTemplate('<td>{element}<br /><!-- BEGIN required -->*<!-- END required -->{label}</td>');
defaultRenderer() は、QuickForm と統合したレンダラへの参照を返します。もちろん、QuickForm では Sigma、ITX、Smarty、Flexy などの その他のレンダラ を使用することも可能です。 それらのレンダラでどのようなメソッドが使えるかについては、 各レンダラのドキュメントを参照ください。

ファイルアップロード関連

ファイル関連のメソッドや規則は、ファイル要素クラス HTML_QuickForm_file に移動しました。そのほうがより自然であり、 ファイルアップロードを使用しない場合にまでファイル関連のコードを インクルードする必要がなくなるからです。 これらのメソッドには、次のようにアクセスします。
$form = new HTML_QuickForm('myform');
$file =& $form->addElement('file', 'myfile', 'Your file:');
$form->addRule('myfile', 'Cannot exceed 1776 bytes', 'maxfilesize', 1776);
if ($file->isUploadedFile()) {
    $file->moveUploadedFile('/tmp', 'testfile.txt');
}
あるいは、このようになります。
$file =& $form->getElement('myfile');
if ($file->isUploadedFile()) {
     $fileInfo = $file->getValue();
}

前のページ | ホーム | 次のページ
QuickForm の要素型 | 上に戻る | サブパッケージ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入 - レンダラ

導入 - レンダラ -- フォームを出力する方法

レンダラとは?

リリース 3.0 より前には、フォーム出力のロジックは HTML_QuickForm クラスに実装されていました。 これには 2 つの問題がありました。

  1. クラスの肥大化 (80 以上ものメソッド!)

  2. 新しい出力ロジックの追加 (すなわち、テンプレートエンジンを使用するなど) が難しい

リリース 3.0 で、新しい仕組みが実装されました。フォーム出力のロジックは HTML_QuickForm_Renderer を継承したクラスで実装されるようになり、 かの有名な書籍 "Design Patterns" の中の Visitor デザインパターンに基づいた振る舞いをするようになりました。 これにより、以下のような利点を得られます。

  1. そのメソッドがほんとうに必要なときにだけ メソッドのコードが読み込まれます。

  2. 新しい出力メソッドを追加するのがきわめて簡単です。

リリース 3.1.1 では 8 種類のレンダラが使用可能です。そのうちの 2 つは 3.0 以前のコードに基づいており、6 つは新規に作成されたものです。 直接サポートされるテンプレートエンジンは Smarty、HTML_Template_Sigma、HTML_Template_IT、HTML_Template_Flexy です。

レンダラの主な使用手順は、どれを使用した場合でもほぼ同じです。
<?php
// レンダラクラスをインクルードします
require_once 'HTML/QuickForm/Renderer/FooBar.php';
// レンダラのインスタンスを作成します
$renderer =& new HTML_QuickForm_Renderer_FooBar($options);
// なんらかのカスタマイズをします
$renderer->adjustSomething('element1', '...');
// ...
$renderer->adjustSomething('elementN', '...');
// フォームを処理します
$form->accept($renderer);
// 結果を出力します
$renderer->toFooBar();
?>
カスタマイズ用のメソッドや出力結果は、当然レンダラの型によって変化します。

使用例について マニュアルに記載されている使用例は、ほんとうに基本的なものです。 デフォルトレンダラのより複雑な例は HTML_QuickForm の docs/ ディレクトリにあります。 その他のレンダラの例については docs/renderers/ ディレクトリにあります。

前のページ | ホーム | 次のページ
HTML_QuickForm | 上に戻る | HTML_QuickForm_Renderer_Default

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


サブパッケージ

サブパッケージ -- QuickForm のサブパッケージおよび QuickForm を使用しているパッケージの概要

HTML_QuickForm のサブパッケージ

この節では、HTML_QuickForm のサブパッケージ、たとえば独自の要素やレンダラなどについて説明します。

HTML_QuickForm_advmultiselect

このカスタム要素は、ふたつのセレクトボックスを使用して、 複数選択可能なセレクトボックスを実現します。

HTML_QuickForm_DHTMLRulesTableless

Tableless レンダラ (以下の HTML_QuickForm_Renderer_Tableless を参照ください) を使用している場合、このサブパッケージでデフォルトのクライアント側検証を置き換えます。 デフォルトでは JavaScript のアラートウィンドウを使用していますが、 これは (DHTML を使用して) エラーが発生した場所に動的にエラーメッセージを表示します (ドキュメント)。

HTML_QuickForm_Livesearch

これは独自の要素で、HTML の入力テキストボックスを作成します。 この要素内で JavaScript の keypressed イベントが発生するたびに 動的なドロップダウンセレクトボックスを返します (選択肢が非常に多いセレクトボックスを実現する際などに特に有用です)。 この要素は AJAX を使用しています。

HTML_QuickForm_Renderer_Tableless

HTML_QuickForm のデフォルトのレンダラを置き換えるものです。XHTML および CSS だけを使用し、table タグを用いません。そして、妥当な形式の XHTML を出力します (ドキュメント)。

HTML_QuickForm_SelectFilter

独自の要素です。select 要素に対してクライアント側で動的なフィルタを定義するために使用します。

他のサブパッケージ

これら以外にも、まだ PEAR パッケージとして正式に提案されていない サブパッケージがいくつかあります。そのうちのひとつが DHTMLRules サブパッケージで、これはデフォルトレンダラを使用したフォームで使用します。 このパッケージは Justin Patrin が作成しましたが、まだ PEAR パッケージとして提案されていません。

HTML_QuickForm を使用するパッケージ

この節では、HTML_QuickForm と組み合わせて使用できるパッケージについて説明します。 データベースとの連携や、複数ページのフォームの扱いなどが含まれます。

DB_DataObject_FormBuilder

FormBuilder は、DB_DataObject および HTML_QuickForm を使用した迅速なアプリケーション開発を助けるものです (ドキュメント)。

DB_Table

これは PEAR DB および MDB2 に組み込むパッケージで、データ型の抽象化および 自動的なテーブル作成、データ検証、insert、update、delete、select を行います。 これらを HTML_QuickForm と組み合わせることによって、テーブルのカラム定義に 一致する入力フォームを自動的に生成することができます (ドキュメント)。

HTML_QuickForm_Controller

複数のページで構成されるフォームを作りたいなら、このパッケージが最適です。 これは PageController パターンを実装したものです (ドキュメント)。

他のパッケージ

これら以外にも、オプションあるいは必須といったかたちで HTML_QuickForm を使用しているパッケージがあります。詳細は パッケージのサイト を参照ください。

前のページ | ホーム | 次のページ
バージョン 3.2 への移行 | 上に戻る | HTML_QuickForm_Controller

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入 - 検証およびフィルタ

導入 - 検証およびフィルタ -- 送信されたデータを処理する方法

検証規則

QuickForm を使用すると、クライアント側およびサーバ側での検証が簡単にできます。 正規表現を使用した検証も可能ですし、検証用に作成した独自の関数やメソッドを使用することもできます。 自分で作成した検証規則を、お望みの要素あるいはグループに対して適用することができるのです。 この節では、検証を容易に行うために QuickForm が提供しているさまざまな機能について説明します。

QuickForm は、必須要素に値が入力されているかどうかをフォーム送信時に調べることができます。 この機能は、あらゆる型の要素あるいはグループに対して使用できます。 整数の 0 は未入力とはみなされません。
require_once 'HTML/QuickForm.php';

$form = new HTML_QuickForm('myform', 'post');
$form->addElement('text', 'email', 'メールアドレス:');
$form->addElement('submit', 'submit', '送信');

// 検証規則

$form->addRule('email', 'メールアドレスは必須です', 'required');

// 検証

if ($form->validate()) {
    $form->freeze();
}
$form->display();

空の要素の検証 要素が空の場合、required 以外の検証規則は適用されません。 つまり、空の要素が無効となるのは、その要素が必須である場合のみです。

アップロードの必須チェック file 要素に対しては required 規則は動作しません。 uploadedfile を使用してください。

HTML_QuickForm::validate() メソッドによって、 設定された規則がその順に処理されます。規則が満たされなかった場合、 その要素に対応するエラーメッセージが表示され、入力フォームがもう一度表示されます。 テンプレートを使用することで、エラーメッセージを表示する場所を設定することが可能です。 検証規則を設定する順番は重要です。というのも、実際に表示されるメッセージがそれによって決まるからです。

クライアント側の検証

QuickForm によって、クライアント側でのフォームの検証に必要な javascript を生成することができます。 この機能は、あらゆる型の要素あるいはグループに対して使用できます。 クライアント側で javascript が off になっている場合は、 サーバ側の検証が常に実行されます。
$form->addRule('email', 'E-Mail is required', 'required', null, 'client');

ティップ パラメータ 'client' を設定すると、javascript が自動的に生成されます。

組み込みの検証規則

QuickForm では、フォームの検証によく使用されるいくつかの規則を組み込みで提供しています。 中には、追加のパラメータ $format を addRule() / addGroupRule() に渡す必要があるものもあります。

表 41-1組み込みの検証規則

名前 | 説明 | $format パラメータ
required | 値が空ではありません
maxlength | 値は決して指定した文字数を超えません | 文字の数を表す整数値
minlength | 値は少なくとも指定した文字数以上なければなりません | 文字の数を表す整数値
rangelength | 値の最小文字数と最大文字数を指定します | array(最小文字数, 最大文字数)
regex | 値が正規表現にマッチしなければなりません | 調べる正規表現を表す文字列
email | 値が email アドレスとして正しい形式でなければなりません | checkdnsrr() によるドメインチェックを追加で行うかどうかをしていする boolean 値
lettersonly | 値が文字のみで構成されていなければなりません
alphanumeric | 値が文字と数字のみで構成されていなければなりません
numeric | 値が数値でなければなりません
nopunctuation | 値に記号を含んではいけません
nonzero | 値は先頭が 0 でない数値でなければなりません
compare この規則では、2 つのフォームフィールドの値を比較することができます。 「『パスワード (もう一度入力してください)』の内容が『パスワード』と一致しなければならない」 といった類の規則を表すために使用します。 addRule() の最初のパラメータとして、比較する要素名を配列で渡さなければならないことに注意しましょう。

行う比較の内容を表す文字列

'eq' あるいは '=='

(デフォルト) 両方の要素が同じ値でなければなりません

'neq' あるいは '!='

両方の要素が異なる値でなければなりません

'gt' あるいは '>'

最初の要素の値の方が (数値として比較した場合に) 大きくなければなりません

'gte' あるいは '>='

最初の要素の値の方が (数値として比較した場合に) 大きいか等しくなければなりません

'lt' あるいは '<'

最初の要素の値の方が (数値として比較した場合に) 小さくなければなりません

'lte' あるいは '<='

最初の要素の値の方が (数値として比較した場合に) 小さいか等しくなければなりません

callback | この規則では外部の関数/メソッドを使用して検証を行なうことができます。 フォーマットパラメータとしてコールバックを明示的に渡すか、 あるいは暗黙的に registerRule() で登録します。 | callback として使用する関数あるいはメソッド
ファイルアップロード用の検証規則
uploadedfile | ファイルをアップロードしなければなりません
maxfilesize | ファイルの大きさが指定したバイト数を超えてはいけません | ファイルの最大サイズを表す整数値
mimetype | ファイルの MIME 型が正しくなければなりません | 有効な MIME 型を表す文字列、あるいは複数の MIME 型の配列
filename | ファイル名が、指定した正規表現にマッチしなければなりません | 調べる正規表現を表す文字列

ファイルアップロードの規則について これらの規則は HTML/QuickForm/file.php で定義されており、 file 型の要素がフォームに追加された際に自動的に登録されます。 これらの規則がサーバ側でのみ動作するのは当然のことです。

組み込みの規則の使用法は、パッケージに含まれる rules-builtin.php で網羅しています。 rules-custom.php では、独自の規則クラスの使用法および callback 型の規則の使用方法を説明しています。 ここでは、数値が最大値と最小値の間にあることを調べるために NumericRange クラスが含まれています。

検証クラス

リリース 3.2 以降、組み込みの検証規則はすべて HTML_QuickForm_Rule クラスのサブクラスとなります。独自のサブクラスを作成し、validate() および getValidationScript() の両メソッドを実装することも可能です。 実際の例は、ソースを参照ください。

検証関数およびメソッド

もっと複雑な検証が必要な場合、QuickForm では独自の関数を使用して 要素やグループの検証を行うことが可能です。また、クラスのメソッドをコールすることもできます。 この場合ｈあ、PEAR の Validate パッケージやその他のクラスが使用できます。 独自の関数を使用したい場合には、以下の 2 つの選択肢があります。

  1. registerRule() を使用して関数を登録します。$type には 'callback' を使用し、新しい規則名を $ruleName で指定します。その後 addRule() を使用する際に、この名前を他の組み込み規則と同じように使用できます。

  2. addRule() で callback 型の規則を追加し、関数の名前を $format に渡します。こちらのほうがタイプ数が少なくなりますが、 検証用の関数に追加のデータを渡すことができなくなります。

例 41-1Email の検証関数

/**
 * email アドレスを検証します
 *
 * @param string    $email         検証する Email アドレス
 * @param boolean   $domainCheck   ドメインの存在をチェックするかどうか
 */
function checkEmail($email, $domainCheck = false)
{
    if (preg_match('/^[a-zA-Z0-9\._-]+\@(\[?)[a-zA-Z0-9\-\.]+'.
                   '\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/', $email)) {
        if ($domainCheck && function_exists('checkdnsrr')) {
            list (, $domain)  = explode('@', $email);
            if (checkdnsrr($domain, 'MX') || checkdnsrr($domain, 'A')) {
                return true;
            }
            return false;
        }
        return true;
    }
    return false;
}
$form->registerRule('checkmail', 'callback', 'checkEmail');
$form->addRule('email', 'Email が不正です', 'checkmail', true);

HTML_QuickForm::addRule() で、関数に渡す追加のパラメータを指定することができます。 ここでは、TRUE を渡すことで関数内での DNS チェックを有効にしています。

メソッドを使用する場合は、そのメソッドが存在するクラスを指定しなければなりません。 規則を登録する際に以下のような構文を使用します。
// checkEmail メソッドが Validate クラス内に存在します。
$form->registerRule('checkmail', 'callback', 'checkEmail', 'Validate');

ティップ フォームを検証する際に javascript の関数を使用することもできます。 PHP 関数と同じ名前をつけ、boolean を返すようにし、 'client' パラメータを指定します。

グループの検証

要素グループについてもその他の要素と同じ方法で検証することができます。 あるいはより複雑な検証方法を使用することも可能です。グループ全体を検証するには、 単に HTML_QuickForm::addRule() を使用します。 グループの各要素の値が、配列として検証関数に渡されます。

HTML_QuickForm::addGroupRule() メソッドを使用すると、 より複雑な検証規則を適用することができます。これは、グループ内の要素ごとに検証を行うことができます。 また、グループ内の要素のうち何個が検証規則を満たせばそのグループを有効とみなすかを指定することもできます。

例 41-2複雑なグループの検証

// グループ
$id[] = &HTML_QuickForm::createElement('text', 'username', 'ユーザ名');
$id[] = &HTML_QuickForm::createElement('text', 'code', 'コード');
$form->addGroup($id, 'id', 'あなたの ID:', '-');

// 要素ごとの検証規則

$rule['username'][] = array('ユーザ名は必須です', 'required');
$rule['username'][] = array('ユーザ名には文字のみが使用できます', 'lettersonly');
$rule['username'][] = array('ユーザ名の長さは 5 文字から 8 文字までです', 'rangelength', array(5, 8));

$rule['code'][] = array('コードは必須です', 'required');
$rule['code'][] = array('コードには数字のみが使用できます', 'regex', '/^\d+$/');
$rule['code'][] = array('コードの長さは 5 桁です', 'rangelength', array(5, 5));

$form->addGroupRule('id', $rule);

この例では、グループ内の要素についての検証規則を設定しています。 要素名を使用する代わりに、(作成された順番によって決まる) グループ内のインデックスを使用することもできます。 そのほうが検証の速度が速くなるでしょう。

次の例では、同じグループに対して 2 つの要素のうち少なくとも一方が入力されているかどうかのみを検証します。 これを実現するには、howmany パラメータを使用して、 そこに 1 を設定します。
$form->addGroupRule('id', '少なくとも 1 つの要素を入力してください', 'required', null, 1);

まとめ

これまで見てきたとおり、QuickForm を使用すると、要素やグループの検証がとても簡単になります。 毎度毎度同じようなコードで値が異なるだけという検証コードを書く必要がなくなるのです。 必須要素の確認もしてくれますし、javascript のコードも自動で生成してくれます。 また独自の関数や正規表現を使用して独自の検証を行えるという柔軟性もあります。 さあ、そろそろ試してみませんか ...?

フィルタ

$form->addRule('element', 'この要素は必須です', 'required');
のような規則をフォームに追加した場合、例えば空白 1 文字のみといった入力でも 検証を通過してしまいます。 これは、この検証規則が単に文字が入力されているかどうかだけを確認しているだけであり、 空白文字もこの規則を満たしているからです。

正規表現を使用して独自の規則を作ればこの問題は回避できますが、 もっと簡単な解決法もあります。たいていの場合、入力内容の前後の空白は意味のないものであり、 検証作業の前に組み込みの trim() 関数を使用してこの空白を取り除くことができます。そのためには以下のようにします。
$form->applyFilter('element', 'trim');

フィルタは再帰的に適用されます。つまり、配列の全要素に対して順次 trim() が適用されるということです。 applyFilter() メソッドに対する引数として、あらゆる callback を渡すことが可能です。

ユーザの入力を「サニタイズ」し、無効な値を無視したい場合にはフィルタを使用します。

前のページ | ホーム | 次のページ
HTML_QuickForm | 上に戻る | HTML_QuickForm::addRule()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


クイックスタートガイド

クイックスタートガイド -- HTML_QuickForm チュートリアル

イントロダクション

このチュートリアルは、QuickForm を初めて使うユーザに対して、 機能と使用法の概要を紹介するものです。 ここでは、利用できる機能の内のほんの一部だけについて解説しますが、 より広く深く知るために本マニュアルのどこを見れば良いかについても示していきます。

Keith Edmunds によって書かれた、QuickForm の使用法についての いくぶん長めのチュートリアル も参考となるでしょう。

はじめてのフォーム

例 41-1基本的な使用方法

// メインクラスの読み込み
require_once 'HTML/QuickForm.php';

// HTML_QuickForm オブジェクトを生成
$form = new HTML_QuickForm('firstForm');

// フォーム要素のデフォルト値を設定
$form->setDefaults(array(
    'name' => '山田太郎'
));

// フォームに要素をいくつか追加
$form->addElement('header', null, 'QuickForm チュートリアルのサンプル');
$form->addElement('text', 'name', '名前を入力してください:', array('size' => 50, 'maxlength' => 255));
$form->addElement('submit', null, '送信');

// フィルタと検証ルールを追加
$form->applyFilter('name', 'trim');
$form->addRule('name', '名前を入力してください', 'required', null, 'client');

// フォームの妥当性検証
if ($form->validate()) {
    echo '<h1>こんにちは、' . htmlspecialchars($form->exportValue('name')) . 'さん!</h1>';
    exit;
}

// フォームの出力
$form->display();

では、順を追って上記の例を検討して行きましょう。

フォームの構築

$form = new HTML_QuickForm('firstForm');
の行で、HTML_QuickForm オブジェクトが生成されています。 後で、このHTML_QuickForm オブジェクトに、要素に対応したオブジェクトや他の必要な情報を加えていくこととなります。 ここで、コンストラクタには、 フォームの名称のみを渡し、他のパラメータはデフォルト値が使われています。 フォームの method 属性のデフォルト値は POST、そして action 属性のデフォルト値は現在のファイル名となります。QuickForm を使用する際には、 フォームに関連するロジックをひとつのファイルにまとめておくと楽になります。

次のコードが name 要素のデフォルト値を '山田太郎' に設定するものであることは、おそらく予想が付くでしょう。
$form->setDefaults(array(
    'name' => '山田太郎'
));
QuickForm には、デフォルト値 (setDefaults() メソッドで設定します) および定数値 (setConstants() メソッドで設定します) という概念があります。これらの違いは、デフォルト値はユーザの入力によって上書きされるが、 定数値は上書きされないという点です。

今回のフォームは、3 つの要素から構成されています。
$form->addElement('header', null, 'QuickForm チュートリアルのサンプル');
$form->addElement('text', 'name', '名前を入力してください:', array('size' => 50, 'maxlength' => 255));
$form->addElement('submit', null, '送信');
最初の要素は「本来の」要素ではありません。これは単に見栄えをよくするための見出しです。 2 番目の要素はテキスト入力欄で、3 番目は送信ボタンです。 addElement() メソッドのパラメータは、要素の型によって意味が異なってくることに注意しましょう。 なぜなら、このパラメータはそれぞれの要素のコンストラクタに渡されるものだからです。

入力のチェック

次の行では、'name' 要素の値に対する フィルタ を定義しています。
$form->applyFilter('name', 'trim');
フィルタとは、フォームが送信された際に要素の値に対して適用される関数のことです。 この例の場合は組み込みの trim() 関数を使用していますが、これ以外にも任意の callback を使用することができます。 ここでは、入力された名前から空白を取り除いています。というのも、 空白は不要なものであり、単に空白が入力されたのではなく きちんと名前が入力されたのだということを確認したいからです。

次に、名前欄の 規則 を定義します。
$form->addRule('name', '名前を入力してください', 'required', null, 'client');
このコードの意味は、名前が入力されなかった場合に QuickForm がエラーメッセージを表示するということです。 'client' という指定をすると、サーバ側での検証だけでなく クライアント側での JavaScript による検証も有効にします。また、QuickForm はこのフィールドに対して必須フィールドの印を自動的につけることにも注意しましょう。

入力の検証および処理

フォームの作成が終了し、検証規則も定義しました。 次に、フォームを処理するのか表示するのかを決めなければなりません。
if ($form->validate()) {
    // 何らかの処理
}
validate() メソッドが「フォームが有効である」と判断する (つまり TRUE を返す) のは、 何らかのデータが送信され、かつフォームに定義されている規則がすべて満たされた場合です。 今回の例では、これは 'name' 要素が空でなかったことを表します。

フォームの入力が検証されたら、その値を処理しなければなりません。
echo '<h1>こんにちは、' . htmlspecialchars($form->exportValue('name')) . 'さん!</h1>';
exit;
これはひとつの例です。実際のスクリプトでは、値をどこかに保存したうえで別のページにリダイレクトし、 二重送信を防ぐなどの処理も必要になることでしょう。 このような場合に使用されるメソッドは process() および exportvalues() です。

最後の行は、とても簡単です。
$form->display();
フォームが有効でない場合、すなわちまだ送信されていなかったり入力内容に不備があった場合は、 フォームの内容が表示されます。もしエラーメッセージが存在すれば、 対応する要素のそばにそれが表示されます。

高度な機能

基本的な QuickForm の機能についてはこれでご理解いただけたことでしょう。 しかし、このパッケージにはここで取り上げた以外にも多くの機能があります。 それらについてはそれぞれ個別のチュートリアルを設けています。 この節ではそれらについての簡単な説明をした上で、詳細なドキュメントの場所を示します。

グループ を使用すると、 複数の独立した要素をひとつのエンティティにまとめ、 それをひとつの要素であるかのように使用することができます。 これは date や hierselect のような擬似要素を作成するためにも使用されています。

QuickForm は、フォームのレイアウトや見栄えを変更するために多くの機能を提供しています。 フォームの出力は レンダラ が行います。これは必要なロジックが組み込まれた特別なクラスです。 直接 HTML を出力する レンダラや、 テンプレートエンジンを使用する レンダラがあります。

そして最後に、独自の要素型や検証規則そして レンダラ を追加することで QuickForm を拡張することもできます。

前のページ | ホーム | 次のページ
HTML_QuickForm | 上に戻る | クイックヘルプ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table

目次
導入 -- HTML テーブルの作成
FAQ -- よくある質問への回答
HTML_Table::HTML_Table -- コンストラクタ
HTML_Table::addCol -- 列を追加する
HTML_Table::addRow -- 行を追加する
HTML_Table::altRowAttributes -- 行属性を交互に入れ替える
HTML_Table::apiVersion -- API バージョンを返す (非推奨)
HTML_Table::display -- HTML コードを出力する
HTML_Table::getAutoFill -- autoFill の値を返す
HTML_Table::getAutoGrow -- autoGrow フラグを返す
HTML_Table::getBody -- tbody グループに対応するテーブルオブジェクトを返す
HTML_Table::getCellAttributes -- セルの属性を返す
HTML_Table::getCellContents -- セルの内容を返す
HTML_Table::getColCount -- 列の数を返す
HTML_Table::getFooter -- tfoot グループに対応するテーブルオブジェクトを返す
HTML_Table::getHeader -- thead グループに対応するテーブルオブジェクトを返す
HTML_Table::getRowAttributes -- 行の属性を返す
HTML_Table::getRowCount -- 行の数を返す
HTML_Table::setAllAttributes -- 全セルの属性を設定する
HTML_Table::setAutoGrow -- autoGrow フラグを設定する
HTML_Table::setAutoFill -- autoFill の値を設定する
HTML_Table::setCaption -- テーブルの見出しを設定する
HTML_Table::setCellAttributes -- セルの属性を設定する
HTML_Table::setCellContents -- セルの内容を設定する
HTML_Table::setColAttributes -- 列の属性を設定する
HTML_Table::setColCount -- 列の数を設定する
HTML_Table::setColGroup -- colgroup を設定する
HTML_Table::setColType -- 列の型を設定する
HTML_Table::setHeaderContents -- 見出しセルの内容を設定する
HTML_Table::setRowCount -- 行の数を設定する
HTML_Table::setRowType -- 行の型を設定する
HTML_Table::setRowAttributes -- 行の属性を設定する
HTML_Table::toHtml -- HTML コードを返す
HTML_Table::updateAllAttributes -- 全セルの属性を更新する
HTML_Table::updateCellAttributes -- セルの属性を更新する
HTML_Table::updateColAttributes -- 列の属性を更新する
HTML_Table::updateRowAttributes -- 行の属性を更新する

HTML のテーブルを作成するための API です。

前のページ | ホーム | 次のページ
HTML_QuickForm_DHTMLRulesTableless | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


FAQ

FAQ -- よくある質問への回答

説明

この文書は、PEAR general メーリングリスト やその他のメーリングリスト・掲示板に投稿された質問をもとにして作成されています。

HTML_Table FAQ

1. thead、 tfoot あるいは tbody タグに属性を追加する方法は?

1. thead、 tfoot あるいは tbody タグに属性を追加する方法は?

この例は、属性文字列 id="header" を thead タグに追加するものです。 他のふたつのタグについても同じ手順で追加できます。

$table = new HTML_Table();
// [...]
$thead =& $table->getHeader();
$thead->setAttributes(array('id' => 'header'));
// [...]
$table->display();

この例の結果は次のようになります。

<table>
  <thead id="header">
    [...]
  </thead>
  [...]
</table>
前のページ | ホーム | 次のページ
導入 | 上に戻る | HTML_Table::HTML_Table

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::addCol

HTML_Table::addCol -- 列を追加する

概要

require_once 'HTML/Table.php';

int HTML_Table::addCol ([array $contents = NULL [, mixed $attributes = NULL [, string $type='TD']]])

説明

テーブルに列を追加し、その列の識別子を返します。

パラメータ

  • array $contents - セルの内容として有効な値を含む、数値添字の配列でなければなりません。

  • mixed $attributes - 連想配列あるいは文字列で指定する、テーブルの行の属性。

  • string $type - セルの型。'th' あるいは 'td' のいずれか。

返り値

int - 列の識別子を返します。

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Table::addRow()

前のページ | ホーム | 次のページ
HTML_Table::HTML_Table | 上に戻る | HTML_Table::addRow

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::addRow

HTML_Table::addRow -- 行を追加する

概要

require_once 'HTML/Table.php';

int HTML_Table::addRow ([array $contents = NULL [, mixed $attributes = NULL [, string $type='TD' [, boolean $inTR = FALSE]]]])

説明

テーブルに行を追加し、その行の識別子を返します。

パラメータ

  • array $contents - セルの内容として有効な値を含む、数値添字の配列でなければなりません。

  • mixed $attributes - 連想配列あるいは文字列で指定する、テーブルの行の属性。 これは属性の配列とすることも可能で、その場合には、 ループ内でそれらの属性が繰り返されます。

  • string $type - セルの型。'th' あるいは 'td' のいずれか。

  • boolean $inTR - FALSE を指定すると、属性を TD タグに対して設定します。 TRUE を指定すると、属性を TR タグに対して設定します。

返り値

int - 行の識別子を返します。

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Table::addCol()

前のページ | ホーム | 次のページ
HTML_Table::addCol | 上に戻る | HTML_Table::altRowAttributes

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::altRowAttributes

HTML_Table::altRowAttributes -- 行属性を交互に入れ替える

概要

require_once 'HTML/Table.php';

void HTML_Table::altRowAttributes (int $start, mixed $attributes1, mixed $attributes2 [, boolean $inTR = FALSE])

説明

$start 以降の行属性を交互に入れ替えます。

パラメータ

  • int $start - 入れ替えを開始する行のインデックス。

  • mixed $attributes1 - テーブルの行属性を表す連想配列あるいは文字列。

  • mixed $attributes2 - テーブルの行属性を表す連想配列あるいは文字列。

  • boolean $inTR - FALSE を指定すると、属性を td タグに対して設定します。 TRUE を指定すると、属性を tr タグに対して設定します。

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Table::setAllAttributes() , HTML_Table::updateAllAttributes() , HTML_Table::setColAttributes() , HTML_Table::updateColAttributes() , HTML_Table::setCellAttributes() , HTML_Table::updateCellAttributes() , HTML_Table::updateRowAttributes() , HTML_Table::setRowAttributes()

前のページ | ホーム | 次のページ
HTML_Table::addRow | 上に戻る | HTML_Table::apiVersion

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::apiVersion

HTML_Table::apiVersion -- API バージョンを返す (非推奨)

概要

require_once 'HTML/Table.php';

double HTML_Table::apiVersion ()

説明

HTML_Table の API バージョンを返します。非推奨です。

返り値

double - バージョン番号を返します。

注意

この関数は、スタティックにコールする ことはできません。

警告

この関数は 非推奨の関数です。 今後、このパッケージの将来のバージョンでは、 サポートされないかもしれません。

前のページ | ホーム | 次のページ
HTML_Table::altRowAttributes | 上に戻る | HTML_Table::display

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::display

HTML_Table::display -- HTML コードを出力する

概要

require_once 'HTML/Table.php';

string HTML_Table::display ()

説明

テーブル構造を HTML として出力します。

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Table::toHtml()

前のページ | ホーム | 次のページ
HTML_Table::apiVersion | 上に戻る | HTML_Table::getAutoFill

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::getAutoFill

HTML_Table::getAutoFill -- autoFill の値を返す

概要

require_once 'HTML/Table.php';

mixed HTML_Table::getAutoFill ()

説明

autoFill の値を返します。

返り値

mixed - 空のセルに書き込まれる値を返します。

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Table::setAutoFill()

前のページ | ホーム | 次のページ
HTML_Table::display | 上に戻る | HTML_Table::getAutoGrow

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::getAutoGrow

HTML_Table::getAutoGrow -- autoGrow フラグを返す

概要

require_once 'HTML/Table.php';

boolean HTML_Table::getAutoGrow ()

説明

autoGrow フラグの値を返します。 存在しないセルに値を入れようとした際に、もしフラグが TRUE なら HTML_Table が必要な行や列を自動的に追加します。

返り値

boolean - フラグの状態を返します。

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Table::setAutoGrow()

前のページ | ホーム | 次のページ
HTML_Table::getAutoFill | 上に戻る | HTML_Table::getBody

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::getBody

HTML_Table::getBody -- tbody グループに対応するテーブルオブジェクトを返す

概要

require_once 'HTML/Table.php';

mixed HTML_Table::getBody ()

説明

tbody グループに対応するテーブルオブジェクトを返します。

返り値

object - tbody グループに対応するテーブルオブジェクトを返します。

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Table::HTML_Table()

前のページ | ホーム | 次のページ
HTML_Table::getAutoGrow | 上に戻る | HTML_Table::getCellAttributes

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::getCellAttributes

HTML_Table::getCellAttributes -- セルの属性を返す

概要

require_once 'HTML/Table.php';

array HTML_Table::getCellAttributes (int $row, int $col)

説明

指定したセルの属性を返します。

パラメータ

  • int $row - 行インデックス。

  • int $col - 列インデックス。

返り値

array - 指定したセルの属性を返します。

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Table::getRowAttributes()

前のページ | ホーム | 次のページ
HTML_Table::getBody | 上に戻る | HTML_Table::getCellContents

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::getCellContents

HTML_Table::getCellContents -- セルの内容を返す

概要

require_once 'HTML/Table.php';

mixed HTML_Table::getCellContents (int $row, int $col)

説明

指定したセルの内容を返します。

パラメータ

  • int $row - 行インデックス。

  • int $col - 列インデックス。

返り値

mixed - 指定したセルの内容を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_Table::getCellAttributes | 上に戻る | HTML_Table::getColCount

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::getColCount

HTML_Table::getColCount -- 列の数を返す

概要

require_once 'HTML/Table.php';

int HTML_Table::getColCount ()

説明

テーブル内の列の数を返します。

返り値

int - 列の数を返します。

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Table::getRowCount()

前のページ | ホーム | 次のページ
HTML_Table::getCellContents | 上に戻る | HTML_Table::getFooter

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::getFooter

HTML_Table::getFooter -- tfoot グループに対応するテーブルオブジェクトを返す

概要

require_once 'HTML/Table.php';

mixed HTML_Table::getFooter ()

説明

tfoot グループに対応するテーブルオブジェクトを返します。

コンストラクタの三番目の引数によって thead、tfoot および tbody グループの使用が有効になっていない場合、 この関数をコールすると自動的にグループの使用が有効となります。

返り値

object - tfoot グループに対応するテーブルオブジェクトを返します。

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Table::HTML_Table()

前のページ | ホーム | 次のページ
HTML_Table::getColCount | 上に戻る | HTML_Table::getHeader

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::getHeader

HTML_Table::getHeader -- thead グループに対応するテーブルオブジェクトを返す

概要

require_once 'HTML/Table.php';

mixed HTML_Table::getHeader ()

説明

thead グループに対応するテーブルオブジェクトを返します。

コンストラクタの三番目の引数によって thead、tfoot および tbody グループの使用が有効になっていない場合、 この関数をコールすると自動的にグループの使用が有効となります。

返り値

object - thead グループに対応するテーブルオブジェクトを返します。

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Table::HTML_Table()

前のページ | ホーム | 次のページ
HTML_Table::getFooter | 上に戻る | HTML_Table::getRowAttributes

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::getRowAttributes

HTML_Table::getRowAttributes -- 行の属性を返す

概要

require_once 'HTML/Table.php';

array HTML_Table::getRowAttributes (int $row)

説明

tr タグに含まれる、 指定した行の属性を返します。

パラメータ

  • int $row - 行インデックス。

返り値

array - 行の属性を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_Table::getHeader | 上に戻る | HTML_Table::getRowCount

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::getRowCount

HTML_Table::getRowCount -- 行の数を返す

概要

require_once 'HTML/Table.php';

int HTML_Table::getRowCount ()

説明

テーブル内の行の数を返します。

返り値

int - 行の数を返します。

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Table::getColCount()

前のページ | ホーム | 次のページ
HTML_Table::getRowAttributes | 上に戻る | HTML_Table::setAllAttributes

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::HTML_Table

HTML_Table::HTML_Table -- コンストラクタ

概要

require_once 'HTML/Table.php';

void HTML_Table::HTML_Table ([array $attributes = NULL [, integer $tabOffset=0 [, boolean $useTGroups=false]]])

説明

クラスのコンストラクタです。

パラメータ

  • array $attributes - table タグの属性の連想配列。

  • integer $tabOffset - テーブルの tab オフセット。

  • boolean $useTGroups - thead、tfoot および tbody のグループ分けを使用するかどうか。

注意

この関数は、スタティックにコールする ことができます。

参照

HTML_Table::getBody()

HTML_Table::getFooter()

HTML_Table::getHeader()

前のページ | ホーム | 次のページ
FAQ | 上に戻る | HTML_Table::addCol

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::setAllAttributes

HTML_Table::setAllAttributes -- 全セルの属性を設定する

概要

require_once 'HTML_Table.php';

void HTML_Table::setAllAttributes ([mixed $attributes = NULL])

説明

全セルの属性を設定します。

パラメータ

  • mixed $attributes - テーブルのセル属性を表す連想配列あるいは文字列。

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Table::updateAllAttributes() , HTML_Table::setColAttributes() , HTML_Table::setCellAttributes() , HTML_Table::setRowAttributes()

前のページ | ホーム | 次のページ
HTML_Table::getRowCount | 上に戻る | HTML_Table::setAutoGrow

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::setAutoFill

HTML_Table::setAutoFill -- autoFill の値を設定する

概要

require_once 'HTML/Table.php';

void HTML_Table::setAutoFill (mixed $fill)

説明

autoFill の値は、 値を設定していないすべてのセルに書き込まれます。

パラメータ

  • mixed $fill - 空セル用の標準の値。

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Table::getAutoFill()

前のページ | ホーム | 次のページ
HTML_Table::setAutoGrow | 上に戻る | HTML_Table::setCaption

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::setAutoGrow

HTML_Table::setAutoGrow -- autoGrow フラグを設定する

概要

require_once 'HTML/Table.php';

void HTML_Table::setAutoGrow (bool $grow)

説明

存在しないセルに値を入れようとした際に、もしフラグが TRUE なら HTML_Table が必要な行や列を自動的に追加します。

パラメータ

  • bool $grow - TRUE にすると、自動的に拡張します。

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Table::getAutoGrow()

前のページ | ホーム | 次のページ
HTML_Table::setAllAttributes | 上に戻る | HTML_Table::setAutoFill

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::setCaption

HTML_Table::setCaption -- テーブルの見出しを設定する

概要

require_once 'HTML/Table.php';

void HTML_Table::setCaption (string $caption [, mixed $attributes = NULL])

説明

テーブルの見出しを設定します。「見出し」とは <th> タグのことではありません。 <caption> タグによって、 テーブル全体についての見出しを定義します。

パラメータ

  • string $caption - 見出し文字列。

  • mixed $attributes - 見出しの属性を表す連想配列あるいは文字列。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_Table::setAutoFill | 上に戻る | HTML_Table::setCellAttributes

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::setCellAttributes

HTML_Table::setCellAttributes -- セルの属性を設定する

概要

require_once 'HTML/Table.php';

void HTML_Table::setCellAttributes (int $row, int $col, mixed $attributes)

説明

既存のセルに対してセルの属性を設定します。指定したインデックスが存在せず、 かつ autoGrow が TRUE の場合は、 指定した行や列が自動的に追加されます。 autoGrow が FALSE の場合はエラーが返されます。

パラメータ

  • int $row - 行インデックス。

  • int $col - 列インデックス。

  • mixed $attributes - テーブルのセルの属性を表す連想配列あるいは文字列。

例外・エラー

表 41-1PEAR_Error の値

エラーコード | エラーメッセージ | 意味 | 対応
 | " Invalid table row reference [$row] " | 行 $row が存在しません | autoGrow 機能を有効にします
 | " Invalid table column reference [$column] " | 列 $column が存在しません | autoGrow 機能を有効にします

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Table::setAutoGrow()

前のページ | ホーム | 次のページ
HTML_Table::setCaption | 上に戻る | HTML_Table::setCellContents

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::setCellContents

HTML_Table::setCellContents -- セルの内容を設定する

概要

require_once 'HTML/Table.php';

void HTML_Table::setCellContents (int $row, int $col, mixed $contents [, string $type='TD'])

説明

既存のセルに対してセルの内容を設定します。指定したインデックスが存在せず、 かつ autoGrow が TRUE の場合は、 指定した行や列が自動的に追加されます。 autoGrow が FALSE の場合はエラーが返されます。

パラメータ

  • int $row - 行インデックス。

  • int $col - 列インデックス。

  • mixed $contents - HTML か、あるいは任意のオブジェクトに toHTML() メソッドを適用したもの。

  • string $type - セルの型。'th' あるいは 'td' のいずれか。

例外・エラー

表 41-1PEAR_Error の値

エラーコード | エラーメッセージ | 意味 | 対応
 | " Invalid table row reference [$row] " | 行 $row が存在しません | autoGrow 機能を有効にします
 | " Invalid table column reference [$column] " | 列 $column が存在しません | autoGrow 機能を有効にします

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Table::setAutoGrow()

前のページ | ホーム | 次のページ
HTML_Table::setCellAttributes | 上に戻る | HTML_Table::setColAttributes

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::setColAttributes

HTML_Table::setColAttributes -- 列の属性を設定する

概要

require_once 'HTML/Table.php';

void HTML_Table::setColAttributes (int $col [, mixed $attributes = NULL])

説明

既存の列の属性を設定します。

パラメータ

  • int $col - 列インデックス。

  • mixed $attributes - テーブルの列の属性を表す連想配列あるいは文字列。

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Table::setRowAttributes()

前のページ | ホーム | 次のページ
HTML_Table::setCellContents | 上に戻る | HTML_Table::setColCount

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::setColCount

HTML_Table::setColCount -- 列の数を設定する

概要

require_once 'HTML/Table.php';

void HTML_Table::setColCount (int $cols)

説明

テーブル内の列の数を設定します。

パラメータ

  • int $cols - 作成する列の数。

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Table::setRowCount()

前のページ | ホーム | 次のページ
HTML_Table::setColAttributes | 上に戻る | HTML_Table::setColGroup

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::setColGroup

HTML_Table::setColGroup -- colgroup を設定する

概要

require_once 'HTML/Table.php';

void HTML_Table::setColGroup ([mixed $colgroup = NULL [, mixed $attributes = NULL]])

説明

colgroup (と、その属性) を追加します。

パラメータ

  • mixed $colgroup - 空の文字列、列の属性を表す文字列、あるいは列の属性の連想配列。

  • mixed $attributes - colgroup の属性を表す連想配列あるいは文字列。

例

例 41-1col タグを使用しない例

<?php
require_once 'HTML/Table.php';

$table =& new HTML_Table();

$colgroup = '';
$attributes = 'span="3" class="group1"';
$table->setColGroup($colgroup, $attributes);
?>

例 41-2col タグを使用する例

<?php
require_once 'HTML/Table.php';

$table =& new HTML_Table();

$colgroup = array('style="font-size: 120%;"', 'class="col2"', 'align="right"');
$attributes = 'span="3" class="group1"';
$table->setColGroup($colgroup, $attributes);
?>

例 41-3複数の colgroup を使用する例

<?php
require_once 'HTML/Table.php';

$colgroup = array('style="font-size:120%;"', 'class="col2"', 'align="right"');
$attributes = 'span="3" class="group1"';
$table->setColGroup($colgroup, $attributes);

$colgroup = array(array('class' => 'col4'), array('class' => 'col5'));
$attributes = 'span="2" class="group2"';
$table->setColGroup($colgroup, $attributes);
?>

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_Table::setColCount | 上に戻る | HTML_Table::setColType

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::setColType

HTML_Table::setColType -- 列の型を設定する

概要

require_once 'HTML/Table.php';

void HTML_Table::setColType (int $col, string $type)

説明

列の型を 'th' あるいは 'td' のいずれかに設定します。

パラメータ

  • int $col - 列インデックス。

  • string $type - th あるいは td。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_Table::setColGroup | 上に戻る | HTML_Table::setHeaderContents

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::setHeaderContents

HTML_Table::setHeaderContents -- 見出しセルの内容を設定する

概要

require_once 'HTML/Table.php';

void HTML_Table::setHeaderContents (int $row, int $col, mixed $contents)

説明

特定のセルを見出しセルとして指定し、その内容を設定します。

パラメータ

  • int $row - 行インデックス。

  • int $col - 列インデックス。

  • mixed $contents - セルの内容。

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Table::setCellContent()

前のページ | ホーム | 次のページ
HTML_Table::setColType | 上に戻る | HTML_Table::setRowCount

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::setRowAttributes

HTML_Table::setRowAttributes -- 行の属性を設定する

概要

require_once 'HTML/Table.php';

void HTML_Table::setRowAttributes (int $row, mixed $attributes [, boolean $inTR = FALSE])

説明

既存の行の属性を設定します。

パラメータ

  • int $row - Row index

  • mixed $attributes - 連想配列あるいは文字列で指定する、テーブルの行の属性。 これは属性の配列とすることも可能で、その場合には、 ループ内でそれらの属性が繰り返されます。

  • boolean $inTR - FALSE を指定すると、属性を TD タグに対して設定します。 TRUE を指定すると、属性を TR タグに対して設定します。

例外・エラー

表 41-1PEAR_Error の値

エラーコード | エラーメッセージ | 意味 | 対応
 | " Invalid table row reference [$row] " | 行 $row が存在しません | autoGrow 機能を有効にします
 | " Invalid table column reference [$column] " | 列 $column が存在しません | autoGrow 機能を有効にします

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Table::setColAttributes()

前のページ | ホーム | 次のページ
HTML_Table::setRowType | 上に戻る | HTML_Table::toHtml

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::setRowCount

HTML_Table::setRowCount -- 行の数を設定する

概要

require_once 'HTML/Table.php';

void HTML_Table::setRowCount (int $rows)

説明

テーブル内の行の数を設定します。

パラメータ

  • int $rows - 作成する行の数。

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Table::setColCount()

前のページ | ホーム | 次のページ
HTML_Table::setHeaderContents | 上に戻る | HTML_Table::setRowType

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::setRowType

HTML_Table::setRowType -- 行の型を設定する

概要

require_once 'HTML/Table.php';

void HTML_Table::setRowType (int $row, string $type)

説明

行の型を 'th' あるいは 'td' のいずれかに設定します。

パラメータ

  • int $row - 行インデックス。

  • string $type - 'th' あるいは 'td'。

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Table::setColType()

前のページ | ホーム | 次のページ
HTML_Table::setRowCount | 上に戻る | HTML_Table::setRowAttributes

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::toHtml

HTML_Table::toHtml -- HTML コードを返す

概要

require_once 'HTML/Table.php';

string HTML_Table::toHtml ()

説明

テーブル構造を HTML で返します。

返り値

string - 生成された HTML コードを返します。

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Table::display()

前のページ | ホーム | 次のページ
HTML_Table::setRowAttributes | 上に戻る | HTML_Table::updateAllAttributes

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::updateAllAttributes

HTML_Table::updateAllAttributes -- 全セルの属性を更新する

概要

require_once 'HTML/Table.php';

void HTML_Table::updateAllAttributes ([mixed $attributes = NULL])

説明

全セルの属性を更新します。

パラメータ

  • mixed $attributes - テーブルの行の属性を表す連想配列あるいは文字列。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_Table::toHtml | 上に戻る | HTML_Table::updateCellAttributes

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::updateCellAttributes

HTML_Table::updateCellAttributes -- セルの属性を更新する

概要

require_once 'HTML/Table.php';

void HTML_Table::updateCellAttributes (int $row, int $col, mixed $attributes)

説明

セルの属性を更新します。ただし、渡された属性以外の既存の属性はそのまま残します。

パラメータ

  • int $row - 行インデックス。

  • int $col - 列インデックス。

  • mixed $attributes - テーブルの行の属性を表す連想配列あるいは文字列。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_Table::updateAllAttributes | 上に戻る | HTML_Table::updateColAttributes

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::updateColAttributes

HTML_Table::updateColAttributes -- 列の属性を更新する

概要

require_once 'HTML/Table.php';

void HTML_Table::updateColAttributes (int $col [, mixed $attributes = NULL])

説明

既存の列の属性を更新します。

パラメータ

  • int $col - 列インデックス。

  • mixed $attributes - テーブルの行の属性を表す連想配列あるいは文字列。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_Table::updateCellAttributes | 上に戻る | HTML_Table::updateRowAttributes

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Table::updateRowAttributes

HTML_Table::updateRowAttributes -- 行の属性を更新する

概要

require_once 'HTML/Table.php';

void HTML_Table::updateRowAttributes (int $row [, mixed $attributes = NULL [, boolean $inTR = FALSE]])

説明

既存の行の属性を更新します。

パラメータ

  • int $row - 行インデックス。

  • mixed $attributes - テーブルの行の属性を表す連想配列あるいは文字列。

  • boolean $inTR - FALSE を指定すると、属性を td タグに対して設定します。 TRUE を指定すると、属性を tr タグに対して設定します。

例外・エラー

表 41-1PEAR_Error の値

エラーコード | エラーメッセージ | 意味 | 対応
 | " Invalid table row reference [$row] " | 行 $row が存在しません | autoGrow 機能を有効にします
 | " Invalid table column reference [$column] " | 列 $column が存在しません | autoGrow 機能を有効にします

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_Table::updateColAttributes | 上に戻る | HTML_TagCloud

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- HTML テーブルの作成

HTML_Table とは?

HTML_Table は、HTML のテーブルを作成するためのインターフェイスを提供するパッケージです。 スプレッドシートのような表形式のデータとともに使用します。 HTML でいちいち順番にセルを書いていくのではなく、 セルの位置を指定してそこにデータを書き込むといったことができるようになります。 最初のセルから書き始めようが、テーブルの途中や最後の行、 列から書き始めようが、まったく同じように操作できます。

autoGrow および autoFill の値

autoGrow フラグ

通常は、テーブルの行や列の数は事前にわかっているでしょう。 しかし、時には必要な行や列の数がわからないこともあります。 たとえば、ユーザの入力内容や データベースのクエリの結果を HTML テーブルにする場合などです。

このような場合は、autoGrow 機能を 有効に します。 このモードでは、存在しない行や列を指定した場合に HTML_Table が自動的に行や列を追加します。

autoFill の値

テーブルを作成する際に、すべてのセルに異なる値を指定するというわけではないこともあるでしょう。 そのセルに入れる値が不明であるとか、デフォルト値を指定しておきたい (例えばユーザについての情報を取得する場合など) といった場合です。 すべてのユーザが携帯電話や email を使っているわけではないでしょう。 そんな場合には、そのセルには "n/a" を入れなければなりません。

そこで、autoFill の値として "n/a" を 定義 し、データが存在するセルにのみ値を設定していきます。 すべてのセルの値を設定する必要はありません。未指定のセルには自動的に "n/a" が設定されます。

テーブルの作成

デモンストレーション用データ

これから作成する HTML テーブルには、次のデータを含めるものとします。
$data = array(
 '0' => array('Bakken', 'Stig', '', 'stig@example.com'),
 '1' => array('Merz', 'Alexander', 'alex.example.com', 'alex@example.com'),
 '2' => array('Daniel', 'Adam', '', '')
);

はじまり

それでは、まず最初に新しい HTML_Table のインスタンスを作成しましょう。 このテーブルの幅は 600 ピクセルとします。 テーブルに表示するデータの数はわかりません。 そこで、autoGrow 機能を有効にします。 未指定のセルには "n/a" が表示されるようにします。
require_once 'HTML/Table.php';

$tableAttrs = array('width' => '600');
$table = new HTML_Table($tableAttrs);
$table->setAutoGrow(true);
$table->setAutoFill('n/a');

データ行の追加

各データ項目について処理していきます。ここでは、これまで説明してこなかった HTML_Table の機能を使っており、 一行おきに、行の色が赤くなるようにしています。
for ($nr = 0; $nr < count($data); $nr++) {
  $table->setHeaderContents($nr+1, 0, (string)$nr);
  for ($i = 0; $i < 4; $i++) {
    if ('' != $data[$nr][$i]) {
      $table->setCellContents($nr+1, $i+1, $data[$nr][$i]);
    }
  }
}
$altRow = array('bgcolor' => 'red');
$table->altRowAttributes(1, null, $altRow);

見出しセルの追加

最初の行に表示され、見出しとして扱われるセルを定義しましょう。 スプレッドシートの表のような仕上がりを想定しているので、 ここでは見出しセルの背景色を "silver" とします。 最初の行には列の見出しをつけ、 最初の列にはデータセットの行番号を表示するようにします。
$table->setHeaderContents(0, 0, '');
$table->setHeaderContents(0, 1, '姓');
$table->setHeaderContents(0, 2, '名');
$table->setHeaderContents(0, 3, 'ウェブサイト');
$table->setHeaderContents(0, 4, 'EMail');
$hrAttrs = array('bgcolor' => 'silver');
$table->setRowAttributes(0, $hrAttrs, true);
$table->setColAttributes(0, $hrAttrs);

テーブルの表示

さあ、これで出来上がりです! それでは結果を HTML コードで出力しましょう。
echo $table->toHtml();
出力結果は次のようになります。
<!-- BEGIN TABLE LEVEL: 0 -->
<table width="600">
        <tr>
         <th bgcolor="silver">&nbsp;</th>
         <th bgcolor="silver">姓</th>
         <th bgcolor="silver">名</th>
         <th bgcolor="silver">ウェブサイト</th>
         <th bgcolor="silver">EMail</th>
        </tr>
        <tr>
         <th bgcolor="silver">0</th>
         <td>Bakken</td>
         <td>Stig</td>
         <td>n/a</td>
         <td>stig@example.com</td>
        </tr>
        <tr>
         <th bgcolor="silver">1</th>
         <td bgcolor="red">Merz</td>
         <td bgcolor="red">Alexander</td>
         <td bgcolor="red">alex.example.com</td>
         <td bgcolor="red">alex@example.com</td>
        </tr>
        <tr>
         <th bgcolor="silver">2</th>
         <td>Daniel</td>
         <td>Adam</td>
         <td>n/a</td>
         <td>n/a</td>
        </tr>
</table>
<!-- END TABLE LEVEL: 0 -->

thead、tfoot および tbody の使用

テーブルを thead、tfoot および tbody のグループに分けたい場合は、 テーブルオブジェクトを取得する際に getHeader()、 getFooter() および getBody() を使用する必要があります。 そして、それを通常のテーブルオブジェクトと同様に使用します。
$table = new HTML_Table();
$head =& $table->getHeader();
$foot =& $table->getFooter();
$body =& $table->getBody();
$head->setCellContents(...);
$body->setCellContents(...);
echo $table->toHtml();
この例では tfoot グループの中身を設定していません。 そのため、thead および tbody のみが表示されます。

注意 レンダリングの順序は、まず thead、次に tfoot そして最後に tbody となります。 これはバグではなく意図的な動作です。なぜなら (X)HTML の標準規格でそのように定義されているからです。

前のページ | ホーム | 次のページ
HTML_Table | 上に戻る | FAQ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_TagCloud

目次
Introduction -- Introduction to HTML_TagCloud.
Usage examples -- Using HTML_TagCloud.

Create and display defined "tags" (words) in a "tag cloud".

前のページ | ホーム | 次のページ
HTML_Table::updateRowAttributes | 上に戻る | Introduction

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Usage examples

Usage examples -- Using HTML_TagCloud.

Generate HTML and CSS separately

HTML_TagCloud creates HTML and CSS. The HTML is a simple list, decorated by CSS. You are able to output HTML and CSS separately.

例 41-1output HTML and CSS separately

// CSS part only
$css = $tags->buildCSS();
// html part only
$taghtml = $tags->buildHTML();

The HTML output depends on the tag data that have been added via addElement(), but the CSS output is static. You can use this package's CSS output statically.

Modify the decoration of the tag

It is possible to modify the colors used by the CSS. You need to define your own class which extends HTML_TagCloud and override color and size properties.

例 41-2Decoration example

class MyTags extends HTML_TagCloud
{
    protected $epoc_level = array(
        array(
            'earliest' => array(
                'link'    => 'ffdfdf',
                'visited' => 'ffdfdf',
                'hover'   => 'ffdfdf',
                'active'  => 'ffdfdf',
            ),
        ),
        array(
            'earlier' => array(
                'link'    => 'ff7f7f',
                'visited' => 'ff7f7f',
                'hover'   => 'ff7f7f',
                'active'  => 'ff7f7f',
            ),
        ),
        array(
            'previous' => array(
                'link'    => 'ff7f7f',
                'visited' => 'ff7f7f',
                'hover'   => 'ff7f7f',
                'active'  => 'ff7f7f',
            ),
        ),
        array(
            'recent' => array(
                'link'    => 'ff4f4f',
                'visited' => 'ff4f4f',
                'hover'   => 'ff4f4f',
                'active'  => 'ff4f4f',
            ),
        ),
        array(
            'later' => array(
                'link'    => 'ff1f1f',
                'visited' => 'ff1f1f',
                'hover'   => 'ff1f1f',
                'active'  => 'ff1f1f',
            ),
        ),
        array(
            'latest' => array(
                'link'    => 'ff0000',
                'visited' => 'ff0000',
                'hover'   => 'ff0000',
                'active'  => 'ff0000',
            ),
        ),
    );
    protected $size_suffix = 'pt';
    protected $fontsizerange = 0;
    protected $basefontsize = 12;
}

Omit timeline feature

If you don't want to add timeline information and have the color changing accordingly, just omit the fourth parameter to addElement(). When doing this, the current time is set.

例 41-3Omitting the timeline

$tags->addElement('PHP','http://www.php.net', 39);
前のページ | ホーム | 次のページ
Introduction | 上に戻る | HTML_Template_Flexy

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction

Introduction -- Introduction to HTML_TagCloud.

Overview

This package can be used to generate tag coulds in HTML and CSS. A tag cloud is an visual representation of list of so-called "tags" or keywords, that do have a different font size depending on how often they occur on the page/blog.

More information on tag clouds is available in Wikipedia.

This package does not only visualize frequency, but also timeline infomation. The newer the tag is, the deeper its color will be; older tags will have a lighter color.

Simple usage example

例 41-1Basic example

<?php
require_once 'HTML/TagCloud.php';

$tags = new HTML_TagCloud();
// add Elements
$tags->addElement('PHP'       ,'http://www.php.net'  , 39, strtotime('-1 day'));
$tags->addElement('XML'       ,'http://www.xml.org'  , 21, strtotime('-2 week'));
$tags->addElement('Perl'      ,'http://www.xml.org'  , 15, strtotime('-1 month'));
$tags->addElement('PEAR'      ,'http://pear.php.net' , 32, time());
$tags->addElement('MySQL'     ,'http://www.mysql.com', 10, strtotime('-2 day'));
$tags->addElement('PostgreSQL','http://pgsql.com'    ,  6, strtotime('-3 week'));
// output HTML and CSS
print $tags->buildALL();
?>

The above example code creates a tag cloud containing five items. The tag used most often is "PHP"; it will appear in the largest font. The tag used latest is"PEAR", it is in the deepest color. Tags are sorted by alphabetically, and escaped in HTML.

前のページ | ホーム | 次のページ
HTML_TagCloud | 上に戻る | Usage examples

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Template_Flexy

目次
導入 -- HTML_Template_Flexy に出来ること
設定項目 -- HTML_Template_Flexy の初期設定
new HTML_Template_Flexy -- constructor
$flexy->compile() -- コンパイルする必要があればマークアップを PHP にコンパイルする
$flexy->outputObject() -- コントローラオブジェクトとテンプレートをマージし、結果を出力する
$flexy->bufferedOutputObject() -- コントローラーオブジェクトをテンプレートとマージし、結果を返す
$flexy->getElements() -- テンプレートから動的要素を取り出す
new HTML_Template_Flexy_Element -- Class constructor
$element->setValue() -- Utility function to set or store values from common tag types.
$element->setOptions() -- Utility function equivilant to HTML_Select - loadArray **
$element->removeAttributes() -- Removes an attributes
$element->setAttributes() -- Sets the HTML attributes
$element->toHtml -- Output HTML and children
$element->toHtmlnoClose() -- Output Open Tag and any children and not Child tag (designed for use with <form + hidden elements>
$factory->freeze() -- freeze - freeze's an element. - just copies the value to the override.
$factory->fromArray() -- fromArray - builds a set of elements from a key=>value array (eg. DO->toArray()) the second parameter is an optional HTML_Element array to merge it into.
$factory->fromArrayPrefixed() -- fromArrayPrefixed - takes a multi dimensional array, and builds the 'xxx[sss][xx]' => value
$factory->setErrors() -- setErrors - sets the suffix of an element to a value..
$factory->setRequired() -- setRequired - sets the prefix of an element to a value..
{variable} -- creates PHP code to echo a variable
{method(arguments,#quoted arguments#)} -- creates a PHP method call, and echos the results
{foreach:variable,key,value} -- creates a PHP foreach loop
{if:variable} -- creates a PHP if statement
{end:} -- closes an if or foreach block
{else:} -- adds an PHP else in an if block
<FORM NAME="name" -- configures automatic form elements
<INPUT NAME="name"> -- creates PHP variable for input values
<TEXTAREA NAME="name"> -- creates PHP variable for textarea value
<SELECT NAME="name"> -- creates PHP variable and code for select lists
flexy:if="variable or method()" -- creates a PHP if conditional tag
flexy:foreach="variable,key,value" -- creates a PHP foreach loop using a html attribute
flexy:start="here" -- Start the output, using this tag and it's children.
flexy:startchildren="here" -- Start the output using it's children.
flexy:ignore="yes" -- Prevent Automatic form value replacement
flexy:nameuses="variable" -- Use a variable in the name for a flexy form element
<FLEXY:TOJAVASCRIPT JSVAR="PHPVAR"> ... -- Provides a simple way to pass data from PHP to Javascript

きわめて柔軟なテンプレートコア、そして複数のエンジンから構成されます。

前のページ | ホーム | 次のページ
Usage examples | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


flexy:ignore="yes"

flexy:ignore="yes" -- Prevent Automatic form value replacement

概要

Usage (flexy:ignore="yes")

説明

Tells the generator not to replace form elements with PHP code. Can be used with a Form Tag, or individual elements.

例

例 41-1Template with flexy:ignore

<form name="theform1">
  <input name="theinput1">
  <input name="theinput2" value="dummy">
</form>

<form name="theform2" flexy:ignore>
  <input name="theinput3" value="dummy">
  <input name="theinput4" value="dummy">
</form>

<form name="theform3">
  <input name="theinput5" value="dummy" flexy:ignore>
  <input name="theinput6" value="dummy">
</form>

<form name="theform4" flexy:ignoreonly="yes">
  <input name="theinput7" value="dummy">
  <input name="theinput8" value="dummy">
</form>

例 41-2Compiled template

<?php echo $this->elements['theform1']->toHtmlnoClose();?>
 <?php echo $this->elements['theinput1']->toHtml();?>
 <?php echo $this->elements['theinput2']->toHtml();?>
 </form>

<form name="theform2">
  <input name="theinput3" value="dummy">
  <input name="theinput4" value="dummy">
</form>

<?php echo $this->elements['theform3']->toHtmlnoClose();?>
  <input name="theinput5" value="dummy" flexy:ignore>
 <?php echo $this->elements['theinput6']->toHtml();?>
</form>

 <form name="theform4">
   <?php echo $this->elements['theinput7']->toHtml();?>
 <?php echo $this->elements['theinput8']->toHtml();?>
 </form>
前のページ | ホーム | 次のページ
flexy:startchildren="here" | 上に戻る | flexy:nameuses="variable"

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


flexy:start="here"

flexy:start="here" -- Start the output, using this tag and it's children.

概要

Usage (flexy:start="here")

説明

Tells the generator to start outputing using this tag. This can be useful if you want to edit the template in a editor that expects a head/footer, and you can list the available tags in the comments at the top of the page.

The actual value of the tag is not relivant.

例

例 41-1Template with flexy:start

<HTML>
  <HEAD></HEAD>
  <BODY>
    <H1>This is an example</H1>
    <FORM name="input" flexy:start="yes">
      <INPUT name="hello" flexy:ignore="yes">
    </FORM>
  </BODY>
</HTML>

例 41-2Compiled template

<FORM NAME="input">
      <INPUT NAME="hello">
    </FORM>
前のページ | ホーム | 次のページ
flexy:foreach="variable,key,value" | 上に戻る | flexy:startchildren="here"

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


flexy:startchildren="here"

flexy:startchildren="here" -- Start the output using it's children.

概要

Usage (flexy:startchildren="here")

説明

Tells the generator to start outputing using the children of this tag. This can be useful if you want to edit the template in a editor that expects a head/footer, normally adding this to body

The actual value of the tag is not relivant.

例

例 41-1Template with flexystartchildren

<HTML>
  <HEAD></HEAD>
  <BODY flexy:startchildren="here">
    <H1>This is an example</H1>
    <FORM name="input" flexy:ignoreonly="yes">
      <INPUT name="hello" flexy:ignore="yes">
    </FORM>
  </BODY>
</HTML>

例 41-2Compiled template

<H1>This is an example</H1>
    <FORM NAME="input">
      <INPUT NAME="hello">
    </FORM>
前のページ | ホーム | 次のページ
flexy:start="here" | 上に戻る | flexy:ignore="yes"

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


flexy:foreach="variable,key,value"

flexy:foreach="variable,key,value" -- creates a PHP foreach loop using a html attribute

概要

Usage (flexy:foreach="variable,key,value", flexy:foreach="variable,value")

説明

creates a foreach loop, around the tag and close tag.

パラメータ

  • string variable - relates to $object->variable

  • string key - creates a variable 'key' in the current scope.

  • string value - optionally creates a variable 'value' in the current scope. (as in $key=>$value)

例

例 41-1Setting variables for foreach

$this->a = array(
  "dog" => "cat",
  "fire" => "water"
);

$this->b = array('a','b','c');

$template->outputObject($this);

例 41-2Foreach in template

<table>
  <tr flexy:foreach="a,k,v">
    <td>k is {k}, and v is {v}</td>
  </tr>
</table>
<table>
  <tr flexy:foreach="b,v">
    <td>v is {v}</td>
  </tr>
</table>

例 41-3Compiled template

<table>
 <?php if (is_array($t->a)) foreach($t->a as $k => $v) { ?><tr>
  <td>k is <?php echo htmlspecialchars($t->k); ?>, and v is <?php echo htmlspecialchars($t->v); ?></td>
 </tr><?php } ?>
</table>
<table>
 <?php if (is_array($t->b)) foreach($t->b as $v) { ?><tr>
  <td>v is <?php echo htmlspecialchars($t->v); ?></td>
 </tr><?php } ?>
</table>

例 41-4Simple ouput example

k is dog, v is cat
k is fire, V is water

v is a
v is b
v is c
前のページ | ホーム | 次のページ
flexy:if="variable or method()" | 上に戻る | flexy:start="here"

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


flexy:if="variable or method()"

flexy:if="variable or method()" -- creates a PHP if conditional tag

概要

Usage (flexy:if="variable", flexy:if="method()", flexy:if="object.method()")

説明

creates an if condition surrounding the tag that it's included in.

パラメータ

  • string variable - relates to $object->variable

  • string method - relates to $object->method()

  • string object.method relates to $object->object->method()

例

例 41-1Setting variables for foreach

class output {
    function hasTest() {
        return false;
    }

    function run() {
        $this->a = true;
        $this->message = 'oops'
        $template->outputObject($this);
    }
}

例 41-2flexy:if in template

<a href="{baseURL}/somepath.html" flexy:if="a">this is the a link</a>
<a href="{baseURL}/somepath.html" flexy:if="!a">this is not the a link</a>
<b flexy:if="hasTest()">hasTest is true</b>
<b flexy:if="!hasTest()">hasTest is false</b>

<span flexy:if="message" class="error">{message}</span>

例 41-3Compiled template

<?php if ($t->a)  { ?><A HREF="<?php echo htmlspecialchars($t->baseURL); ?>/somepath.html">this is the a link</A><?php } ?>
<?php if (!$t->a)  { ?><A HREF="<?php echo htmlspecialchars($t->baseURL); ?>/somepath.html">this is not the a link</A><?php } ?>
<?php if (isset($t) && method_exists($t,'hasTest')) if ($t->hasTest()) {  ?><B>hasTest is true</B><?php } ?>
<?php if (isset($t) && method_exists($t,'hasTest')) if (!$t->hasTest()) {  ?><B>hasTest is false</B><?php } ?>

<?php if ($t->message)  { ?><SPAN CLASS="error"><?php echo htmlspecialchars($t->message); ?></SPAN><?php } ?>

例 41-4Simple ouput example

this is the a link
hasTest is false

oops
前のページ | ホーム | 次のページ
<SELECT NAME="name"> | 上に戻る | flexy:foreach="variable,key,value"

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


<INPUT NAME="name">

<INPUT NAME="name"> -- creates PHP variable for input values

概要

Usage (<INPUT NAME="name">)

説明

fills in the form with values based on the form name and the tag name. If flexyignore is used, it is left alone (or if the body or form has a flexyignore tag it will be left alone).

例

例 41-1Using an element to change a template.

$form = new HTML_Template_Flexy();
$form->compile('some_file_name');

// create an instance (note you dont have to specify any details..)

$elements['test'] = new HTML_Template_Flexy_Element;

// change an attribute
$elements['test']->attributes['class'] = 'bold';

// sets the value
$elements['test']->setValue('Fred');

// wrap it with something
$elements['test']->prefix = '******';
$elements['test']->suffix = '!!!!!!';

$form->outputObject(new StdClass, $elements);

// in the example below, the new data you have added is to the existing attributes

例 41-2template example

<BODY>
  <FORM name="XXXX" flexy:ignoreonly="yes">

    <INPUT name="test" length="12">

  </FORM>
</BODY>

例 41-3compiled template

<BODY>
  <FORM name="XXXX">

    <?php echo $this->elements['test']->toHtml();?>

  </FORM>
</BODY>

例 41-4output from the Template

<BODY>
  <FORM name="XXXX">

    ******<INPUT name="test"  length="12" class="bold" value="Fred">!!!!!!

  </FORM>
</BODY>
前のページ | ホーム | 次のページ
<FORM NAME="name" | 上に戻る | <TEXTAREA NAME="name">

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


flexy:nameuses="variable"

flexy:nameuses="variable" -- Use a variable in the name for a flexy form element

概要

Usage (flexy:nameuses="variable" name="sometag[%s]")

説明

If you have a form with multiple input boxes (eg. group members), which are dynamically generated, then this attribute can be used to generate flexy elements based on sprintf'ing the variable value into the name attribute value.

例

例 41-1Template with flexy:ignore

<html>
  <head>
    <title>Example of name Uses</title>
  </head>
  <body>
    <form name="formtest">
      <span flexy:foreach="data,key,row">
        {key}: <input name="data%s" flexy:nameuses="key" type="hidden" size="10"><br>
      </span>
    </form>
  </body>
</html>

例 41-2Backend Code Snippet

<?php
$this->data = array();
$elem = array();
$elem['formtest'] = &new HTML_Template_Flexy_Element();
$elem['formtest']->attributes['method'] = 'post';
$elem['formtest']->attributes['action'] = 'test';

for($i = 0; $i < 10; $i++) {
        $this->data[$i] = $i;

        $elem["data$i"] = new HTML_Template_Flexy_Element();
        $elem["data$i"]->attributes['type'] = 'text';
        $elem["data$i"]->attributes['size'] = $i;

}
$flexy->outputObject($this, $elem);

?>

例 41-3Compiled template

<html>
  <head>
    <title>Example of name Uses</title>
  </head>
  <body>
    <?php echo $this->elements['formtest']->toHtmlnoClose();?>
<?php if ($this->options['strict'] || (is_array($t->data)  || is_object($t->data)))
foreach($t->data as $key => $row) {?>
      <?php echo htmlspecialchars($key);?>: <?php if (!isset($this->elements[sprintf('data%s',$key)])) $this->elements[sprintf('data%s',$key)]= $this->elements['data%s'];
                $this->elements[sprintf('data%s',$key)] = $this->mergeElement($this->elements['data%s'],$this->elements[sprintf('data%s',$key)]);
                $this->elements[sprintf('data%s',$key)]->attributes['name'] = sprintf('data%s',$key);
                echo $this->elements[sprintf('data%s',$key)]->toHtml();?><br>
<?php }?>
    </form>
  </body>
</html>

例 41-4Resulting Output

<html>
  <head>
    <title>test for PEAR bug#4683</title>
    <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
  </head>
  <body>
    <form name="formtest" method="post" action="test">
      0: <input name="data0" type="text" size="0"><br>
      1: <input name="data1" type="text" size="1"><br>
      2: <input name="data2" type="text" size="2"><br>
      3: <input name="data3" type="text" size="3"><br>
      4: <input name="data4" type="text" size="4"><br>
      5: <input name="data5" type="text" size="5"><br>
      6: <input name="data6" type="text" size="6"><br>
      7: <input name="data7" type="text" size="7"><br>
      8: <input name="data8" type="text" size="8"><br>
      9: <input name="data9" type="text" size="9"><br>
    </form>
  </body>
</html>
前のページ | ホーム | 次のページ
flexy:ignore="yes" | 上に戻る | <FLEXY:TOJAVASCRIPT JSVAR="PHPVAR"> ...

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


<SELECT NAME="name">

<SELECT NAME="name"> -- creates PHP variable and code for select lists

概要

Usage (<SELECT NAME="name">)

説明

fills in the select values based on the form name and the tag name and adds code to check if the object variable matches them. If flexyignore is used, it is left alone. If static is set, the currently defined options will be used.

例

例 41-1Using an element to change a template.

$form = new HTML_Template_Flexy();
$form->compile('some_file_name');

// create an instance (note you dont have to specify any details..)

// select options
$elements['test_select'] = new HTML_Template_Flexy_Element;
$elements['test_select']->setOptions( array(
  '123' => 'a select option',
  '1234' => 'another select option'
));
$elements['test_select']->setValue('1234');

$form->outputObject(new StdClass, $elements);

// in the example below, the new data you have added is to the existing attributes

例 41-2template example

<BODY>
  <FORM name="theform" flexy:ignoreonly="yes">
       <SELECT name="test_select"></SELECT>

  </FORM>
</BODY>

例 41-3compiled template

<BODY>
  <FORM name="theform">

    <?php echo $this->elements['test_select']->toHtml();?>

  </FORM>
</BODY>

例 41-4output from the Template

<BODY>
  <FORM name="theform">

    <SELECT name="test_select">
      <option value="123">a selection option</option>
      <option value="1234" selected>another selection option</option>

    </SELECT>

  </FORM>
</BODY>
前のページ | ホーム | 次のページ
<TEXTAREA NAME="name"> | 上に戻る | flexy:if="variable or method()"

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


<TEXTAREA NAME="name">

<TEXTAREA NAME="name"> -- creates PHP variable for textarea value

概要

Usage (<TEXTAREA NAME="name">)

説明

fills in the form with values based on the form name and the tag name. If flexyignore is used, it is left alone (or if the body or form has a flexyignore tag it will be left alone).

例

例 41-1Using an element to change a template.

$form = new HTML_Template_Flexy();
$form->compile('some_file_name');

// create an instance (note you dont have to specify any details..)

$elements['test'] = new HTML_Template_Flexy_Element;

// change an attribute
$elements['test']->attributes['class'] = 'bold';

// sets the value
$elements['test']->setValue('Fred');

$form->outputObject(new StdClass, $elements);

// in the example below, the new data you have added is to the existing attributes

例 41-2template example

<BODY>
  <FORM name="XXXX" flexy:ignoreonly="yes">

    <textarea name="test"></textarea>

  </FORM>
</BODY>

例 41-3compiled template

<BODY>
  <FORM name="XXXX">

    <?php echo $this->elements['test']->toHtml();?>

  </FORM>
</BODY>

例 41-4output from the Template

<BODY>
  <FORM name="XXXX">

     <textarea name="test" class="bold">Fred</textarea>

  </FORM>
</BODY>
前のページ | ホーム | 次のページ
<INPUT NAME="name"> | 上に戻る | <SELECT NAME="name">

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


<FLEXY:TOJAVASCRIPT JSVAR="PHPVAR"> ...

<FLEXY:TOJAVASCRIPT JSVAR="PHPVAR"> ... -- Provides a simple way to pass data from PHP to Javascript

概要

Usage (<flexy:tojavascript JSVAR="PHPVAR" ...>)

説明

To reduce the "WTF" effect of magically having javascript code that looks like flexy tags completely broken by the template engine, Flexy deliberatly turns the parser OFF when dealing with script contents (see Configuration Options for details of PHP in script tags)

As a result of this, it is not possible to put any flexy tags within blocks of javascript code. the flexy:tojavascript tag solves this in a way that enables javascript to be tested seperatly from the application, and also serves to encourage better coding practices. (eg. seperating your code with distinct lines of communication)

This feature depends on PEAR's HTML_Javascript Library

例

例 41-1A template with javascript and flexy:tojavasscript

<html><head>
<title>Example</title>

<flexy:toJavascript
    flexy:prefix="test_abc_"
    abcg="xyz"
    abcd="xyz"
    srcXxx="xyz"
>
<!--

We can use the inner contents for testing the template in a browser.
The template will remove these contents when it is compiled.
-->
    <script type="text/javascript">

    var test_abc_abcg = '123';
    var test_abc_abcd = '123';
    var test_abc_srcXxx = '123';

    </script>

</flexy:toJavascript>

<flexy:toJavascript abcg="xyz">
    <script type="text/javascript">
    var xyz = '123';
    </script>
</flexy:toJavascript>

<body>
<p>Example of flexy:toJavascript with default values.</p>
</body></html>

例 41-2compiled template

<html><head>
<title>Example</title>

<?php require_once 'HTML/Javascript/Convert.php';?>
<script type='text/javascript'>
<?php $__tmp = HTML_Javascript_Convert::convertVar($t->xyz,'test_abc_abcg',true);
    echo (is_a($__tmp,"PEAR_Error")) ? ("<pre>".print_r($__tmp,true)."</pre>") : $__tmp;?>
<?php $__tmp = HTML_Javascript_Convert::convertVar($t->xyz,'test_abc_abcd',true);
    echo (is_a($__tmp,"PEAR_Error")) ? ("<pre>".print_r($__tmp,true)."</pre>") : $__tmp;?>
<?php $__tmp = HTML_Javascript_Convert::convertVar($t->xyz,'test_abc_srcXxx',true);
    echo (is_a($__tmp,"PEAR_Error")) ? ("<pre>".print_r($__tmp,true)."</pre>") : $__tmp;?>
</script>

?php require_once 'HTML/Javascript/Convert.php';?>
<script type='text/javascript'>
<?php $__tmp = HTML_Javascript_Convert::convertVar($t->xyz,'abcg',true);
    echo (is_a($__tmp,"PEAR_Error")) ? ("<pre>".print_r($__tmp,true)."</pre>") : $__tmp;?>
</script>

<body>
<p>Example of flexy:toJavascript with default values.</p>
</body></html>

例 41-3output from the Template (with no values set)

<html><head>
<title>Example</title>

<script type='text/javascript'>
test_abc_abcg = null;
test_abc_abcd = null;
test_abc_srcXxx = null;
</script>

<script type='text/javascript'>
abcg = null;
</script>

<body>
<p>Example of flexy:toJavascript with default values.</p>
</body></html>
前のページ | ホーム | 次のページ
flexy:nameuses="variable" | 上に戻る | HTML_Template_IT

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


設定項目

設定項目 -- HTML_Template_Flexy の初期設定

設定

HTML_Template_Flexy には、サイト全体に有効な設定方法と、連想配列を用いたインスタンスごとの設定方法の二通りが用意されています。 ini ファイル使った設定が一番簡単です (PEAR::Config クラスや、自分で用意した設定方法を使いたい場合は、それも可能です) 。

例 41-1HTML_Template_Flexy の一般的な設定

[HTML_Template_Flexy]

templateDir = /home/me/Projects/myapplication/templates
compileDir =  /home/me/Projects/myapplication/compiled_templates
forceCompile = 0
debug = 0
locale = en
compiler = Standard

上記 ini ファイルの設定を HTML_Template_Flexy (そして同様の設定方法を使用するその他のクラス) に適用するには、次のようにします。

例 41-2デフォルトオプションの設定

<?php
$config = parse_ini_file('example.ini',TRUE);
foreach($config as $class=>$values) {
  $options = &PEAR::getStaticProperty($class,'options');
  $options = $values;
}
?>

他に、インスタンス生成時に設定を行う (または既存の設定を上書きする) 方法もあります。

例 41-3デフォルトオプションの設定

<?php
  $options = array(
      'templateDir'   => '/home/me/Projects/myapplication/templates',
      'compileDir'    => '/home/me/Projects/myapplication/compiled_templates',
      'forceCompile'  => 0,
      'debug'         => 0,
      'locale'        => 'en',
      'compiler'      => 'Standard',
  );
  $template = new HTML_Template_Flexy($options);
?>

設定オプション

templateDir directory

テンプレートファイルが格納されたディレクトリ。

compileDir directory

コンパイル済みのテンプレートが保存されるディレクトリ。 このディレクトリは、web サーバによって書き込み可能でなければなりません。

forceCompile boolean

通常は 0 に設定され、テンプレートは初回 (または変更があった場合) にのみコンパイルされます。 フィルターの開発をしており、結果のテストが必要な場合にのみ、このオプションが役立ちます。

debug integer

デバッグレベル、初期値は 0 で無効を意味し、1 に設定された場合はデバッグ用の情報を表示する

locale string

初期値は 'en' で英語を示します。 テンプレートの読み書きにどの言語が使われているかを表しますが、 現状ではコンパイルされたファイル名の決定にしか使用されません。 コンパイルされたファイル名は、たとえば originalname.html.en.php のようになります。

Flexy は get_text() がインストールされている場合、内部処理で get_text() を用いて全ての文字列を get_text() の戻り値に置き換えます。 - これにより最小の労力で複数言語対応のサイトが作成可能です。

パースされたファイルごとに {templatename}.strings.serial と名付けられたファイルが作成されます。 PHP 関数 unserialize を用いてファイル内の全ての文字列が格納された配列を (翻訳用に) ここから取得したり、 xgettext を使用したりする事が出来ます。

compiler string

初期値は 'Flexy' で、これは Flexy トークナイザドライバエンジンを表します。 それ以外に使用可能なものは、 regex (Xipe のエンジンと似ています)、Raw (標準的な PHP ファイルで、 置換やコンパイルを行いません) そして Standard (非推奨) があります。 コアコードとは無縁の独自に開発したエンジンや、 完全に分離されたような全くのオリジナルなエンジンも、このフィールドに設定できます。

multiSource boolean

初期値は false で、同じテンプレートが複数の場所に存在することを許します (eg. if you have theme's and want to fall back to a default template if the themed version doesnt exist)。

templateDirOrder string

初期値は '' で、複数のパスがある場合に 最初にマッチしたテンプレートが使用されます。 もし最後に見つかったものを使用したいなら、これを 'reverse' に設定します。

filters array|string

配列、あるいはカンマ区切り文字列で指定するフィルタ。 Regex バックエンドでのみ使用されます。使用できるフィルタは BodyOnly (body タグの前後をすべて消去する)、 Mail (php タグの後に改行をもうひとつ追加する)、 Php (php コードを取り除く。信頼性はあまり高くない)、 SimpleTags (変数やメソッドなどを置換する)、 XML (XML の開始タグを echo に置換する) です。

nonHTML boolean

初期値は false です。Flexy コンパイラを使用している際にこれを指定すると、 HTML のパースを中止します (あまりテストされていません)。

allowPHP boolean|string

初期値は false です。テンプレート内で php コードを使用できるようにします。 通常はオフにしておきましょう。そうすることで、 出力をエスケープし忘れて自爆してしまうといったことを防げます。 (複雑なループ処理には便利なのですが) 通常はお勧めしません。 true を指定すると PHP コードを有効にし、'delete' を指定すると php コードを削除します (XSS 攻撃から身を守ることができないので、 信頼できるユーザに対してのみ使用するようにしましょう)。

flexyIgnore boolean

初期値は false です。true を指定すると、html の form 要素を HTML_Template_Flexy_Element に変換しなくなります。

numberFormat string

初期値は ",2,'.',','" です。このコード片が、 出力エンジンで :n 修正子を使用する際に付加されます。例えば、{xxxx:n} は number_format($t->xxxx,2,'.',','); となります。php マニュアルの number_format のところを見ると、この出力が 1,200.00 となることがわかります。

url_rewrite string

テンプレートをコンパイルする際に、flexy は <img src、 <script src、 <a href および xul スタイルシートの url を書き換えることができます。書式は "match/original:new/url, match/another/original:new/url" となります。それぞれのかたまりはカンマで区切られ、 コロンで区切って組み合わせを指定します。これにより、 エンジンを使用せずにテンプレートをプレビューできるようになります。

compileToString boolean

初期値は false です。true に設定すると、 コンパイルした結果を文字列で返し、キャッシュファイルには書き込みません。 例: {object._myvar}

privates boolean

初期値は false です。true に設定すると、 先頭にアンダースコアをつけた名前で変数にアクセスできるようになります (PEAR のコーディング規約では、通常これはprivate となります)。 例: {someobject._myprivatevar} および {_myprivate}

globals boolean

初期値は false です。true に設定すると、 PHP のグローバル変数およびスーパーグローバル変数にアクセスできるようになります。 例: {_POST[myvar]}、{GLOBALS[somevalue]}

globalfunctions boolean

初期値は false です。true に設定すると、先頭に GLOBALS をつけることで 任意のネイティブ php 関数にアクセスできるようになります。 例: {GLOBALS.date(#d/m/Y#)} テンプレートの作者が信頼できる人でないと、 これは使用いけません。というのも、これを有効にすると簡単に exec() が実行できてしまうからです。

locale string

初期値は 'en' です。言語固有のテンプレートを {filename}.{locale}.{extension} という名前で探す際に使用されます。 また、Translation2 翻訳ツールキットとともに使用する場合に、 コンパイル時に使用する翻訳テンプレートの言語を設定する際にも使用されます。

Translation2 mixed

初期値は false です。ここには配列、あるいは既存の Translation2 オブジェクトを指定することができます。 例: Translation2 => array('driver'=>'dataobjectsimple', options=>array()));

strict boolean

初期値は false で、未定義の変数に関する警告は隠されます。 これは、outputObject のコール中の PHP の警告を有効にします。 メソッドのコールバックに隠されたバグを見つける際に有用です。

fatalError int

初期値は HTML_TEMPLATE_FLEXY_ERROR_DIE で、テンプレートのコンパイルに失敗すると flexy の処理を終了し、エラーを画面に表示します。compile() メソッドの結果として PEAR_Object オブジェクトを取得したい場合は、これを HTML_TEMPLATE_FLEXY_ERROR_RETURN に変更します。

plugins string|array

プラグインのクラスを (初期値では Plugin フォルダから) 読み込みます。 これは {plugin.nameofmethod} や修正子 {outputstring:dateformat} から使用されます。デフォルトの書式は、通常は 設定オプション plugin.dateformat、 plugin.numberformat.decimals、plugin.numberformat.point、plugin.numberformat.thousands から取得されます。

前のページ | ホーム | 次のページ
導入 | 上に戻る | new HTML_Template_Flexy

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


new HTML_Template_Flexy_Element

new HTML_Template_Flexy_Element -- Class constructor

概要

require_once 'HTML/Template/Flexy/Element.php';

new HTML_Template_Flexy_Element ([string $tag = '' [, array $attributes = NULL]])

説明

Flexy uses a single lightweight class to represent All HTML Tags, All the variables of the class are public, and you are encouraged to use them. And the methods provide generic assignment and conversion abilities.

To force th toHtml() method to generate XHTML, rather than standard HTML, use $element->setAttribute('flexy:xhtml','yes'); or add flexy:xhtml="true" to the attribute of the element in the template.

パラメータ

  • $tag - The name of the HTML Tag eg. img for <img ....

  • $attributes - Associative array of attributes, where key="value" is output when you turn it in toHtml(), If you need to represent a attribute without a value, use TRUE as the value. This also accepts a string in the format "href='/test.jpg' alt='test'", which will be parsed into the attributes array of the object.

Public Properties

string $element->tag

The name of the html element eg. img for <img...

array $element->attributes

Attributes for the element

array $element->children

All the sub elements inside this, can be any object that implements toHtml(), or a string.

string $element->override

this value of thiswill be output when toHtml() is called, rather than the tags.

string|object $element->prefix

string or object that implements toHtml() method, and is returned by toHtml() before the tag HTML

string|object $element->suffix

string or object that implements toHtml() method, and is returned by toHtml() after the tag HTML

mixed $element->value

when you create an element, that is to be merged later with a full definition, you can assign the value here, and during toHtml(), the toValue() method will be called and select options, checkboxes and input values will be correctly filled in.

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

例

例 41-1Using an element to change a template.

$form = new HTML_Template_Flexy();
$form->compile('some_file_name');

// create an instance (note you dont have to specify any details..)

$elements['test'] = new HTML_Template_Flexy_Element;

// change an attribute
$elements['test']->attributes['class'] = 'bold';

// sets the value
$elements['test']->setValue('Fred');

// wrap it with something
$elements['test']->prefix = '******';
$elements['test']->suffix = '!!!!!!';

// for the different types of elements:
$elements['test_textarea'] = new HTML_Template_Flexy_Element;
$elements['test_textarea']->setValue('Blogs');

// select options
$elements['test_select'] = new HTML_Template_Flexy_Element;
$elements['test_select']->setOptions( array(
  '123' => 'a select option',
  '1234' => 'another select option'
));
$elements['test_select']->setValue('1234');

// checkboxes
$elements['test_checkbox'] = new HTML_Template_Flexy_Element;
$elements['test_checkbox']->setValue(1);
$elements['test_checkbox']->setAttribute('flexy:xhtml','yes');

// array type checkboxes..
$elements['test_checkbox_array[]'] = new HTML_Template_Flexy_Element;
$elements['test_checkbox_array[]']->setValue(array(1,2));

// radio buttons
$elements['test_radio'] = new HTML_Template_Flexy_Element;
$elements['test_radio']->setValue('yes');

$form->outputObject(new StdClass, $elements);

// in the example below, the new data you have added is to the existing attributes

例 41-2template example

<body>
  <form name="xxxx">

    <input name="test" length="12">

    <textarea name="test_textarea"></textarea>

    <select name="test_select"></select>

    <input name="test_checkbox" type="checkbox" value="1">

    <input name="test_checkbox_array[]" type="checkbox" value="1" />1<br />
    <input name="test_checkbox_array[]" type="checkbox" value="2" />2<br />
    <input name="test_checkbox_array[]" type="checkbox" value="3" />3<br />

    <input name="test_radio" type="radio" id="yes" value="yes" />yes<br />
    <input name="test_radio" type="radio" id="no" value="no" />no<br />

  </form>
</body>

例 41-3output from the Template

<body>
  <form name="xxxx">

    ******<input name="test"  length="12" class="bold" value="fred">!!!!!!

    <textarea name="test_textarea">blogs</textarea>

    <select name="test_select">
      <option value="123">a selection option</option>
      <option value="1234" selected>another selection option</option>

    </select>

    <input name="test_checkbox" type="checkbox" value="1" checked="checked" />

    <input name="test_checkbox_array[]" type="checkbox" value="1" checked>1<br />
    <input name="test_checkbox_array[]" type="checkbox" value="2" checked>2<br />
    <input name="test_checkbox_array[]" type="checkbox" value="3">3<br />

    <input name="test_radio" type="radio" id="yes" value="yes" checked>yes<br />
    <input name="test_radio" type="radio" id="no" value="no">no<br />

  </form>
</body>
前のページ | ホーム | 次のページ
$flexy->getElements() | 上に戻る | $element->setValue()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


$element->removeAttributes()

$element->removeAttributes() -- Removes an attributes

概要

$element->removeAttributes (mixed $attrs)

説明

use this to remove attributes from the tag when the element is rendered, It may be easier to access the attributes array directly and assign the value to false.

パラメータ

  • $attributes name or array of names to remove from tag

例外・エラー

throws

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
$element->setOptions() | 上に戻る | $element->setAttributes()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


$element->setAttributes()

$element->setAttributes() -- Sets the HTML attributes

概要

require_once 'Flexy/Element.php';

HTML_Template_Flexy_Element::setAttributes (mixed $attributes)

説明

Can be used to set attribute values, It is easier to set the attributes directly using the public attributes property.

パラメータ

  • $attributes Either a typical HTML attribute string or an associative array

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
$element->removeAttributes() | 上に戻る | $element->toHtml

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


$element->setOptions()

$element->setOptions() -- Utility function equivilant to HTML_Select - loadArray **

概要

$element->setOptions (mixed $array, boolean $noValue = FALSE)

説明

Used with HTML Selects, to fill in the options available

パラメータ

  • $array the options to appear.

  • $noValue dont use the keys from the array sent as the value= part of the option tag.

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
$element->setValue() | 上に戻る | $element->removeAttributes()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


$element->setValue()

$element->setValue() -- Utility function to set or store values from common tag types.

概要

$element->setValue (mixed $value)

説明

This is used to set the values of form elements, results depend on the type of element

  • text,password inputs, buttons Fills in the value attribute

  • checkboxs / radio buttons adds a checked tag to the matching element

  • textarea fills in the text area content

  • checkbox with arrays adds checked to the matching elements

  • selects adds selected to the

パラメータ

  • $value The value to assign a form element, (use arrays for multiple selects or checkbox groups)

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
new HTML_Template_Flexy_Element | 上に戻る | $element->setOptions()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


$element->toHtml

$element->toHtml -- Output HTML and children

概要

string $element->toHtml ()

説明

returns the HTML to represent the object. If you wish to implement your own element, you only need to implement this method, and assign it to the element array..

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
$element->setAttributes() | 上に戻る | $element->toHtmlnoClose()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


$element->toHtmlnoClose()

$element->toHtmlnoClose() -- Output Open Tag and any children and not Child tag (designed for use with <form + hidden elements>

概要

string $element->toHtmlnoClose ()

説明

Used by the template to represent form tags, which only the opening tag are rendered dynamically (so, all tags inside the tag are not forced to be dynamic).

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
$element->toHtml | 上に戻る | $factory->freeze()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


$factory->freeze()

$factory->freeze() -- freeze - freeze's an element. - just copies the value to the override.

概要

require_once 'Flexy/Factory.php';

array HTML_Template_Flexy_Factory::freeze (array $array)

説明

this probably needs more thought.. - it would probably need to merge the full tag info with types, to be usefull..

$ar = HTML_Element_Factory::freeze($ar);

パラメータ

  • $array (return by refernce key(tag name) => HTML_Template_Flexy_Element

返り値

return Array of HTML_Template_Flexy_Elements

例外・エラー

throws no exceptions thrown

注意

Not documented yet.

前のページ | ホーム | 次のページ
$element->toHtmlnoClose() | 上に戻る | $factory->fromArray()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


$factory->fromArray()

$factory->fromArray() -- fromArray - builds a set of elements from a key=>value array (eg. DO->toArray()) the second parameter is an optional HTML_Element array to merge it into.

概要

require_once 'Flexy/Factory.php';

array HTML_Template_Flexy_Factory::fromArray (array $ar [, optional $ret = array()])

説明

このパッケージに関する文書は、未作成です。

パラメータ

  • $ar key(tag name) => value

  • $ret array key(tag name) => HTML_Element

返り値

return Array of HTML_Template_Flexy_Elements

例外・エラー

throws no exceptions thrown

注意

Not documented yet.

前のページ | ホーム | 次のページ
$factory->freeze() | 上に戻る | $factory->fromArrayPrefixed()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


$factory->fromArrayPrefixed()

$factory->fromArrayPrefixed() -- fromArrayPrefixed - takes a multi dimensional array, and builds the 'xxx[sss][xx]' => value

概要

require_once 'Flexy/Factory.php';

array HTML_Template_Flexy_Factory::fromArrayPrefixed (array $prefix, array $ar [, optional $ret = array()])

説明

このパッケージに関する文書は、未作成です。

パラメータ

  • $prefix

  • $ar

  • $ret

返り値

return Array of HTML_Template_Flexy_Elements

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
$factory->fromArray() | 上に戻る | $factory->setErrors()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


$factory->setErrors()

$factory->setErrors() -- setErrors - sets the suffix of an element to a value..

概要

require_once 'Flexy/Factory.php';

array HTML_Template_Flexy_Factory::setErrors (array $ret, array $set [, string $format = '<span class="error">%s</span>'])

説明

HTML_Element_Factory::setErrors($elements,array('name','not long enough'));

パラメータ

  • $prefix

  • $ar

  • $ret

返り値

return Array of HTML_Template_Flexy_Element's

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
$factory->fromArrayPrefixed() | 上に戻る | $factory->setRequired()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


$factory->setRequired()

$factory->setRequired() -- setRequired - sets the prefix of an element to a value..

概要

array HTML_Template_Flexy_Factory::setRequired (array $ret, array $set [, string $format = '>span class="required"<*>/span<'])

説明

HTML_Element_Factory::setRequired($elements,array('name',true));

パラメータ

  • $prefix

  • $ar

  • $ret

返り値

return Array of HTML_Template_Flexy_Element's

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
$factory->setErrors() | 上に戻る | {variable}

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


$flexy->bufferedOutputObject()

$flexy->bufferedOutputObject() -- コントローラーオブジェクトをテンプレートとマージし、結果を返す

概要

string $flexy->bufferedOutputObject (object $controllerObject [, array $elements])

説明

渡されたオブジェクトの変数を配置し、コンパイルされたテンプレートを実行して結果を返します。

PEAR::Cache と組み合わせたり、下記に示すように電子メールテンプレートと組み合わせる事が出来ます (電子メールテンプレートにはまだテストが必要です - 最終的にはバックエンドで電子メールテンプレート用のネイティブトークナイザをサポートする予定です)。

パラメータ

  • object $controllerObject - テンプレートに流し込みたいオブジェクト、オブジェクト変数は $controllerObject->tag にセットされ、テンプレート内の {tag} 変数を置き換える

  • array $elements - フォーム、もしくは dynamic が指定された HTML 要素の name 属性 (または id 属性) による連想配列、テンプレート内に定義された部分とマージされる

返り値

string - テンプレートにオーバーレイされたオブジェクト変数

注意

この関数は、スタティックにコールする ことはできません。

例

例 41-1Person DataObject send_password method

class DataObjects_Person {
var $id;
var $name;
var $password;
var $cleartextPassword;
var $email;

function sendEmail($templateFile,$content) {

$content = is_object($content) ? $content : (object) $content;
foreach(get_object_vars($this) as $k=>$v) {
$content->$k = $v;
}
/* <tags をパースしないように regex コンパイラを使用する */
$template = new HTML_Template_Flexy( array(
'compiler' => 'Regex',
'filters' => array('SimpleTags','Mail'),
));

/* テキストファイル (メールテンプレート) をコンパイルする */
$template->compile($templateFile);

/* データ出力にこのオブジェクトの変数を使用する */
$mailtext = $template->bufferedOutputObject($content);
//echo "<PRE>";print_R($mailtext);

/* With the output try and send an email, using a few tricks in Mail_MimeDecode. */
require_once 'Mail/mimeDecode.php';
require_once 'Mail.php';

$decoder = new Mail_mimeDecode($mailtext);
$parts = $decoder->getSendArray();
if (PEAR::isError($parts)) {
return $parts;

}
list($recipents,$headers,$body) = $parts;

$mailOptions = PEAR::getStaticProperty('Mail','options');
$mail = Mail::factory("SMTP",$mailOptions);

return PEAR::isError($mail) ? $mail : $mail->send($recipents,$headers,$body);

}

}

例 41-2電子メールテンプレート (Regex パーサを使用するため、{t.*} となります)

From: "HTML_Template_Flexy" <html_template_flexy@pear.php.net>
Sender: "HTML_Template_Flexy" <html_template_flexy@pear.php.net>
To: {t.email}
Subject: Here is your new password
Content-Type: text/plain; charset=us-ascii

Dear {t.name}

Your New Password is {t.cleartextPassword}

please use it to log into your bank account :)

例 41-3結果として得られるメールヘッダと本文

From: "HTML_Template_Flexy" <html_template_flexy@pear.php.net>
Sender: "HTML_Template_Flexy" <html_template_flexy@pear.php.net>
To: demo@example.com
Subject: Here is your new password
Content-Type: text/plain; charset=us-ascii

Dear Fred Blobs

Your New Password is 0ab123dcc

please use it to log into your bank account :)
前のページ | ホーム | 次のページ
$flexy->outputObject() | 上に戻る | $flexy->getElements()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


$flexy->compile()

$flexy->compile() -- コンパイルする必要があればマークアップを PHP にコンパイルする

概要

void $flexy-> compile (string $template)

説明

コンパイルする必要があれば、テンプレートのマークアップを PHP のコードに置換し、 compiledTemplate ディレクトリにファイル名を filename.{locale}.php として書き込みます。 テンプレートのコンパイルは必要に応じて以下の場合にのみ実行されます。

  • コンパイルされたファイルが存在しない

  • テンプレートに変更が加えられており、コンパイルされたものより大きい

  • テンプレートオブジェクトの作成時、または設定により forceCompile のフラグが有効になっている

テンプレートエンジン自体に関する作業を行う場合を除き、 通常の利用では forceCompile フラグを有効にする必要はありません。

パラメータ

  • string $template - templateDir に設定された値と組み合わされ、 PHP コードにコンパイルされるべきテンプレートを指し示します。

返り値

string - コンパイルされたファイルへのファイルパス (include でファイルを読み込むのに使えますが、 outputObject メソッドの利用を推奨します)

注意

この関数は、スタティックにコールする ことはできません。

例

例 41-1複数のファイルをコンパイルする

class controller_test
{

    var $masterTemplate = "master.html"
    var $template = "home.html"; // name of template
    var $title;                // page title;
    var $numbers = array();    // an array example

    /* start section - deals with posts, get variables etc.*/

    function controller_test()
    {
        $this->start();
        $this->output();
    }

    function start()
    {
        $this->title = "<Hello World>";

        for ($i = 1;$i< 5;$i++) {
            $this->numbers[$i] = "Number $i";
        }
    }

    /* output section - probably best to put this in the default_controller class */

    function output() {
        $master = new HTML_Template_Flexy();
        $master->compile('some_file_name');
        $master->outputObject($this);
    }

    function outputBody() {
        $body = new HTML_Template_Flexy();
        $body->compile($this->template);
        $body->outputObject($this);
    }

}

new controller_test;

例 41-2マスターテンプレートの例

Page Header Goes here.

{outputBody()}

Page Footer Goes here

例 41-3簡単な出力例

Page Header Goes here.

some numbers
Number 1
Number 2
Number 3
Number 4

Page Footer Goes here
前のページ | ホーム | 次のページ
new HTML_Template_Flexy | 上に戻る | $flexy->outputObject()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


$flexy->getElements()

$flexy->getElements() -- テンプレートから動的要素を取り出す

概要

array $flexy-> getElements ()

説明

FORM、INPUT、SELECT、それに属性値に flexy:dynamic を持つ HTML タグは HTML_Template_Flexy_Element のものに置換され、 コンパイルされた Flexy テンプレートと同じフォルダ (compileDir) にシリアライズされて保存されます。

これを利用してそれぞれの HTML 要素に変更を加えたり、ページ内にどういったフォーム要素があるのかを調べる事が出来ます。

注意: 変更を加えた値は $outputObject に引数 $elements として渡す必要があります。 アサインを行うために要素を取り出す必要はなく、空の要素を作成してマージするだけで構いません。

返り値

array - テンプレートに含まれる HTML 要素の配列 (フォーム要素、動的要素が無い場合は空の配列が返る)

注意

この関数は、スタティックにコールする ことはできません。

例

例 41-1テンプレートの内部を調べる

$form = new HTML_Template_Flexy();
$form->compile('some_file_name');
print_r($form->getElements());

例 41-2テンプレートの例

<BODY>
<FORM name="XXXX">
<INPUT name="yyy">
<SELECT name="zzz">
<OPTION value="aaaa">AAAAA</OPTION>
</SELECT>
</FORM>
</BODY>

例 41-3コンパイルされたテンプレート

<BODY>
<?php echo $this->elements['XXXX']->toHtmlnoClose();?>
<?php echo $this->elements['yyy']->toHtml();?>
<?php echo $this->elements['zzz']->toHtml();?>
</form>
</BODY>

例 41-4内部探査の出力結果

Array
(
[XXXX] => html_template_flexy_element Object
(
[tag] => form
[attributes] => Array
(
[name] => XXXX
)

[children] => Array
(
)

[override] =>
[prefix] =>
[suffix] =>
[value] =>
)

[yyy] => html_template_flexy_element Object
(
[tag] => input
[attributes] => Array
(
[name] => yyy
)

[children] => Array
(
)

[override] =>
[prefix] =>
[suffix] =>
[value] =>
)

[zzz] => html_template_flexy_element Object
(
[tag] => select
[attributes] => Array
(
[name] => zzz
)

[children] => Array
(
[0] =>

[1] => html_template_flexy_element Object
(
[tag] => option
[attributes] => Array
(
[value] => aaaa
)

[children] => Array
(
[0] => AAAAA
)

[override] =>
[prefix] =>
[suffix] =>
[value] =>
)

[2] =>

)

[override] =>
[prefix] =>
[suffix] =>
[value] =>
)

)
前のページ | ホーム | 次のページ
$flexy->bufferedOutputObject() | 上に戻る | new HTML_Template_Flexy_Element

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


new HTML_Template_Flexy

new HTML_Template_Flexy -- constructor

概要

require_once 'HTML/Template/Flexy.php';

new HTML_Template_Flexy ([array $options])

説明

コンストラクタの引数にオプションを取ります。 この方法でオプションを設定するよりは、設定を一カ所にまとめ PEAR::getStaticProperty() を使って Flexy のオプション設定を行うのが普通です。

パラメータ

  • array $options - 初期値から変更したいパラメーターを列挙

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
設定項目 | 上に戻る | $flexy->compile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


$flexy->outputObject()

$flexy->outputObject() -- コントローラオブジェクトとテンプレートをマージし、結果を出力する

概要

void $flexy-> outputObject (object $controllerObject [, array $elements])

説明

引数に指定されたオブジェクトの変数 (と任意でロードされる HTML_Template_Flexy_Elements) を、テンプレート実行時に有効になるようにセットします。

パラメータ

  • object $controllerObject - テンプレートに適用したいオブジェクト、オブジェクト変数は $controllerObject->tag と関連づけられ、テンプレート内の {tag} にマップされる

  • array $elements - フォーム、または dynamic が指定された要素の name 属性 (または id 属性)で、テンプレート内の定義された部分とマージされる。

注意

この関数は、スタティックにコールする ことはできません。

例

例 41-1テンプレートの準備と出力

class example {
var $tag = ">> hello world";
}

$data = new example;

$elements['test'] = new HTML_Template_Flexy_Element;
$elements['test']->setValue("hello input");

$output = new HTML_Template_Flexy();
$output->compile("hello.html");
$output->outputObject($data,$elements);

例 41-2テンプレートとタグ

<B>{tag}</B>
<B>{tag:h}</B>
<INPUT name="test">

例 41-3結果の出力

<B>&gt;&gt; hello world</B>
<B>>> hello world</B>
<INPUT name="test" value="hello input">
前のページ | ホーム | 次のページ
$flexy->compile() | 上に戻る | $flexy->bufferedOutputObject()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- HTML_Template_Flexy に出来ること

導入

HTML_Template_Flexy は、HTML_Template_Xipe をシンプルにするところから始められました。 しかし、Flexy の長期的な目標は、PHP ネイティブでコンパイルを行うタイプのテンプレートに対する 汎用的な基礎 API を作り上げることにあります。

Flexy は、現在いくつかのバックエンド (テンプレート書式) をサポートしています。 また、より多くをサポートするできるよう拡張性を考慮して設計されています。 キーとなる書式は以下のとおりです。

  • Standard - リッチなトークナイザー駆動のエンジンです。{variable_placeholders} のような変数プレースホルダ、属性 (flexy:foreach="....") そしてカスタムタグ <flexy:tojavascript ... を使用することで、 単純なマークアップからすばやく PHP コードを作成します。 このテンプレートは、タグを破壊することなしに WYSIWYG HTML エディタで編集できるように設計されています。

  • Regex - 古くからあるテンプレートバックエンドで、Smarty や Xipe、 そして Email 型を PHP のコードに変換します。

  • Raw - コンパイルを行わないバックエンドで、 PHP を使用してテンプレートを作成できるようになります。 作成したアプリケーションを再配布する場合など、 コンパイルできるかどうか心配な場合に有用です。

flexy におけるデータの代入には二種類の方法があります。 どちらを使用するかはあなたの好みによります。

  • Push - $flexy->setData() および $flexy->setDataByRef() を使用してデータをテンプレートエンジンに送ります。 これは、Smarty やその他のテンプレートと似ている方法です。

  • Push/Pull - 出力にデータプロバイダオブジェクト (Data Object あるいは Controller のいずれか) を送ります。このオブジェクトには、表示するデータ (およびコールされるメソッドを含むオブジェクト) が含まれます。 これを使用すると、PEAR 標準 (例えば PHPDoc コメントなど) を用いてテンプレート内の変数を文書化できるという利点があります、

これらの柔軟性に加え、さらに以下のようなことが実現できています。

  • 非常に軽量でシンプル、習得しやすい API

  • 通常の動作において読み込まれるコードの量が非常にすくなくなる (そのため高速に動作する)

HTML_Template_Flexy と他のテンプレートシステムとの違い

PHP には様々なテンプレートシステムがありますが、おおよそ 「置換型」もしくは 「PHP コード生成型」のシステムに二分できます。

置換型のテンプレートエンジンには、 たとえば HTML_Template_IT、 FastTemplate、PhpLib テンプレートがあります。 この種のテンプレートは、総体的に、ブロックや入れ子構造において 実行速度が遅く、変数の指定にもコードを多く書く手間がかかりがちです。

PHP コード生成型のテンプレートエンジンには Flexy、Smarty、 SimpleTemplate (HTML_Template_Xipe に改名) などがあります。 これらは、複雑なテンプレートでもうまく扱うことができ、 拡張性にも優れています。 （Flexy の長期的な目標は、これらの PHP コード生成型のテンプレートの サポートをひとつのパッケージで行うという所にあります。）

標準のコンパイルバックエンドは Tokenizer を使用しており、 HTML のタグと属性を使用してループや条件分岐処理を行えます。 また、HTML フォームは動的な XML_Tree 風の要素で管理し、 コード内で操作することができます (この変換は、テンプレートを コンパイルする際に一度だけ行われます)。

使用例

Flexy のテンプレートは、通常、（MVC モデルでいう）コントローラクラスからコールされます。 結果を出力するには、HTML_Template_Flexy に、テンプレートの名前と出力対象のオブジェクトを渡すだけです。 テンプレートで出力に用いられる変数はこのオブジェクトにセットされている必要があります。

例 41-1HTML_Template_Flexy の使用法

<?php

/* アプリケーションの設定 - この処理は別ファイルに分けて記述するのが適当 */
require_once 'HTML/Template/Flexy.php';
$options = &PEAR::getStaticProperty('HTML_Template_Flexy','options');
$config = parse_ini_file('example.ini',TRUE);
$options = $config['HTML_Template_Flexy'];

/* ページコントローラークラス */

class controller_test
{

    var $template = "home.html"; // テンプレートの名前
    var $title;                  // {title} の内容
    var $numbers = array();      // {numbers} の内容、foreach を取る
    var $anObject;

    var $elements = array();      // ここに要素を保存していく

    /* セットアップセクション - POST された値や変数を取得する */

    function controller_test()
    {
        $this->start();
        $this->output();
    }

    function start()
    {
        // タイトルの設定
        $this->title = "Hello World";

        // オブジェクトを保存
        $this->anObject = new StdClass;

        // メンバーに値を代入
        $this->anObject->member = 'Object Member';

        // フォーム要素が必要な場合は、これをインクルードしなければなりません
        require_once 'HTML/Template/Flexy/Element.php';

        // form 要素用のオブジェクトを生成
        $this->elements['input'] = new HTML_Template_Flexy_Element;

        // 値の代入
        $this->elements['input']->setValue('Hello');

        for ($i = 1;$i< 5;$i++) {
            $this->numbers[$i] = "Number $i";
        }
    }

    /* 出力セクション - この部分は default_controller クラス内に実装すると良い */

    function output() {
        $output = new HTML_Template_Flexy();
        $output->compile($this->template);
        $output->outputObject($this,$this->elements);
    }

    function someMethod() {
        return "<B>Hello From A Method</B>";
    }

}

/* ページコントローラーのインスタンスを生成 - ファクトリーメソッドを適用し、ページコントローラークラスを管理統括するページでの実装が適当  */

new controller_test;

?>

次に、テンプレートの例を示します。

例 41-2HTML_Template_Flexy テンプレートの例

<html>
  <head>
    <title>{title}</title>
  </head>
  <body>
  <H1>{title}</H1>

    <form name="form">
    <table>
      <tr>
        <td>
         <?php /*  $elements['input'] オブジェクトの内容とマージされます。 */ ?>

          Input Box: <input name="input">
        </td>
      </tr>

      <?php /*  flexy:foreach により属性値を入れています。 */ ?>

      <tr flexy:foreach="numbers,number,string">
        <td>

      <?php /*  flexy:foreach により属性値を入れています。 */ ?>

          <a href="mypage.html?id=%7Bnumber%7D">{string}</a>
        </td>
      </tr>

    </table>

    <?php /*   限定的ながら配列へのアクセスもサポートしています */ ?>

    this is number 2 : {numbers[2]}

    <?php /*  note that full stops seperate object and variables or methods */ ?>

  This is a {anObject.member}

    <?php /* オブジェクト内のメソッドを実行する事もできます */ ?>

    {someMethod()}

    <?php /* デフォルトでは変数は全て htmlspecialchars() によりエスケープされます。変数をエスケープしたくない場合は修飾子 :h を使ってください */ ?>

    {someMethod():h}

  </body>
</html>

<?php /*  ここではコメントを PHP で埋め込んでいます。
これは PHPDocumentor によるマニュアル生成に対応するためです。
テンプレートエンジンは HTML 形式のコメントを無視しますが PHPDoc 形式のマニュアル生成に対応しません。*/ ?>

出力は、このようになります。

例 41-3HTML_Template_Flexy の出力例

Hello World

Input Box : [Hello     ]
Number 1
Number 2
Number 3
Number 4

this is number 2 : Number 2

This is a member Variable

<B>Hello From A Method</B>

Hello From A Method
前のページ | ホーム | 次のページ
HTML_Template_Flexy | 上に戻る | 設定項目

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


{else:}

{else:} -- adds an PHP else in an if block

概要

Usage ({else:})

説明

adds an else statement in PHP so that blocks of conditional HTML are shown correctly.

例

例 41-1Setting variables for if

class example {

    function output() {

        $this->showStuff = false;

        .........
        $template->outputObject($this);
    }
}

例 41-2Else in template

{if:showStuff}Hello{else:}World{end:}

例 41-3Compiled template

<?php if ($t->showStuff)  { ?>Hello<?php } else { ?>World<<?php } ?>

例 41-4The output

World
前のページ | ホーム | 次のページ
{end:} | 上に戻る | <FORM NAME="name"

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


{end:}

{end:} -- closes an if or foreach block

概要

Usage ({end:})

説明

adds a closing brace in PHP so that blocks of conditional HTML are shown correctly. You do not need to use {end:} tags if you are using HTML tag attributes like IF="a,b", as the closing HTML tag will indicate that.

例

例 41-1Setting variables for if

class example {
    function showDog() {
        return true;
    }

    function output() {

        $this->showStuff = true;

        .........
        $template->outputObject($this);
    }
}

例 41-2The template

{if:showStuff}Hello{end:}
{if:showDog()}Doggy{end:}

例 41-3The compiled template

<?php if ($t->showStuff)  { ?>Hello<?php } ?>
<?php if ($t->showDog()) {  ?>Doggy<?php } ?>

例 41-4The output

Hello
Doggy
前のページ | ホーム | 次のページ
{if:variable} | 上に戻る | {else:}

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


{foreach:variable,key,value}

{foreach:variable,key,value} -- creates a PHP foreach loop

概要

Usage ({foreach:variable,key,value}, {foreach:variable,value})

説明

creates a foreach loop, needs an {end:} tag. note that the engine will add the variable to the scope, so they will not be prefixed with $t-> when used inside the loop.

パラメータ

  • string variable - relates to $object->variable

  • string key - creates a variable 'key' in the current scope.

  • string value - optionally creates a variable 'value' in the current scope. (as in $key=>$value)

例

例 41-1Setting variables for foreach

$this->a = array(
  "dog" => "cat",
  "fire" => "water"
);
$this->b = array('a','b','c');

$template->outputObject($this);

例 41-2Foreach in template

{foreach:a,k,v}
  k is {k}, and v is {v}
{end:}
{foreach:b,v}
  v is {v}
{end:}

例 41-3Compiled template

<?php if (is_array($t->a)) foreach($t->a as $k => $v) { ?>
  k is <?php echo htmlspecialchars($k); ?>, and v is <?php echo htmlspecialchars($v); ?>
<?php } ?>
<?php if (is_array($t->a)) foreach($t->b as $v) { ?>
  v is <?php echo htmlspecialchars($v); ?>
<?php } ?>

例 41-4example output

k is dog, v is cat
k is fire, v is water
v is a
v is b
v is c
前のページ | ホーム | 次のページ
{method(arguments,#quoted arguments#)} | 上に戻る | {if:variable}

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


<FORM NAME="name"

<FORM NAME="name" -- configures automatic form elements

概要

Usage (<FORM NAME="name">)

説明

By default, all forms are converted to HTML_Template_Flexy_Elements, so they can be altered at runtime.

例

例 41-1Using an element to change a template.

$form = new HTML_Template_Flexy();
$form->compile('some_file_name');

// create an instance (note you dont have to specify any details..)

$elements['theform'] = new HTML_Template_Flexy_Element;

// change an attribute
$elements['theform']->attributes['action'] = 'http://pear.php.net';

//

// for the different types of elements:
$elements['test_textarea'] = new HTML_Template_Flexy_Element;
$elements['test_textarea']->setValue('Blogs');

// select options
$elements['test_select'] = new HTML_Template_Flexy_Element;
$elements['test_select']->setOptions( array(
  '123' => 'a select option',
  '1234' => 'another select option'
));
$elements['test_select']->setValue('1234');

// checkboxes
$elements['test_checkbox'] = new HTML_Template_Flexy_Element;
$elements['test_checkbox']->setValue(1);

// array type checkboxes..
$elements['test_checkbox_array[]'] = new HTML_Template_Flexy_Element;
$elements['test_checkbox_array[]']->setValue(array(1,2));

// radio buttons
$val = 'yes';
$elements['test_radio'] = new HTML_Template_Flexy_Element;
// if you have a default - you may want default to using it..
$elements['test_radio']->setValue($val != 'no' ? $val : 'no');

$form->outputObject(new StdClass, $elements);

// in the example below, the new data you have added is to the existing attributes

例 41-2template example

<BODY>
  <FORM name="theform">

      <TEXTAREA name="test_textarea"></TEXTAREA>

    <SELECT name="test_select"></SELECT>

    <input name="test_checkbox" type="checkbox" value="1">

    <input name="test_checkbox_array[]" type="checkbox" value="1">1<BR>
    <input name="test_checkbox_array[]" type="checkbox" value="2">2<BR>
    <input name="test_checkbox_array[]" type="checkbox" value="3">3<BR>

    <!-- you need to use id's -->
    <input name="test_radio" type="radio" id="radio_yes" value="yes">yes<BR>
    <input name="test_radio" type="radio" id="radio_no" value="no">no<BR>

  </FORM>
</BODY>

例 41-3output from the Template

<BODY>
  <FORM name="theform" action="http://pear.php.net">

    <TEXTAREA name="test_textarea">Blogs</TEXTAREA>

    <SELECT name="test_select">
      <option value="123">a selection option</option>
      <option value="1234" selected>another selection option</option>

    </SELECT>

    <input name="test_checkbox" type="checkbox" value="1" checked>

    <input name="test_checkbox_array[]" type="checkbox" value="1" checked>1<BR>
    <input name="test_checkbox_array[]" type="checkbox" value="2" checked>2<BR>
    <input name="test_checkbox_array[]" type="checkbox" value="3">3<BR>

    <input name="test_radio" type="radio" value="yes" id="radio_yes" checked>yes<BR>
    <input name="test_radio" type="radio" value="no" id="radio_no">no<BR>

  </FORM>
</BODY>
前のページ | ホーム | 次のページ
{else:} | 上に戻る | <INPUT NAME="name">

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


{if:variable}

{if:variable} -- creates a PHP if statement

概要

Usage ({if:variable}, {if:method()})

説明

creates an if statement, with the argument as a variable or method. You must close an if statement with an {end:} statement, and you may use {else:} with it.

例

例 41-1Setting variables for if

class example {
    function showDog() {
        return true;
    }

    function output() {

        $this->showStuff = true;

        .........
        $template->outputObject($this);
    }
}

例 41-2The template

{if:showStuff}Hello{end:}
{if:showDog()}Doggy{end:}

例 41-3Compiled template

<?php if ($t->showStuff)  { ?>Hello<?php } ?>
<?php if ($t->showDog()) {  ?>Doggy<?php } ?>

例 41-4The output

Hello
Doggy
前のページ | ホーム | 次のページ
{foreach:variable,key,value} | 上に戻る | {end:}

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


{method(arguments,#quoted arguments#)}

{method(arguments,#quoted arguments#)} -- creates a PHP method call, and echos the results

概要

Usage ({method()}, {method():h}, {method():u}, {object.method()}, {method(with.a.variable)}, {method(with.multiple,variables)}, {method(with.variables,#and strings or literals#)})

説明

creates an PHP method call, any with any number of arguments, as variables or literals (quoted in #). the return value is echoed, and passed by a modifier (like variables)

  • No Modifier - does htmlspecialchars($variable)

  • :h - echos without any change - eg. raw

  • :u - echos urlencode($variable)

例

例 41-1Including another template

class example_page {
    var $masterTemplate = "master.html";
    var $bodyTemplate =   "body.html";

    function ucfirst($string) {
        return ucfirst($string);
    }

    function includeBody() {
        $template = new HTML_Template_Flexy();
        $template->compile($this->bodyTemplate);
        $template->outputObject($this);
    }
}

例 41-2Calling includeBody in template, and ucfirst

{ucfirst(#this is the header#)}

{includeBody():h}

Footer Goes Here.

例 41-3Compiled template

<?php echo htmlspecialchars($t->ucfirst("this is the header")); ?>

<?php echo $t->includeBody(); ?>

Footer Goes Here.

例 41-4Output from the code

This is the header

Hello World

Footer Goes Here.
前のページ | ホーム | 次のページ
{variable} | 上に戻る | {foreach:variable,key,value}

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


{variable}

{variable} -- creates PHP code to echo a variable

概要

Usage ({variable}, {variable:h}, {variable:u})

説明

creates PHP code to echo a variable, with optional modifier. Modifiers are

  • No Modifier - does htmlspecialchars($variable)

  • :h - echos without any change - eg. raw

  • :u - echos urlencode($variable)

by default variables are assumed to have calling scope, and are prefixed with $t->, however if they are inside a loop (foreach), then the variables created by the loop are added to the scope and the prefix is not added.

例

例 41-1setting an object variable

$this->a = "hello >>";
$template->outputObject($this);

例 41-2Outputting the variable

{a}
{a:h}
{a:u}

例 41-3Compiled template

<?php echo htmlspecialchars($t->a); ?>
<?php echo  $t->a; ?>
<?php echo urlencode($t->a); ?>

例 41-4Simple ouput example

hello &gt;&gt;
hello >>
hello+%3E%3
前のページ | ホーム | 次のページ
$factory->setRequired() | 上に戻る | {method(arguments,#quoted arguments#)}

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Template_IT

目次
導入 -- テンプレートの作成およびパース
HTML_Template_IT::HTML_Template_IT() -- コンストラクタ
HTML_Template_IT::get() -- 置換済みブロックを取得する
HTML_Template_IT::getGlobalvariables() -- 全グローバル変数の配列を変数キャッシュから返す
HTML_Template_IT::loadTemplatefile() -- テンプレートファイルを読み込む
HTML_Template_IT::parse() -- ブロックをパースする
HTML_Template_IT::parseCurrentBlock() -- カレントブロックをパースする
HTML_Template_IT::setCurrentBlock() -- カレントブロックを設定する
HTML_Template_IT::setRoot() -- テンプレートのルートディレクトリを設定する
HTML_Template_IT::setOption() -- オプションを設定する
HTML_Template_IT::setTemplate() -- テンプレートを設定する
HTML_Template_IT::setVariable() -- 変数を代入する
HTML_Template_IT::show() -- プレースホルダを置換したブロックを表示する
HTML_Template_IT::touchBlock() -- 空ブロックを保護する
前のページ | ホーム | 次のページ
<FLEXY:TOJAVASCRIPT JSVAR="PHPVAR"> ... | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Template_IT::get()

HTML_Template_IT::get() -- 置換済みブロックを取得する

概要

require_once 'HTML/Template/IT.php';

string HTML_Template_IT::get ([string $block = "__global__"])

説明

プレースホルダを定義済みの内容で置換して返します。

パラメータ

  • string $block - 戻り値の対象となるブロック名です。指定したブロックに該当するテンプレートがそのまま返されます。

返り値

string - 定義した内容でプレースホルダが置換されたテンプレート

例外・エラー

表 41-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応
IT_BLOCK_NOT_FOUND | " Cannot find this block block " | 指定されたブロック名は存在しません。 | 引数に間違いがないか確認してください。

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Template_IT::parse()

前のページ | ホーム | 次のページ
HTML_Template_IT::HTML_Template_IT() | 上に戻る | HTML_Template_IT::getGlobalvariables()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Template_IT::getGlobalvariables()

HTML_Template_IT::getGlobalvariables() -- 全グローバル変数の配列を変数キャッシュから返す

概要

require_once 'HTML/Template/IT.php';

array HTML_Template_IT::getGlobalvariables ()

説明

全グローバル変数の配列を変数キャッシュから取得します。 HTML_Template_IT::setVariable() を使用して代入した変数のみが返されます。返される値は二つで、 最初の値はグローバル変数の名前の配列です。 二番目の値がすべての変数の配列となります。

返り値

array - 配列を返します。 キー 0 には代入された変数の名前が配列で格納され、キー 1 には対応する値が配列で格納されます。

例

例 41-1スクリプト

<?php

require_once("HTML/Template/IT.php");

$template = <<<EOF
<!-- BEGIN a -->
    Hello {username}
<!-- END a -->
Welcome to {page},
You are visitor number {visitorcount}.
EOF;

$tpl = new HTML_Template_IT('.');
$tpl->setTemplate($template);

// 変数 {page} を設定します。これが getGlobalvariables で返されます。
$tpl->setVariable("page", "http://example.com");
$tpl->setVariable("username", "foo");

// getGlobalvariables は {username} を返しません。グローバル変数ではないからです。
// また {visitorcount} も返しません。設定されていないからです。
print_r($tpl->getGlobalvariables());

?>

例 41-2出力

Array
(
    [0] => Array
        (
            [0] => @{page}@
        )

    [1] => Array
        (
            [0] => http://example.com
        )

)

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Template_IT::setVariable()

前のページ | ホーム | 次のページ
HTML_Template_IT::get() | 上に戻る | HTML_Template_IT::loadTemplatefile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Template_IT::HTML_Template_IT()

HTML_Template_IT::HTML_Template_IT() -- コンストラクタ

概要

require_once 'HTML/Template/IT.php';

void HTML_Template_IT::HTML_Template_IT ([string $root = '.'])

説明

コンストラクタです。HTML_Template_IT の新しいインスタンスを作成し、 テンプレートへのサーチパスを設定します。

パラメータ

  • string $root - テンプレートファイルを格納したディレクトリのパス

返り値

object - 新しい HTML_Template_IT オブジェクト

注意

この関数は、スタティックにコールする ことができます。

参照

HTML_Template_IT::setRoot()

前のページ | ホーム | 次のページ
導入 | 上に戻る | HTML_Template_IT::get()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- テンプレートの作成およびパース

テンプレート

テンプレートの内容は、テキスト・ラベルつきブロック そしてプレースホルダから構成されています。ブロックの中身は再利用でき、 プレースホルダに異なる値を代入して何度もパースすることができます。

例 41-1典型的なテンプレート

<html>
 <body>
  Userlist
  <table>
<!-- BEGIN row -->
   <tr>
    <td>{USERNAME}</td>
    <td>{EMAIL}</td>
   </tr>
<!-- END row -->
  </table>
 </body>
</html>

プレースホルダ

プレースホルダはテンプレートの中で定義できるもので、 その中身は PHP コードから設定します。 PHP code with content. バージョン (1.1.x) までのプレースホルダの書式は下記のようになります。

{[0-9A-Za-z_-]+}

バージョン 1.2.x 以降は、ドットも使用することができます。

{[\.0-9A-Za-z_-]+}

この意味は、 プレースホルダの名前は英大文字および英小文字、 下線とハイフンからなることを意味します。 名前は、波括弧で囲んだ中で空白をあけずに指定しなければなりません。 有効な名前は例えば下記のようになります。

{Placeholder}
{place2_holder}
{PLACEHOLDER1}
{Place-Holder}

バージョン 1.2.x 以降では、これも有効です。

{Place.Holder}

無効な名前は例えば下記のようになります。

{ Placeholder 3 } (空白が含まれている)
{place*holder} (使用できない文字が含まれている)

ブロック

ブロックの書式は次のようになります。

<!-- BEGIN [0-9A-Za-z_-]+ -->
... ブロックの内容 ...
<!-- END [0-9A-Za-z_-]+ -->

バージョン 1.2.x 以降では、ブロック定義にドットも使用することができます。

<!-- BEGIN [\.0-9A-Za-z_-]+ -->
... ブロックの内容 ...
<!-- END [\.0-9A-Za-z_-]+ -->

ブロック名のルールはプレースホルダと同様です。 プレースホルダとは対照的に、 ブロックのマークアップでは空白を入れなければなりません。

ブロックの入れ子(ネスティング)は許されますが、解析に注意深くなってください。 最も深い内部のブロックを最初にセットし解析しなければならず、 次に、内側から外側に着手し、解析するようにしなければなりません。

IT では、全体のテンプレートファイルはそれ自体が "__global__" と呼ばれるメタブロックの中で、 入れ子になっています。ほとんどのブロック関連の関数は、 デフォルトのブロック名としてこれを使用します。 ブロックに関連するほとんどの機能は、 デフォルトとしてこのブロック名を使用します。

使用例

例 41-2テンプレート

<html>
 <table border>
<!-- BEGIN row -->
  <tr>
<!-- BEGIN cell -->
   <td>
    {DATA}
   </td>
<!-- END cell -->
  </tr>
<!-- END row -->
 </table>
</html>

例 41-3スクリプト

<?php
  require_once "HTML/Template/IT.php";

  $data = array
  (
    "0" => array("Stig", "Bakken"),
    "1" => array("Martin", "Jansen"),
    "2" => array("Alexander", "Merz")
  );

  $tpl = new HTML_Template_IT("./templates");

  $tpl->loadTemplatefile("main.tpl.htm", true, true);

  foreach($data as $name) {
    foreach($name as $cell) {
        // データを内側のブロックに代入します
        $tpl->setCurrentBlock("cell") ;
        $tpl->setVariable("DATA", $cell) ;
        $tpl->parseCurrentBlock("cell") ;
    }

     // 外側のブロックをパースします
     $tpl->parse("row");
  }
  // 結果を表示します
  $tpl->show();

?>

例 41-4出力

<html>
 <table border>
  <tr>
   <td>
    Stig
   </td>
   <td>
    Bakken
   </td>
  </tr>
  <tr>
   <td>
    Martin
   </td>
   <td>
    Jansen
   </td>
  </tr>
  <tr>
   <td>
    Alexander
   </td>
   <td>
    Merz
   </td>
  </tr>
 </table>
</html>
前のページ | ホーム | 次のページ
HTML_Template_IT | 上に戻る | HTML_Template_IT::HTML_Template_IT()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Template_IT::loadTemplatefile()

HTML_Template_IT::loadTemplatefile() -- テンプレートファイルを読み込む

概要

require_once 'HTML/Template/IT.php';

boolean HTML_Template_IT::loadTemplatefile (string $filename, boolean [$removeUnknownVariables = TRUE], boolean [$removeEmptyBlocks = TRUE])

説明

ファイルからテンプレートを読み込み、 ブロックおよび変数の内部リストを作成します。

パラメータ

  • string $filename - ロードするファイル

  • boolean $removeUnknownVariables - TRUE であれば、置換されなかったブロック内のプレースホルダは除去されます。

  • boolean $removeEmptyBlocks - TRUE であれば、タッチされなかったブロックは除去されます。 ブロックをタッチするには HTML_Template_IT::touchBlock() を使用します。

返り値

boolean - 成功時には TRUE 、 失敗時には FALSE を返します。

例

例 41-1

テンプレートファイル main.tpl.htm
<html>
 <body>
User {USERNAME} logged in successfull as {ROLE}.
 </body>
</html>

$removeUnknownVariables = FALSE で実行するスクリプト
<?php
require_once 'HTML/Template/IT.php';

$tpl = new HTML_Template_IT('.');
$tpl->loadTemplatefile ('main.tpl.htm', false, false);

$tpl->setVariable ('USERNAME', 'foo');
// プレースホルダ ROLE が設定されていません
$tpl->show();
?>

出力
User foo logged in successfull as {ROLE}.

$removeUnknownVariables = TRUE で実行するスクリプト
<?php
require_once 'HTML/Template/IT.php';

$tpl = new HTML_Template_IT('.');
$tpl->loadTemplatefile ('main.tpl.htm', true, true);

$tpl->setVariable ('USERNAME', 'foo');
// プレースホルダ ROLE が設定されていませんが、
// $removeUnknownVariables が true に設定されています
$tpl->show();
?>

出力
User foo logged in successfull as .

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Template_IT::setTemplate()

前のページ | ホーム | 次のページ
HTML_Template_IT::getGlobalvariables() | 上に戻る | HTML_Template_IT::parse()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Template_IT::parse()

HTML_Template_IT::parse() -- ブロックをパースする

概要

require_once 'HTML/Template/IT.php';

void
      HTML_Template_IT::parse ([string
       $block = "__global__" [, boolean
       $flag_recursion = FALSE]])

説明

定義されたブロックをパースし、すべての置換を行ったうえで、 その結果をパース済みのブロックに追加します。

パラメータ

  • string $block - パースするブロック。何もセットされない場合はテンプレート全体がパース対象となります。

  • boolean $flag_recursion - 内部的に使用するもので、無視できます。

返り値

boolean - 置換するプレースホルダがなかった場合に TRUE、 それ以外の場合に FALSE あるいは IT_Error を返します。

例

例 41-1テンプレート cvsnames.tpl.htm

<html>
 <table>
<!-- BEGIN row -->
  <tr>
   <td>
    {CVS_USERNAME}
   </td>
   <td>
    {REALNAME}
   </td>
  </tr>
<!-- END row -->
 </table>
</html>

例 41-2スクリプト

<?php
  require_once "HTML/Template/IT.php";

  $data = array
  (
    "0" => array("cvs_username" => "pajoye",
                 "realname" => "Pierre-Alain Joye"),
    "1" => array("cvs_username" => "dsp",
                 "realname" => "David Soria Parra")
  );

  $tpl = new HTML_Template_IT("./templates");

  $tpl->loadTemplatefile("cvsnames.tpl.htm", true, true);

  foreach($data as $name) {

     $tpl->setVariable("CVS_USERNAME", $name["cvs_username"]);
     $tpl->setVariable("REALNAME", $name["realname"]);

     $tpl->parse("row");
  }

  // show() は __global__ ブロックをパースし、
  // 結果を表示します
  $tpl->show();

?>

例外・エラー

表 41-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応
IT_BLOCK_NOT_FOUND | " Cannot find this block block " | 引数で指定したブロックが存在しない。 | 引数で指定した値に間違いがないか確認してください。

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Template_it::parseCurrentBlock()

前のページ | ホーム | 次のページ
HTML_Template_IT::loadTemplatefile() | 上に戻る | HTML_Template_IT::parseCurrentBlock()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Template_IT::parseCurrentBlock()

HTML_Template_IT::parseCurrentBlock() -- カレントブロックをパースする

概要

require_once 'HTML/Template/IT.php';

void HTML_Template_IT::parseCurrentBlock ()

説明

カレントブロックをパースします。カレントブロックを指定するには HTML_Template_IT::setCurrentBlock() を使用します。

返り値

boolean - 置換するプレースホルダがなかった場合に TRUE、 それ以外の場合に FALSE あるいは IT_Error を返します。

例

例 41-1テンプレート cvsnames.tpl.htm

<html>
 <table>
<!-- BEGIN row -->
  <tr>
   <td>
    {CVS_USERNAME}
   </td>
   <td>
    {REALNAME}
   </td>
  </tr>
<!-- END row -->
 </table>
</html>

例 41-2スクリプト

<?php
  require_once "HTML/Template/IT.php";

  $data = array
  (
    "0" => array("cvs_username" => "pajoye",
                 "realname" => "Pierre-Alain Joye"),
    "1" => array("cvs_username" => "dsp",
                 "realname" => "David Soria Parra")
  );

  $tpl = new HTML_Template_IT("./templates");

  $tpl->loadTemplatefile("cvsnames.tpl.htm", true, true);

  // カレントブロックを指定します。parseCurrentBlock() でこれを使用します。
  $tpl->setCurrentBlock("row");
  foreach($data as $name) {
     // データを内側のブロックに代入します。

     $tpl->setVariable("CVS_USERNAME", $name["cvs_username"]);
     $tpl->setVariable("REALNAME", $name["realname"]);

     // カレントブロックをパースします。
     $tpl->parseCurrentBlock();
  }

  // show() は __global__ ブロックをパースし、
  // 結果を表示します。
  $tpl->show();

?>

例外・エラー

表 41-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応
IT_BLOCK_NOT_FOUND | " Cannot find this block block " | 引数で指定されたブロックが存在しません。 | 引数で指定した値に間違いがないか確認してください。

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Template_it::parse(), HTML_Template_it::setCurrentBlock()

前のページ | ホーム | 次のページ
HTML_Template_IT::parse() | 上に戻る | HTML_Template_IT::setCurrentBlock()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Template_IT::setCurrentBlock()

HTML_Template_IT::setCurrentBlock() -- カレントブロックを設定する

概要

require_once 'HTML/Template/IT.php';

boolean HTML_Template_IT::setCurrentBlock ([string $block = "__global__"])

説明

カレントブロックの設定を行います。 ここで指定したカレントブロック内のプレースホルダが置換対象となります。 カレントブロックをパースするには HTML_Template_IT::parseCurrentTemplate() を使用します。

パラメータ

  • string $block - カレントブロックとして設定されるブロック。指定が無い場合はテンプレート全体がカレントブロックとして設定されます。

返り値

boolean - 指定されたカレントブロックの設定に成功した場合に TRUE、 それ以外の場合に IT_Error が返されます。

例外・エラー

表 41-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応
IT_BLOCK_NOT_FOUND | " Cannot find this block block " | 指定されたブロックは存在しません。 | 引数に間違いがないか確認してください。

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Template_it::parseCurrentBlock(),

前のページ | ホーム | 次のページ
HTML_Template_IT::parseCurrentBlock() | 上に戻る | HTML_Template_IT::setRoot()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Template_IT::setOption()

HTML_Template_IT::setOption() -- オプションを設定する

概要

require_once 'HTML/Template/IT.php';

int HTML_Template_IT::setOption (string $option, mixed $value)

説明

オプションを設定します。変更するオプションによっては、HTML_Template_IT が予期せぬ振る舞いをする可能性があることに注意しましょう。

返り値

int - 成功した場合に 1、 それ以外の場合に IT_Error オブジェクトを返します。

パラメータ

  • mixed $option - オプションの ID。

  • mixed $value - オプションの新しい値。

オプション

表 41-1使用できるオプション

オプション | デフォルト値 | 説明
removeUnknownVariables | TRUE | TRUE の場合、値が代入されていないテンプレート変数はパース時に削除されます。 このオプションは、通常は HTML_Template_IT::loadTemplatefile() あるいは HTML_Template_IT::setTemplate() をコールして設定します。
removeEmptyBlocks | TRUE | TRUE の場合、テンプレート変数が代入されていないブロックは削除されます。 このオプションは、通常は HTML_Template_IT::loadTemplatefile() あるいは HTML_Template_IT::setTemplate() をコールして設定します。
clearCache | FALSE | TRUE の場合、パースされたブロックをキャッシュしません。 意味がわからない場合は、デフォルトのままにしておいてください。
clearCacheOnParse | FALSE | TRUE の場合は、パース後に変数キャッシュが消去されます。 意味がわからない場合は、デフォルトのままにしておいてください。
openingDelimiter | '{' | テンプレート変数の開始文字を指定します。この値を変更したら、 init() をコールしてテンプレートを再度初期化する必要があります。 意味がわからない場合は、デフォルトのままにしておいてください。
closingDelimiter | '}' | テンプレート変数の終了文字を指定します。この値を変更したら、 init() をコールしてテンプレートを再度初期化する必要があります。 意味がわからない場合は、デフォルトのままにしておいてください。
blocknameRegExp | '[\.0-9A-Za-z_-]+' | ブロック名のパースに使用する正規表現です。この値を変更したら、 init() をコールしてテンプレートを再度初期化する必要があります。 意味がわからない場合は、デフォルトのままにしておいてください。
variablenameRegExp | '[\.0-9A-Za-z_-]+' | テンプレート変数名のパースに使用する正規表現です。この値を変更したら、 init() をコールしてテンプレートを再度初期化する必要があります。 意味がわからない場合は、デフォルトのままにしておいてください。

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Template_IT::loadTemplatefile()

HTML_Template_IT::setTemplate()

前のページ | ホーム | 次のページ
HTML_Template_IT::setRoot() | 上に戻る | HTML_Template_IT::setTemplate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Template_IT::setRoot()

HTML_Template_IT::setRoot() -- テンプレートのルートディレクトリを設定する

概要

require_once 'HTML/Template/IT.php';

void HTML_Template_IT::setRoot (string $root)

説明

テンプレートディレクトリへのパスを指定します。 HTML_Template_IT::loadTemplatefile() がテンプレートを探す際に、このパスを使用します。 すべてのファイル名の先頭には、指定した文字列が付加されます。

パラメータ

  • string $template - テンプレートディレクトリへのパス

例

例 41-1ディレクトリツリー

./
./testscript.php
./templates/design01/main.tpl.htm
./templates/design01/table.tpl.htm
./templates/design02/main.tpl.htm
./templates/design02/table.tpl.htm

例 41-2スクリプト - testscript.php

<?php
  /*
   * testscipt.php - ランダムなデザインを設定する
   */

  require_once "HTML/Template/IT.php";

  $tpl = new HTML_Template_IT();

  $randomNumber = (int) round(rand(0,1));
  switch ($randomNumber)
  {
     case 0:
         // ルートを design01 に指定し、そこから main.tpl.htm を探します
         $tpl->setRoot("./templates/design01");
         break;
     case 1:
     default:
         // ルートを design02 に指定し、そこから main.tpl.htm を探します
         $tpl->setRoot("./templates/design02");
         break;
  }

  /* switch の中の setRoot で指定したディレクトリによって、
   * ./templates/design01/main.tpl.htm あるいは
   * ./templates/design02/main.tpl.htm のいずれかが
   * 読み込まれます */
  $tpl->loadTemplatefile("main.tpl.htm", true, true);

  /* ... 変数を代入します .. */

  // 表示します
  $tpl->show();

?>

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Template_IT::HTML_Template_IT(), HTML_Template_IT::loadTemplatefile()

前のページ | ホーム | 次のページ
HTML_Template_IT::setCurrentBlock() | 上に戻る | HTML_Template_IT::setOption()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Template_IT::setTemplate()

HTML_Template_IT::setTemplate() -- テンプレートを設定する

概要

require_once 'HTML/Template/IT.php';

boolean
       HTML_Template_IT::setTemplate (string $template [, boolean
        $removeUnkownVariables = TRUE [, boolean
        $removeEmptyBlocks = TRUE]])

説明

文字列からテンプレートを読み込み、利用されなかった変数やブロックの扱いを決定します。

パラメータ

  • string $template - テンプレートの内容。

  • boolean $removeUnknowVariables - TRUE の場合、ブロック内の置換されなかったプレースホルダは削除されます。

  • boolean $removeEmptyBlocks - TRUE の場合, タッチしなかったブロックを削除します。

返り値

boolean - 成功時には TRUE 、 失敗時には FALSE を返します。

例

例 41-1スクリプト

<?php
  require_once "HTML/Template/IT.php";

  $data = array
  (
    "0" => array("Stig", "Bakken"),
    "1" => array("Martin", "Jansen"),
    "2" => array("Alexander", "Merz")
  );

  $templateString = <<<EOD
<html>
 <table>
<!-- BEGIN row -->
  <tr>
<!-- BEGIN cell -->
   <td>
    {DATA}
   </td>
<!-- END cell -->
  </tr>
<!-- END row -->
 </table>
</html>
EOD;

  $tpl = new HTML_Template_IT();
  $tpl->setTemplate($templateString, true, true);

  foreach($data as $name) {
    foreach($name as $cell) {
        // データを内側のブロックに代入します。
        $tpl->setCurrentBlock("cell") ;
        $tpl->setVariable("DATA", $cell) ;
        $tpl->parseCurrentBlock("cell") ;
    }

     // 外側のブロックをパースします。
     $tpl->parse("row");
  }
  // 表示します。
  $tpl->show();

?>

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Template_IT::setTemplatefile()

前のページ | ホーム | 次のページ
HTML_Template_IT::setOption() | 上に戻る | HTML_Template_IT::setVariable()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Template_IT::setVariable()

HTML_Template_IT::setVariable() -- 変数を代入する

概要

require_once 'HTML/Template/IT.php';

void HTML_Template_IT::setVariable (mixed $placeholder [, mixed $variable = ""])

説明

カレントブロック内の変数に値を代入します。 $placeholder が配列の場合は、 要素のキーがプレースホルダ名として扱われ、その要素の値で置換されます。

パラメータ

  • mixed $placeholder - 置換されるプレースホルダ、 またはプレースホルダをキー、代入する内容を値とした配列

  • mixed $variable - $placeholder が配列以外の場合、指定された値がプレースホルダに代入されます。

例

例 41-1テンプレート - cvsnames.tpl.htm

<html>
 <table>
<!-- BEGIN row -->
  <tr>
   <td>
    {CVS_USERNAME}
   </td>
   <td>
    {REALNAME}
   </td>
   <td>
    <ul>
    <!-- BEGIN project_row -->
     <li>{PROJECT}</li>
    <!-- END project_row -->
    </ul>
   </td>
  </tr>
<!-- END row -->
 </table>
</html>

例 41-2スクリプト

<?php
  require_once "HTML/Template/IT.php";

  $data = array
  (
    "0" => array("cvs_username" => "pajoye",
                 "realname" => "Pierre-Alain Joye",
                 "projects" => array("PEAR",
                                     "PEAR_Frontend_Web",
                                     "PEAR_RemoteInstaller",
                                      "HTML_Template_IT")),
    "1" => array("cvs_username" => "dsp",
                 "realname" => "David Soria Parra",
                 "projects" => array("HTML_Template_IT"))
  );

  $tpl = new HTML_Template_IT("./templates");

  $tpl->loadTemplatefile("cvsnames.tpl.htm", true, true);

  foreach($data as $name) {
     // データを内側のブロックに代入します。

     $tpl->setCurrentBlock("project_row");
     foreach ($name['projects'] as $projectname) {
         $tpl->setVariable("PROJECT", $projectname);
         $tpl->parseCurrentBlock();
     }

     // 連想配列を使用してプレースホルダを設定することも可能です。
     $tpl->setVariable(
                      array("CVS_USERNAME" => $name["cvs_username"],
                            "REALNAME" => $name["realname"])
                      );

     $tpl->parse("row");
  }

  // show() は __global__ ブロックをパースし、
  // 結果を表示します。
  $tpl->show();

?>

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Template_IT::parse()

前のページ | ホーム | 次のページ
HTML_Template_IT::setTemplate() | 上に戻る | HTML_Template_IT::show()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Template_IT::show()

HTML_Template_IT::show() -- プレースホルダを置換したブロックを表示する

概要

require_once 'HTML/Template/IT.php';

void HTML_Template_IT::show ([string $block])

説明

プレースホルダを設定された内容で置換した上でブロックの表示を行います。

パラメータ

  • string $block - ここで指定したブロックが返されます。 何も指定されない場合はテンプレート全体が対象となります。

例外・エラー

表 41-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応
IT_BLOCK_NOT_FOUND | " Cannot find this block block " | 指定されたブロックは存在しません。 | 引数に間違いがないか確認してください。

注意

この関数は、スタティックにコールする ことはできません。

参照

HTML_Template_IT::get()

前のページ | ホーム | 次のページ
HTML_Template_IT::setVariable() | 上に戻る | HTML_Template_IT::touchBlock()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Template_IT::touchBlock()

HTML_Template_IT::touchBlock() -- 空ブロックを保護する

概要

require_once 'HTML/Template/IT.php';

boolean HTML_Template_IT::touchBlock (string $block)

説明

テンプレートにある空のブロックを保護します。 $removeEmptyBlocks に TRUE が設定されている場合や プレースホルダが置換されない場合でも、ブロックを削除せずに残します。

パラメータ

  • string $block - 保護するブロック

返り値

boolean - 指定されたブロックが存在した場合に TRUE、 それ以外の場合に IT_Error を返します

例

例 41-1テンプレート - login.tpl.htm

<html>
<body>
<!-- BEGIN login_successfull -->
You have logged in successfully!
<!-- END login_successfull -->
<!-- BEGIN login_failed -->
Login failed
<!-- END login_failed -->
</body>
</html>

例 41-2スクリプト

<?php
  require_once "HTML/Template/IT.php";

  // プレースホルダが存在しなかったり、値が設定されていない
  // ブロックを削除します ($removeEmptyBlocks=true)
  $tpl->loadTemplatefile("login.tpl.htm", true, true);

  // 仮の関数
  if (login_successfull($username, $password)) {
    // login_successfull ブロックを表示します。
    // $removeEmptyBlocks = true なので、login_failed は削除されます
    $tpl->touchBlock("login_successfull");
  } else {
    $tpl->touchBlock("login_failed");
  }

  $tpl->show();

?>

例外・エラー

表 41-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応
IT_BLOCK_NOT_FOUND | " Cannot find this block block " | 指定されたブロックは存在しません。 | 引数に間違いがないか確認してください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTML_Template_IT::show() | 上に戻る | HTML_Template_PHPLIB

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Template_PHPLIB

HTML_Template_PHPLIB は、 かつてとても有名だったテンプレートクラス PHPLIB を PEAR 化したものです。変数や繰り返しブロックの機能を提供します。 元の PHPLIB のコードは phplib.sf.net にあります。

考え方

HTML_Template_PHPLIB を用いて HTML やその他のコードをテンプレートから作成するには、 次の手順に従います。

  1. テンプレートクラスのインスタンスを作成する

  2. テンプレートファイルを読み込む

  3. ブロックを定義する

  4. 変数を設定し、ブロックをパースする

  5. 処理を終え、出力する

変数 は HTML コード内のプレースホルダとなり、 データベースから取得した値やコード中で計算した値などで動的に置き換えられます。 変数は、例えば {CODE_AUTHOR} のように、 変数名を波括弧で囲んだ形式になります。 変数名には任意の文字を使用できますが、 空白やタブ、改行は使用できません。

ブロック は、その内部に HTML のコード片を保持するもので、 再利用することができます。例えば、テーブルの行を表す <tr> などです。 ブロックの定義には HTML のコメントを使用し、その中に BEGIN あるいは END とブロック名を含めます。例えば次のようになります。
<table>
 <caption>作者</caption>
 <thead>
  <tr><th>名前</th><th>Email</th></tr>
 </thead>
 <tbody>
<!-- BEGIN authorline -->
  <tr><td>{AUTHOR_NAME}</td><td>{AUTHOR_EMAIL}</td></tr>
<!-- END authorline -->
 </tbody>
</table>

シンプルな例

例 41-139テンプレートファイル: authors.tpl

<html>
 <head><title>{PAGE_TITLE}</title></head>
 <body>
  <table>
   <caption>作者</caption>
   <thead>
    <tr><th>名前</th><th>Email</th></tr>
   </thead>
   <tfoot>
    <tr><td colspan="2">{NUM_AUTHORS}</td></tr>
   </tfoot>
   <tbody>
<!-- BEGIN authorline -->
    <tr><td>{AUTHOR_NAME}</td><td>{AUTHOR_EMAIL}</td></tr>
<!-- END authorline -->
   </tbody>
  </table>
 </body>
</html>

例 41-140PHP のコード: authors.php

<?php
// この作者一覧を表示します
$authors = array(
    'Christian Weiske'  => 'cweiske@php.net',
    'Bjoern Schotte'     => 'schotte@mayflower.de'
);

require_once 'HTML/Template/PHPLIB.php';
// テンプレートオブジェクトを作成します
$t =& new HTML_Template_PHPLIB(dirname(__FILE__), 'keep');
// ファイルを読み込みます
$t->setFile('authors', 'authors.tpl');
// ブロックを設定します
$t->setBlock('authors', 'authorline', 'authorline_ref');

// 変数の値を設定します
$t->setVar('NUM_AUTHORS', count($authors));
$t->setVar('PAGE_TITLE', 'Code authors as of ' . date('Y-m-d'));

// 作者を表示します
foreach ($authors as $name => $email) {
    $t->setVar('AUTHOR_NAME', $name);
    $t->setVar('AUTHOR_EMAIL', $email);
    $t->parse('authorline_ref', 'authorline', true);
}

// 終了処理を行い、出力します
echo $t->finish($t->parse('OUT', 'authors'));
?>

ファイルの読み込み

テンプレートファイルの場所は、定義されている ルートディレクトリからの相対パスとなります。 ルートディレクトリを指定するには、コンストラクタ (の最初のパラメータ、デフォルトは .) あるいは setRoot() を使用します。

ファイルは、その ハンドル 名で参照します。 そこで、setFile() をコールする際には 最初のパラメータにハンドル名、二番目のパラメータにファイル名を指定することになります。 より手軽に使用するために、 ハンドルとファイル名の配列をこのメソッドに渡すこともできます。

例 41-141テンプレートファイルの読み込み

$t =& new HTML_Template_PHPLIB(dirname(__FILE__), 'keep');
$t->setFile('authors', 'authors.tpl');

ブロックの定義

HTML コードの一部 (例えばテーブルの行など) を再利用したい場合は、 先ほどの例で示したようにブロックを定義することができます。

ブロックは自動的に検出されるわけではなく、明示的に setBlock() メソッドで定義する必要があります。 このメソッドの最初のパラメータはブロックが存在するファイルのハンドル、 二番目のパラメータはファイル中のブロック名、 そして三番目のパラメータが新しい ブロックハンドル となります。

例 41-142ブロックの定義

$t->setBlock('authors', 'authorline', 'authorline_ref');

サンプルのテンプレート (authors というハンドルのもの) では authorline というブロックが定義されています。 ブロックのハンドルが、これによって authorline_ref となります。

変数の設定

これは最も簡単な作業です。単に、setVar() に変数名とその値を指定するだけです。オプションの三番目のパラメータに boolean 値を指定すると、新しい値を既存の値に追記するかどうかが設定できます (デフォルトは false です)。

例 41-143変数の設定

$t->setVar('AUTHOR_NAME', 'Christian Weiske');

これは、変数がブロック内で定義されているか否かにかかわらず、 テンプレート内のすべての変数に影響を及ぼします。

ブロックのパース

ブロック内のすべての変数を設定し終えたら、それらを「保存」 して別の場所でブロックを再利用したくなることでしょう。 メソッド parse() は、そんなときに便利です。 最初のパラメータはブロックの内容を保存する変数/ハンドル、 二番目のパラメータがブロックのハンドル名となります。 オプションの三番目のパラメータは、 ブロックの内容ををハンドルの値に追記するかどうかを指定します。 デフォルトは false ですが、おそらくは有効にしたくなるでしょう。

例 41-144ブロックのパース

foreach ($authors as $name => $email) {
    $t->setVar('AUTHOR_NAME', $name);
    $t->setVar('AUTHOR_EMAIL', $email);
    $t->parse('authorline_ref', 'authorline', true);
}

この例では、ハンドル authorline_ref の中にブロック authorline の内容が投入されます。 三番目のパラメータを true ではなく false にすると、最後の行だけが投入されることになります。

最終処理 & 出力

変数の設定とブロックのパースが完了したら、 いよいよ結果をクライアントに出力するときです。 まず必要なことは、ファイルハンドルの内容を parse() して新しいハンドルを作成することです。

未使用の変数やブロックを削除するために、 finish() をコールすることになるでしょう。 unknowns に設定した値 (コンストラクタの二番目の引数か、あるいは setUnknowns() を使用します) に応じて、未使用の変数の扱いが 削除 (remove)、 そのまま保持 (keep) あるいはコメントアウト (comment) のいずれかとなります。

HTML を出力するには、finish() の返り値を直接使用するか、あるいは get() を使用して内容を取得します。

例 41-145ファイルの終了と、その書き出し

$t->parse('OUT', 'authors');
$htmlcode = $t->finish(
    $tpl->get('OUT')
);
echo $htmlcode;

例 41-146ファイルの終了とその書き出し、簡単な方法

echo $tpl->finish($t->parse('OUT', 'authors'));
前のページ | ホーム | 次のページ
HTML_Template_IT::touchBlock() | 上に戻る | HTML_Template_Sigma

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Template_Sigma

目次
Introduction - template syntax -- Creating and editing templates
Introduction - cache -- How Sigma caches the "prepared" templates
constructor HTML_Template_Sigma() -- constructor
addBlock() -- Adds a block to the template
addBlockfile() -- Adds a block contained in the file to the template
blockExists() -- Checks if the block exists in the template
clearVariables() -- Clears the variables
errorMessage() -- Returns a textual error message for an error code
get() -- Returns a block with all replacements done.
getBlockList() -- Returns a list of blocks within a template.
getCurrentBlock() -- Returns the current block name
getPlaceholderList() -- Returns a list of placeholders within a block.
hideBlock() -- Hides the block even if it is not "empty".
loadTemplateFile() -- Loads a template file.
parse() -- Parses the given block.
parseCurrentBlock() -- Parses the current block
placeholderExists() -- Checks whether the placeholder exists
replaceBlock() -- Replaces an existing block with new content.
replaceBlockfile() -- Replaces an existing block with new content from a file.
setCacheRoot() -- Sets the directory to cache "prepared" templates in.
setCallbackFunction() -- Sets a callback function.
setCurrentBlock() -- Sets the name of the current block.
setGlobalVariable() -- Sets a global variable value.
setOption() -- Sets the option for the template class
setRoot() -- Sets the file root for templates.
setTemplate() -- Sets the template.
setVariable() -- Sets a variable value.
show() -- Prints a block with all replacements done.
touchBlock() -- Preserves the block even if empty blocks should be removed.

HTML_Template_Sigma: implementation of Integrated Templates API with template 'compilation' added.

Class Trees for HTML_Template_Sigma()

  • PEAR

    • HTML_Template_Sigma

前のページ | ホーム | 次のページ
HTML_Template_PHPLIB | 上に戻る | Introduction - template syntax

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


addBlock()

addBlock() -- Adds a block to the template

概要

require_once 'HTML/Template/Sigma.php';

mixed HTML_Template_Sigma::addBlock (string $placeholder, string $block, string $template)

説明

Adds a block to the template changing a variable placeholder to a block placeholder. This means that a new block will be integrated into the template in place of a variable placeholder. The variable placeholder will be removed and the new block will behave in the same way as if it was inside the original template.

The block content must not start with <!-- BEGIN blockname --> and end with <!-- END blockname -->, if it does the error will be thrown.

パラメータ

string $placeholder

name of the variable placeholder, the name must be unique within the template.

string $block

name of the block to be added

string $template

content of the block

返り値

return SIGMA_OK on success, error object on failure

参照

see HTML_Template_Sigma::addBlockfile()

例外・エラー

表 41-1PEAR_Error の値

Error code | Error message | Reason | Solution
SIGMA_BLOCK_EXISTS | Block '$block' already exists | Tried to add a block with a name that is already present in the template | Choose a different name for a new block
SIGMA_PLACEHOLDER_NOT_FOUND | Variable placeholder '$placeholder' not found | There is no placeholder to replace by a new block in the template | Check the spelling of the placeholder name
SIGMA_PLACEHOLDER_DUPLICATE | Placeholder '$placeholder' should be unique, found in multiple blocks | A placeholder to be replaced by a new block should appear only in one place | Check the spelling of the placeholder name, choose a different placeholder
SIGMA_BLOCK_DUPLICATE | The name of a block must be unique within a template. Block 'blockname' found twice. | The added block contains a subblock that has the same name as the existing one | Check the $template and rename the block to something else
SIGMA_CALLBACK_SYNTAX_ERROR | Cannot parse template function: (error description) | Bogus syntax for template function parameters. | Fix the template function definition, pay special attention to quoting rules.

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor HTML_Template_Sigma() | 上に戻る | addBlockfile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


addBlockfile()

addBlockfile() -- Adds a block contained in the file to the template

概要

require_once 'HTML/Template/Sigma.php';

mixed HTML_Template_Sigma::addBlockfile (string $placeholder, string $block, string $filename)

説明

Adds a block taken from a file to the template, changing a variable placeholder to a block placeholder.

パラメータ

string $placeholder

name of the variable placeholder

string $block

name of the block to be added

string $filename

template file that contains the block

返り値

return SIGMA_OK on success, error object on failure

参照

see HTML_Template_Sigma::addBlock()

例外・エラー

表 41-1PEAR_Error の値

Error code | Error message | Reason | Solution
SIGMA_BLOCK_EXISTS | Block '$block' already exists | Tried to add a block with a name that is already present in the template | Choose a different name for a new block
SIGMA_PLACEHOLDER_NOT_FOUND | Variable placeholder '$placeholder' not found | There is no placeholder to replace by a new block in the template | Check the spelling of the placeholder name
SIGMA_PLACEHOLDER_DUPLICATE | Placeholder '$placeholder' should be unique, found in multiple blocks | A placeholder to be replaced by a new block should appear only in one place | Check the spelling of the placeholder name, choose a different placeholder
SIGMA_TPL_NOT_FOUND | Cannot read the template file '$filename' | File is unreadable for some reason | Check if the file exists and has correct permissions set
SIGMA_CACHE_ERROR | Cannot save template file 'filename' | A prepared template file cannot be saved | Check if the directory for prepared templates cache exists and is writeable for your script
SIGMA_BLOCK_DUPLICATE | The name of a block must be unique within a template. Block 'blockname' found twice. | The added file contains a block that has the same name as the existing one | Check the file and rename the block to something else
SIGMA_CALLBACK_SYNTAX_ERROR | Cannot parse template function: (error description) | Bogus syntax for template function parameters. | Fix the template function definition, pay special attention to quoting rules.

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
addBlock() | 上に戻る | blockExists()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


blockExists()

blockExists() -- Checks if the block exists in the template

概要

require_once 'HTML/Template/Sigma.php';

bool HTML_Template_Sigma::blockExists (string $block)

説明

Checks if the block exists in the template

パラメータ

string $block

block name

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
addBlockfile() | 上に戻る | clearVariables()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


clearVariables()

clearVariables() -- Clears the variables

概要

require_once 'HTML/Template/Sigma.php';

void HTML_Template_Sigma::clearVariables (void)

説明

Global variables are not affected, only the ones set via setVariable(). The method is useful when you add a lot of variables via setVariable() and are not sure whether all of them appear in the block you parse(). If you clear the variables after parse(), you don't risk them suddenly showing up in other blocks.

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
blockExists() | 上に戻る | errorMessage()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


errorMessage()

errorMessage() -- Returns a textual error message for an error code

概要

require_once 'HTML/Template/Sigma.php';

string HTML_Template_Sigma::errorMessage (integer $code [, string $data = NULL])

説明

Returns a textual error message for an error code. This is usually called when throwing a error, there is seldom need to call this method directly.

パラメータ

integer $code

error code

string $data

additional data to insert into message

返り値

return error message

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
clearVariables() | 上に戻る | get()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


get()

get() -- Returns a block with all replacements done.

概要

require_once 'HTML/Template/Sigma.php';

string HTML_Template_Sigma::get ([string $block = '__global__' [, bool $clear = FALSE]])

説明

Returns a parsed block: block with all replacements done.

This method will automatically call parse(), only if called with $block='__global__' when '__global__' was not parse()'d before. In all other cases you should call parse() before calling get()

パラメータ

string $block

block name

boolean $clear

whether to clear parsed block contents

返り値

return block with all replacements done

参照

see HTML_Template_Sigma::show()

例外・エラー

表 41-1PEAR_Error の値

Error code | Error message | Reason | Solution
SIGMA_BLOCK_NOT_FOUND | Cannot find block '$block' | There is no block $block in the template | Check the block name spelling, check whether you added all the necessary blocks to the template

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
errorMessage() | 上に戻る | getBlockList()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


getBlockList()

getBlockList() -- Returns a list of blocks within a template.

概要

require_once 'HTML/Template/Sigma.php';

array HTML_Template_Sigma::getBlockList ([string $parent = '__global__' [, bool $recursive = FALSE]])

説明

Returns a list of blocks within a template.

If $recursive is FALSE, it returns just a 'flat' array of $parent's direct subblocks. If $recursive is TRUE, it builds a tree of template blocks using $parent as root. Tree structure is compatible with PEAR::Tree's Memory_Array driver.

パラメータ

string $parent

parent block name

boolean $recursive

whether to return a tree of child blocks (TRUE) or a 'flat' array (FALSE)

返り値

return a list of child blocks

参照

see HTML_Template_Sigma::blockExists(), HTML_Template_Sigma::getPlaceholderList()

例外・エラー

表 41-1PEAR_Error の値

Error code | Error message | Reason | Solution
SIGMA_BLOCK_NOT_FOUND | Cannot find block '$parent' | There is no block $parent in the template | Check the block name spelling, check whether you added all the necessary blocks to the template

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
get() | 上に戻る | getCurrentBlock()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


getCurrentBlock()

getCurrentBlock() -- Returns the current block name

概要

require_once 'HTML/Template/Sigma.php';

string HTML_Template_Sigma::getCurrentBlock (void)

説明

Returns the current block name (set by HTML_Template_Sigma::setCurrentBlock())

返り値

return block name

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
getBlockList() | 上に戻る | getPlaceholderList()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


getPlaceholderList()

getPlaceholderList() -- Returns a list of placeholders within a block.

概要

require_once 'HTML/Template/Sigma.php';

array HTML_Template_Sigma::getPlaceholderList ([string $block = '__global__'])

説明

Returns a list of placeholders within a block.

Only 'normal' placeholders are in the list, not ones automatically created for blocks and template functions.

パラメータ

string $block

block name

返り値

return a list of placeholders

参照

see HTML_Template_Sigma::placeholderExists(), HTML_Template_Sigma::getBlockList()

例外・エラー

表 41-1PEAR_Error の値

Error code | Error message | Reason | Solution
SIGMA_BLOCK_NOT_FOUND | Cannot find block '$block' | There is no block $block in the template | Check the block name spelling, check whether you added all the necessary blocks to the template

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
getCurrentBlock() | 上に戻る | hideBlock()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


hideBlock()

hideBlock() -- Hides the block even if it is not "empty".

概要

require_once 'HTML/Template/Sigma.php';

mixed HTML_Template_Sigma::hideBlock (string $block)

説明

Hides the block even if it is not "empty".

Is somewhat an opposite to touchBlock().

Consider a block (a 'edit' link for example) that should be visible to registered/"special" users only, but its visibility is triggered by some little 'id' field passed in a large array into setVariable(). You can either carefully juggle your variables to prevent the block from appearing (a fragile solution) or simply call hideBlock()

パラメータ

string $block

block name

返り値

return SIGMA_OK on success, error object on failure

例外・エラー

表 41-1PEAR_Error の値

Error code | Error message | Reason | Solution
SIGMA_BLOCK_NOT_FOUND | Cannot find block '$block' | There is no block $block in the template | Check the block name spelling, check whether you added all the necessary blocks to the template

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
getPlaceholderList() | 上に戻る | loadTemplateFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor HTML_Template_Sigma()

constructor HTML_Template_Sigma() -- constructor

概要

require_once 'HTML/Template/Sigma.php';

void HTML_Template_Sigma::HTML_Template_Sigma ([string $root = '' [, string $cacheRoot = '']])

説明

Constructor: builds some complex regular expressions and optionally sets the root directories.

Make sure that you call this constructor if you derive your template class from this one.

パラメータ

string $root

root directory for templates

string $cacheRoot

directory to cache "prepared" templates in

例外・エラー

throws no exceptions thrown

参照

see HTML_Template_Sigma::setRoot(), HTML_Template_Sigma::setCacheRoot()

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Introduction - cache | 上に戻る | addBlock()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


loadTemplateFile()

loadTemplateFile() -- Loads a template file.

概要

require_once 'HTML/Template/Sigma.php';

mixed HTML_Template_Sigma::loadTemplateFile (string $filename [, boolean $removeUnknownVariables = TRUE [, boolean $removeEmptyBlocks = TRUE]])

説明

Loads a template file. If caching is on, then it checks whether a "prepared" template exists. If it does, it gets loaded instead of the original, if it does not, then the original gets loaded and prepared and then the prepared version is saved. addBlockfile() and replaceBlockfile() implement quite the same logic.

パラメータ

string $filename

filename

boolean $removeUnknownVariables

remove unknown/unused variables?

boolean $removeEmptyBlocks

remove empty blocks?

返り値

return SIGMA_OK on success, error object on failure

例外・エラー

表 41-1PEAR_Error の値

Error code | Error message | Reason | Solution
SIGMA_TPL_NOT_FOUND | Cannot read the template file '$filename' | File is unreadable for some reason | Check if the file exists and has correct permissions set
SIGMA_CACHE_ERROR | Cannot save template file 'filename' | A prepared template file cannot be saved | Check if the directory for prepared templates cache exists and is writeable for your script
SIGMA_BLOCK_DUPLICATE | The name of a block must be unique within a template. Block 'blockname' found twice. | The loaded file contains two blocks sharing the same name | Check the file and rename one of the the blocks to something else
SIGMA_CALLBACK_SYNTAX_ERROR | Cannot parse template function: (error description) | Bogus syntax for template function parameters. | Fix the template function definition, pay special attention to quoting rules.

参照

see HTML_Template_Sigma::setTemplate(), HTML_Template_Sigma::$removeUnknownVariables, HTML_Template_Sigma::$removeEmptyBlocks

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
hideBlock() | 上に戻る | parse()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


parse()

parse() -- Parses the given block.

概要

require_once 'HTML/Template/Sigma.php';

void HTML_Template_Sigma::parse ([string $block = '__global__' [, boolean $flagRecursion = FALSE [, boolean $fakeParse = FALSE]]])

説明

Parses the given block. It substitutes local and global variables appearing in the block and set via setVariable() and setGlobalVariable(), calls all the callback functions and recursively processes the subblocks of the block.

パラメータ

string $block

block name

boolean $flagRecursion

TRUE if the function is called recursively (do not set this to TRUE yourself!)

boolean $fakeParse

TRUE if parsing a "hidden" block (do not set this to TRUE yourself!)

例外・エラー

表 41-1PEAR_Error の値

Error code | Error message | Reason | Solution
SIGMA_BLOCK_NOT_FOUND | Cannot find block '$block' | There is no block $block in the template | Check the block name spelling, check whether you added all the necessary blocks to the template

参照

see HTML_Template_Sigma::parseCurrentBlock()

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
loadTemplateFile() | 上に戻る | parseCurrentBlock()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


parseCurrentBlock()

parseCurrentBlock() -- Parses the current block

概要

require_once 'HTML/Template/Sigma.php';

void HTML_Template_Sigma::parseCurrentBlock (void)

説明

Parses the current block (set by HTML_Template_Sigma::setCurrentBlock())

例外・エラー

throws no exceptions thrown

参照

see HTML_Template_Sigma::parse(), HTML_Template_Sigma::setCurrentBlock()

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
parse() | 上に戻る | placeholderExists()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


placeholderExists()

placeholderExists() -- Checks whether the placeholder exists

概要

require_once 'HTML/Template/Sigma.php';

string HTML_Template_Sigma::placeholderExists (string $placeholder [, string $block = ''])

説明

Checks whether the placeholder exists in the template, returns the name of the (first) block that contains the specified placeholder.

パラメータ

string $placeholder

Name of the placeholder you're searching

string $block

Name of the block to scan. If left out (default) all blocks are scanned.

返り値

return Name of the (first) block that contains the specified placeholder. If the placeholder was not found an empty string is returned.

例外・エラー

表 41-1PEAR_Error の値

Error code | Error message | Reason | Solution
SIGMA_BLOCK_NOT_FOUND | Cannot find block '$block' | There is no block $block in the template | Check the block name spelling, check whether you added all the necessary blocks to the template

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
parseCurrentBlock() | 上に戻る | replaceBlock()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


replaceBlock()

replaceBlock() -- Replaces an existing block with new content.

概要

require_once 'HTML/Template/Sigma.php';

mixed HTML_Template_Sigma::replaceBlock (string $block, string $template [, boolean $keepContent = FALSE])

説明

Replaces an existing block with new content. This function will replace a block of the template and all blocks contained in it and add a new block instead. This means you can dynamically change your template.

Sigma analyses the way you've nested blocks and knows which block belongs into another block. This nesting information helps to make the API short and simple. Replacing blocks does not only mean that Sigma has to update the nesting information (relatively time consuming task) but you have to make sure that you do not get confused due to the template change yourself.

パラメータ

string $block

name of a block to replace

string $template

new content

boolean $keepContent

TRUE if the parsed contents of the block should be kept

返り値

return SIGMA_OK on success, error object on failure

例外・エラー

表 41-1PEAR_Error の値

Error code | Error message | Reason | Solution
SIGMA_BLOCK_NOT_FOUND | Cannot find block '$block' | There is no block $block in the template | Check the block name spelling, check whether you added all the necessary blocks to the template
SIGMA_BLOCK_DUPLICATE | The name of a block must be unique within a template. Block 'blockname' found twice. | The new block contains a subblock that has the same name as the existing one | Check the $template and rename the block to something else
SIGMA_CALLBACK_SYNTAX_ERROR | Cannot parse template function: (error description) | Bogus syntax for template function parameters. | Fix the template function definition, pay special attention to quoting rules.

参照

see HTML_Template_Sigma::replaceBlockfile(), HTML_Template_Sigma::addBlock()

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
placeholderExists() | 上に戻る | replaceBlockfile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


replaceBlockfile()

replaceBlockfile() -- Replaces an existing block with new content from a file.

概要

require_once 'HTML/Template/Sigma.php';

mixed HTML_Template_Sigma::replaceBlockfile (string $block, string $filename [, boolean $keepContent = FALSE])

説明

Replaces an existing block with new content from a file.

パラメータ

string $block

name of a block to replace

string $filename

template file that contains the block

boolean $keepContent

TRUE if the parsed contents of the block should be kept

返り値

return SIGMA_OK on success, error object on failure

参照

see HTML_Template_Sigma::replaceBlock(), HTML_Template_Sigma::addBlockfile()

例外・エラー

表 41-1PEAR_Error の値

Error code | Error message | Reason | Solution
SIGMA_BLOCK_NOT_FOUND | Cannot find block '$block' | There is no block $block in the template | Check the block name spelling, check whether you added all the necessary blocks to the template
SIGMA_BLOCK_DUPLICATE | The name of a block must be unique within a template. Block 'blockname' found twice. | The loaded block contains a subblock that has the same name as the existing one | Check the file contents and rename the block to something else
SIGMA_TPL_NOT_FOUND | Cannot read the template file '$filename' | File is unreadable for some reason | Check if the file exists and has correct permissions set
SIGMA_CACHE_ERROR | Cannot save template file 'filename' | A prepared template file cannot be saved | Check if the directory for prepared templates cache exists and is writeable for your script
SIGMA_CALLBACK_SYNTAX_ERROR | Cannot parse template function: (error description) | Bogus syntax for template function parameters. | Fix the template function definition, pay special attention to quoting rules.

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
replaceBlock() | 上に戻る | setCacheRoot()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


setCacheRoot()

setCacheRoot() -- Sets the directory to cache "prepared" templates in.

概要

require_once 'HTML/Template/Sigma.php';

void HTML_Template_Sigma::setCacheRoot (string $root)

説明

Sets the directory to cache "prepared" templates in, the directory should be writable for PHP.

The "prepared" template contains an internal representation of template structure: essentially a serialized array of $_blocks, $_blockVariables, $_children and $_functions, may also contain $_triggers. This allows to bypass expensive calls to HTML_Template_Sigma::_buildBlockVariables() and especially HTML_Template_Sigma::_buildBlocks() when reading the "prepared" template instead of the "source" one.

The files in this cache do not have any TTL and are regenerated when the source templates change.

パラメータ

string $root

directory name

例外・エラー

throws no exceptions thrown

参照

see HTML_Template_Sigma::HTML_Template_Sigma()

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
replaceBlockfile() | 上に戻る | setCallbackFunction()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


setCallbackFunction()

setCallbackFunction() -- Sets a callback function.

概要

require_once 'HTML/Template/Sigma.php';

mixed HTML_Template_Sigma::setCallbackFunction (string $tplFunction, mixed $callback [, bool $preserveArgs = FALSE])

説明

Sets a callback function. Sigma templates can contain simple function calls. This means that the author of the template can add a special placeholder to it: func_h1("embedded in h1") Sigma will parse the template for these placeholders and will allow you to define a callback function for them. Callback will be called automatically when the block containing such function call is parse()'d.

Please note that arguments to these template functions can contain variable placeholders: func_translate('Hello, {username}'), but not blocks or other function calls.

This should NOT be used to add logic (except some presentation one) to the template. If you use a lot of such callbacks and implement business logic through them, then you're reinventing the wheel. Consider using XML/XSLT, native PHP or some other template engine.

Script:
<?php
function h_one($arg)
{
    return '<h1>' . $arg . '</h1>';
}
// ...
$tpl = new HTML_Template_Sigma(' ... ');
// ...
$tpl->setCallbackFunction('h1', 'h_one');
// ...
$tpl->show()
?>
template:
...
func_h1('H1 Headline')
...

パラメータ

string $tplFunction

Function name in the template

mixed $callback

A callback: anything that can be passed to call_user_func_array()

boolean $preserveArgs

If TRUE, then no variable substitution in arguments will take place before function call

返り値

return SIGMA_OK on success, error object on failure

例外・エラー

表 41-1PEAR_Error の値

Error code | Error message | Reason | Solution
SIGMA_INVALID_CALLBACK | Callback does not exist | The $callback is not an existing function or method | Check spelling, check whether the object was correctly instantiated if using the method callback

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
setCacheRoot() | 上に戻る | setCurrentBlock()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


setCurrentBlock()

setCurrentBlock() -- Sets the name of the current block.

概要

require_once 'HTML/Template/Sigma.php';

mixed HTML_Template_Sigma::setCurrentBlock ([string $block = '__global__'])

説明

Sets the name of the current block: the one in which variables will be substituted.

パラメータ

string $block

block name

返り値

return SIGMA_OK on success, error object on failure

例外・エラー

表 41-1PEAR_Error の値

Error code | Error message | Reason | Solution
SIGMA_BLOCK_NOT_FOUND | Cannot find block '$block' | There is no block $block in the template | Check the block name spelling, check whether you added all the necessary blocks to the template

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
setCallbackFunction() | 上に戻る | setGlobalVariable()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


setGlobalVariable()

setGlobalVariable() -- Sets a global variable value.

概要

require_once 'HTML/Template/Sigma.php';

void HTML_Template_Sigma::setGlobalVariable (mixed $variable [, string $value = ''])

説明

Sets a global variable value. Global variables are "special": they do not get cleared after substitution and do not make blocks not empty if substituted.

パラメータ

mixed $variable

variable name or array ('varname'=>'value')

string $value

variable value if $variable is not an array

例外・エラー

throws no exceptions thrown

参照

see HTML_Template_Sigma::setVariable()

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
setCurrentBlock() | 上に戻る | setOption()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


setOption()

setOption() -- Sets the option for the template class

概要

require_once 'HTML/Template/Sigma.php';

mixed HTML_Template_Sigma::setOption (string $option, mixed $value)

説明

Sets the option for the template class. Currently it understands the following options:

preserve_data

If set to TRUE, then do not substitute variables and remove unused placeholders in data added through setVariable() and setGlobalVariable(). See also bugs #20199 and #21951. Default is FALSE, for performance reasons.

trim_on_save

Whether to trim extra whitespace from template on cache save. Generally safe to have this on, unless you have <pre></pre> in templates or want to preserve HTML indentantion. Default is TRUE

パラメータ

string $option

option name

mixed $value

option value

返り値

return SIGMA_OK on success, error object on failure

例外・エラー

表 41-1PEAR_Error の値

Error code | Error message | Reason | Solution
SIGMA_UNKNOWN_OPTION | Unknown option '$option' | $option is not known to Sigma | Check the option name spelling

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
setGlobalVariable() | 上に戻る | setRoot()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


setRoot()

setRoot() -- Sets the file root for templates.

概要

require_once 'HTML/Template/Sigma.php';

void HTML_Template_Sigma::setRoot (string $root)

説明

Sets the file root for templates. The file root gets prefixed to all filenames passed to the object.

パラメータ

string $root

directory name

例外・エラー

throws no exceptions thrown

参照

see HTML_Template_Sigma::HTML_Template_Sigma()

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
setOption() | 上に戻る | setTemplate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


setTemplate()

setTemplate() -- Sets the template.

概要

require_once 'HTML/Template/Sigma.php';

mixed HTML_Template_Sigma::setTemplate (string $template [, boolean $removeUnknownVariables = TRUE [, boolean $removeEmptyBlocks = TRUE]])

説明

Sets the template. You can either load a template file from disk with loadTemplateFile() or set the template manually using this function.

パラメータ

string $template

template content

boolean $removeUnknownVariables

remove unknown/unused variables?

boolean $removeEmptyBlocks

remove empty blocks?

返り値

return SIGMA_OK on success, error object on failure

例外・エラー

表 41-1PEAR_Error の値

Error code | Error message | Reason | Solution
SIGMA_BLOCK_DUPLICATE | The name of a block must be unique within a template. Block 'blockname' found twice. | The $template contains two blocks sharing the same name | Check the $template and rename one of the the blocks to something else
SIGMA_CALLBACK_SYNTAX_ERROR | Cannot parse template function: (error description) | Bogus syntax for template function parameters. | Fix the template function definition, pay special attention to quoting rules.

参照

see HTML_Template_Sigma::loadTemplateFile()

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
setRoot() | 上に戻る | setVariable()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


setVariable()

setVariable() -- Sets a variable value.

概要

require_once 'HTML/Template/Sigma.php';

void HTML_Template_Sigma::setVariable (mixed $variable [, string $value = ''])

説明

Sets a variable value. The function can be used either like setVariable("varname", "value") or with one array $variables["varname"] = "value" given setVariable($variables)

パラメータ

mixed $variable

variable name or array ('varname'=>'value')

string $value

variable value if $variable is not an array

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
setTemplate() | 上に戻る | show()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


show()

show() -- Prints a block with all replacements done.

概要

require_once 'HTML/Template/Sigma.php';

void HTML_Template_Sigma::show ([string $block = '__global__'])

説明

Prints a block with all replacements done.

パラメータ

string $block

block name

例外・エラー

throws no exceptions thrown

参照

see HTML_Template_Sigma::get()

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
setVariable() | 上に戻る | touchBlock()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


touchBlock()

touchBlock() -- Preserves the block even if empty blocks should be removed.

概要

require_once 'HTML/Template/Sigma.php';

mixed HTML_Template_Sigma::touchBlock (string $block)

説明

Sometimes you have blocks that should be preserved although they are empty (no placeholder replaced). Think of a shopping basket. If it's empty you have to show a message to the user. If it's filled you have to show the contents of the shopping basket. Now where to place the message that the basket is empty? It's not a good idea to place it in you application as customers tend to like unecessary minor text changes. Having another template file for an empty basket means that one fine day the filled and empty basket templates will have different layouts.

So blocks that do not contain any placeholders but only messages like "Your shopping basked is empty" are intoduced. Now if there is no replacement done in such a block the block will be recognized as "empty" and by default ($removeEmptyBlocks = true) be stripped off. To avoid this you can call touchBlock()

パラメータ

string $block

block name

返り値

return SIGMA_OK on success, error object on failure

参照

see HTML_Template_Sigma::$removeEmptyBlocks

例外・エラー

表 41-1PEAR_Error の値

Error code | Error message | Reason | Solution
SIGMA_BLOCK_NOT_FOUND | Cannot find block '$block' | There is no block $block in the template | Check the block name spelling, check whether you added all the necessary blocks to the template

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
show() | 上に戻る | HTML_Template_Xipe

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction - cache

Introduction - cache -- How Sigma caches the "prepared" templates

Cache FAQ

1. What exactly is this cache feature?
2. What about data?
3. Is the cached version regenerated when the template changes?
4. Is there any TTL setting?
5. Any way to flush the cache?
6. Does this give significant performance gains?

1. What exactly is this cache feature?

This is the way to bypass RegExp parsing on template load. Instead of parsing the original template on every request, we keep its internal representation (a serialized array, essentially) and load it instead.

Think about template compilation in Smarty. Only Sigma does not compile templates to PHP code.

2. What about data?

No data caching is taking place. If you want to do this, consider using some of the PEAR's cache packages.

3. Is the cached version regenerated when the template changes?

Yes.

4. Is there any TTL setting?

No. Cached version is considered valid until the source template changes.

5. Any way to flush the cache?

Yes, just delete all the files in the cache dir.

6. Does this give significant performance gains?

Yes. The answer is based on personal experience.

If you are going to perform some benchmarks, then use some real-world complex templates, not artificial ones. The performance gain will be greater with bigger and more complex (dozens of blocks) ones.

Cache usage

Caching is completely transparent. To take advantage of this feature you only have to either pass a second parameter to the constructor or call a setCacheRoot() method later.
<?php
require_once 'HTML/Template/Sigma.php';

$tpl =& new HTML_Template_Sigma('./templates', './templates/prepared');

$tpl->loadTemplateFile('default.html');

// go on

?>

For each distinct template file in ./templates loaded with either loadTemplatefile(), addBlockfile(), replaceBlockfile() or <!-- INCLUDE --> a prepared version will be generated in ./templates/prepared.

前のページ | ホーム | 次のページ
Introduction - template syntax | 上に戻る | constructor HTML_Template_Sigma()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction - template syntax

Introduction - template syntax -- Creating and editing templates

Placeholders

The default format of placeholder is
{[0-9A-Za-z_-]+}
This means, the name of the placeholder can consist of upper- and lowercase letters, underscores and hyphens. The name must be placed between curly brackets without any spaces.

Actual values for the placeholders are set using setVariable() and setGlobalVariable() methods. Placeholders for which no values were set are removed from output by default.

Blocks

The format of a block is
<!-- BEGIN [0-9A-Za-z_-]+ -->
... block content ...
<!-- END [0-9A-Za-z_-]+ -->
The rules for the block name are the same like for placeholders. In contrast to placeholders the spaces in the block markup are required.

The nesting of blocks is permitted, but be careful while parsing. You have to parse() the innermost block first and then go from inner to outer.

In Sigma the whole template itself is treated as a virtual block called "__global__". Most block-related functions use this block name as default.

<!-- INCLUDE --> statements

It is possible to include a template file from within another template file using an <!-- INCLUDE filename --> statement:
... some content ...
<!-- INCLUDE filename.html -->
... some more content ...
When such a template file gets loaded, the <!-- INCLUDE filename.html --> will be replaced by contents of filename.html.

Some things to note:

  • Although this functionality is implemented using addBlockfile(), unlike addBlockfile() no new blocks are created in the template.

  • <!-- INCLUDE --> calls are processed before any variable substitution can take place. So <!-- INCLUDE {placeholder} --> will not work unless you actually have a file named {placeholder} and want to load it.

Template functions

Sigma templates can contain simple function calls. This means that the author of the template can add a special placeholder to it
... some content ...
func_h1("embedded in h1")
... some more content ...
Sigma will parse the template for these placeholders and will allow you to define a callback function for them via setCallbackFunction(). Callback will be called automatically when the block containing such function call is parse()'d.

Format of such function name is as follows
func_[_a-zA-Z]+[A-Za-z_0-9]*
that means that it should start with a 'func_' prefix, then has a letter or an undercore and then a sequence of letters, digits or underscores. Arguments to these template functions can contain variable placeholders
func_translate('Hello, {username}')
but not blocks or other function calls.

Quoting of template function arguments

注意 The information in this section applies to HTML_Template_Sigma version 1.1.2 and later, please upgrade if you have problems with template function arguments in previous versions.

Quoting of function arguments is not mandatory, the following is a perfectly valid template function:
func_uppercase(Some unquoted text)
But consider the following: function arguments are contained within parentheses and separated by commas. Therefore if closing parenthesis ')' or comma ',' appears in function argument, it should be quoted.

The next thing to consider is that HTML_Template_Sigma is mostly targeted for generating HTML. Therefore a quoted string within an argument is most probably a tag attribute. The contents of such strings are not parsed for commas and parentheses. Therefore the following is also a perfectly valid template function:
func_foo(<a href="javascript:foo(bar, baz)">Do foo</a>)
But if you have an unmatched single or double quote in your argument or if the argument starts with a quote, it should be quoted.

Finally, the argument should be quoted if it is an empty string or if its leading or trailing whitespace is significant (leading and trailing whitespace will be removed from unquoted arguments).

The arguments can be quoted using either single or double quotes. If an argument contains a quote of the same type, then it should be escaped using the backslash symbol '\'. The backslash symbol itself should also be escaped,
func_foo('O\'really')
func_foo('AC\\DC')
will pass O'really and AC\DC to the relevant callbacks.

例 41-1Valid and invalid template function arguments

Valid arguments:
func_foo(Some unquoted text)
func_foo("Some quoted text")
func_foo(<a href="javascript:foo(bar, baz)">Do foo</a>)
func_foo('O\'really')
func_foo('AC\\DC')

Invalid arguments:
func_foo(Hello, {username}) contains a comma, will yield two arguments instead of one
func_foo(O'really) unmatched single quote
func_foo('O'really') unescaped single quote
func_foo(, 'whatever') empty arguments should be quoted

Shorthand for template functions

Since release 1.1.0, instead of using
func_callback({var})
you can write
{var:callback}
There are 3 automatically registered template functions

  • 'h' for htmlspecialchars()

  • 'u' for urlencode()

  • 'j' for a method of Sigma that escapes the string for usage in Javascript string constants.

Thus, if you add {var:h} placeholder to the template, var will be have unsafe characters replaced by corresponding HTML entitites.

Usage Example

Other usage examplesThere are several usage examples in the package archive that cover most of its functionality. You are encouraged to review them along with the docs.

例 41-2The table.html template file

<html>
<body>
<table cellpadding="2" cellspacing="0" border="1">
<!-- INCLUDE table_header.html -->
<!-- BEGIN table_row -->
    <tr>
        <td bgcolor="func_bgcolor('#CCCCCC', '#F0F0F0')">{first_name}</td>
        <td bgcolor="func_bgcolor('#CCCCCC', '#F0F0F0')">{last_name}</td>
    </tr>
<!-- END table_row -->
</table>
</body>
</acronym>

例 41-3The table_header.html template file

<tr>
        <th>First name</th>
        <th>Last name</th>
    </tr>

例 41-4The script

<?php

require_once 'HTML/Template/Sigma.php';

function toggle($item1, $item2)
{
    static $i = 1;

    return $i++ % 2? $item1: $item2;
}

$data = array (
    array("Stig", "Bakken"),
    array("Martin", "Jansen"),
    array("Alexander", "Merz")
);

$tpl =& new HTML_Template_Sigma('.');

$tpl->loadTemplateFile('table.html');

$tpl->setCallbackFunction('bgcolor', 'toggle');

foreach ($data as $name) {
    // assign data
    $tpl->setVariable(array(
        'first_name'  => $name[0],
        'last_name' => $name[1]
    ));
    // process the block
    $tpl->parse('table_row');
}

// print out the output
$tpl->show();
?>

例 41-5The output

<html>
<body>
<table cellpadding="2" cellspacing="0" border="1">
    <tr>
        <th>First name</th>
        <th>Last name</th>
    </tr>

    <tr>
        <td bgcolor="#CCCCCC">Stig</td>
        <td bgcolor="#CCCCCC">Bakken</td>
    </tr>

    <tr>
        <td bgcolor="#F0F0F0">Martin</td>
        <td bgcolor="#F0F0F0">Jansen</td>
    </tr>

    <tr>
        <td bgcolor="#CCCCCC">Alexander</td>
        <td bgcolor="#CCCCCC">Merz</td>
    </tr>

</table>
</body>
</html>
前のページ | ホーム | 次のページ
HTML_Template_Sigma | 上に戻る | Introduction - cache

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_Template_Xipe

目次
Introduction -- A simple, fast and powerful template engine.

The template engine is a compiling engine, all templates are compiled into PHP-files. This will make the delivery of the files faster on the next request, since the template doesn't need to be compiled again. If the template changes it will be recompiled. There is no new template language to learn. Beside the default mode, there is a set of constructs since version 1.6 which allow you to edit your templates with WYSIWYG editors

前のページ | ホーム | 次のページ
touchBlock() | 上に戻る | Introduction

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction

Introduction -- A simple, fast and powerful template engine.

HTML_Template_Xipe Description

The template engine is a compiling engine, all templates are compiled into PHP-files. This will make the delivery of the files faster on the next request, since the template doesn't need to be compiled again. If the template changes it will be recompiled. There is no new template language to learn. Beside the default mode, there is a set of constructs since version 1.6 which allow you to edit your templates with WYSIWYG editors. By default the template engine uses indention for building blocks (you can turn that off). This feature was inspired by Python and by the need I felt to force myself to write proper HTML-code, using proper indentions, to make the code better readable.

Unfortunately, complete documentation is not available at the moment.

前のページ | ホーム | 次のページ
HTML_Template_Xipe | 上に戻る | HTML_TreeMenu

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTML_TreeMenu

このパッケージのドキュメントは、PHP Wiki にあります。

前のページ | ホーム | 次のページ
Introduction | 上に戻る | Pager

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager

目次
導入 -- Pager 2.xの使用方法
Pagerの "ジャンプ型" 対 "スライド型" -- 2つのページャスタイルの特長を比較する
Pager::factory() -- ページャのインスタンスを生成する
Pager::getCurrentPageID() -- 現在のページ番号を返す
Pager::getLinks() -- 並び替えられた連想配列として、 戻る/次/最初/最後のリンクとページリンクを返す
Pager::getNextPageID() -- 次のページ番号を返す
Pager::getOffsetByPageId() -- 与えられたpageIDのオフセットを返す
Pager::getPageData() -- 現在のページのデータの配列を返す
Pager::getPageIdByOffset() -- 与えられたオフセットでのページ番号を返す
Pager::getPageRangeByPageId() -- 与えられたpageIDのオフセットを返す
Pager::getPreviousPageID() -- 前のページ番号を返す
Pager::getPerPageSelectBox() -- ページごとにいくつずつ表示するかを選択するためのXHTMLのSELECTメニューの文字列を返す
Pager::isFirstPage() -- 現在のページが最初のページかどうかを返す
Pager::isLastPage() -- 現在のページが最後のページかどうかを返す
Pager::isLastPageComplete() -- 最後のページが完了したかどうかを返す
Pager::numItems() -- アイテム数を返す
Pager::numPages() -- ページ数を返す
Pager::Pager() -- ページャのインスタンスを生成する

データをページングするクラスで、ページへのリンクも生成します。

前のページ | ホーム | 次のページ
HTML_TreeMenu | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager_Sliding

目次
導入 -- Pager_Slidingの使用方法
Pager (v.1.x) 対 Pager_Sliding -- 2つのクラスの特長を比較する
Pager_Sliding::getCurrentPageID() -- 現在のページ番号を返す
Pager_Sliding::getLinks() -- 並び替えられた連想配列として、 戻る/次/最初/最後のリンクとページリンクを返す
Pager_Sliding::getNextPageID() -- 次のページ番号を返す
Pager_Sliding::getOffsetByPageId() -- 与えられたpageIDのオフセットを返す
Pager_Sliding::getPageData() -- 現在のページのデータの配列を返す
Pager_Sliding::getPageIdByOffset() -- PEAR::Pager の同メソッドのオーバーロードで、 なにもしない
Pager_Sliding::getPreviousPageID() -- 前のページ番号を返す
Pager_Sliding::isFirstPage() -- 現在のページが最初のページかどうかを返す
Pager_Sliding::isLastPage() -- 現在のページが最後のページかどうかを返す
Pager_Sliding::isLastPageComplete() -- 最後のページが完了したかどうかを返す
Pager_Sliding::numItems() -- アイテム数を返す
Pager_Sliding::numPages() -- ページ数を返す
Pager_Sliding::Sliding() -- ページャのインスタンスを生成する

データをページングするクラスで、ページへのリンクも生成します。

前のページ | ホーム | 次のページ
Pager::Pager() | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager (v.1.x) 対 Pager_Sliding

Pager (v.1.x) 対 Pager_Sliding -- 2つのクラスの特長を比較する

Pager との違いは何か?

While Pager v.1.x は、"ジャンプ型のウィンドウ" スタイルを取っています。 Pager_Sliding は、"スライド型のウィンドウ" スタイルを取っています。 どういう意味でしょうか? 例を見てみましょう。

Pager v.1.x ロジック

データが15ページに渡り、 ウィンドウ幅が5ページのリンクがある場合を考えてみます。 リンクは、"フレーム"上に5ページ毎 [1-5] [6-10] [11-15] に表示されます。 Pager v.1.x は、 あなたがこの5ページのどれかにいる間、 常に同じ5ページのリンクを表示します。 ここに、時間的に連続したリンクがあります。1ページから始まり、 昇順に進みます。 現在のページ番号はブラケットで囲まれ、ハイライトされます。
a)    {1} 2  3  4  5  =>   // first frame: [1-5]
b) <=  1 {2} 3  4  5  =>
c) <=  1  2 {3} 4  5  =>
d) <=  1  2  3 {4} 5  =>
e) <=  1  2  3  4 {5} =>   // HERE IT JUMPS TO THE NEXT FRAME
f) <= {6} 7  8  9 10  =>   // second frame: [6-10]
g) <=  6 {7} 8  9 10  =>
h) <=  6  7 {8} 9 10  =>
といった具合です。 "ジャンプ型のウィンドウ" フレームが分かりますか？制限に達したとき （例では、5ページから6ページに移動したとき）、次のフレーム （6から10ページへのリンクがあります）に "ジャンプ" します。

Pager_Sliding ロジック

あるフレームから別のフレームにジャンプする代わりに Pager_Sliding を使用すると、 変更がスムーズに行われ、 現在のページは常に "ウィンドウ" の中央に表示されます （もちろん、最初と最後のページは例外です）。
a)       {1} 2  3  4  5  => [15]
b) [1] <= 1 {2} 3  4  5  => [15]
c) [1] <= 1  2 {3} 4  5  => [15]  // HERE IT's STARTING WORKING AS DESIGNED
d) [1] <= 2  3 {4} 5  6  => [15]  // see: current page number is at the center of the window
e) [1] <= 3  4 {5} 6  7  => [15]  // and it stays there...
f) [1] <= 4  5 {6} 7  8  => [15]
g) [1] <= 5  6 {7} 8  9  => [15]
h) [1] <= 6  7 {8} 9 10  => [15]
といった具合です。

その他の違い

異なる "哲学" は別として、 Pager_Sliding は、非常にカスタマイズ可能なように デザインされています。

更新情報: Pager 2.x がリリースされましたので、 Pager_Sliding でのみ使用可能だった全てのオプションは、 現在、Pager でも全て実装されています。 既述の通り、Pager_Sliding は新しい Pager v.2.x のため、現在では非推奨となっています。 Pager v.2.x では、 mode を変えるだけで 両方の動作方法("ジャンプ型" と "スライド型")を使用することができます。 詳細については、 Pagerのドキュメントを参照してください。

  • ページ内のリンクのルックアンドフィールを変更する *多くの*オプションがあります。 これらは、コンストラクタのドキュメントで説明されています。

  • これは、Apache の mod_rewrite モジュールを併用しても 動作させることができますので、例を参照してください。

  • また、"テンプレート" フレンドリーでもあります。 例えば、処理済みのリンクやページ数をカスタム変数に割り当てたり、 あなたのページレイアウトに従って リンクバーを表示するのに利用することができます。 そしてそれは、ロジックの心配なしに、です。

  • また、クラスを簡単に拡張することができます。 これは、あなたが多くの異なったページで使おうとしていて、 同じオプションをいつもセットしたくない場合に有効です。 ただ、あなたの拡張したクラス内でお気に入りのデフォルト値をセットし、 使うだけです。

前のページ | ホーム | 次のページ
導入 | 上に戻る | Pager_Sliding::getCurrentPageID()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager_Sliding::getCurrentPageID

PEAR マニュアル
前のページ 次のページ

Pager_Sliding::getCurrentPageID()

Pager_Sliding::getCurrentPageID() -- 現在のページ番号を返す

概要

require_once 'Pager/Sliding.php';

integer getCurrentPageID ()

返り値

integer - 現在のページ番号

前のページ | ホーム | 次のページ
Pager (v.1.x) 対 Pager_Sliding | 上に戻る | Pager_Sliding::getLinks()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager_Sliding::getLinks

PEAR マニュアル
前のページ 次のページ

Pager_Sliding::getLinks()

Pager_Sliding::getLinks() -- 並び替えられた連想配列として、 戻る/次/最初/最後のリンクとページリンクを返す

概要

require_once 'Pager/Sliding.php';

array Pager_Sliding::getLinks ([integer $pageID = NULL])

パラメータ

  • integer $pageID - pageID はオプションです。 もし指定された場合、そのページへのリンクは、 現在のページの代わりに提供されます。

返り値

return 並び替えられた連想配列としての 戻る/次/最初/最後のリンクとページリンク

前のページ | ホーム | 次のページ
Pager_Sliding::getCurrentPageID() | 上に戻る | Pager_Sliding::getNextPageID()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager_Sliding::getNextPageID

PEAR マニュアル
前のページ 次のページ

Pager_Sliding::getNextPageID()

Pager_Sliding::getNextPageID() -- 次のページ番号を返す

概要

require_once 'Pager/Sliding.php';

mixed Pager_Sliding::getNextPageID ()

説明

もし、現在のページが最後のページの場合、この関数は FALSE を返します。 それ以外は、次のページ番号を返します。

返り値

return 次のページ番号、あるいは FALSE

前のページ | ホーム | 次のページ
Pager_Sliding::getLinks() | 上に戻る | Pager_Sliding::getOffsetByPageId()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager_Sliding::getOffsetByPageId

PEAR マニュアル
前のページ 次のページ

Pager_Sliding::getOffsetByPageId()

Pager_Sliding::getOffsetByPageId() -- 与えられたpageIDのオフセットを返す

概要

require_once 'Pager/Sliding.php';

array Pager_Sliding::getOffsetByPageId ([integer $pageid = NULL])

説明

例えば、pageIDが5で、 delta が2の場合、3と7を返します。 PageID が6の場合、4と8となります。

注意: この関数の振る舞いは、誤解を招く可能性があります。 この関数は、PEAR::Pager との互換性のためだけに残されました。 pageID が端から delta の位置の時、 混乱が生じます。 事実、このメソッドは、$this->_getPageLinks がそれらを抜かす間、 両端を返します。 Pager_Sliding はこのように動作します: もし、pageID が端ではない場合、 最初と最後のページをブラケットで囲んで表示します: [1] << 5 | _6_ | 7 >> [15] それで、$this->_getPageLinks が、 例えば、2 | _3_ | 4 | 5を返す間で、 端から delta の位置にある pageID を扱うとき、 このメソッドはうまく端を返します。 たとえ pageID が3、delta が2の場合でもです。 このメソッドは、非推奨、 あるいは影響を受けやすいと考えてください。

パラメータ

  • integer $pageid - オフセットを取得するための PageID

返り値

return 最初と最後のオフセットが格納された配列

非推奨

非推奨

前のページ | ホーム | 次のページ
Pager_Sliding::getNextPageID() | 上に戻る | Pager_Sliding::getPageData()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager_Sliding::getPageData

PEAR マニュアル
前のページ 次のページ

Pager_Sliding::getPageData()

Pager_Sliding::getPageData() -- 現在のページのデータの配列を返す

概要

require_once 'Pager/Sliding.php';

array Pager_Sliding::getPageData ([integer $pageID = NULL])

パラメータ

  • integer $pageID - 要求されたページID (オプション)

返り値

return 現在のページのデータの配列

前のページ | ホーム | 次のページ
Pager_Sliding::getOffsetByPageId() | 上に戻る | Pager_Sliding::getPageIdByOffset()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager_Sliding::getPageIdByOffset

PEAR マニュアル
前のページ 次のページ

Pager_Sliding::getPageIdByOffset()

Pager_Sliding::getPageIdByOffset() -- PEAR::Pager の同メソッドのオーバーロードで、 なにもしない

概要

require_once 'Pager/Sliding.php';

array Pager_Sliding::getPageIdByOffset (integer $index)

パラメータ

  • integer $index - pageID を得るためのオフセット

返り値

return このオフセットでのページ番号

Deprecated

非推奨。 PEAR::Pagerとの互換性のためだけにここにあります。

前のページ | ホーム | 次のページ
Pager_Sliding::getPageData() | 上に戻る | Pager_Sliding::getPreviousPageID()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager_Sliding::getPreviousPageID

PEAR マニュアル
前のページ 次のページ

Pager_Sliding::getPreviousPageID()

Pager_Sliding::getPreviousPageID() -- 前のページ番号を返す

概要

require_once 'Pager/Sliding.php';

mixed Pager_Sliding::getPreviousPageID ()

説明

もし、現在のページが最初のページの場合、この関数は FALSEを返します。 それ以外は、前のページ番号を返します。

返り値

return 前のページ番号、あるいは FALSE

前のページ | ホーム | 次のページ
Pager_Sliding::getPageIdByOffset() | 上に戻る | Pager_Sliding::isFirstPage()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- Pager_Slidingの使用方法

Pager_Sliding とは?

Pager_Sliding は、 データの配列にページを付けるクラスです。 入力として受け取り、様々なパラメータによってページ付けを行います。 また、Pager_Sliding は、 指定された範囲でリンクを生成し、 出力は完全にカスタマイズ可能です（たとえ、 mod_rewriteと併用していても動作します）。 PEAR::Pagerの API と互換性があります。

非推奨

このパッケージは、Pager v.2.x のため、 非推奨となっています。 .

例 1

この簡単な例は、アルファベット文字の配列を1ページあたり3文字ずつ ページ付けします。そして、前後2ページへのリンクを返します。
require_once 'Pager/Sliding.php';
$params = array(
            'perPage'    => 3,
            'delta'      => 2,
            'itemData'   => array('a','b','c','d','e',[...omissis...],'z')
            );
$pager = & new Pager_Sliding($params);
$data  = $pager->getPageData();
$links = $pager->getLinks();
//$links is an ordered+associative array with 'back'/'pages'/'next'/'first'/'last'/'all' links.
//NB: $links['all'] is the same as $pager->links;

//echo links to other pages:
echo $links['all']

//Show data for current page:
echo 'PAGED DATA: ' ; print_r($data);

//Results from methods:
echo 'getCurrentPageID()...: '; var_dump($pager->getCurrentPageID());
echo 'getNextPageID()......: '; var_dump($pager->getNextPageID());
echo 'getPreviousPageID()..: '; var_dump($pager->getPreviousPageID());
echo 'numItems()...........: '; var_dump($pager->numItems());
echo 'numPages()...........: '; var_dump($pager->numPages());
echo 'isFirstPage()........: '; var_dump($pager->isFirstPage());
echo 'isLastPage().........: '; var_dump($pager->isLastPage());
echo 'isLastPageComplete().: '; var_dump($pager->isLastPageComplete());
echo '$pager->range........: '; var_dump($pager->range);
なぜ、$pager->range が配列になっているのか、疑問に思うかも知れません。 このキーは現在の範囲でのページ番号で、対応する値はブール型 （キーが現在のページを指しているのであれば TRUE、その他は FALSE） です。 この配列は、手動でリンクを生成する際に有効です。 例えば、テンプレートエンジンを使用している場合です。

例 2

この例は、mod_rewrite を併用した場合、 このクラスをどの様に使用するかを示しています。 以下のような .htaccess があるとします。
---------
RewriteEngine on
#Options FollowSymlinks

RewriteBase /
RewriteRule ^articles/([a-z]{1,12})/art([0-9]{1,4})\.html$ /article.php?num=$2&amp;month=$1 [L]
---------
これは、"/articles/march/art15.html" のような URL を、 "/article.php?num=15&month=march" に変換します。

require_once 'Pager/Sliding.php';

$month = 'september';
$params = array(
            'append'    => false,
            'urlVar'    => 'num',
            'path'      => 'http://myserver.com/articles/' . $month,
            'fileName'  => 'art%d.html',  //Pager replaces "%d" with page number...
            'itemData'  => array('a','b','c',[...omissis...],'z'),
            'perPage'   => 3
            );
$pager = & new Pager_Sliding($params);

$data  = $pager->getPageData();
echo $pager->links;
echo 'Data for current page: '; print_r($data);

単一ページ内の複数のページャ

単一ページ内で一つ以上のページャを使用するには、 それぞれのページャに異なる urlVar を指定するだけです。
require_once 'Pager/Sliding.php';

//first pager
$params1 = array(
            'perPage'    => 3,
            'urlVar'     => pageID_articles,  //1st identifier
            'itemData'   => $someArray
            );
$pager1 = & new Pager_Sliding($params1);
$data1  = $pager1->getPageData();
$links1 = $pager1->getLinks();

//second pager
$params2 = array(
            'perPage'    => 8,
            'urlVar'     => pageID_news,      //2nd identifier
            'itemData'   => $someOtherArray
            );
$pager2 = & new Pager_Sliding($params2);
$data2  = $pager2->getPageData();
$links2 = $pager2->getLinks();

前のページ | ホーム | 次のページ
Pager_Sliding | 上に戻る | Pager (v.1.x) 対 Pager_Sliding

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager_Sliding::isFirstPage

PEAR マニュアル
前のページ 次のページ

Pager_Sliding::isFirstPage()

Pager_Sliding::isFirstPage() -- 現在のページが最初のページかどうかを返す

概要

require_once 'Pager/Sliding.php';

bool Pager_Sliding::isFirstPage ()

返り値

return TRUE または FALSE、つまり、 最初のページかどうか

前のページ | ホーム | 次のページ
Pager_Sliding::getPreviousPageID() | 上に戻る | Pager_Sliding::isLastPage()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager_Sliding::isLastPage

PEAR マニュアル
前のページ 次のページ

Pager_Sliding::isLastPage()

Pager_Sliding::isLastPage() -- 現在のページが最後のページかどうかを返す

概要

require_once 'Pager/Sliding.php';

bool Pager_Sliding::isLastPage ()

返り値

return TRUE または FALSE、つまり、 最後のページかどうか

前のページ | ホーム | 次のページ
Pager_Sliding::isFirstPage() | 上に戻る | Pager_Sliding::isLastPageComplete()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager_Sliding::isLastPageComplete

PEAR マニュアル
前のページ 次のページ

Pager_Sliding::isLastPageComplete()

Pager_Sliding::isLastPageComplete() -- 最後のページが完了したかどうかを返す

概要

require_once 'Pager/Sliding.php';

bool Pager_Sliding::isLastPageComplete ()

返り値

return TRUE または FALSE、つまり、 最後のページが完了したかどうか (例えば、perPageの値が、 最後のページのための配列に含まれているかどうか)

前のページ | ホーム | 次のページ
Pager_Sliding::isLastPage() | 上に戻る | Pager_Sliding::numItems()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager_Sliding::numItems

PEAR マニュアル
前のページ 次のページ

Pager_Sliding::numItems()

Pager_Sliding::numItems() -- アイテム数を返す

概要

require_once 'Pager/Sliding.php';

int Pager_Sliding::numItems ()

返り値

return integer - アイテムの数

前のページ | ホーム | 次のページ
Pager_Sliding::isLastPageComplete() | 上に戻る | Pager_Sliding::numPages()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager_Sliding::numPages

PEAR マニュアル
前のページ 次のページ

Pager_Sliding::numPages()

Pager_Sliding::numPages() -- ページ数を返す

概要

require_once 'Pager/Sliding.php';

int Pager_Sliding::numPages ()

返り値

return integer - ページ数

前のページ | ホーム | 次のページ
Pager_Sliding::numItems() | 上に戻る | Pager_Sliding::Sliding()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager_Sliding::Sliding

PEAR マニュアル
前のページ 次のページ

Pager_Sliding::Sliding()

Pager_Sliding::Sliding() -- ページャのインスタンスを生成する

概要

require_once 'Pager/Sliding.php';

object &Sliding (array $options)

パラメータ

Pager_Sliding コンストラクタは、 引数としてパラメータの連想配列を1つ受け取ります。 以下は、これらオプションの完全なリストです:

  • itemData [array]

    ページ付けするアイテムの配列を指定します。

  • totalItems [integer]

    ページ付けするアイテムの数を指定します （itemData が指定されなかった場合のみ使用されます）。

  • perPage [integer]

    ページごとに表示するアイテムの数を指定します。

  • delta [integer]

    現在のページの前後に表示するページ番号の数を指定します。

  • expanded [boolean]

    もし TRUE なら、ウィンドウサイズは常に 2*delta+1 となります。

  • linkClass [string]

    リンクスタイルのための CSS クラス名を指定します。

  • urlVar [string]

    ページ番号を示すための URL 変数名を指定します。 デフォルトは "pageID"。

  • path [string]

    ページへの絶対パス（ページ名は除く）を指定します。

  • fileName [string]

    ページの名前。もし、appendが TRUE なら、 "%d" が使用されます。

  • append [boolean]

    もし TRUE なら、pageID は GET 値として URL に追加されます。 もし FALSE なら、fileName に従って、 URL に埋め込まれます。

  • altPrev [string]

    前ページへのリンクに表示される alt 文を指定します。 デフォルト値は、"previous page"。

  • altNext [string]

    次ページへのリンクに表示される alt 文を指定します。 デフォルト値は、"next page"。

  • altPage [string]

    ページ番号の前に表示される alt 文を指定します。 デフォルトは、"page "。

  • prevImg [string]

    "<<" の代わりに表示する文字を指定します。 "<< PREV" や <img/> などが使えます。

  • nextImg [string]

    ">>" の代わりに表示する文字を指定します。 "NEXT >>" や <img/> などが使えます。

  • separator [string]

    ページ番号を分けるために使われる文字を指定します。 <img/> やコンマ、ハイフンなどが使えます。

  • spacesBeforeSeparator [integer]

    セパレータの前のスペースの数を指定します。

  • spacesAfterSeparator [integer]

    セパレータの後のスペースの数を指定します。

  • firstPagePre [string]

    最初のページ番号の前の文字を指定します。 <img/> や "{"、空文字などが使えます。

  • firstPagePost [string]

    最初のページ番号の後の文字を指定します。 <img/> や "}"、空文字などが使えます。

  • lastPagePre [string]

    firstPagePreと同様です。 ただし、最後のページ番号に対して使用されます。

  • lastPagePost [string]

    firstPagePostと同様です。 ただし、最後のページ番号に対して使用されます。

  • curPageLinkClassName [string]

    現在のページのリンクに使う CSS クラス名を指定します。

  • lastPagePost [boolean]

    1ページしかない場合、ページャを表示しない （空文字が返ります）かどうかを指定します。

必要なオプション:

  • fileName IF append==FALSE (デフォルトは、TRUE)の場合

  • itemDataあるいは totalItems (もし、itemData がセットされている場合、 totalItems は上書きされます)

返り値

object - 固有の Pager_Sliding インスタンス あるいは、失敗した場合、PEAR_Error オブジェクトを返します。

前のページ | ホーム | 次のページ
Pager_Sliding::numPages() | 上に戻る | HTTP

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pagerの "ジャンプ型" 対 "スライド型"

Pagerの "ジャンプ型" 対 "スライド型" -- 2つのページャスタイルの特長を比較する

2つのスタイルの違いは何か？

例というものは、1000もの言葉に値するので:

"ジャンプ型" ページャロジック

データが15ページに渡り、 ウィンドウ幅が5ページのリンクがある場合を考えてみます。 リンクは、"フレーム"上に5ページ毎 [1-5] [6-10] [11-15] に表示されます。 "ジャンプ" モードのページャは、あなたがこの5ページのどれかにいる間、 常に同じ5ページのリンクを表示します。 ここに、時間的に連続したリンクがあります。1ページから始まり、 昇順に進みます。 現在のページ番号はブラケットで囲まれ、ハイライトされます。
a)    {1} 2  3  4  5  =>   // first frame: [1-5]
b) <=  1 {2} 3  4  5  =>
c) <=  1  2 {3} 4  5  =>
d) <=  1  2  3 {4} 5  =>
e) <=  1  2  3  4 {5} =>   // HERE IT JUMPS TO THE NEXT FRAME
f) <= {6} 7  8  9 10  =>   // second frame: [6-10]
g) <=  6 {7} 8  9 10  =>
h) <=  6  7 {8} 9 10  =>
といった具合です。 "ジャンプ型のウィンドウ" フレームが分かりますか？制限に達したとき （例では、5ページから6ページに移動したとき）、次のフレーム （6から10ページへのリンクがあります）に "ジャンプ" します。

"スライド型" ページャロジック

あるフレームから別のフレームにジャンプする代わりに、 ページャの "スライド" モードは、変更がスムーズに行われ、 現在のページは常に "ウィンドウ" の中央に表示されます （もちろん、最初と最後のページは例外です）。
a)       {1} 2  3  4  5  => [15]
b) [1] <= 1 {2} 3  4  5  => [15]
c) [1] <= 1  2 {3} 4  5  => [15]  // HERE IT's STARTING WORKING AS DESIGNED
d) [1] <= 2  3 {4} 5  6  => [15]  // see: current page number is at the center of the window
e) [1] <= 3  4 {5} 6  7  => [15]  // and it stays there...
f) [1] <= 4  5 {6} 7  8  => [15]
g) [1] <= 5  6 {7} 8  9  => [15]
h) [1] <= 6  7 {8} 9 10  => [15]
といった具合です。

その他の違い

異なる "哲学" は別として、 deltaパラメータに違いがあります。 "ジャンプ" モードの場合、表示するページ番号の数になります。 "スライド" モードの場合、 現在のページの前後に表示するページ番号の数になります。

前のページ | ホーム | 次のページ
導入 | 上に戻る | Pager::factory()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager::factory

PEAR マニュアル
前のページ 次のページ

Pager::factory()

Pager::factory() -- ページャのインスタンスを生成する

概要

require_once 'Pager/Pager.php';

object &factory (array $options)

パラメータ

Pager::factory()メソッドは、 入力値としてパラメータの連想配列を受け取ります。 これは、これらオプションの完全なリストです。

  • itemData [array]

    ページ付けするアイテムの配列を指定します。

  • totalItems [integer]

    ページ付けするアイテムの数を指定します （itemDataが指定されなかった場合のみ使用されます）。

  • perPage [integer]

    ページごとに表示するアイテムの数を指定します。

  • delta [integer]

    現在のページの前後に表示するページ番号の数を指定します。

  • mode [string]

    "ジャンプ型" あるいは "スライド型" ウィンドウを指定します。 ページャーの動作を決定します。

  • httpMethod [string]

    使用する HTTP メソッドを指定します。 有効な値は 'GET' または 'POST' です。

  • formID [string]

    POST モードで、どの HTML フォームを使用するかを指定します。

  • importQuery [boolean]

    もし true (デフォルトの振る舞い) ならば、 変数と値はサブミットされたデータ (クエリ文字列) からインポートされ、リンクの生成に使用されます。 または、全く無視されます。

  • currentPage [integer]

    初期ページ番号を指定します (もし、デフォルトで2ページ目を表示したい場合、 currentPage に2を指定します)

  • expanded [boolean]

    もしTRUEなら、ウィンドウサイズは常に 2*delta+1 となります。

  • linkClass [string]

    リンクスタイルのためのCSSクラス名を指定します。

  • urlVar [string]

    ページ番号を示すためのURL変数名を指定します。デフォルトは "pageID"。

  • path [string]

    ページへの絶対パス（ページ名は除く）を指定します。

  • fileName [string]

    ページの名前。もし、appendがTRUEなら、 "%d" が使用されます。

  • fixFileName [boolean]

    もし FALSE なら、オプション fileName は上書きされません。自己責任で使用してください。

  • append [boolean]

    もしTRUEなら、pageIDはGET値としてURLに追加されます。 もしFALSEなら、fileNameに従って、 URLに埋め込まれます。

  • altFirst [string]

    最初のページへのリンクに表示される alt 文を指定します。 デフォルト値は、"first page"。 もしページ番号の文字列としたい場合は、プレースホルダとして "%d" を使用してください ("page %d" のインスタンス)。

  • altPrev [string]

    前ページへのリンクに表示されるalt文を指定します。 デフォルト値は、"previous page"。

  • altNext [string]

    次ページへのリンクに表示されるalt文を指定します。 デフォルト値は、"next page"。

  • altLast [string]

    最後のページへのリンクに表示される alt 文を指定します。 デフォルト値は、"last page"。 もしページ番号の文字列としたい場合は、プレースホルダとして "%d" を使用してください ("page %d" のインスタンス)。

  • altPage [string]

    ページ番号の前に表示されるalt文を指定します。 デフォルトは、"page "。

  • prevImg [string]

    "<<"の代わりに表示する文字を指定します。 "<< PREV"や <img/>などが使えます。

  • nextImg [string]

    ">>"の代わりに表示する文字を指定します。 "NEXT >>"や <img/>などが使えます。

  • separator [string]

    ページ番号を分けるために使われる文字を指定します。 <img/>やコンマ、ハイフンなどが使えます。

  • spacesBeforeSeparator [integer]

    セパレータの前のスペースの数を指定します。

  • spacesAfterSeparator [integer]

    セパレータの後のスペースの数を指定します。

  • curPageLinkClassName [string]

    現在のページのリンクに使う CSS クラス名を指定します。

  • curPageSpanPre [string]

    現在のページのリンクの前のテキストを指定します。

  • curPageSpanPost [string]

    現在のページのリンクの後のテキストを指定します。

  • firstPagePre [string]

    最初のページ番号の前の文字を指定します。 <img/>や"{"、空文字などが使えます。

  • firstPageText [string]

    最初のページ番号の文字を指定します。

  • firstPagePost [string]

    最初のページ番号の後の文字を指定します。 <img/>や"{"、空文字などが使えます。

  • lastPagePre [string]

    firstPagePreと同様です。 ただし、最後のページ番号に対して使用されます。

  • lastPageText [string]

    firstPageTextと同様です。 ただし、最後のページ番号に対して使用されます。

  • lastPagePost [string]

    firstPagePostと同様です。 ただし、最後のページ番号に対して使用されます。

  • clearIfVoid [boolean]

    1ページしかない場合、ページャリンクを表示しない （空文字が返ります）かどうかを指定します。

  • useSessions [boolean]

    もしTRUEなら、ページごとに表示するアイテム数は、 $_SESSION[$_sessionVar] 変数にストアされます。

  • closeSession [boolean]

    もしTRUEなら、セッションはR/Wされた後にクローズされます。

  • sessionVar [string]

    perPageの値を格納するセッション変数名を指定します。 一つのページで複数のPagerインスタンスを使用する場合、 デフォルトと異なる値を指定します。

  • showAllText [string]

    generated by getPerPageSelectBox() getPerPageSelectBox() で生成されたセレクトボックスでの 'show all'オプションのために使用されるテキスト

  • pearErrorMode [constant]

    raiseError()でPEAR_ERRORモードを使用するかどうかを指定します。 デフォルトは、PEAR_ERROR_RETURN。

必要なオプション:

  • fileName： append==FALSE (デフォルトは、TRUE)の場合

  • itemDataあるいは totalItems (もし、itemDataがセットされている場合、totalItemsは上書きされます)

返り値

object - 固有のPager インスタンス あるいは、失敗した場合はPEAR_Error オブジェクトを返します。

前のページ | ホーム | 次のページ
Pagerの "ジャンプ型" 対 "スライド型" | 上に戻る | Pager::getCurrentPageID()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager::getCurrentPageID

PEAR マニュアル
前のページ 次のページ

Pager::getCurrentPageID()

Pager::getCurrentPageID() -- 現在のページ番号を返す

概要

require_once 'Pager/Pager.php';

integer getCurrentPageID ()

返り値

integer - 現在のページ番号

前のページ | ホーム | 次のページ
Pager::factory() | 上に戻る | Pager::getLinks()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager::getLinks

PEAR マニュアル
前のページ 次のページ

Pager::getLinks()

Pager::getLinks() -- 並び替えられた連想配列として、 戻る/次/最初/最後のリンクとページリンクを返す

概要

require_once 'Pager/Pager.php';

array Pager::getLinks ([integer $pageID = NULL])

パラメータ

  • integer $pageID - pageIDはオプションです。 もし指定された場合、そのページへのリンクは、 現在のページの代わりに提供されます。

返り値

return 並び替えられた連想配列として、 戻る/次/最初/最後のリンクとページリンクを返します。

前のページ | ホーム | 次のページ
Pager::getCurrentPageID() | 上に戻る | Pager::getNextPageID()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager::getNextPageID

PEAR マニュアル
前のページ 次のページ

Pager::getNextPageID()

Pager::getNextPageID() -- 次のページ番号を返す

概要

require_once 'Pager/Pager.php';

mixed Pager::getNextPageID ()

説明

もし、現在のページが最後のページの場合、この関数はFALSEを返します。 それ以外は、次のページ番号を返します。

返り値

return 次のページ番号、あるいはFALSEを返します。

前のページ | ホーム | 次のページ
Pager::getLinks() | 上に戻る | Pager::getOffsetByPageId()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager::getOffsetByPageId

PEAR マニュアル
前のページ 次のページ

Pager::getOffsetByPageId()

Pager::getOffsetByPageId() -- 与えられたpageIDのオフセットを返す

概要

require_once 'Pager/Pager.php';

array Pager::getOffsetByPageId ([integer $pageid = NULL])

説明

与えられたpageIDのオフセットを返します。 例えば、pageIDが1で、 perPage制限が10の場合、 (1, 10)を返します。 pageIDが2なら、(11, 20)となります。

もし、パラメータなしでメソッドが呼び出された場合、 pageIDはcurrentPageにセットされます。

パラメータ

  • integer $pageid - オフセットを取得するための PageID

返り値

return 最初と最後のオフセットが格納された配列を返します。

非推奨

非推奨

前のページ | ホーム | 次のページ
Pager::getNextPageID() | 上に戻る | Pager::getPageData()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager::getPageData

PEAR マニュアル
前のページ 次のページ

Pager::getPageData()

Pager::getPageData() -- 現在のページのデータの配列を返す

概要

require_once 'Pager/Pager.php';

array Pager::getPageData ([integer $pageID = NULL])

パラメータ

  • integer $pageID - 要求されたページID (オプション)

返り値

return 現在のページのデータの配列を返します。

前のページ | ホーム | 次のページ
Pager::getOffsetByPageId() | 上に戻る | Pager::getPageIdByOffset()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager::getPageIdByOffset

PEAR マニュアル
前のページ 次のページ

Pager::getPageIdByOffset()

Pager::getPageIdByOffset() -- 与えられたオフセットでのページ番号を返す

概要

require_once 'Pager/Pager.php';

array Pager_Sliding::getPageIdByOffset (integer $index)

説明

このメソッドは、"ジャンプ型"モードでのみ有効です。

パラメータ

  • integer $index - pageIDを得るためのオフセット

返り値

return このオフセットでのページ番号を返します。

前のページ | ホーム | 次のページ
Pager::getPageData() | 上に戻る | Pager::getPageRangeByPageId()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager::getPageRangeByPageId

PEAR マニュアル
前のページ 次のページ

Pager::getPageRangeByPageId()

Pager::getPageRangeByPageId() -- 与えられたpageIDのオフセットを返す

概要

require_once 'Pager/Pager.php';

array Pager::getPageRangeByPageId ([integer $pageid = NULL])

説明

PageIdを与えることで、表示されるページ範囲の制限を返します。 getOffsetByPageId()は、 現在のページにおけるオフセットのデータを返す上に、 このメソッドはページ番号区間のオフセットも返します。

例えば、"ジャンプ型"モードで、pageIdが3、 かつdeltaが10の場合、(1, 10)が返ります。 pageIDが8の場合、同様に(1, 10)が返ります。 なぜなら、1 <= 8 <= 10だからです。 pageIDの場合は、(11, 29)が返ります。

"スライド型"モードの場合、pageIdが5、 かつdeltaが2の場合、(3, 7)が返ります。 pageIDが9の場合、(4, 8)が返ります。

パラメータなしでメソッドが呼び出された場合、 pageIDはcurrentPageにセットされます。

パラメータ

  • integer $pageid - オフセットを得るためのPageID

返り値

return 最初と最後のオフセットの配列を返します。

前のページ | ホーム | 次のページ
Pager::getPageIdByOffset() | 上に戻る | Pager::getPreviousPageID()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager::getPerPageSelectBox

PEAR マニュアル
前のページ 次のページ

Pager::getPerPageSelectBox()

Pager::getPerPageSelectBox() -- ページごとにいくつずつ表示するかを選択するためのXHTMLのSELECTメニューの文字列を返す

概要

require_once 'Pager/Pager.php';

array Pager::getPerPageSelectBox ([integer $start = 5 [, integer $end = 30 [, integer $step = 5 [, boolean $showAllData = false [, string $optionText = '%d']]]]])

パラメータ

  • integer $start - ページごとのアイテム数の最小値 (オプション)

  • integer $end - ページごとのアイテム数の最大値 (オプション)

  • integer $step - 2つのオプションの増値 (オプション)

  • boolean $showAllData - もしtrueなら、 perPageはtotalItemsと同値になる (オプション)

  • array $extraParams (オプション)

    • 'optionText': それぞれのオプションに表示するテキスト。 選択されたページ数を表示したい場所に、'%d'を指定する。

    • 'attributes': (html attributes) タグの属性、あるいは HTML の属性 (id="foo" といった組み合わせ) で、<select> タグに挿入される。

    • 'checkMaxLimit': もしtrueなら、Pager は $end が $totalItems より大きいかどうかを調べ、余計な select オプションを表示しない。

説明

XHTMLのSELECTメニューの文字列を返します。これは、 ユーザーにページごとにいくつずつ表示するかを選択させのに役に立ちます。 もし、useSessionsがTRUEの場合、 この値はセッション変数にストアされます。文字列はechoされませんので、 テンプレートエンジンで利用することができます。

例

この例は、ユーザーにそれぞれのページで表示するアイテムの数を選択させる セレクトボックスをどの様に生成するかを示しています。
include 'Pager/Pager.php';

$params = array(
    'mode'       => 'Jumping',
    'perPage'    => 3,
    'delta'      => 2,
    'itemData'   => array('a','b','c','d','e',[...omissis...],'z')
);
$pager = & Pager::factory($params);

$selectBox = $pager->getPerPageSelectBox();

echo '<form action="' . htmlspecialchars($_SERVER['PHP_SELF']) . '" method="GET">';
echo $selectBox;
echo '<input type="submit" value="submit" />';
echo '</form>';

返り値

return XHTMLのセレクトメニューの文字列を返します。

前のページ | ホーム | 次のページ
Pager::getPreviousPageID() | 上に戻る | Pager::isFirstPage()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager::getPreviousPageID

PEAR マニュアル
前のページ 次のページ

Pager::getPreviousPageID()

Pager::getPreviousPageID() -- 前のページ番号を返す

概要

require_once 'Pager/Pager.php';

mixed Pager::getPreviousPageID ()

説明

もし、現在のページが最初のページの場合、この関数はFALSEを返します。 それ以外は、前のページ番号を返します。

返り値

return 前のページ番号、あるいはFALSEを返します。

前のページ | ホーム | 次のページ
Pager::getPageRangeByPageId() | 上に戻る | Pager::getPerPageSelectBox()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- Pager 2.xの使用方法

Pagerとは?

Pagerは、データの配列にページを付けるクラスです。 入力として受け取り、様々なパラメータによってページ付けを行います。 また、Pagerは、指定された範囲でリンクを生成し、 出力は完全にカスタマイズ可能です（たとえ、 mod_rewriteと併用していても動作します）。 Pager バージョン.1.xと Pager_SlidingのAPIには互換性があります。

例 1

この簡単な例は、アルファベット文字の配列を1ページあたり3文字ずつ ページ付けします。そして、前後2ページへのリンクを返します。
require_once 'Pager/Pager.php';
$params = array(
    'mode'       => 'Jumping',
    'perPage'    => 3,
    'delta'      => 2,
    'itemData'   => array('a','b','c','d','e',[...omissis...],'z')
);
$pager = & Pager::factory($params);
$data  = $pager->getPageData();
$links = $pager->getLinks();
//$links is an ordered+associative array with 'back'/'pages'/'next'/'first'/'last'/'all' links.
//NB: $links['all'] is the same as $pager->links;

//echo links to other pages:
echo $links['all'];

//Pager can also generate <link rel="first|prev|next|last"> tags
echo $pager->linkTags;

//Show data for current page:
echo 'PAGED DATA: ' ; print_r($data);

//Results from methods:
echo 'getCurrentPageID()...: '; var_dump($pager->getCurrentPageID());
echo 'getNextPageID()......: '; var_dump($pager->getNextPageID());
echo 'getPreviousPageID()..: '; var_dump($pager->getPreviousPageID());
echo 'numItems()...........: '; var_dump($pager->numItems());
echo 'numPages()...........: '; var_dump($pager->numPages());
echo 'isFirstPage()........: '; var_dump($pager->isFirstPage());
echo 'isLastPage().........: '; var_dump($pager->isLastPage());
echo 'isLastPageComplete().: '; var_dump($pager->isLastPageComplete());
echo '$pager->range........: '; var_dump($pager->range);
なぜ、$pager->rangeが配列になっているのか、疑問に思うかも知れません。 このキーは現在の範囲でのページ番号で、対応する値はブール型 （キーが現在のページを指しているのであればTRUE、その他はFALSE） です。 この配列は、手動でリンクを生成する際に有効です。 例えば、テンプレートエンジンを使用している場合です。

例 2

この例は、mod_rewriteを併用した場合、このクラスをどの様に使用するかを 示しています。 以下のような.htaccessがあるとします。
---------
RewriteEngine on
#Options FollowSymlinks

RewriteBase /
RewriteRule ^articles/([a-z]{1,12})/art([0-9]{1,4})\.html$ /article.php?num=$2&amp;month=$1 [L]
---------
これは、"/articles/march/art15.html"のようなURLを、 "/article.php?num=15&month=march"に変換します。

require_once 'Pager/Pager.php';

$month = 'september';
$params = array(
    'mode'      => 'Sliding',
    'append'    => false,
    'urlVar'    => 'num',
    'path'      => 'http://myserver.com/articles/' . $month,
    'fileName'  => 'art%d.html',  //Pager replaces "%d" with page number...
    'itemData'  => array('a','b','c',[...omissis...],'z'),
    'perPage'   => 3
);
$pager = & Pager::factory($params);

$data  = $pager->getPageData();
echo $pager->links;
echo 'Data for current page: '; print_r($data);

単一ページ内の複数のページャ

単一ページ内で一つ以上のページャを使用するには、 それぞれのページャに異なるurlVar を指定するだけです。
require_once 'Pager/Pager.php';

//first pager
$params1 = array(
    'perPage'    => 3,
    'urlVar'     => pageID_articles,  //1st identifier
    'itemData'   => $someArray
);
$pager1 = & Pager::factory($params1);
$data1  = $pager1->getPageData();
$links1 = $pager1->getLinks();

//second pager
$params2 = array(
    'perPage'    => 8,
    'urlVar'     => pageID_news,      //2nd identifier
    'itemData'   => $someOtherArray
);
$pager2 = & Pager::factory($params2);
$data2  = $pager2->getPageData();
$links2 = $pager2->getLinks();

Pager と巨大な DB 結果セット

もし DB 結果セットにページ番号を付けたい場合、 配列に全ての結果をフェッチし Pager に渡すことは、 最良のオプションではないかも知れません。Pager にてこ入れし、ラッパーを使用することで良いパフォーマンスを得ることが できます。パッケージの /docs/examples/ ディレクトリに、PEAR DB 抽象システムのサンプルラッパーがあります。 これはそのまま、もしくは必要に応じてカスタマイズして使用できます。

クエリ文字列に変数を追加する

クエリ文字列にいくつかの変数を追加する必要がある場合、 extraVars パラメータを使用します。
$params = array(
    'extraVars' => array(
        'firstKey'  => 'firstValue',
        'secondKey' => 'secondValue',
        //...
    ),
    //...
);
$pager1 = & Pager::factory($params);

PHP 5ユーザのための重要事項

バージョン2.2.1から、PagerはPHP 5でも動作します。 しかし、コンストラクタ (非推奨) の代わりに factory()メソッドを使用する必要があります。
require_once 'Pager/Pager.php';

//wrong:
//$pager =& new Pager($params);

//right
$pager =& Pager::factory($params);

//continue as you did before

もし、以前のバージョンを使用しており更新することができないのであれば、 PHP 5では以下のようなコードに書き換える必要があります。
//chose your preferred mode [Jumping | Sliding]:

//require_once 'Pager/Jumping.php';
require_once 'Pager/Sliding.php';

//$pager =& new Pager_Jumping($params);
$pager =& new Pager_Sliding($params);

//continue as you did before

ページャのチュートリアル

Pager でできることについて、 より踏み込んで取り上げたオンラインリソースがあります。 PEAR::Pager のチュートリアルです。

  • データベースの結果を効率よくページ化する方法

  • Pager と mod_rewrite で美しいリンクを作成する方法

  • Pager と AJAX (あるいはシンプルな Javascript) を使用したナビゲーション

  • 記事のページ化、あるいは Pager を使用して段落ごとにページを分ける方法

前のページ | ホーム | 次のページ
Pager | 上に戻る | Pagerの "ジャンプ型" 対 "スライド型"

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager::isFirstPage

PEAR マニュアル
前のページ 次のページ

Pager::isFirstPage()

Pager::isFirstPage() -- 現在のページが最初のページかどうかを返す

概要

require_once 'Pager/Pager.php';

bool Pager::isFirstPage ()

返り値

return TRUEまたはFALSE、つまり、 最初のページかどうかを返します。

前のページ | ホーム | 次のページ
Pager::getPerPageSelectBox() | 上に戻る | Pager::isLastPage()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager::isLastPage

PEAR マニュアル
前のページ 次のページ

Pager::isLastPage()

Pager::isLastPage() -- 現在のページが最後のページかどうかを返す

概要

require_once 'Pager/Pager.php';

bool Pager::isLastPage ()

返り値

return TRUEまたはFALSE、つまり、 最後のページかどうかを返します。

前のページ | ホーム | 次のページ
Pager::isFirstPage() | 上に戻る | Pager::isLastPageComplete()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager::isLastPageComplete

PEAR マニュアル
前のページ 次のページ

Pager::isLastPageComplete()

Pager::isLastPageComplete() -- 最後のページが完了したかどうかを返す

概要

require_once 'Pager/Pager.php';

bool Pager::isLastPageComplete ()

返り値

return TRUEまたはFALSE、つまり、 最後のページが完了したかどうかを返します (例えば、perPageの値が、 最後のページのための配列に含まれているかどうか)

前のページ | ホーム | 次のページ
Pager::isLastPage() | 上に戻る | Pager::numItems()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager::numItems

PEAR マニュアル
前のページ 次のページ

Pager::numItems()

Pager::numItems() -- アイテム数を返す

概要

require_once 'Pager/Pager.php';

int Pager_Sliding::numItems ()

返り値

return integer - アイテムの数を返します。

前のページ | ホーム | 次のページ
Pager::isLastPageComplete() | 上に戻る | Pager::numPages()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager::numPages

PEAR マニュアル
前のページ 次のページ

Pager::numPages()

Pager::numPages() -- ページ数を返す

概要

require_once 'Pager/Pager.php';

int Pager_Sliding::numPages ()

返り値

return integer - ページ数を返します。

前のページ | ホーム | 次のページ
Pager::numItems() | 上に戻る | Pager::Pager()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Pager::Pager

PEAR マニュアル
前のページ 次のページ

Pager::Pager()

Pager::Pager() -- ページャのインスタンスを生成する

概要

require_once 'Pager/Pager.php';

object &Pager (array $options)

非推奨

コンストラクタは非推奨となっており、 PHP5との互換性のためにも、 新しいfactory()メソッドを使用してください。

パラメータ

Pager コンストラクタは、 引数としてパラメータの連想配列を1つ受け取ります。 以下は、これらオプションの完全なリストです:

  • itemData [array]

    ページ付けするアイテムの配列を指定します。

  • totalItems [integer]

    ページ付けするアイテムの数を指定します （itemDataが指定されなかった場合のみ使用されます）。

  • perPage [integer]

    ページごとに表示するアイテムの数を指定します。

  • delta [integer]

    現在のページの前後に表示するページ番号の数を指定します。

  • mode [string]

    "ジャンプ型" あるいは "スライド型" ウィンドウを指定します。 ページャーの動作を決定します。

  • expanded [boolean]

    もしTRUEなら、ウィンドウサイズは常に 2*delta+1 となります。

  • linkClass [string]

    リンクスタイルのためのCSSクラス名を指定します。

  • urlVar [string]

    ページ番号を示すためのURL変数名を指定します。デフォルトは "pageID"。

  • path [string]

    ページへの絶対パス（ページ名は除く）を指定します。

  • fileName [string]

    ページの名前。もし、appendがTRUEなら、 "%d" が使用されます。

  • append [boolean]

    もしTRUEなら、pageIDはGET値としてURLに追加されます。 もしFALSEなら、fileNameに従って、 URLに埋め込まれます。

  • altPrev [string]

    前ページへのリンクに表示されるalt文を指定します。 デフォルト値は、"previous page"。

  • altNext [string]

    次ページへのリンクに表示されるalt文を指定します。 デフォルト値は、"next page"。

  • altPage [string]

    ページ番号の前に表示されるalt文を指定します。 デフォルトは、"page "。

  • prevImg [string]

    "<<"の代わりに表示する文字を指定します。 "<< PREV"や <img/>などが使えます。

  • nextImg [string]

    ">>"の代わりに表示する文字を指定します。 "NEXT >>"や <img/>などが使えます。

  • separator [string]

    ページ番号を分けるために使われる文字を指定します。 <img/>やコンマ、ハイフンなどが使えます。

  • spacesBeforeSeparator [integer]

    セパレータの前のスペースの数を指定します。

  • spacesAfterSeparator [integer]

    セパレータの後のスペースの数を指定します。

  • firstPagePre [string]

    最初のページ番号の前の文字を指定します。 <img/>や"{"、空文字などが使えます。

  • firstPageText [string]

    最初のページ番号の文字を指定します。

  • firstPagePost [string]

    最初のページ番号の後の文字を指定します。 <img/>や"{"、空文字などが使えます。

  • lastPagePre [string]

    firstPagePreと同様です。 ただし、最後のページ番号に対して使用されます。

  • lastPageText [string]

    firstPageTextと同様です。 ただし、最後のページ番号に対して使用されます。

  • lastPagePost [string]

    firstPagePostと同様です。 ただし、最後のページ番号に対して使用されます。

  • curPageLinkClassName [string]

    現在のページのリンクに使うCSSクラス名を指定します。

  • clearIfVoid [boolean]

    1ページしかない場合、ページャを表示しない （空文字が返ります）かどうかを指定します。

  • useSessions [boolean]

    もしTRUEなら、ページごとに表示するアイテム数は、 $_SESSION[$_sessionVar] 変数にストアされます。

  • closeSession [boolean]

    もしTRUEなら、セッションはR/Wされた後にクローズされます。

  • sessionVar [string]

    perPageの値を格納するセッション変数名を指定します。 一つのページで複数のPagerインスタンスを使用する場合、 デフォルトと異なる値を指定します。

  • pearErrorMode [constant]

    raiseError()でPEAR_ERRORモードを使用するかどうかを指定します。 デフォルトは、PEAR_ERROR_RETURN。

必要なオプション:

  • fileName： append==FALSE (デフォルトは、TRUE)の場合

  • itemDataあるいは totalItems (もし、itemDataがセットされている場合、totalItemsは上書きされます)

返り値

object - 固有のPager インスタンス あるいは、失敗した場合、PEAR_Errorオブジェクトを返します。

前のページ | ホーム | 次のページ
Pager::numPages() | 上に戻る | Pager_Sliding

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP

目次
HTTP::Date -- 日付の書式
HTTP::head -- "HEAD"コマンドの送信
HTTP::negotiateLanguage -- ユーザのブラウザーと言語を協定する
HTTP::redirect -- クライアントをリダイレクトする

Hyper-Text-Transfer-Protocolに関連した、 有用な静的関数セットを提供します。

前のページ | ホーム | 次のページ
HTTP | 上に戻る | HTTP::Date

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Client

目次
HTTP_Client クラス概要 -- シンプルな HTTP クライアントクラス
HTTP_Client::HTTP_Client() のコンストラクタ -- コンストラクタ
HTTP_Client::attach() -- オブジェクトのイベントが通知されるリスナーのリストに Listener を追加する
HTTP_Client::currentResponse() -- 直近の HTTP レスポンスを返す
HTTP_Client::detach() -- リスナーのリストから Listener を削除する
HTTP_Client::get() -- 'GET' HTTP リクエストを送出する
HTTP_Client::head() -- 'HEAD' HTTP リクエストを送出する
HTTP_Client::post() -- 'POST' HTTP リクエストを送出する
HTTP_Client::reset() -- オブジェクトの内部プロパティーをクリアする
HTTP_Client::setDefaultHeader() -- HTTP リクエストでのデフォルトヘッダをセットする
HTTP_Client::setMaxRedirects() -- 処理されるリダイレクトの最大数をセットする
HTTP_Client::setRequestParameter() -- HTTP リクエストでのパラメータをセットする
HTTP_Client_CookieManager クラス概要 -- クッキーをストアし、HTTP リクエストにクッキーを渡す
HTTP_Client_CookieManager::HTTP_Client_CookieManager() のコンストラクタ -- コンストラクタ
HTTP_Client_CookieManager::addCookie() -- 明示的にリストにクッキーを追加する
HTTP_Client_CookieManager::passCookies() -- リクエストにクッキーを追加する
HTTP_Client_CookieManager::reset() -- クッキーのリストをクリアする
HTTP_Client_CookieManager::updateCookies() -- HTTP サーバのレスポンスからクッキーのリストを更新する
前のページ | ホーム | 次のページ
HTTP::redirect | 上に戻る | HTTP_Client クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Client_CookieManager クラス概要

HTTP_Client_CookieManager クラス概要 -- クッキーをストアし、HTTP リクエストにクッキーを渡す

HTTP_Client_CookieManager

クッキーをストアし、HTTP リクエストにストアしたクッキーを渡します。 このクラスは HTTP_Client パッケージの一部となっていますが、 別々に使用することも 可能です。

HTTP_Client_CookieManager のクラスツリー

  • HTTP_Client_CookieManager

前のページ | ホーム | 次のページ
HTTP_Client::setRequestParameter() | 上に戻る | HTTP_Client_CookieManager::HTTP_Client_CookieManager() のコンストラクタ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Client_CookieManager::addCookie()

HTTP_Client_CookieManager::addCookie() -- 明示的にリストにクッキーを追加する

概要

require_once 'ClientCookieManager.php';

void HTTP_Client_CookieManager::addCookie (array $cookie)

説明

このパッケージに関する文書は、未作成です。

パラメータ

array $cookie

配列で表現されたクッキーを指定します。この関数は、全ての配列のフィールド('name', 'value', 'domain', 'path', 'expires', 'secure')がセットされていることを期待しています。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Client_CookieManager::HTTP_Client_CookieManager() のコンストラクタ | 上に戻る | HTTP_Client_CookieManager::passCookies()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Client_CookieManager::HTTP_Client_CookieManager() のコンストラクタ

HTTP_Client_CookieManager::HTTP_Client_CookieManager() のコンストラクタ -- コンストラクタ

概要

require_once 'HTTP/Client/CookieManager.php';

void constructor HTTP_Client_CookieManager::HTTP_Client_CookieManager ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Client_CookieManager クラス概要 | 上に戻る | HTTP_Client_CookieManager::addCookie()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Client_CookieManager::passCookies()

HTTP_Client_CookieManager::passCookies() -- リクエストにクッキーを追加する

概要

require_once 'HTTP/Client/CookieManager.php';

void HTTP_Client_CookieManager::passCookies (object An &$request)

説明

このメソッドは、リクエストと共に送出される べき クッキーのみを送出します。 また、それらを正しい順序で追加します。

パラメータ

object HTTP_Request &$request

HTTP_Request オブジェクトを指定します。

例外・エラー

throws 投げられる例外はありません。

参照

updateCookies(), addCookie() も参照してください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Client_CookieManager::addCookie() | 上に戻る | HTTP_Client_CookieManager::reset()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Client_CookieManager::reset()

HTTP_Client_CookieManager::reset() -- クッキーのリストをクリアする

概要

require_once 'HTTP/Client/CookieManager.php';

void HTTP_Client_CookieManager::reset ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Client_CookieManager::passCookies() | 上に戻る | HTTP_Client_CookieManager::updateCookies()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Client_CookieManager::updateCookies()

HTTP_Client_CookieManager::updateCookies() -- HTTP サーバのレスポンスからクッキーのリストを更新する

概要

require_once 'HTTP/Client/CookieManager.php';

void HTTP_Client_CookieManager::updateCookies (object HTTP_Request &$request)

説明

このメソッドは、HTTP_Request インスタンスから提供される HTTP レスポンスからクッキーを取得し、 オブジェクトの内部リストに追加します。

パラメータ

object HTTP_Request &$request

HTTP レスポンスが保持している HTTP_Request オブジェクト。 例えば、sendRequest() は、すでにコールされているべきです。

例外・エラー

throws 投げられる例外はありません。

参照

passCookies(), addCookie() も参照してください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Client_CookieManager::reset() | 上に戻る | HTTP_Download

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Client クラス概要

HTTP_Client クラス概要 -- シンプルな HTTP クライアントクラス

HTTP_Client

シンプルな HTTP クライアントクラスです。 このクラスは、HTTP_Request をラップしており、 多様な HTTP リクエストを処理することができる高レベルの API を持っています。 HTTP リダイレクトやクッキーのストア、リファラのセットなどを行うことができます。

HTTP_Client のクラスツリー

  • HTTP_Client

前のページ | ホーム | 次のページ
HTTP_Client | 上に戻る | HTTP_Client::HTTP_Client() のコンストラクタ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Client::attach()

HTTP_Client::attach() -- オブジェクトのイベントが通知されるリスナーのリストに Listener を追加する

概要

require_once 'HTTP/Client.php';

boolean HTTP_Client::attach (object HTTP_Request_Listener &$listener [, boolean $propagate = FALSE])

説明

追加されたリスナーには、以下のイベントが通知されます。

'request'

それ以前のリダイレクトの結果ではない HTTP リクエストの前に送出されます。

'httpSuccess'

成功を表す 2xx レスポンス（リダイレクトではない、 またはリダイレクト処理が無効の場合、3xx レスポンス） を受け取った場合に送出されます。

'httpRedirect'

3xx リダイレクトレスポンスを受信したとき、 リダイレクトの前に送出されます。

'httpError'

4xx, 5xx レスポンスの場合に送出されます。

もし、$propagate が TRUE ならば、 リスナーは生成された HTTP_Request オブジェクトに関連付けられ、それらのイベントが通知されます。

パラメータ

object HTTP_Request_Listener &$listener

追加するリスナーインスタンスを指定します。

boolean $propagate

Whether the listener should be attached to the created HTTP_Request objects リスナーが生成された HTTP_Request オブジェクトを帰属させるべきかどうかを指定します。

返り値

returns リスナーが正常に追加されたかどうか

例外・エラー

throws 投げられる例外はありません。

参照

detach() も参照してください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Client::HTTP_Client() のコンストラクタ | 上に戻る | HTTP_Client::currentResponse()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Client::currentResponse()

HTTP_Client::currentResponse() -- 直近の HTTP レスポンスを返す

概要

require_once 'HTTP/Client.php';

array& HTTP_Client::currentResponse ()

説明

返される配列は、次のキーを持っています: 'code', 'headers', 'body'.

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Client::attach() | 上に戻る | HTTP_Client::detach()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Client::detach()

HTTP_Client::detach() -- リスナーのリストから Listener を削除する

概要

require_once 'HTTP/Client.php';

boolean HTTP_Client::detach (object HTTP_Request_Listener &$listener)

説明

このパッケージに関する文書は、未作成です。

パラメータ

object HTTP_Request_Listener &$listener

取り外すリスナーインスタンスを指定します。

返り値

returns リスナーが正常に取り外されたかどうか

例外・エラー

throws 投げられる例外はありません。

参照

attach() も参照してください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Client::currentResponse() | 上に戻る | HTTP_Client::get()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Client::get()

HTTP_Client::get() -- 'GET' HTTP リクエストを送出する

概要

require_once 'HTTP/Client.php';

integer HTTP_Client::get (string $url [, mixed $data = NULL [, boolean $preEncoded = FALSE]])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $url

URL を指定します。

mixed $data

送出する付加的なデータを指定します。

boolean $preEncoded

データがすでに urlencode されているかどうかを指定します。

返り値

returns HTTP レスポンスコード

例外・エラー

throws PEAR_Error

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Client::detach() | 上に戻る | HTTP_Client::head()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Client::head()

HTTP_Client::head() -- 'HEAD' HTTP リクエストを送出する

概要

require_once 'HTTP/Client.php';

integer HTTP_Client::head (string $url)

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $url

URL を指定します。

返り値

returns HTTP レスポンスコード

例外・エラー

throws PEAR_Error

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Client::get() | 上に戻る | HTTP_Client::post()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Client::HTTP_Client() のコンストラクタ

HTTP_Client::HTTP_Client() のコンストラクタ -- コンストラクタ

概要

require_once 'HTTP/Client.php';

void constructor HTTP_Client::HTTP_Client ([array $defaultRequestParams = NULL [, array $defaultHeaders = NULL]])

説明

デフォルトのリクエストパラメータとヘッダをセットします。

パラメータ

array $defaultRequestParams

HTTP_Request のコンストラクタに渡すための パラメータを指定します。

array $defaultHeaders

全てのリクエストで送信するデフォルトのヘッダを指定します。

例外・エラー

throws 投げられる例外はありません。

参照

setDefaultHeader(), setRequestParameter() も参照してください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Client クラス概要 | 上に戻る | HTTP_Client::attach()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Client::post()

HTTP_Client::post() -- 'POST' HTTP リクエストを送出する

概要

require_once 'HTTP/Client.php';

integer HTTP_Client::post (string $url, mixed $data [, boolean $preEncoded = FALSE [, array $files = array()]])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $url

URL を指定します。

mixed $data

送出するデータを指定します。

boolean $preEncoded

データがすでに urlencode されているかどうかを指定します。

array $files

アップロードするファイルを指定します。配列の要素は、 以下の形態であるべきです: array(name, filename(s)[, content type])。 HTTP_Request::addFile() を参照してください。

返り値

returns HTTP レスポンスコード

例外・エラー

throws PEAR_Error

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Client::head() | 上に戻る | HTTP_Client::reset()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Client::reset()

HTTP_Client::reset() -- オブジェクトの内部プロパティーをクリアする

概要

require_once 'HTTP/Client.php';

void HTTP_Client::reset ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Client::post() | 上に戻る | HTTP_Client::setDefaultHeader()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Client::setDefaultHeader()

HTTP_Client::setDefaultHeader() -- HTTP リクエストでのデフォルトヘッダをセットする

概要

require_once 'HTTP/Client.php';

void HTTP_Client::setDefaultHeader (mixed $name [, string $value = NULL])

説明

これらは、生成された全ての HTTP_Request オブジェクトによって送出される標準的な HTTP ヘッダです。

パラメータ

mixed $name

ヘッダ名、あるいは配列 ('ヘッダ名' => 'ヘッダ値') を指定します。

string $value

$nameが配列でない場合、ヘッダ値を指定します。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Client::reset() | 上に戻る | HTTP_Client::setMaxRedirects()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Client::setMaxRedirects()

HTTP_Client::setMaxRedirects() -- 処理されるリダイレクトの最大数をセットする

概要

require_once 'HTTP/Client.php';

void HTTP_Client::setMaxRedirects (int $value)

説明

この値を 0 にセットすると、リダイレクト処理を無効にします。 もし、0 ではなくリクエスト後のリダイレクト数がこの数値より大きい場合、 エラーが発生します。

パラメータ

integer $value

処理するリダイレクトの最大数を指定します。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Client::setDefaultHeader() | 上に戻る | HTTP_Client::setRequestParameter()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Client::setRequestParameter()

HTTP_Client::setRequestParameter() -- HTTP リクエストでのパラメータをセットする

概要

require_once 'HTTP/Client.php';

void HTTP_Client::setRequestParameter (mixed $name [, string $value = NULL])

説明

これらのパラメータは、生成される HTTP_Request インスタンスのコンストラクタに渡されます。

パラメータ

mixed $name

パラメータ名、あるいは配列 ('パラメータ名' => 'パラメータ値') を指定します。

string $value

$name が配列でない場合、パラメータ値を指定します。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Client::setMaxRedirects() | 上に戻る | HTTP_Client_CookieManager クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Download

目次
導入 -- HTTP_Download の使用方法
HTTP_Download::HTTP_Download() -- コンストラクタ
HTTP_Download::setParams() -- 様々なパラメータをセットする
HTTP_Download::setFile() -- ファイルパスをセットする
HTTP_Download::setData() -- 生データをセットする
HTTP_Download::setResource() -- ダウンロードのためのリソースをセットする
HTTP_Download::setGzip() -- オンザフライで gzip 圧縮するかどうか (ext/zlib が必要)
HTTP_Download::setCache() -- クライアント側でダウンロードしたものをキャッシュさせるかどうか
HTTP_Download::setCacheControl() -- キャッシュのプライバシーと妥当性を制御する
HTTP_Download::setBufferSize() -- バッファサイズをバイト数でセットする
HTTP_Download::setThrottleDelay() -- スロットル遅延を秒でセットする
HTTP_Download::setContentType() -- Content-type をセットする
HTTP_Download::setLastModified() -- "Last-Modified" をセットします
HTTP_Download::setContentDisposition() -- Content-disposition をセットする
HTTP_Download::guessContentType() -- ファイルの Content-type を推測する
HTTP_Download::send() -- ファイルを送出する
HTTP_Download::staticSend() -- スタティックな送出
HTTP_Download::sendArchive() -- オンザフライで生成されたアーカイブを送出する

HTTP経由でダウンロードするものを送出します

前のページ | ホーム | 次のページ
HTTP_Client_CookieManager::updateCookies() | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Download::guessContentType

PEAR マニュアル
前のページ 次のページ

HTTP_Download::guessContentType()

HTTP_Download::guessContentType() -- ファイルの Content-type を推測する

概要

mixed HTTP_Download::guessContentType ()

説明

ファイルを送出する場合にのみ使用してください。

まず MIME_Type を利用しようと試みます。 インストールされていればコンテントタイプを検出するために使用します。 その他の場合、ext/magic.mime がロードされており 正しく設定されているかどうかをチェックします。

もし以下の場合 PEAR_Error を返します。

MIME_Type が適切なコンテントタイプの検出に失敗した (HTTP_DOWNLOAD_E_INVALID_CONTENT_TYPE)
ext/magic.mime がインストールされていない、もしくは正しく設定されていない (HTTP_DOWNLOAD_E_NO_EXT_MMAGIC)
mime_content_type() がコンテントタイプを推測できない、 もしくは返されたコンテントタイプが setContentType() によって本物ではないと 見なされた (HTTP_DOWNLOAD_E_INVALID_CONTENT_TYPE)

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Download::setContentDisposition() | 上に戻る | HTTP_Download::send()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Download::HTTP_Download

PEAR マニュアル
前のページ 次のページ

HTTP_Download::HTTP_Download()

HTTP_Download::HTTP_Download() -- コンストラクタ

概要

require_once 'HTTP/Download.php';

object new HTTP_Download ([array $params = array()])

説明

HTTP_Download オブジェクトのインスタンスを生成し、 提供されるパラメータをセットします。

パラメータ

  • array $params - パラメータの連想配列:

    • 次のうちの一つ:

      • $params['file'] - ファイルパスを指定します。

      • $params['data'] - 生データを指定します。

      • $params['resource'] - リソースハンドルを指定します。

    • さらに、次のいくつか:

      • $params['gzip'] - gzip ダウンロードを行うかどうかを指定します。

      • $params['cache'] - ダウンロードするものをクライアント側に キャッシュさせるかどうかを指定します。

      • $params['lastmodified'] - 最終更新日時の UNIX タイムスタンプを指定します。

      • $params['contenttype'] - Content-type を指定します。

      • $params['contentdisposition'] - Content-disposition を指定します。

      • $params['buffersize'] - ファイルやリソースから 一度に読み込むバイト数を指定します。

      • $params['throttledelay'] - 各チャンク送出後の停止秒数を指定します。

      • $params['cachecontrol'] - キャッシュのプライバシーと妥当性を指定します。

参照

setFile(),
setData(),
setResource(),
setGzip(),
setCache(),
setContentType(),
setLastModified(),
setContentDisposition(),
setBufferSize(),
setThrottleDelay(),
setCacheControl(),
setParams().
も参照してください。

前のページ | ホーム | 次のページ
導入 | 上に戻る | HTTP_Download::setParams()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- HTTP_Download の使用方法

導入

HTTP_Download は HTTP クライアントに 任意のデータを簡単に送出するためのインターフェースを提供します。 HTTP_Download はそれらのデータを変数、 ファイルあるいはストリームリソースから取得することができます。

このパッケージを使用することで、 （隠された）ダウンロードを簡単にハンドリングする事ができます。 「隠された」とは、誰もアクセスできない、という意味です。 たとえば、特別なダウンロードするものを制限したい場合です。 これは、HTTP 圧縮、キャッシング、そして部分的なダウンロード、 レジューム、そして、たとえばデータベースの BLOB からの生データの送信をサポートします。

注意: このパッケージと一緒に php.ini で ob_gzhandler や zlib.output_compression を有効にして使用するべきではありません。 特に、すでに gzip 圧縮されたデータを送出する場合です。

使用例:

以下の例を見てください:

例 42-1静的な送出:

1  $params = array(
2   'file'                => '../hidden/download.tgz',
3   'contenttype'         => 'application/x-gzip',
4   'contentdisposition'  => array(HTTP_DOWNLOAD_ATTACHMENT, 'latest.tgz'),
5  );
6
7  $error = HTTP_Download::staticSend($params, false);

例 42-2隠されたファイルの送出:

1  $dl = &new HTTP_Download();
2  $dl->setFile('../hidden/download.tgz');
3  $dl->setContentDisposition(HTTP_DOWNLOAD_ATTACHMENT, 'latest.tgz');
4  // with ext/magic.mime
5  // $dl->guessContentType();
6  // else:
7  $dl->setContentType('application/x-gzip');
8  $dl->send();

例 42-3任意データの送出:

1  $dl = &new HTTP_Download();
2  $dl->setData($data);
3  $dl->setLastModified($unix_timestamp);
4  $dl->setContentType('application/x-gzip');
5  $dl->setContentDisposition(HTTP_DOWNLOAD_ATTACHMENT, 'latest.tgz');
6  $dl->send();

例 42-4帯域幅の制限:

1  $dl = &new HTTP_Download();
2  $dl->setFile('huge_file.bin');
3  $dl->setBufferSize(25 * 1024); // 25 K
4  $dl->setThrottleDelay(1);   // 1 sec
5  $dl->send();

例 42-5PostgreSQL LOB の送出:

1  require_once 'HTTP/Download.php';
2  require_once 'HTTP/Download/PgLOB.php';
3  $dl = &new HTTP_Download();
4  $dl->setResource(
5    HTTP_Download_PgLOB::open(pg_connect('dbname=lobs'), 12345));
6  $dl->send();
前のページ | ホーム | 次のページ
HTTP_Download | 上に戻る | HTTP_Download::HTTP_Download()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Download::send

PEAR マニュアル
前のページ 次のページ

HTTP_Download::send()

HTTP_Download::send() -- ファイルを送出する

概要

mixed HTTP_Download::send (bool [$autoSetContentDisposition = true])

説明

ダウンロードするものを送出します。

以下の場合に PEAR_Error が返されます:

  • HTTP ヘッダがすでに送出されている

  • HTTP Range が正しくない

パラメータ

  • bool [$autoSetContentDisposition = true] - HTTP_DOWNLOAD_ATTACHMENT ヘッダに Content-Disposition がセットされていない場合、自動的にセットするかどうかを指定します。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Download::guessContentType() | 上に戻る | HTTP_Download::staticSend()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Download::sendArchive

PEAR マニュアル
前のページ 次のページ

HTTP_Download::sendArchive()

HTTP_Download::sendArchive() -- オンザフライで生成されたアーカイブを送出する

概要

mixed HTTP_Download::sendArchive (string $name, mixed $files, string [$type = HTTP_DOWNLOAD_TGZ], string [$add_path = ''], string [$strip_path = ''])

説明

Archive_Tar もしくは Archive_Zip によってオンザフライで生成されたアーカイブを送出します。

パラメータ $files は、 ファイルもしくはディレクトリの配列、あるいは、 アーカイブに格納されるべきファイルもしくはディレクトリをスペースで 区切った文字列を指定できます。

パラメータ $type は以下のいずれかです。 HTTP_DOWNLOAD_TAR, HTTP_DOWNLOAD_TGZ, HTTP_DOWNLOAD_BZ2 もしくは HTTP_DOWNLOAD_ZIP 。

注意 このメソッドの仕様は推奨されません。 代わりに HTTP_Download_Archive::send() を使用してください。

パラメータ

  • string $name - アーカイブが持つべき名前を指定します。

  • mixed $files - ファイルもしくはディレクトリのリストを指定します。

  • string [$type = HTTP_DOWNLOAD_TGZ] - アーカイブのフォーマット (TAR, TGZ, BZ2 または ZIP) を指定します。

  • string [$add_path = ''] - ファイルの前に追加するパスを指定します。

  • string [$strip_path = ''] - ファイルから外すべきパスを指定します。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
HTTP_Download::staticSend() | 上に戻る | HTTP_Request

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Download::setBufferSize

PEAR マニュアル
前のページ 次のページ

HTTP_Download::setBufferSize()

HTTP_Download::setBufferSize() -- バッファサイズをバイト数でセットする

概要

mixed HTTP_Download::setBufferSize (int [$size = 2097152])

説明

バッファサイズとして指定されたバイト数は、 リソースやファイルから一度に読み込むデータの最大量です。 デフォルトのサイズは、2M (2097152 バイト) です。

gzip 圧縮が有効で非常に小さいバッファサイズをセットした場合、 指定されたサイズの各チャンクに gzip ヘッダが追加されるので、 実際のファイルサイズは大きくなるかも知れないことに注意してください。

もし、$size が 0 バイトより大きくない場合、 PEAR_Error (HTTP_DOWNLOAD_E_INVALID_PARAM) が返されます。

パラメータ

  • int [$size = 2097152] - バッファのバイト数を指定します。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Download::setCacheControl() | 上に戻る | HTTP_Download::setThrottleDelay()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Download::setCache

PEAR マニュアル
前のページ 次のページ

HTTP_Download::setCache()

HTTP_Download::setCache() -- クライアント側でダウンロードしたものをキャッシュさせるかどうか

概要

void HTTP_Download::setCache (bool [$cache = true])

説明

クライアント側でダウンロードしたものをキャッシュさせるかどうかを 定義します。

もし、true (デフォルトです)をセットした場合、 HTTP_Download は Cache-Control、Last-Modified、そして ETag のようなキャッシュ用ヘッダを送出します。

パラメータ

  • bool [$cache = true] - ダウンロードしたものをキャッシュさせるかどうかを指定します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Download::setGzip() | 上に戻る | HTTP_Download::setCacheControl()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Download::setCacheControl

PEAR マニュアル
前のページ 次のページ

HTTP_Download::setCacheControl()

HTTP_Download::setCacheControl() -- キャッシュのプライバシーと妥当性を制御する

概要

void HTTP_Download::setCacheControl (string [$cache = "public"], int [$maxage = 0])

説明

Cache-Control ヘッダの内容を定義します。

もし "public" に設定された場合、 プロキシはレスポンスをキャッシュするよう通知されます。 もし "private" に設定された場合、プロキシはキャッシュしないよう 通知されます。

maxage パラメータは、エンティティがキャッシュされるよう提案された場合の 秒数を制御します。多くのユーザエージェントは指定された期間中は 同じリソースを要求するリクエストを送信しません。

パラメータ

  • string [$cache = "public"] - プロキシでのキャッシュを許可するかどうかを指定します。

  • int [$maxage = 0] - キャッシュされたエンティティの最大の寿命を指定します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Download::setCache() | 上に戻る | HTTP_Download::setBufferSize()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Download::setContentDisposition

PEAR マニュアル
前のページ 次のページ

HTTP_Download::setContentDisposition()

HTTP_Download::setContentDisposition() -- Content-disposition をセットする

概要

void HTTP_Download::setContentDisposition (string [$disposition = HTTP_DOWNLOAD_ATTACHMENT], string [$file_name = null])

説明

ダウンロードするものの Content-disposition をセットします。

"Content-Disposition" は HTTP の仕様ではありませんが、 ほとんどのブラウザでこのヘッダをサポートしていますので、 MIME 標準から借りてきました。 このような感じです: "Content-Disposition: attachment; filename=example.tgz".

パラメータ

  • string [$disposition = HTTP_DOWNLOAD_ATTACHMENT] - ダウンロードするもの ('attachment' あるいは 'inline') のディスポジションを指定します。

  • string [$file_name = null] - ブラウザのダウンロードウィンドウで表示されるファイル名を 指定します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Download::setLastModified() | 上に戻る | HTTP_Download::guessContentType()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Download::setContentType

PEAR マニュアル
前のページ 次のページ

HTTP_Download::setContentType()

HTTP_Download::setContentType() -- Content-type をセットする

概要

mixed HTTP_Download::setContentType (string [$content_type = 'application/x-octetstream'])

説明

ダウンロードのための適切な Content-type をセットします。

例:

  • application/pdf

  • application/zip

  • text/css

もし、$content_type が有効でない場合、 PEAR_Error が返されます。

パラメータ

  • string [$content_type = 'application/x-octetstream'] - 適切な Content-type を指定します。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Download::setThrottleDelay() | 上に戻る | HTTP_Download::setLastModified()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Download::setData

PEAR マニュアル
前のページ 次のページ

HTTP_Download::setData()

HTTP_Download::setData() -- 生データをセットする

概要

void HTTP_Download::setData (mixed [$data = null])

説明

クリアする場合、$data に null をセットしてください。

そうでなければ、たとえばデータベースの BLOB からのような、 何らか任意のデータを送出することができます。

パラメータ

  • mixed [$data = null] - 送出する文字列と同様の任意データ、もしくはクリアするための null を指定します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Download::setFile() | 上に戻る | HTTP_Download::setResource()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Download::setFile

PEAR マニュアル
前のページ 次のページ

HTTP_Download::setFile()

HTTP_Download::setFile() -- ファイルパスをセットする

概要

mixed HTTP_Download::setFile (string $file, bool [$send_404 = true])

説明

ダウンロードするファイルのパスをセットします。

パラメータ

  • string $file - ファイルパスを指定します。

  • bool [$send_404 = true] - ファイルが見つからない場合、"HTTP 404 File Not Found" を送出するかどうかを指定します。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Download::setParams() | 上に戻る | HTTP_Download::setData()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Download::setGzip

PEAR マニュアル
前のページ 次のページ

HTTP_Download::setGzip()

HTTP_Download::setGzip() -- オンザフライで gzip 圧縮するかどうか (ext/zlib が必要)

概要

mixed HTTP_Download::setGzip (bool [$gzip = false])

説明

gzip 圧縮されたダウンロードするものを送出するかどうかを定義します。

もし、ext/zlib が利用可能ではない場合、PEAR_Error を返します。

パラメータ

  • bool [$gzip = false] - オンザフライで、ダウンロードするものを gzip 圧縮するかどうかを指定します。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Download::setResource() | 上に戻る | HTTP_Download::setCache()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Download::setLastModified

PEAR マニュアル
前のページ 次のページ

HTTP_Download::setLastModified()

HTTP_Download::setLastModified() -- "Last-Modified" をセットします

概要

void HTTP_Download::setLastModified (int $last_modified)

説明

ダウンロードするものの最終更新時刻（UNIX タイムスタンプ） をセットします。

これは、通常 setFile() 内の filemtime($file) によって決定されます。

パラメータ

  • int $last_modified - 最終更新時刻の UNIX タイムスタンプを指定します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Download::setContentType() | 上に戻る | HTTP_Download::setContentDisposition()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Download::setParams

PEAR マニュアル
前のページ 次のページ

HTTP_Download::setParams()

HTTP_Download::setParams() -- 様々なパラメータをセットする

概要

mixed HTTP_Download::setParams (array $params)

説明

ダウンロードするためのパラメータをセットします。

コンストラクタ や各パラメータのセッターでパラメータを処理する代わりとして、 このメソッドを使用することができます。

パラメータ

  • array $params - パラメータの連想配列:

    • 次のうちの一つ:

      • $params['file'] - ファイルパスを指定します。

      • $params['data'] - 生データを指定します。

      • $params['resource'] - リソースハンドルを指定します。

    • さらに、次のいくつか:

      • $params['gzip'] - gzip ダウンロードを行うかどうかを指定します。

      • $params['cache'] - ダウンロードするものをクライアント側に キャッシュさせるかどうかを指定します。

      • $params['lastmodified'] - 最終更新日時の UNIX タイムスタンプを指定します。

      • $params['contenttype'] - Content-type を指定します。

      • $params['contentdisposition'] - Content-disposition を指定します。

      • $params['buffersize'] - ファイルやリソースから 一度に読み込むバイト数を指定します。

      • $params['throttledelay'] - 各チャンク送出後の停止秒数を指定します。

      • $params['cachecontrol'] - キャッシュのプライバシーと妥当性を指定します。

参照

setFile(),
setData(),
setResource(),
setGzip(),
setCache(),
setContentType(),
setLastModified(),
setContentDisposition(),
setBufferSize(),
setThrottleDelay(),
setCacheControl()
も参照してください。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Download::HTTP_Download() | 上に戻る | HTTP_Download::setFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Download::setResource

PEAR マニュアル
前のページ 次のページ

HTTP_Download::setResource()

HTTP_Download::setResource() -- ダウンロードのためのリソースをセットする

概要

mixed HTTP_Download::setResource (mixed [$handle = null])

説明

データのダウンロードを処理するリソースハンドルをセットします。

提供されたリソースハンドルは、ダウンロードするものを送出した後、 クローズされます。

クリアする場合、$handle に null をセットしてください。

注意 これは PostgreSQL のように BLOB がリソースハンドルとして提供されているデータベースのリソースと 共に使用する事はできません。 可能な解決策は、stream wrapper を書くことです。

もし、$handleが有効なりソースではない、 もしくは null でない場合、PEAR_Error が返されます。

パラメータ

  • mixed [$handle = null] - (int) リソースハンドル、または null を指定します。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Download::setData() | 上に戻る | HTTP_Download::setGzip()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Download::setThrottleDelay

PEAR マニュアル
前のページ 次のページ

HTTP_Download::setThrottleDelay()

HTTP_Download::setThrottleDelay() -- スロットル遅延を秒でセットする

概要

void HTTP_Download::setThrottleDelay (float [$seconds = 0])

説明

各チャンクが送出された後に停止する秒数をセットします。 バッファサイズとスロットル遅延を調整することで、 何らかのスロットルを実装することができます。 buffersize=25600、throttledelay=1とした場合、 HTTP_Download は 25K のデータが送出された後、1 秒間停止します。

gzip 圧縮が有効な場合、チャンクサイズが非常に減少することに比例し、 ネットワークトラフィックは増加します。これは、各チャンクに gzip ヘッダや終端バイトが付加されることによるものです。

パラメータ

  • float [$seconds = 0] - 停止する秒数を指定します。

返り値

void を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
HTTP_Download::setBufferSize() | 上に戻る | HTTP_Download::setContentType()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Download::staticSend

PEAR マニュアル
前のページ 次のページ

HTTP_Download::staticSend()

HTTP_Download::staticSend() -- スタティックな送出

概要

mixed HTTP_Download::staticSend (array $params, bool [$guess = false])

説明

HTTP_Download オブジェクトをインスタンス化しないで、 ダウンロードするものをスタティックに送出します。

パラメータ

  • array $params - パラメータの連想配列:

    • 次のうちの一つ:

      • $params['file'] - ファイルパスを指定します。

      • $params['data'] - 生データを指定します。

      • $params['resource'] - リソースハンドルを指定します。

    • さらに、次のいくつか:

      • $params['gzip'] - gzip ダウンロードを行うかどうかを指定します。

      • $params['cache'] - ダウンロードするものをクライアント側に キャッシュさせるかどうかを指定します。

      • $params['lastmodified'] - 最終更新日時の UNIX タイムスタンプを指定します。

      • $params['contenttype'] - Content-type を指定します。

      • $params['contentdisposition'] - Content-disposition を指定します。

      • $params['buffersize'] - ファイルやリソースから 一度に読み込むバイト数を指定します。

      • $params['throttledelay'] - 各チャンク送出後の停止秒数を指定します。

  • bool [$guess = false] - guessContnentType() をコールするかどうかを指定します。

参照

setFile(),
setData(),
setResource(),
setGzip(),
setCache(),
setContentType(),
setLastModified(),
setContentDisposition(),
setBufferSize(),
setThrottleDelay(),
setParams().
も参照してください。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
HTTP_Download::send() | 上に戻る | HTTP_Download::sendArchive()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Request

目次
導入 -- HTTP_Request 導入
Basic 認証 -- 保護された Web サイトのための認証
クッキー -- HTTP_Request でクッキーを利用する
ファイルアップロード -- HTTP 経由でファイルをアップロードする
リクエストヘッダ -- HTTP リクエストに付加的なヘッダを追加する
プロキシ認証 -- HTTP プロキシを利用する
レスポンスの評価 -- HTTP レスポンスからの情報を評価する

このパッケージは、HTTP リクエストを実行するための簡単な方法を提供します。 GET/POST/HEAD/TRACE/PUT/DELETE、Basic認証、プロキシ、プロキシ認証、SSL、 ファイルアップロードなどをサポートします。

前のページ | ホーム | 次のページ
HTTP_Download::sendArchive() | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Basic 認証

Basic 認証 -- 保護された Web サイトのための認証

Basic 認証導入

Basic 認証は、RFC 2617 で定義されたチャレンジ-レスポンスメカニズムです。

Basic 認証の使用方法

例 42-1Basic 認証

以下の例は、Basic 認証で保護されたホスト example.com にあるとあるページ /protected.html を取得しようとしている、と想定しています。 認証をパスするために必要なユーザー名は johndoe で、 付随するパスワードは foo です。

require_once "HTTP/Request.php";

$req =& new HTTP_Request("http://example.com/protected.html");
$req->setBasicAuth("johndoe", "foo");

$response = $req->sendRequest();

if (PEAR::isError($response)) {
    echo $response->getMessage();
} else {
    echo $req->getResponseBody();
}
前のページ | ホーム | 次のページ
導入 | 上に戻る | クッキー

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


クッキー

クッキー -- HTTP_Request でクッキーを利用する

HTTP リクエストへのクッキーの追加方法

例 42-1リクエストにクッキーを追加する

この例では、version というクッキーが HTTP リクエストに追加されます。このクッキーの値は、 HTTP_Request インスタンスが動作している PHP インタプリタのバージョン文字列です。

require_once "HTTP/Request.php";

$req =& new HTTP_Request("http://example.com/");
$req->addCookie("version", phpversion());

$response = $req->sendRequest();

if (PEAR::isError($response)) {
    echo $response->getMessage();
} else {
    echo $req->getResponseBody();
}

例 42-2HTTP レスポンスからクッキーを読み込む

HTTP レスポンスのクッキーを読み込みは、以下の例で示されます。

require_once "HTTP/Request.php";

$req =& new HTTP_Request("http://example.com/");

$response = $req->sendRequest();

if (PEAR::isError($response)) {
    echo $response->getMessage();
} else {
    print_r($req->getResponseCookies());
}
前のページ | ホーム | 次のページ
Basic 認証 | 上に戻る | ファイルアップロード

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


ファイルアップロード

ファイルアップロード -- HTTP 経由でファイルをアップロードする

ファイルアップロードの使用方法

例 42-1PDF 文章をアップロードする

この例では、/home/johndoe/text.pdf というファイルが リモートにあるマシン upload.example.com に johndoe-text.pdf という名前でアップロードされます。 さらに、ジョンが何かをアップロードする事を許可されていることを 保証するために、Basic 認証が使用されています。

require_once "HTTP/Request.php";

$req =& new HTTP_Request("http://upload.example.com/upload.php");
$req->setBasicAuth("johndoe", "foo");
$req->setMethod(HTTP_REQUEST_METHOD_POST);

$result = $req->addFile("johndoe-txt.pdf", "/home/johndoe/text.pdf");
if (PEAR::isError($result)) {
    echo $result->getMessage();
} else {

    $response = $req->sendRequest();

    if (PEAR::isError($response)) {
        echo $response->getMessage();
    } else {
        echo $req->getResponseBody();
    }
}
前のページ | ホーム | 次のページ
クッキー | 上に戻る | リクエストヘッダ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


リクエストヘッダ

リクエストヘッダ -- HTTP リクエストに付加的なヘッダを追加する

リクエストヘッダの追加方法

例 42-1カスタムリクエストヘッダの追加

以下の例では、HTTP ヘッダ X-PHP-Version が HTTP リクエストに追加されます。このヘッダの値は、 HTTP_Request インスタンスが動作している PHP インタプリタのバージョン文字列です。

require_once "HTTP/Request.php";

$req =& new HTTP_Request("http://example.com/");
$req->addHeader("X-PHP-Version", phpversion());

$response = $req->sendRequest();

if (PEAR::isError($response)) {
    echo $response->getMessage();
} else {
    echo $req->getResponseBody();
}

HTTP_Request オブジェクトに追加されたヘッダは、 sendRequest() がコールされる前に removeHeader() で削除することができます。

前のページ | ホーム | 次のページ
ファイルアップロード | 上に戻る | プロキシ認証

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- HTTP_Request 導入

概要

このパッケージを使用することで、PHP スクリプトから HTTP リクエストを簡単に処理することができます。 これは、GET/POST/HEAD/TRACE/PUT/DELETE、Basic 認証、プロキシ、 プロキシ認証、SSL、ファイルアップロードなどをサポートしています。

前述の特長のため、HTTP_Request は PHP アプリケーションで広く知られた Mozilla ブラウザのような Web ブラウザのほとんどの機能を模倣することを可能にします。 可能なアプリケーション範囲は、次の通りです:

  • getResponseCode() の助けによる WWW リンクの有効性をチェックすること

  • リモートの Web ページを取り込み、結果をパースすること

  • その他

いくつかの例

例 42-1 yahoo.com の内容を取得し、 それを表示する

require_once "HTTP/Request.php";

$req =& new HTTP_Request("http://www.yahoo.com/");
if (!PEAR::isError($req->sendRequest())) {
    echo $req->getResponseBody();
}

例 42-2二つの Web サイトの内容を取得し、一行で表示する

この例では、二つの Web サイトの内容が取得され、表示されます。 前者は POST パラメータが処理されます。POST データスタックは、 二番目の Web サイトの内容が取得される前にクリアされます。

require_once "HTTP/Request.php";

$req =& new HTTP_Request("http://www.php.net");
$req->setMethod(HTTP_REQUEST_METHOD_POST);
$req->addPostData("Foo", "bar");
if (!PEAR::isError($req->sendRequest())) {
     $response1 = $req->getResponseBody();
} else {
     $response1 = "";
}

$req->setMethod(HTTP_REQUEST_METHOD_GET);
$req->setURL("http://pear.php.net");
$req->clearPostData();
if (!PEAR::isError($req->sendRequest())) {
     $response2 = $req->getResponseBody();
} else {
     $response2 = "";
}

echo $response1;
echo $response2;
前のページ | ホーム | 次のページ
HTTP_Request | 上に戻る | Basic 認証

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


プロキシ認証

プロキシ認証 -- HTTP プロキシを利用する

プロキシ認証の使用方法

例 42-1匿名アクセスでプロキシサーバを利用する

この例では、プロキシサーバがポート 8080 で待機しており、 example.com への外向き接続の代理（プロキシ）を行っている proxy.example.com というホスト名のマシンを 利用しようとしている、と想定しています。

setProxy() の二番目のパラメータはオプションで、 デフォルトは 8080 です。

require_once "HTTP/Request.php";

$req =& new HTTP_Request("http://example.com/");
$req->setProxy("proxy.example.com", 8080);

例 42-2プロキシ認証の利用

これは、プロキシサーバでのユーザー認証のためのユーザー名/パスワードの タプルが提供されていることを除いて、上記と同じ例です: ユーザー名は johndoe で付随するパスワードは foo です。

require_once "HTTP/Request.php";

$req =& new HTTP_Request("http://example.com/");
$req->setProxy("proxy.example.com", 8080, "johndoe", "foo");
前のページ | ホーム | 次のページ
リクエストヘッダ | 上に戻る | レスポンスの評価

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


レスポンスの評価

レスポンスの評価 -- HTTP レスポンスからの情報を評価する

導入

HTTP は Request - Response スキームに基づいたプロトコルなので、 全ての HTTP リクエストは HTTP レスポンスに追随されます。 HTTP_Request は、 それらのレスポンスからの情報を評価するいくつかのメソッドを提供しています。

レスポンスコード

HTTP レスポンスの重要な部分は、レスポンスコードです。 最も良く知られたレスポンスコードは、 おそらく何度かブラウザで見たことがある 404 でしょう。 404 の意味は、 リクエストされたリソースを見つけることができなかった、ということです。 ステータスコードの完全なリストは、 RFC 2616 に見つけることができます。

例 42-1レスポンスコードをチェックする

require_once "HTTP/Request.php";

$urls = array(
    "http://www.example.com/",
    "http://example.com/thisdoesnotexist.html"
    );

$req =& new HTTP_Request("");
foreach ($urls as $url) {
    $req->setURL($url);
    $req->sendRequest();

    $code = $req->getResponseCode();
    switch ($code) {
    case 404:
        echo "Document not found\n";
        break;

    case 200:
        echo "Everything's ok\n";
        break;

    /* ... */
    }
}

レスポンスヘッダ

HTTP リクエストと同様、HTTP レスポンスはヘッダとボディで構成されます。 HTTP_Request は、 レスポンスヘッダにアクセスするためのメソッドを提供します。

例 42-2レスポンスからの全てのヘッダを取得する

require_once "HTTP/Request.php";

$req =& new HTTP_Request("http://example.com/");
$req->sendRequest();

foreach ($req->getResponseHeader() as $name => $value) {
    echo $name . " = " . $value . "\n";
}

これは、全てのヘッダと付随する値を表示します。

例 42-3特定のヘッダを取得する

require_once "HTTP/Request.php";

$req =& new HTTP_Request("http://example.com/");
$req->sendRequest();

echo $req->getResponseHeader("Date");

これは、Date: ヘッダの値を表示します。

クッキーのレスポンス

HTTP レスポンスの一部であるクッキーを取得については、 Cookies に記載されています。

前のページ | ホーム | 次のページ
プロキシ認証 | 上に戻る | HTTP_Session

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Session

目次
導入 -- HTTP_Session の導入
データベースコンテナ -- HTTP_Session による、セッションデータのデータベースへの保存

このパッケージは、session_* 系の関数に対するオブジェクト指向のインターフェイスを提供します。 さらに追加機能として、DB や MDB、MDB2 パッケージを使用して セッションデータをデータベースに保存したりすることも可能です。 また、新しいメソッドとして isNew()、useCookies()、setExpire()、 setIdle()、isExpired()、isIdled() などを提供しています。

前のページ | ホーム | 次のページ
レスポンスの評価 | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


データベースコンテナ

データベースコンテナ -- HTTP_Session による、セッションデータのデータベースへの保存

概要

HTTP_Session により、 セッションデータをデータベースに保存することができます。 これには DB、MDB そして MDB2 パッケージを使用します。

例

例 42-1MDB2 の使用による、セッションデータのデータベースへの保存

/* データベース内に次のテーブルを作成します
CREATE TABLE sessiondata (
  id     varchar(32)    NOT NULL,
  expiry int(10),
  data   text,
  PRIMARY KEY (id)
);
*/

require_once 'HTTP/Session.php';

HTTP_Session::useTransSID(false);
HTTP_Session::useCookies(false);

// DSN を指定します
HTTP_Session::setContainer('MDB2', array('dsn'   => 'mysql://root:password@localhost/database',
                                         'table' => 'sessiondata'));

/*
// 既存の MDB2 接続を使用する場合はこのようになります
HTTP_Session::setContainer('MDB2', array('dsn'   => &$db,
                                         'table' => 'sessiondata'));
*/

HTTP_Session::start('s');
HTTP_Session::setExpire(time() + 60);   // 60 秒で期限切れ
HTTP_Session::setIdle(time() + 5);      // 5 秒間の無通信でタイムアウト

if (HTTP_Session::isExpired()) {
    //HTTP_Session::replicate('sessiondata_backup');    // 現在のセッションのデータを、指定したテーブルに複製します
    HTTP_Session::destroy();
}

if (HTTP_Session::isIdle()) {
    //HTTP_Session::replicate('sessiondata_backup');    // 現在のセッションのデータを、指定したテーブルに複製します
    HTTP_Session::destroy();
}

HTTP_Session::updateIdle();
前のページ | ホーム | 次のページ
導入 | 上に戻る | HTTP_Upload

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- HTTP_Session の導入

概要

このパッケージを使用すると、セッション状態の値やセッションレベルの設定内容へのアクセス、 そして有効期限の管理が可能となります。 標準の PHP セッション処理機構にもとづくもの以外にも、 より高度な機能も提供しています。たとえばデータベースコンテナを使用したり、 アイドル時間や有効期限切れのタイムアウト値を管理したりすることができます。

ちょっとした例

例 42-1オプションの設定および新規セッションの検出

HTTP_Session::setCookieless(false);
HTTP_Session::start('MySessionID');
HTTP_Session::set('variable', 'テスト文字列');
if (HTTP_Session::isNew()) {
    echo('現在のリクエストで新規セッションが作成されました');
    $visitors++; // 訪問者数を増やします
}

// ログインに成功したら HTTP_Session::regenerateId(); します

例 42-2タイムアウト値の設定

HTTP_Session::start();
HTTP_Session::setExpire(time() + 60 * 60); // 有効期限は一時間とします
HTTP_Session::setIdle(time() + 10 * 60);   // アイドル時間は 10 分までとします

// 期限切れ
if (HTTP_Session::isExpired()) {
    echo('セッションの有効期限が切れました!');
    HTTP_Session::destroy();
}

// アイドル
if (HTTP_Session::isIdle()) {
    echo('長時間ほったらかし過ぎました!');
    HTTP_Session::destroy();
}

HTTP_Session::updateIdle();
前のページ | ホーム | 次のページ
HTTP_Session | 上に戻る | データベースコンテナ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP_Upload

HTML フォーム経由で送信されたファイルを お手軽かつ安全に管理します。

概要

この関数は、HTML <input type="file" /> フィールド経由でのファイルのアップロードを管理する高度なシステムを 提供します。以下のような機能があります。

  • 複数ファイルの同時アップロード処理

  • 一時ディレクトリからのファイルの安全なコピー/移動

  • アップロードを検証する仕組み

  • アップロードされたファイルの拡張情報

  • アップロードされたファイルの名前の変更

  • 国際化されたエラーメッセージ

例

以下の例では、ファイルをアップロードするために HTML フォームフィールド <input type="file" name="f" /> を用いることを想定しています。

例 42-25単純なファイルのアップロード

以下のコードは、リクエストを監視し、ファイルがフォームから正常に アップロードされたかどうかを調べます。この例の場合、ファイルは サブディレクトリ uploads に移動されます。

require_once "HTTP/Upload.php";

$upload = new HTTP_Upload("en");
$file = $upload->getFiles("f");

if ($file->isValid()) {
    $moved = $file->moveTo("uploads/");
    if (!PEAR::isError($moved)) {
        echo "ファイルが uploads/ に移動されました。";
    }
}

例 42-26複数のファイル、より進んだチェック

複数のファイルをアップロードするには、フォームフィールドの名前 (f) を f[] に変更し、 この名前で複数の <input /> フィールドを 作成します。

$upload = new HTTP_Upload("en");
$files = $upload->getFiles();

foreach($files as $file){
    if (PEAR::isError($file)) {
        echo $file->getMessage();
    }

    if ($file->isValid()) {
        $file->setName("uniq");
        $dest_name = $file->moveTo("uploads/");

        if (PEAR::isError($dest_name)) {
            echo $dest_name->getMessage();
        }

        $real = $file->getProp("real");

    } elseif ($file->isMissing()) {
        echo "ファイルがありません。";
    } elseif ($file->isError()) {
        echo $file->errorMsg();
    }

    print_r($file->getProp());
}

アップロードされたファイルの拡張情報

HTTP_Upload では、アップロードされたファイルの 拡張情報を getProp() メソッドで取得可能です。

mixed HTTP_Upload_File::getProp ([name])

name に何も指定しなかった場合は、このメソッドは アップロードされたファイルに関するすべての情報を含む配列を返します。 それ以外の場合は、指定したパラメータの値を文字列で返します。

例 42-27getProp() 経由での拡張情報

require_once "HTTP/Upload.php";

$upload = new HTTP_Upload("en");
$file = $upload->getFiles("f");

if ($file->isValid()) {
    echo "<pre>";
    print_r($file->getProp());
    echo "</pre>";

    printf("アップロードされたファイルの拡張子は %s です。", $file->getProp("ext"));
}

国際化されたエラーメッセージ

HTTP_Upload の便利な機能のひとつに 国際化されたエラーメッセージのサポートがあります。これは、 エラー (不正なファイルがアップロードされたなど) が検出された場合に HTTP_Upload が何語でエラーメッセージを 返すのかをプログラマが指定できるということことを意味します。

HTTP_Upload のコンストラクタの最初の パラメータで、使用する言語を指定します。詳細は以下の例で 説明します。

例 42-28例

// ドイツ語のエラーメッセージ
$language = "de";

require_once "HTTP/Upload.php";

$upload = new HTTP_Upload($language);
$file = $upload->getFiles("f");

if ($file->isValid()) {
    $moved = $file->moveTo("uploads/");
    if (!PEAR::isError($moved)) {
        echo "ファイルは uploads/ に移動されました。";
    } else {
        // ドイツ語のエラーメッセージを表示します
        echo "エラーが検出されました: " . $moved->getMessage() . "<br />";
    }
}
前のページ | ホーム | 次のページ
データベースコンテナ | 上に戻る | 画像 (Images)

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP::Date

HTTP::Date -- 日付の書式

概要

require_once 'HTTP.php';

string HTTP::date (integer time)

説明

UNIXタイムスタンプをRFC準拠のHTTPヘッダ行に変換します。 この関数はphp.iniの"y2k_compliance"ディレクティブを尊重します。

パラメータ

  • integer $time - UNIXタイムスタンプです。

返り値

string - RFC準拠の日付ヘッダ行を返します。

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
HTTP | 上に戻る | HTTP::head

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP::head

HTTP::head -- "HEAD"コマンドの送信

概要

require_once 'HTTP.php';

array HTTP::head (string $url)

説明

サーバーへ「HEAD」HTTPコマンドを送り、 連想の配列中でヘッダーを返します。

例

例 42-1example.comへHEADリクエスト

require_once "PEAR.php";
require_once "HTTP.php";

$result = HTTP::head("http://example.com/");

if (PEAR::isError($result)) {
    echo "Error: " . $result->getMessage();
} else {
    echo "<pre>";
    print_r($result);
    echo "</pre>";
}
print_r()呼び出しの出力は 下記 の通りです。

パラメータ

  • string $url - 有効な絶対URL

返り値

array - ヘッダー行を含む配列かPEAR_Errorを返します。

出力例:
Array
(
    [response_code] => 200
    [response] => HTTP/1.1 200 OK
    [Date] => Tue, 25 Nov 2003 22:08:57 GMT
    [Server] => Apache/1.3.27 (Unix)  (Red-Hat/Linux)
    [Last-Modified] => Wed, 08 Jan 2003 23:11:55 GMT
    [ETag] => "3f80f-1b6-3e1cb03b"
    [Accept-Ranges] => bytes
    [Content-Length] => 438
    [Connection] => close
    [Content-Type] => text/html
)

例外・エラー

表 42-1PEAR_Error の値

エラーコード | エラーメッセージ | 意味 | 解決策
NULL | "HTTP::head Error $errstr ($erno)" | サーバーへの接続に失敗しました。 | あなたのホストと$urlに与えたURLの接続を調べます。

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
HTTP::Date | 上に戻る | HTTP::negotiateLanguage

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP::negotiateLanguage

HTTP::negotiateLanguage -- ユーザのブラウザーと言語を協定する

概要

require_once 'HTTP.php';

string HTTP::negotiateLanguage (array $supported, string $default = 'en_US')

説明

Accept-Language HTTPヘッダーかユーザのホストアドレスによって、 ユーザのブラウザーと言語を協定します。 言語コードは一ヶ国で話される言語の形式「ll」か、 あるいは特別の国で話される言語では「ll-CC」になります。 例えば、米国の英語は「en-US」です。一方イギリス英語は「en-UK」です。 ポルトガルで話されるようなポルトガル語は「pt-PT」です。 一方ブラジルのポルトガル語は「pt-BR」です。 2文字の国コードはISO 3166標準で見つけられます。

Accept-Language:ヘッダが多数の値をサポートする例
Accept-Language: en-UK;q=0.7, en-US;q=0.6, no;q=1.0, dk;q=0.8

例

例 42-1使用例

require_once "HTTP.php";

$supported = array("de" => true, "en-US" => true);

echo HTTP::negotiateLanguage($supported);

この例は、 言語のうちのどれかがユーザのシステム上で サポートされる場合、 ユーザーエージェントはネゴシエーションします。 ネゴシエーションが正の結果を持っている場合、 最も好ましい言語の言語コードが出力されます。 そうでなければ、デフォルト言語コード(en-US)が出力されます。

国際化された(それは複数の言語で利用可能な) ウェブサイトページを開発する場合は、 言語ネゴシエーションを可能にすることは大きな支援になります。 ユーザーはネゴシエーションを使用して、 常に好ましい言語でページを取得できるでしょう (それらはユーザーエージェントが適切に構成されていると仮定します)。

パラメータ

  • array $supported - アプリケーションに支援された言語コード(国コード)によって インデックスを付けられた連想の配列。 値はTRUEでなければなりません。

  • string $default - 他の言語のどれもネゴシエーションの間に見つからない場合に、 使用されるべきデフォルト言語。

返り値

string - 言語コードです。

注意

この関数は、スタティックにコールする ことができます。

返された言語はヒントだけです! クライアントによって容認された言語を送ることはオプションです。 ブラウザーの言語セッティングはユーザの母国語する必要はありません。 - 例えばスペインのインターネットカフェでドイツの旅行者が居る場合など。 Net_Geo パッケージの結果を組み合わせることにより、 結果を改善することができます。 それとは別に、 ユーザに手動で優先する言語メニューを選ぶ機会を与えるべきです。

前のページ | ホーム | 次のページ
HTTP::head | 上に戻る | HTTP::redirect

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


HTTP::redirect

HTTP::redirect -- クライアントをリダイレクトする

概要

require_once 'HTTP.php';

void HTTP::redirect (string url)

説明

この関数はクライアントをリダイレクトします。 これはLocation:ヘッダを出力し、 終了することで実行します。

例

例 42-1別のサイトにリダイレクトする

require_once 'HTTP.php';

HTTP::redirect("http://example.com/");

例 42-2ローカルリダイレクト

require_once 'HTTP.php';

HTTP::redirect("/foo.php");
これは、/foo.phpへのクライアントを転送します。 この関数はRFC 2616.が要求する 正しいホスト名を付加します。

パラメータ

  • string $url - クライアントを転送すべき新規URLです。

注意

この関数は、スタティックにコールする ことができます。

redirect()を呼ぶ前は、 クライアントにどんな種類のデータも送らないようにしてください。

Locationヘッダは絶対的なURLを要求します。 もし与えられなければ、$urlから構築し、 redirect()を試みます。

前のページ | ホーム | 次のページ
HTTP::negotiateLanguage | 上に戻る | HTTP_Client

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Image_Canvas

目次
例 -- Image_Canvas の使用例

このパッケージは画像の描画のための共通インターフェイスを提供するもので、 これを用いることで、使用するライブラリに依存しないソースコードが作成できます。 JPEG や PNG 用の出力ドライバ (GD ライブラリを使用します) 以外にも、PDF や SVG 用の出力ドライバもあります。

サポートする描画関数の一覧は、 外部のサイト にあります。

前のページ | ホーム | 次のページ
画像 (Images) | 上に戻る | 例

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


例

例 -- Image_Canvas の使用例

例

例 43-1PNG 形式でのサンプル画像の作成

require_once 'Image/Canvas.php';

// 出力フォーマットは、factory() の最初のパラメータで指定します
$Canvas =& Image_Canvas::factory('png', array('width' => 400, 'height' => 300));

$Canvas->setLineColor('black');
$Canvas->rectangle(array('x0' => 0, 'y0' => 0, 'x1' => 399, 'y1' => 299));

$Canvas->setGradientFill(array('direction' => 'horizontal', 'start' => 'red', 'end' => 'blue'));
$Canvas->setLineColor('black');
$Canvas->ellipse(array('x' => 199, 'y' => 149, 'rx' => 50, 'ry' => 50));

$Canvas->setFont(array('name' => 'Arial', 'size' => 12));
$Canvas->addText(array('x' => 0, 'y' => 0, 'text' => 'Demonstration of what Image_Canvas do!'));

$Canvas->setFont(array('name' => 'Times New Roman', 'size' => 12));
$Canvas->addText(array('x' => 399, 'y' => 20, 'text' => 'This does not demonstrate what is does!', 'alignment' => array('horizontal' => 'right')));

$Canvas->setFont(array('name' => 'Courier New', 'size' => 7, 'angle' => 270));
$Canvas->addText(array('x' => 350, 'y' => 50, 'text' => 'True, but it\'s all independent of the format!', 'alignment' => array('horizontal' => 'right')));

$Canvas->setFont(array('name' => 'Garamond', 'size' => 10));
$Canvas->addText(array('x' => 199, 'y' => 295, 'text' => '[Changing format is done by changing 3 letters in the source]', 'alignment' => array('horizontal' => 'center', 'vertical' => 'bottom')));

$Canvas->addVertex(array('x' => 50, 'y' => 200));
$Canvas->addVertex(array('x' => 100, 'y' => 200));
$Canvas->addVertex(array('x' => 100, 'y' => 250));
$Canvas->setFillColor('red@0.2');
$Canvas->polygon(array('connect' => true));

$Canvas->image(array('x' => 398, 'y' => 298, 'filename' => './pear-icon.png', 'alignment' => array('horizontal' => 'right', 'vertical' => 'bottom')));

$Canvas->show();
前のページ | ホーム | 次のページ
Image_Canvas | 上に戻る | Image_Graph

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Image_Graph

Image_Graph は現在開発段階ですので、 マニュアルにて利用可能なドキュメントはありません。それ以外には、 外部サイトで "Getting Started Guide" が公開されています。

多数のサンプルコードが 外部サイト で取得可能です。

Ian Gilfillan による PHPBuilder の記事 More about PEAR's Image_Graph も参照ください。

前のページ | ホーム | 次のページ
例 | 上に戻る | Image_Text

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Image_Text

目次
Image_Text のクラス概要 -- Image_Text - 画像形式での高度なテキスト操作
コンストラクタ Image_Text::Image_Text() -- コンストラクタ
Image_Text::autoMeasurize() -- 自動的なテキストの測定
Image_Text::display() -- 画像を表示 (ブラウザに送信) する
Image_Text::getImg() -- 画像リソースを返す
Image_Text::init() -- Image_Text オブジェクトを初期化する
Image_Text::measurize() -- テキストボックス内のテキストを測定する
Image_Text::render() -- 与えられたオプションでキャンバスにテキストを描画する
Image_Text::save() -- 画像キャンバスを保存する
Image_Text::set() -- オプションを設定する
Image_Text::setColor() -- 色を設定する
Image_Text::setColors() -- 色セットを設定する
Package Image_Text Constants -- Image_Text で定義され使用される定数
前のページ | ホーム | 次のページ
Image_Graph | 上に戻る | Image_Text のクラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Package Image_Text Constants

Package Image_Text Constants -- Image_Text で定義され使用される定数

全ての定数

ImageText.php で定義されている定数

表 43-1ImageText.php で定義されている定数

名前 | 値 | 行番号
IMAGE_TEXT_ALIGN_BOTTOM | "bottom",true | 56
IMAGE_TEXT_ALIGN_CENTER | "center",true | 43
IMAGE_TEXT_ALIGN_JUSTIFY | "justify",true | 61
IMAGE_TEXT_ALIGN_LEFT | "left",true | 35
IMAGE_TEXT_ALIGN_MIDDLE | "middle",true | 52
IMAGE_TEXT_ALIGN_RIGHT | "right",true | 39
IMAGE_TEXT_ALIGN_TOP | "top",true | 48
IMAGE_TEXT_REGEX_HTMLCOLOR | ,true"/^/^[#|]([a-f0-9]{2})?([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})$/i" | 30

前のページ | ホーム | 次のページ
Image_Text::setColors() | 上に戻る | 国際化対応 (Internationalization)

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Image_Text のクラス概要

Image_Text のクラス概要 -- Image_Text - 画像形式での高度なテキスト操作

Image_Text - 画像形式での高度なテキスト操作

Image_Text は PHP を使用して生成される GD2 画像に対して高度なテキスト操作性を提供します。 独自の画像にテキストクリップを簡単に追加したり、 自動的に輪郭線を決定させたり、 テキストボックスを中心もしくは左上角を中心として回転させる事ができます。 これらは、Image_Text が提供する特徴の一部でしかありません。

Image_Text のクラスツリー

  • Image_Text

前のページ | ホーム | 次のページ
Image_Text | 上に戻る | コンストラクタ Image_Text::Image_Text()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Image_Text::autoMeasurize

PEAR マニュアル
前のページ 次のページ

Image_Text::autoMeasurize()

Image_Text::autoMeasurize() -- 自動的なテキストの測定

概要

require_once 'ImageText.php';

int Image_Text::autoMeasurize ([int $start = FALSE [, int $end = FALSE]])

説明

テキストをテキストボックスにフィットさせるための最大可能フォントサイズを 自動的に決定します。 このメソッドは Web サーバのリソースを使用するかも知れません。 効率的な調整ポイントは $start と $end パラメータです。 これらはフォントサイズの検索範囲を指定します。いずれにしても、 結果は可能であればキャッシュされます。 オプションとして $start と $end をパラメータとしてこのメソッドで設定する事ができます。 そうでなければ、設定オプションの配列が使用されます。

パラメータ

integer $start

測定を開始するフォントサイズを指定します

integer $end

測定を終了するフォントサイズを指定します

返り値

returns 測定されたフォントサイズ、もしくは PEAR::Error

例外・エラー

throws 投げられる例外はありません

参照

Image_Text::measurize() を参照ください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
コンストラクタ Image_Text::Image_Text() | 上に戻る | Image_Text::display()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Image_Text::display

PEAR マニュアル
前のページ 次のページ

Image_Text::display()

Image_Text::display() -- 画像を表示 (ブラウザに送信) する

概要

require_once 'ImageText.php';

bool Image_Text::display ([bool $save = FALSE [, bool $free = FALSE]])

説明

これはユーザーのブラウザに画像を出力します。 生成される画像の種類を決定する標準的な IMAGETYPE_* 定数を使用することができます。 オプションとして、オプションで設定した宛先に画像を保存することができます。

パラメータ

boolean $save

保存するか画像を表示するかを指定します

boolean $free

終了時に画像を解放するかどうかを指定します

返り値

returns 成功時に True、そうでなければ PEAR::Error

例外・エラー

throws 投げられる例外はありません

参照

Image_Text::save() を参照ください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Image_Text::autoMeasurize() | 上に戻る | Image_Text::getImg()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Image_Text::getImg

PEAR マニュアル
前のページ 次のページ

Image_Text::getImg()

Image_Text::getImg() -- 画像リソースを返す

概要

require_once 'ImageText.php';

resource& Image_Text::getImg ()

説明

画像キャンバスを取得します。

返り値

returns 使用された画像リソース

例外・エラー

throws 投げられる例外はありません

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Image_Text::display() | 上に戻る | Image_Text::init()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ Image_Text::Image_Text

PEAR マニュアル
前のページ 次のページ

コンストラクタ Image_Text::Image_Text()

コンストラクタ Image_Text::Image_Text() -- コンストラクタ

概要

require_once 'ImageText.php';

void constructor Image_Text::Image_Text (string $text [, array $options = NULL])

説明

テキストとオプションを設定します。 これは新規 Image_Text オブジェクトを初期化します。 独自のテキストをここで設定する必要があります。 オプションで $options パラメータを使用し 全てのオプションを設定することができます。 もし全てのオプションを設定したならば、何かを行う前にまず init() メソッドをコールする必要があります ! より多くの情報については Image_Text::set() を参照してください。

パラメータ

string $text

表示するテキストを指定します

array $options

オプションを指定します

例外・エラー

throws 投げられる例外はありません

参照

Image_Text::set(), Image_Text::set(), Image_Text::init() を参照ください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Image_Text のクラス概要 | 上に戻る | Image_Text::autoMeasurize()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Image_Text::init

PEAR マニュアル
前のページ 次のページ

Image_Text::init()

Image_Text::init() -- Image_Text オブジェクトを初期化する

概要

require_once 'ImageText.php';

bool Image_Text::init ()

説明

このメソッドは Image_Text オブジェクトに関するオプションを設定した後に コールされる必要があります。 このメソッドはキャンバスを初期化し、いくつかのデータを正規化し、 重要なオプションをチェックします。 いくつかのオプションを変更した後に初期化を行っているか確認してください。 set() メソッドはオブジェクトの再初期化を行います。

返り値

returns 成功時に True、そうでなければ PEAR::Error

例外・エラー

throws 投げられる例外はありません

参照

Image_Text::set() を参照ください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Image_Text::getImg() | 上に戻る | Image_Text::measurize()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Image_Text::measurize

PEAR マニュアル
前のページ 次のページ

Image_Text::measurize()

Image_Text::measurize() -- テキストボックス内のテキストを測定する

概要

require_once 'ImageText.php';

array Image_Text::measurize ([bool $force = FALSE])

説明

このメソッドは与えられたフォントサイズに対する輪郭線を測定することで、 定義済みのテキストボックスにテキストをフィットさせます。 描画する (もしくは Image_Text::autoMeasurize() を使用する) 前に手動でこれを行うことができます。そうでない場合、 レンダラは自動的に測定を行います。

パラメータ

boolean $force

オプションでデフォルトは FALSE です。 強制的に測定させるには TRUE を設定してください。

返り値

returns 測定された輪郭線の配列、もしくは PEAR::Error

例外・エラー

throws 投げられる例外はありません

参照

Image_Text::autoMeasurize() を参照ください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Image_Text::init() | 上に戻る | Image_Text::render()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Image_Text::render

PEAR マニュアル
前のページ 次のページ

Image_Text::render()

Image_Text::render() -- 与えられたオプションでキャンバスにテキストを描画する

概要

require_once 'ImageText.php';

bool Image_Text::render (bool [$force = FALSE])

説明

このメソッドは測定されたテキストを描画します。 測定されていなければ最初に自動的に測定します。 $force パラメータは測定での問題を表示するかどうかを 切り替えるために使用することができます (これにより、 与えられたテキストボックスの外に描画される、 もしくは画像を完全に壊してしまうかも知れません) 。

パラメータ

boolean $force

オプションで、初期値は FALSE です。 測定エラーを表示しない場合は TRUE を設定してください。

返り値

returns 成功時に True、そうでなければ PEAR::Error

例外・エラー

throws 投げられる例外はありません

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Image_Text::measurize() | 上に戻る | Image_Text::save()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Image_Text::save

PEAR マニュアル
前のページ 次のページ

Image_Text::save()

Image_Text::save() -- 画像キャンバスを保存する

概要

require_once 'ImageText.php';

bool Image_Text::save ([string $destFile = FALSE])

説明

画像を与えられた保存先に保存します。 もしオプションが正しく設定されている場合、 保存先のファイルパスを省略することができます。 保存は save() メソッドでも行うことができます。

パラメータ

string $destFile

保存先を指定します (オプションです。 指定しない場合、オプションの値が使用されます) 。

返り値

returns 成功時に True、そうでなければ PEAR::Error

例外・エラー

throws 投げられる例外はありません

参照

Image_Text::display() を参照ください 。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Image_Text::render() | 上に戻る | Image_Text::set()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Image_Text::set

PEAR マニュアル
前のページ 次のページ

Image_Text::set()

Image_Text::set() -- オプションを設定する

概要

require_once 'ImageText.php';

bool Image_Text::set (mixed $option [, mixed $value = NULL])

説明

単一もしくは複数のオプションを設定します。 オプションを変更後、Image_Text オブジェクトの再初期化が必要になるかも知れません。

設定可能なオプションは次の通りです: 'x' 'y' 'cx' 'cy' | テキストボックスのための左上の座標 (x/y を使用) もしくは中心点座標 (cx/cy を使用) 。cx/cy の値は x/y を上書きします。 'canvas' | キャンバスとして異なる値を設定することができます: - gd 画像リソース - '幅' と '高さ' を含む配列 - 何もなし (キャンバスは実際のテキストサイズに 従って測定されます) 'antialias' | これは通常 true です。 アンチエイリアスを無効にする場合 false に設定してください。 'width' 'height' | テキストボックスの幅と高さ。 'halign' 'valign' | テキストボックス中でのテキストの配置。 垂直・水平位置を決定するために配置定数を 使用してください。 'angle' | テキストボックスを開店させる角度。 'color' | 色値の配列。色は選択したモード (linewise もしくは paragraphwise) で循環します。 次のフォーマットで指定可能です: - HTML スタイルの 16 進 (+ オプションで先頭に アルファ値) で表現される文字列 - 'r', 'g', 'b' とオプションで 'a' をキーとした整数値の配列 'color_mode' | 独自の色セットのための色循環モード。 複数の色を定義した場合のみ適用されます。'line' もしくは 'paragraph' を使用してください。 'font_path' | 'font_file' | 使用するフォントの場所。 'font_size' | 描画するテキストのフォントサイズ (もし自動測定を使用している場合上書きされます) 。 'line_spacing' | 使用する輪郭線のスペーシング。 デフォルトは 0.5 です。 'min_font_size' 'max_font_size' | 自動測定のための設定。 パフォーマンスのため可能な限り狭い範囲を指定 してください。 'image_type' | 画像の種類 (画像種類の定数を使用してください) 。 デフォルトは PNG に設定されます。 'dest_file' | (オプションで) ファイルを保存する保存先。

パラメータ

mixed $option

単一のオプション名、もしくはオプションの配列を指定します。

mixed $value

$option が文字列も場合のオプション値を指定します。

返り値

returns 成功時に True、そうでなければ PEAR::Error

例外・エラー

throws 投げられる例外はありません

参照

Image_Text::Image_Text() を参照ください 。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Image_Text::save() | 上に戻る | Image_Text::setColor()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Image_Text::setColor

PEAR マニュアル
前のページ 次のページ

Image_Text::setColor()

Image_Text::setColor() -- 色を設定する

概要

require_once 'ImageText.php';

bool Image_Text::setColor (mixed $color [, mixed $id = 0])

説明

このメソッドは色環内の特定の色 ID を設定するために使用します。

以下の色書式はこのメソッドで認識されます:

  • "#ffff00" # 付きもしくは # なしの 16 進数フォーマット (HTML スタイル)

  • "#08ffff00" # 付きもしくは # なしでアルファチャネル (08) 付き 16 進数フォーマット (HTML スタイル)

  • 整数値での 'r','g','b'、 (オプションとして) 'a' を含む配列

パラメータ

mixed $color

色の値を指定します

mixed $id

色を設定するための (色環における) ID を指定します

返り値

returns 成功時に True、そうでなければ PEAR::Error

例外・エラー

throws 投げられる例外はありません

参照

Image_Text::setColors(), Image_Text::set() を参照ください 。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Image_Text::set() | 上に戻る | Image_Text::setColors()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Image_Text::setColors

PEAR マニュアル
前のページ 次のページ

Image_Text::setColors()

Image_Text::setColors() -- 色セットを設定する

概要

require_once 'ImageText.php';

bool Image_Text::setColors (mixed $colors)

説明

このメソッドを使用することで、テキストに複数の色を設定することができます。 色の順序を決定するためにシンプルな数値配列を使用し、この関数に渡します。 複数の色は 'color_mode' オプションで指定されたオプションによって循環します。 与えられた配列は既存の色設定を上書きします !

以下の色書式はこのメソッドで認識されます:

  • "#ffff00" # 付きもしくは # なしの 16 進数フォーマット (HTML スタイル)

  • "#08ffff00" # 付きもしくは # なしでアルファチャネル (08) 付き 16 進数フォーマット (HTML スタイル)

  • 整数値での 'r','g','b'、 (オプションとして) 'a' を含む配列

  • GD の特別な色 (タイル,...).

単色もしくは色の配列が指定可能です。

パラメータ

mixed $colors

単色もしくは色の配列を指定します

返り値

returns 成功時に True、そうでなければ PEAR::Error

例外・エラー

throws 投げられる例外はありません

参照

Image_Text::setColor(), Image_Text::set() を参照ください 。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Image_Text::setColor() | 上に戻る | Package Image_Text Constants

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2

目次
I18Nv2 クラス概要 -- I18Nv2 - 国際化 バージョン 2
導入 -- I18Nv2 の導入
例 -- I18Nv2 の使用例
I18Nv2 定数 -- I18Nv2 で定義され、使用されている定数
I18Nv2::setLocale() -- ロケールを設定する
I18Nv2::lastLocale() -- 現在のロケール/直前のロケールを取得する
I18Nv2::getInfo() -- ロケール固有の情報を取得する
I18Nv2::autoConv() -- 出力文字セットの変換を自動的に行う
I18Nv2::createLocale() -- I18Nv2_Locale オブジェクトを作成する
I18Nv2::createNegotiator() -- I18Nv2_Negotiator オブジェクトを作成する
I18Nv2::langs2locales() -- 言語をロケールに変換する
I18Nv2::locales2langs() -- ロケールを言語に変換する
I18Nv2_Locale クラス概要 -- I18Nv2_Locale
I18Nv2_Locale::I18Nv2_Locale() -- コンストラクタ
I18Nv2_Locale::initialize() -- 初期化
I18Nv2_Locale::loadExtension() -- 対応するロケール拡張を読み込む
I18Nv2_Locale::setLocale() -- ロケールを設定する
I18Nv2_Locale::setDefaults() -- デフォルト値を設定する
I18Nv2_Locale::setCustomFormat() -- 独自の書式を設定する
I18Nv2_Locale::setCurrencyFormat() -- 金額の書式を設定する
I18Nv2_Locale::setDateFormat() -- 日付の書式を設定する
I18Nv2_Locale::setNumberFormat() -- 数値の書式を設定する
I18Nv2_Locale::setTimeFormat() -- 時刻の書式を設定する
I18Nv2_Locale::formatDate() -- 日付をフォーマットする
I18Nv2_Locale::formatTime() -- 時刻をフォーマットする
I18Nv2_Locale::formatNumber() -- 数値をフォーマットする
I18Nv2_Locale::formatCurrency() -- 金額をフォーマットする
I18Nv2_Locale::date() -- ローカル日付を取得する
I18Nv2_Locale::time() -- ローカル時刻を取得する
I18Nv2_Locale::dayName() -- ローカルの曜日名を取得する
I18Nv2_Locale::monthName() -- ローカルの月名を取得する
I18Nv2_Negotiator クラス概要 -- I18Nv2_Negotiator
I18Nv2_Negotiator::I18Nv2_Negotiator() -- コンストラクタ
I18Nv2_Negotiator::getCharsetMatch() -- マッチした文字セットを取得する
I18Nv2_Negotiator::getCountryMatch() -- マッチした国を取得する
I18Nv2_Negotiator::getLanguageMatch() -- マッチした言語を取得する
I18Nv2_Negotiator::getLocaleMatch() -- マッチしたロケールを取得する
I18Nv2_Negotiator::getVariantInfo() -- 渡されたパラメータについての変化形 (Variant) 情報を返す
I18Nv2_Negotiator::singleI18NCountry() -- Country ヘルパーオブジェクトを作成する
I18Nv2_Negotiator::singleI18NLanguage() -- Language ヘルパーオブジェクトを作成する
I18Nv2_Country クラス概要 -- I18Nv2_Country
I18Nv2_Country::I18Nv2_Country() -- コンストラクタ
I18Nv2_Country::getAllCodes() -- すべてのコードを取得する
I18Nv2_Country::getName() -- 国名を取得する
I18Nv2_Country::isValidCode() -- 有効な国コードであるかどうかを調べる
I18Nv2_Language クラス概要 -- I18Nv2_Language
I18Nv2_Language::I18Nv2_Language() -- コンストラクタ
I18Nv2_Language::getAllCodes() -- すべてのコードを取得する
I18Nv2_Language::getName() -- 言語コードに対応する言語名を取得する
I18Nv2_Language::isValidCode() -- 有効な言語コードであるかどうかを調べる
前のページ | ホーム | 次のページ
国際化対応 (Internationalization) | 上に戻る | I18Nv2 クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2 定数

I18Nv2 定数 -- I18Nv2 で定義され、使用されている定数

すべての定数

Locale.php で定義されている定数

表 44-1I18Nv2/Locale.php で定義されている定数

名前 | 値
I18Nv2_CURRENCY | 20
I18Nv2_CURRENCY_INTERNATIONAL | 22
I18Nv2_CURRENCY_LOCAL | 21
I18Nv2_DATETIME | 30
I18Nv2_DATETIME_DEFAULT | 32
I18Nv2_DATETIME_FULL | 35
I18Nv2_DATETIME_LONG | 34
I18Nv2_DATETIME_MEDIUM | 33
I18Nv2_DATETIME_SHORT | 31
I18Nv2_NUMBER | 10
I18Nv2_NUMBER_FLOAT | 11
I18Nv2_NUMBER_INTEGER | 12

前のページ | ホーム | 次のページ
例 | 上に戻る | I18Nv2::setLocale()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


例

例 -- I18Nv2 の使用例

API ドキュメント

I18Nv2 の提供する API の詳細については、PEAR の API ドキュメントを参照ください。

ロケールの設定

Un*x と Windows とでは使用しているロケールコードが異なるので、 PHP の setLocale() を安易に使用することはできません。 I18Nv2::setLocale() がこの相違を吸収します。

I18Nv2 を用いれば、Linux と Windows のどちらでも 'en_US' のような標準的なロケールコードが使用できます。 しかし、コードのリストはまだ完全なものではありません。 もしまだ (I18Nv2::_main() の I18Nv2::$locales で) カバーできていないロケールを見つけた場合は、 そのコードおよび対応する Win32 のコードを開発者にメールで教えてください。

例 44-1I18Nv2::setLocale()

require_once 'I18Nv2.php';

foreach (array('en_US', 'de', 'fr_CN') as $locale) {
    if (!$syslocale = I18Nv2::setLocale($locale)) {
        echo "ロケール '$locale' は使用できません!\n";
    } else {
        echo "'$locale' に対応するシステムのロケール: '$syslocale'\n";
    }
}

ロケールの規約の取得

I18Nv2 は、localeConv() から返されるロケール固有の規約をスタティックに保持します。 そのため、 I18Nv2::getInfo() を使用して簡単にアクセスすることが可能となります。 使用可能な情報については、PHP マニュアルの localeConv() の情報を参照ください。

例 44-2I18Nv2::getInfo()

require_once 'I18Nv2.php';

I18Nv2::setLocale('fr');

$dec_point = I18Nv2::getInfo('decimal_point');
echo "フランス語ロケールの小数点は '$dec_point' です。\n";
echo "パラメータを指定せずに I18Nv2::getInfo() をコールすると、すべての情報を返します。\n";
print_r(I18Nv2::getInfo());

出力文字セットの自動変換

I18Nv2 では、 ob_iconv_handler() を簡単に使用するために I18Nv2::autoConv() を用意しています。

例 44-3I18Nv2::autoConv()

require_once 'I18Nv2.php';

// DOS 窓でもきちんと表示されるシェルアプリケーションを書きます
if (I18Nv2_WIN) {
    I18Nv2::autoConv('CP850');
}

// latin1 の文字を出力します
echo "????\n";

I18Nv2_Locale の使用

I18Nv2_Locale は、日付や時刻、数値および金額を ロケール固有の規約にもとづいた書式になおす機能を持つオブジェクトです。

例 44-4I18Nv2_Locale

require_once 'I18Nv2.php';

$locale = &I18Nv2::createLocale('de_AT');

echo "金額 2000: ",
    $locale->formatCurrency(2000, I18Nv2_CURRENCY_INTERNATIONAL), "\n";

echo "今日の日付:              ",
    $locale->formatDate(null, I18Nv2_DATETIME_FULL), "\n";

echo "現在の時刻:             ",
    $locale->formatTime(null, I18Nv2_DATETIME_SHORT), "\n";

I18Nv2_Negotiator の使用

I18Nv2 には、言語や文字セットおよびロケールに関する HTTP ネゴシエーション機能が含まれています。

例 44-5I18Nv2_Negotiator

require_once 'I18Nv2/Negotiator.php';

$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'en-US,en-GB,en;q=0.5,de';
$_SERVER['HTTP_ACCEPT_CHARSET']  = 'utf-8,iso-8859-1;q=0.5';

$neg = &new I18Nv2_Negotiator;

echo "ユーザエージェントが望んでいる言語: ",
    $lang = $neg->getLanguageMatch(), "\n";

echo "ユーザエージェント '$lang' に対して望んでいる地域: ",
    $neg->getCountryMatch($lang), "\n";

echo "ユーザエージェントが望んでいるロケール: ",
    $neg->getLocaleMatch(), "\n";

echo "ユーザエージェントが望んでいる文字セット: ",
    $neg->getCharsetMatch(), "\n";

I18Nv2_Language の使用

I18Nv2 は、ISO 言語コードの変換リストを保持しています。

例 44-6I18Nv2_Language

require_once 'I18Nv2/Language.php';

$lang = &new I18Nv2_Language('it', 'iso-8859-1');

echo "English をイタリア語で言うと: ",
    $lang->getName('en'), "\n";

echo "French をイタリア語で言うと: ",
    $lang->getName('fr'), "\n";

I18Nv2_Country の使用

I18Nv2 は、ISO 国名コードの変換リストを保持しています。

例 44-7I18Nv2_Country

require_once 'I18Nv2/Country.php';

$country = &new I18Nv2_Country('de', 'iso-8859-1');

echo "United States をドイツ語で言うと: ",
    $country->getName('us'), "\n";

echo "Italia をドイツ語で言うと: ",
    $country->getName('it'), "\n";

I18Nv2_Country の使用

I18Nv2 には、言語と国名の両方を扱うためのデコレートされたクラスがあります。

例 44-8I18Nv2_DecoratedList

require_once 'I18Nv2/Country.php';
require_once 'I18Nv2/DecoratedList/HtmlSelect.php';
require_once 'I18Nv2/DecoratedList/HtmlEntities.php';

$c = &new I18Nv2_Country('it', 'iso-8859-1');
$e = &new I18Nv2_DecoratedList_HtmlEntities($c);
$s = &new I18Nv2_DecoratedList_HtmlSelect($e);

// 属性を設定します
$s->attributes['select']['name'] = 'CountrySelect';
$s->attributes['select']['onchange'] = 'this.form.submit()';

// エントリを選択します
$s->selected['DE'] = true;

// HTML 選択ボックスを表示します
echo $s->getAllCodes();

例 44-9I18Nv2_CommonList::toDecoratedList()

require_once 'I18Nv2/Country.php';

$c = &new I18Nv2_Country('it', 'iso-8859-1');
$s = &$c->toDecoratedList('HtmlSelect');

// 属性を設定します
$s->attributes['select']['name'] = 'CountrySelect';
$s->attributes['select']['onchange'] = 'this.form.submit()';

// エントリを選択します
$s->selected['IT'] = true;

// HTML 選択ボックスを表示します
echo $s->getAllCodes();
前のページ | ホーム | 次のページ
導入 | 上に戻る | I18Nv2 定数

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Country クラス概要

I18Nv2_Country クラス概要 -- I18Nv2_Country

I18Nv2_Country

2 文字の国コードと国名の対応を管理します。

前のページ | ホーム | 次のページ
I18Nv2_Negotiator::singleI18NLanguage() | 上に戻る | I18Nv2_Country::I18Nv2_Country()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Country::getAllCodes

PEAR マニュアル
前のページ 次のページ

I18Nv2_Country::getAllCodes()

I18Nv2_Country::getAllCodes() -- すべてのコードを取得する

概要

require_once 'I18Nv2/Country.php';

array I18Nv2_Country::getAllCodes ()

説明

すべての国コードを連想配列で取得します。2 文字のコードが連想配列のキーとなります。

返り値

すべての国コードを配列で返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Country::I18Nv2_Country() | 上に戻る | I18Nv2_Country::getName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Country::getName

PEAR マニュアル
前のページ 次のページ

I18Nv2_Country::getName()

I18Nv2_Country::getName() -- 国名を取得する

概要

require_once 'I18Nv2/Country.php';

string I18Nv2_Country::getName (string $code)

説明

2 文字の国コードを指定して、対応する国名を取得します。

パラメータ

string $code

2 文字の国コード。

返り値

国名を文字列で返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Country::getAllCodes() | 上に戻る | I18Nv2_Country::isValidCode()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Country::I18Nv2_Country

PEAR マニュアル
前のページ 次のページ

I18Nv2_Country::I18Nv2_Country()

I18Nv2_Country::I18Nv2_Country() -- コンストラクタ

概要

require_once 'I18Nv2/Country.php';

object I18Nv2_Country I18Nv2_Country::I18Nv2_Country ()

説明

新しい I18Nv2_Country オブジェクトを作成します。

返り値

I18Nv2_Country オブジェクトを返します。

前のページ | ホーム | 次のページ
I18Nv2_Country クラス概要 | 上に戻る | I18Nv2_Country::getAllCodes()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Country::isValidCode

PEAR マニュアル
前のページ 次のページ

I18Nv2_Country::isValidCode()

I18Nv2_Country::isValidCode() -- 有効な国コードであるかどうかを調べる

概要

require_once 'I18Nv2/Country.php';

bool I18Nv2_Country::isValidCode (string $code)

説明

指定した 2 文字の国コードが有効かどうかを調べます。

パラメータ

string $code

2 文字の国コード。

返り値

国コードが有効かどうかを boolean 値で返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Country::getName() | 上に戻る | I18Nv2_Language クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Language クラス概要

I18Nv2_Language クラス概要 -- I18Nv2_Language

I18Nv2_Language

ISO-639-1 (2 文字)、ISO-639-2 (3 文字) の言語コードと言語名の対応を管理します。

前のページ | ホーム | 次のページ
I18Nv2_Country::isValidCode() | 上に戻る | I18Nv2_Language::I18Nv2_Language()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Language::getAllCodes

PEAR マニュアル
前のページ 次のページ

I18Nv2_Language::getAllCodes()

I18Nv2_Language::getAllCodes() -- すべてのコードを取得する

概要

require_once 'I18Nv2/Language.php';

array I18Nv2_Language::getAllCodes ()

説明

すべての言語コードを連想配列で取得します。2 文字あるいは 3 文字のコードが連想配列のキーとなります。

返り値

すべての言語コードを配列で返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Language::I18Nv2_Language() | 上に戻る | I18Nv2_Language::getName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Language::getName

PEAR マニュアル
前のページ 次のページ

I18Nv2_Language::getName()

I18Nv2_Language::getName() -- 言語コードに対応する言語名を取得する

概要

require_once 'I18Nv2/Language.php';

string I18Nv2_Language::getName (string $code)

説明

2 文字あるいは 3 文字の言語コードを指定して、対応する言語名を取得します。

パラメータ

string $code

2 文字あるいは 3 文字の言語コード。

返り値

言語名を文字列で返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Language::getAllCodes() | 上に戻る | I18Nv2_Language::isValidCode()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Language::I18Nv2_Language

PEAR マニュアル
前のページ 次のページ

I18Nv2_Language::I18Nv2_Language()

I18Nv2_Language::I18Nv2_Language() -- コンストラクタ

概要

require_once 'I18Nv2/Language.php';

object object I18Nv2_Language I18Nv2_Language::I18Nv2_Language ([bool $threeLetters = FALSE])

説明

新しい I18Nv2_Language オブジェクトを作成します。

パラメータ

boolean $threeLetters

ISO-639-2 (3 文字) あるいは ISO-639-1 (2 文字) のいずれの言語コード書式を使用するか。

返り値

新しい I18Nv2_Language オブジェクトを返します。

前のページ | ホーム | 次のページ
I18Nv2_Language クラス概要 | 上に戻る | I18Nv2_Language::getAllCodes()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Language::isValidCode

PEAR マニュアル
前のページ 次のページ

I18Nv2_Language::isValidCode()

I18Nv2_Language::isValidCode() -- 有効な言語コードであるかどうかを調べる

概要

require_once 'I18Nv2/Language.php';

boolean I18Nv2_Language::isValidCode (string $code)

説明

指定した 2 文字 (あるいは 3 文字) の言語コードが有効かどうかを調べます。

パラメータ

string $code

2 文字 (あるいは 3 文字) の言語コード。

返り値

2 文字 (あるいは 3 文字) の言語コードが有効かどうかを boolean 値で返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Language::getName() | 上に戻る | Translation2

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Locale クラス概要

I18Nv2_Locale クラス概要 -- I18Nv2_Locale

I18Nv2_Locale

個々のロケールを表し、 日付や時刻、数値および金額の書式設定ルーチンを提供します。

前のページ | ホーム | 次のページ
I18Nv2::locales2langs() | 上に戻る | I18Nv2_Locale::I18Nv2_Locale()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Locale::date

PEAR マニュアル
前のページ 次のページ

I18Nv2_Locale::date()

I18Nv2_Locale::date() -- ローカル日付を取得する

概要

require_once 'I18Nv2/Locale.php';

string I18Nv2_Locale::date ([int $timestamp = NULL])

説明

strftime('%x') が返すローカル日付を取得します。

パラメータ

integer $timestamp

フォーマットするタイムスタンプ。

返り値

ローカル日付を文字列で返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Locale::formatCurrency() | 上に戻る | I18Nv2_Locale::time()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Locale::dayName

PEAR マニュアル
前のページ 次のページ

I18Nv2_Locale::dayName()

I18Nv2_Locale::dayName() -- ローカルの曜日名を取得する

概要

require_once 'I18Nv2/Locale.php';

mixed I18Nv2_Locale::dayName (int $weekday [, bool $short = FALSE])

説明

ローカルのテキスト表現で、曜日名を取得します。

パラメータ

integer $weekday

曜日を表す数値 (0 = 日曜日、1 = 月曜日、...)。

boolean $short

省略形で返すかどうか。

返り値

成功した場合には曜日名を表す文字列、失敗した場合には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Locale::time() | 上に戻る | I18Nv2_Locale::monthName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Locale::formatCurrency

PEAR マニュアル
前のページ 次のページ

I18Nv2_Locale::formatCurrency()

I18Nv2_Locale::formatCurrency() -- 金額をフォーマットする

概要

require_once 'I18Nv2/Locale.php';

string I18Nv2_Locale::formatCurrency (numeric $value)

説明

現在のロケールにあわせて、金額の値をフォーマットします。

パラメータ

numeric $value

フォーマットする数値。

返り値

フォーマット済みの金額を文字列で返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Locale::formatNumber() | 上に戻る | I18Nv2_Locale::date()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Locale::formatDate

PEAR マニュアル
前のページ 次のページ

I18Nv2_Locale::formatDate()

I18Nv2_Locale::formatDate() -- 日付をフォーマットする

概要

require_once 'I18Nv2/Locale.php';

string I18Nv2_Locale::formatDate ([int $timestamp = NULL])

説明

現在のロケールにあわせて、日付をフォーマットします。

パラメータ

integer $timestamp

フォーマットするタイムスタンプ。

返り値

フォーマット済みの日付を文字列で返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Locale::setTimeFormat() | 上に戻る | I18Nv2_Locale::formatTime()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Locale::formatNumber

PEAR マニュアル
前のページ 次のページ

I18Nv2_Locale::formatNumber()

I18Nv2_Locale::formatNumber() -- 数値をフォーマットする

概要

require_once 'I18Nv2/Locale.php';

string I18Nv2_Locale::formatNumber (numeric $value)

説明

現在のロケールにあわせて、数値をフォーマットします。

パラメータ

numeric $value

フォーマットする数値。

返り値

フォーマット済みの数値を文字列で返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Locale::formatTime() | 上に戻る | I18Nv2_Locale::formatCurrency()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Locale::formatTime

PEAR マニュアル
前のページ 次のページ

I18Nv2_Locale::formatTime()

I18Nv2_Locale::formatTime() -- 時刻をフォーマットする

概要

require_once 'I18Nv2/Locale.php';

string I18Nv2_Locale::formatTime ([int $timestamp = NULL])

説明

現在のロケールにあわせて、時刻をフォーマットします。

パラメータ

integer $timestamp

フォーマットするタイムスタンプ。

返り値

フォーマット済みの時刻を文字列で返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Locale::formatDate() | 上に戻る | I18Nv2_Locale::formatNumber()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Locale::I18Nv2_Locale

PEAR マニュアル
前のページ 次のページ

I18Nv2_Locale::I18Nv2_Locale()

I18Nv2_Locale::I18Nv2_Locale() -- コンストラクタ

概要

require_once 'I18Nv2/Locale.php';

object I18Nv2_Locale::I18Nv2_Locale ([string $locale = NULL])

説明

指定したロケールで、新しい I18Nv2_Locale オブジェクトを作成します。

パラメータ

string $locale

en_US あるいは de_DE のような、使用したいロケール。

返り値

新しい I18Nv2_Locale オブジェクトを返します。

前のページ | ホーム | 次のページ
I18Nv2_Locale クラス概要 | 上に戻る | I18Nv2_Locale::initialize()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Locale::initialize

PEAR マニュアル
前のページ 次のページ

I18Nv2_Locale::initialize()

I18Nv2_Locale::initialize() -- 初期化

概要

require_once 'I18Nv2/Locale.php';

void I18Nv2_Locale::initialize ()

説明

I18Nv2_Locale オブジェクトを初期化します。

このメソッドは、コンストラクタから自動的にコールされます。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Locale::I18Nv2_Locale() | 上に戻る | I18Nv2_Locale::loadExtension()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Locale::loadExtension

PEAR マニュアル
前のページ 次のページ

I18Nv2_Locale::loadExtension()

I18Nv2_Locale::loadExtension() -- 対応するロケール拡張を読み込む

概要

require_once 'I18Nv2/Locale.php';

void I18Nv2_Locale::loadExtension ()

説明

ロケールごとの拡張を読み込みます。

このメソッドは、コンストラクタから自動的にコールされます。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Locale::initialize() | 上に戻る | I18Nv2_Locale::setLocale()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Locale::monthName

PEAR マニュアル
前のページ 次のページ

I18Nv2_Locale::monthName()

I18Nv2_Locale::monthName() -- ローカルの月名を取得する

概要

require_once 'I18Nv2/Locale.php';

mixed I18Nv2_Locale::monthName (int $month [, bool $short = FALSE])

説明

ローカルのテキスト表現で、月名を取得します。

パラメータ

integer $month

月を表す数値 (0 = 1 月、1 = 2 月、...)。

boolean $short

省略形で返すかどうか。

返り値

成功した場合には月名を表す文字列、失敗した場合には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Locale::dayName() | 上に戻る | I18Nv2_Negotiator クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Locale::setCurrencyFormat

PEAR マニュアル
前のページ 次のページ

I18Nv2_Locale::setCurrencyFormat()

I18Nv2_Locale::setCurrencyFormat() -- 金額の書式を設定する

概要

require_once 'I18Nv2/Locale.php';

mixed I18Nv2_Locale::setCurrencyFormat (int $format [, bool $custom = FALSE])

説明

使用する金額の書式を設定します。

I18Nv2_CURRENCY_LOCAL、I18Nv2_CURRENCY_INTERNATIONAL のいずれか、あるいは独自の書式を指定します。

パラメータ

integer $format

I18Nv2_CURRENCY 定数。

boolean $custom

定義済みの独自書式を使用するかどうか。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Locale::setCustomFormat() | 上に戻る | I18Nv2_Locale::setDateFormat()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Locale::setCustomFormat

PEAR マニュアル
前のページ 次のページ

I18Nv2_Locale::setCustomFormat()

I18Nv2_Locale::setCustomFormat() -- 独自の書式を設定する

概要

require_once 'I18Nv2/Locale.php';

void I18Nv2_Locale::setCustomFormat ([mixed $type = NULL [, mixed $format = NULL]])

説明

独自の書式を設定します。

$format を省略した場合は、 $type に対応する独自書式が破棄されます。 両方のパラメータが省略された場合は、すべての独自書式が破棄されます。

パラメータ

mixed $type

独自書式を設定する I18Nv2 書式カテゴリー。

mixed $format

独自の書式。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Locale::setDefaults() | 上に戻る | I18Nv2_Locale::setCurrencyFormat()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Locale::setDateFormat

PEAR マニュアル
前のページ 次のページ

I18Nv2_Locale::setDateFormat()

I18Nv2_Locale::setDateFormat() -- 日付の書式を設定する

概要

require_once 'I18Nv2/Locale.php';

mixed I18Nv2_Locale::setDateFormat (int $format [, bool $custom = FALSE])

説明

使用する日付の書式を設定します。

I18Nv2_DATETIME 定数あるいは独自の日付書式を指定します。

パラメータ

integer $format

I18Nv2_DATETIME 定数

boolean $custom

定義済みの独自書式を使用するかどうか。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Locale::setCurrencyFormat() | 上に戻る | I18Nv2_Locale::setNumberFormat()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Locale::setDefaults

PEAR マニュアル
前のページ 次のページ

I18Nv2_Locale::setDefaults()

I18Nv2_Locale::setDefaults() -- デフォルト値を設定する

概要

require_once 'I18Nv2/Locale.php';

void I18Nv2_Locale::setDefaults ()

説明

使用した書式をデフォルト値に戻します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Locale::setLocale() | 上に戻る | I18Nv2_Locale::setCustomFormat()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Locale::setLocale

PEAR マニュアル
前のページ 次のページ

I18Nv2_Locale::setLocale()

I18Nv2_Locale::setLocale() -- ロケールを設定する

概要

require_once 'I18Nv2/Locale.php';

mixed I18Nv2_Locale::setLocale (string $locale)

説明

I18Nv2_Locale を、指定したロケールに変換します。

パラメータ

string $locale

en_US や de_DE のようなロケール。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

指定したロケールが無効な場合は PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Locale::loadExtension() | 上に戻る | I18Nv2_Locale::setDefaults()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Locale::setNumberFormat

PEAR マニュアル
前のページ 次のページ

I18Nv2_Locale::setNumberFormat()

I18Nv2_Locale::setNumberFormat() -- 数値の書式を設定する

概要

require_once 'I18Nv2/Locale.php';

mixed I18Nv2_Locale::setNumberFormat (int $format [, bool $custom = FALSE])

説明

使用する数値の書式を設定します。

I18Nv2_NUMBER あるいは独自の数値書式を設定します。

パラメータ

integer $format

I18Nv2_NUMBER 定数。

boolean $custom

定義済みの独自書式を使用するかどうか。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Locale::setDateFormat() | 上に戻る | I18Nv2_Locale::setTimeFormat()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Locale::setTimeFormat

PEAR マニュアル
前のページ 次のページ

I18Nv2_Locale::setTimeFormat()

I18Nv2_Locale::setTimeFormat() -- 時刻の書式を設定する

概要

require_once 'I18Nv2/Locale.php';

mixed I18Nv2_Locale::setTimeFormat (int $format [, bool $custom = FALSE])

説明

使用する時刻の書式を設定します。

I18Nv2_DATETIME あるいは独自の時刻書式を設定します。

パラメータ

integer $format

I18Nv2_DATETIME 定数。

boolean $custom

定義済みの独自書式を使用するかどうか。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Locale::setNumberFormat() | 上に戻る | I18Nv2_Locale::formatDate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Locale::time

PEAR マニュアル
前のページ 次のページ

I18Nv2_Locale::time()

I18Nv2_Locale::time() -- ローカル時刻を取得する

概要

require_once 'I18Nv2/Locale.php';

string I18Nv2_Locale::time ([int $timestamp = NULL])

説明

strftime('%X') が返す時刻を、 ローカルテキスト表現で取得します。

パラメータ

integer $timestamp

フォーマットするタイムスタンプ。

返り値

フォーマットされた時刻を文字列で返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Locale::date() | 上に戻る | I18Nv2_Locale::dayName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Negotiator クラス概要

I18Nv2_Negotiator クラス概要 -- I18Nv2_Negotiator

I18Nv2_Negotiator

ユーザが使用したいロケールや言語、文字セットの基本的なネゴシエーション機能を提供します。

前のページ | ホーム | 次のページ
I18Nv2_Locale::monthName() | 上に戻る | I18Nv2_Negotiator::I18Nv2_Negotiator()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Negotiator::getCharsetMatch

PEAR マニュアル
前のページ 次のページ

I18Nv2_Negotiator::getCharsetMatch()

I18Nv2_Negotiator::getCharsetMatch() -- マッチした文字セットを取得する

概要

require_once 'I18Nv2/Negotiator.php';

string I18Nv2_Negotiator::getCharsetMatch ([array $charsets = NULL])

説明

マッチした文字セットを取得します。

パラメータ

array $charsets

文字セットの配列。

返り値

マッチした文字セットを文字列で返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Negotiator::I18Nv2_Negotiator() | 上に戻る | I18Nv2_Negotiator::getCountryMatch()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Negotiator::getCountryMatch

PEAR マニュアル
前のページ 次のページ

I18Nv2_Negotiator::getCountryMatch()

I18Nv2_Negotiator::getCountryMatch() -- マッチした国を取得する

概要

require_once 'I18Nv2/Negotiator.php';

string I18Nv2_Negotiator::getCountryMatch (string $lang [, array $countries = NULL])

説明

マッチした国コードを取得します。

パラメータ

string $lang

言語コード。

array $countries

国コードの配列。

返り値

マッチした国を文字列で返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Negotiator::getCharsetMatch() | 上に戻る | I18Nv2_Negotiator::getLanguageMatch()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Negotiator::getLanguageMatch

PEAR マニュアル
前のページ 次のページ

I18Nv2_Negotiator::getLanguageMatch()

I18Nv2_Negotiator::getLanguageMatch() -- マッチした言語を取得する

概要

require_once 'I18Nv2/Negotiator.php';

string I18Nv2_Negotiator::getLanguageMatch ([array $langs = NULL])

説明

マッチした言語コードを取得します。

パラメータ

array $langs

言語コードの配列。

返り値

マッチした言語コードを文字列で返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Negotiator::getCountryMatch() | 上に戻る | I18Nv2_Negotiator::getLocaleMatch()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Negotiator::getLocaleMatch

PEAR マニュアル
前のページ 次のページ

I18Nv2_Negotiator::getLocaleMatch()

I18Nv2_Negotiator::getLocaleMatch() -- マッチしたロケールを取得する

概要

require_once 'I18Nv2/Negotiator.php';

string I18Nv2_Negotiator::getLocaleMatch ([array $langs = NULL [, array $countries = NULL]])

説明

マッチしたロケールコードを取得します。

このメソッドは I18Nv2::getLanguageMatch() および I18Nv2::getCountryMatch() を組み合わせたものです。

パラメータ

array $langs

言語コードの配列

array $countries

国コードの配列

返り値

マッチしたロケールコードを文字列で返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Negotiator::getLanguageMatch() | 上に戻る | I18Nv2_Negotiator::getVariantInfo()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Negotiator::getVariantInfo

PEAR マニュアル
前のページ 次のページ

I18Nv2_Negotiator::getVariantInfo()

I18Nv2_Negotiator::getVariantInfo() -- 渡されたパラメータについての変化形 (Variant) 情報を返す

概要

require_once '/Negotiator.php';

string I18Nv2_Negotiator::getVariantInfo (string $lang)

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $lang

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Negotiator::getLocaleMatch() | 上に戻る | I18Nv2_Negotiator::singleI18NCountry()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Negotiator::I18Nv2_Negotiator

PEAR マニュアル
前のページ 次のページ

I18Nv2_Negotiator::I18Nv2_Negotiator()

I18Nv2_Negotiator::I18Nv2_Negotiator() -- コンストラクタ

概要

require_once 'I18N/Negotiator.php';

object I18Nv2_Negotiator I18Nv2_Negotiator::I18Nv2_Negotiator ([string $defaultLanguage = 'en' [, string $defaultCharset = 'iso-8859-1' [, string $defaultCountry = '']]])

説明

HTTP ヘッダの中から言語コード、国コード、文字セットコード およびロケール設定の方言 (変化形) を見つけます。

パラメータ

string $defaultLanguage

デフォルトの言語。

string $defaultCharset

デフォルトの文字セット。

string $defaultCountry

デフォルトの国。

返り値

I18Nv2_Negotiator オブジェクトを返します。

前のページ | ホーム | 次のページ
I18Nv2_Negotiator クラス概要 | 上に戻る | I18Nv2_Negotiator::getCharsetMatch()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Negotiator::singleI18NCountry

PEAR マニュアル
前のページ 次のページ

I18Nv2_Negotiator::singleI18NCountry()

I18Nv2_Negotiator::singleI18NCountry() -- Country ヘルパーオブジェクトを作成する

概要

require_once 'I18Nv2/Negotiator.php';

object &I18Nv2_Negotiator::singleI18NCountry ()

説明

I18Nv2_Country のシングルトンです。

返り値

I18Nv2_Country オブジェクトを返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Negotiator::getVariantInfo() | 上に戻る | I18Nv2_Negotiator::singleI18NLanguage()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2_Negotiator::singleI18NLanguage

PEAR マニュアル
前のページ 次のページ

I18Nv2_Negotiator::singleI18NLanguage()

I18Nv2_Negotiator::singleI18NLanguage() -- Language ヘルパーオブジェクトを作成する

概要

require_once 'I18Nv2/Negotiator.php';

object &I18Nv2_Negotiator::singleI18NLanguage ()

説明

I18Nv2_Language のシングルトンです。

返り値

I18Nv2_Language オブジェクトを返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
I18Nv2_Negotiator::singleI18NCountry() | 上に戻る | I18Nv2_Country クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2 クラス概要

I18Nv2 クラス概要 -- I18Nv2 - 国際化 バージョン 2

I18Nv2 - 国際化 バージョン 2

スタティッククラス I18Nv2 が現在提供している機能は、 統一された (つまり OS に依存しない) ロケール設定や ロケール固有の情報 (例えば「位取り記号」など) の取得、 そして出力時の自動文字セット変換です。

警告

このドキュメントは最新の状態を反映しておらず、根本的な見直しが必要です。

前のページ | ホーム | 次のページ
I18Nv2 | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2::autoConv

PEAR マニュアル
前のページ 次のページ

I18Nv2::autoConv()

I18Nv2::autoConv() -- 出力文字セットの変換を自動的に行う

概要

require_once 'I18Nv2.php';

mixed I18Nv2::autoConv ([string $ocs = 'UTF-8' [, string $ics = 'ISO-8859-1']])

説明

このメソッドは ob_iconv_handler() を使用しやすくしたものです。そのため、 スクリプトの一番最初 (なんらかの出力を行う前) にコールしなければなりません。

1   require_once 'I18Nv2.php';
2   I18Nv2::autoConv('iso-8859-1', 'utf-8');
3   // ...

パラメータ

string $ocs

出力したい文字セット。

string $ics

現在の入力文字セット。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

出力バッファリングが開始できなかった場合に PEAR_Error を返します。

注意

この関数は、スタティックにコール されます。

参照

PHP の ob_iconv_handler() も参照ください。

前のページ | ホーム | 次のページ
I18Nv2::getInfo() | 上に戻る | I18Nv2::createLocale()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2::createLocale

PEAR マニュアル
前のページ 次のページ

I18Nv2::createLocale()

I18Nv2::createLocale() -- I18Nv2_Locale オブジェクトを作成する

概要

require_once 'I18Nv2.php';

object I18Nv2_Locale &I18Nv2::createLocale ([string $locale = NULL])

説明

指定したロケールで、新しい I18Nv2_Locale オブジェクトを作成します。

パラメータ

string $locale

en_US や de_DE のようなロケール。

返り値

object I18Nv2_Locale を返します。

注意

この関数は、スタティックにコール されます。

参照

I18Nv2_Locale も参照ください。

前のページ | ホーム | 次のページ
I18Nv2::autoConv() | 上に戻る | I18Nv2::createNegotiator()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2::createNegotiator

PEAR マニュアル
前のページ 次のページ

I18Nv2::createNegotiator()

I18Nv2::createNegotiator() -- I18Nv2_Negotiator オブジェクトを作成する

概要

require_once 'I18Nv2.php';

object I18Nv2_Negotiator &I18Nv2::createNegotiator ([string $defLang = 'en' [, string $defCharset = 'iso-8859-1']])

説明

デフォルトの言語および文字セットを指定して、新しい I18Nv2_Negotiator オブジェクトを作成します。

パラメータ

string $defLang

デフォルトの言語。

string $defCharset

デフォルトの文字セット。

返り値

object I18Nv2_Negotiator を返します。

注意

この関数は、スタティックにコール されます。

参照

I18Nv2_Negotiator も参照ください。

前のページ | ホーム | 次のページ
I18Nv2::createLocale() | 上に戻る | I18Nv2::langs2locales()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2::getInfo

PEAR マニュアル
前のページ 次のページ

I18Nv2::getInfo()

I18Nv2::getInfo() -- ロケール固有の情報を取得する

概要

require_once 'I18Nv2.php';

mixed I18Nv2::getInfo ([string $part = NULL])

説明

数値の桁区切り文字のような、ロケール固有の情報を取得します。 取得できる情報の内容は libc の実装に依存するので、常に信頼できるとは限りません - 特に Microsoft Windows においては。

例 44-1ロケール固有の情報の取得

1  require_once 'I18Nv2.php';
2  $locale = I18Nv2::setLocale('en_US');
3  $thsep  = I18Nv2::getInfo('thousands_separator');
4  $point  = I18Nv2::getInfo('decimal_point');

パラメータ

string$part

取得したい情報の種類。

返り値

ロケール固有の情報、あるいはパラメータなしでコールした場合には 取得できる全情報を配列で返します。

注意

この関数は、スタティックにコール されます。

参照

I18Nv2::setLocale() および PHP の localeconv() も参照ください。

前のページ | ホーム | 次のページ
I18Nv2::lastLocale() | 上に戻る | I18Nv2::autoConv()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2::langs2locales

PEAR マニュアル
前のページ 次のページ

I18Nv2::langs2locales()

I18Nv2::langs2locales() -- 言語をロケールに変換する

概要

require_once 'I18Nv2.php';

array I18Nv2::langs2locales (array $languages)

説明

en-US や de-DE のような言語コードを、en_US や de_DE のようなロケールコードに変換します。

パラメータ

array $languages

言語コードの配列。

返り値

言語コードをロケールコードに変換した配列を返します。

注意

この関数は、スタティックにコール されます。

参照

I18Nv2::locales2langs() も参照ください。

前のページ | ホーム | 次のページ
I18Nv2::createNegotiator() | 上に戻る | I18Nv2::locales2langs()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2::lastLocale

PEAR マニュアル
前のページ 次のページ

I18Nv2::lastLocale()

I18Nv2::lastLocale() -- 現在のロケール/直前のロケールを取得する

概要

require_once 'I18Nv2.php';

string I18Nv2::lastLocale ([int $prior = 0 [, bool $full = FALSE]])

説明

これまでに設定されたロケールの歴史を取得します。

I18Nv2::setLocale() がすでにコールされている場合にのみ動作します。

パラメータ

integer $prior

0 の場合は現在の、n の場合は n 世代前のロケールを取得します。

boolean $full

ロケール、言語および実際に使用されているシステムロケールのすべてを含む配列を返すかどうか。

返り値

ロケールを返します。

注意

この関数は、スタティックにコール されます。

参照

I18Nv2::setLocale() も参照ください。

前のページ | ホーム | 次のページ
I18Nv2::setLocale() | 上に戻る | I18Nv2::getInfo()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2::locales2langs

PEAR マニュアル
前のページ 次のページ

I18Nv2::locales2langs()

I18Nv2::locales2langs() -- ロケールを言語に変換する

概要

require_once '/I18Nv2.php';

array I18Nv2::locales2langs (array $locales)

説明

en_US や de_DE のようなロケールコードを、en-US や de-DE のような言語コードに変換します。

パラメータ

array $locales

ロケールコードの配列

返り値

ロケールコードを言語コードに変換した配列を返します。

注意

この関数は、スタティックにコール されます。

参照

I18Nv2::langs2locales() も参照ください。

前のページ | ホーム | 次のページ
I18Nv2::langs2locales() | 上に戻る | I18Nv2_Locale クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


I18Nv2::setLocale

PEAR マニュアル
前のページ 次のページ

I18Nv2::setLocale()

I18Nv2::setLocale() -- ロケールを設定する

概要

require_once 'I18Nv2.php';

mixed I18Nv2::setLocale (string $locale [, int $cat = LC_ALL])

説明

指定したロケールに設定します。

例 44-1ロケールの設定

1  require_once 'I18Nv2.php';
2  I18Nv2::setLocale('en_GB');

パラメータ

string $locale

en_US や de_DE のような、有効なロケール。

integer $cat

ロケールのカテゴリー - 通常は LC_ALL。

返り値

システムのロケールを表す文字列、あるいは失敗した場合に false を返します。

注意

この関数は、スタティックにコール されます。

参照

I18Nv2::setLocale() example、
I18Nv2::getInfo()、
I18Nv2::lastLocale()
および PHP の setlocale()
も参照ください。

前のページ | ホーム | 次のページ
I18Nv2 定数 | 上に戻る | I18Nv2::lastLocale()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- I18Nv2 の導入

はじめに

I18Nv2 は、もともとは I18N をリファクタリングするという目的で始まったものです。 しかし、作業を進めていくうちに過去との互換性が確保できなくなってきたため、 新しいパッケージとしてリリースしなおすことにしました。

I18N との違い

I18N は Java におけるオブジェクト指向の考え方をお手本にして開発されており、 (数字、金額、日付など) 個々の書式に対して別々のクラスを提供していました。

I18Nv2 では別の手法をとることにしました。書式設定機能をすべて一つのクラス I18Nv2_Locale にまとめたのです。

I18Nv2_Locale は、PHP の組み込み機能である setlocale() 、localeconv () および iconv 関連の関数をもとにして作成されています。一方 I18N は完全に独自の書式設定ルールを使用していました。

I18Nv2 のやりかたのほうが優れているとは決して言い切れません。というのも、 この方法は OS の国際化機能に依存してしまうからです。 しかしこのほうがよりシンプルで高速に動作します。 とは言え、ユーザから提供された日付や時刻の書式設定ルールも必要です。

I18N の翻訳機能は取り込まれませんでした。かわりに、新しく Translation2 が提供されています。

I18Nv2 には、 HTTP ネゴシエータ もまだ存在します。 これにより、ユーザの望む言語/ロケールや文字セットを取得します。

I18Nv2 には、ISO の国名コードと言語コードを 50 か国語に翻訳したリストが含まれています。 I18Nv2_Country および I18Nv2_Language を参照ください。

前のページ | ホーム | 次のページ
I18Nv2 クラス概要 | 上に戻る | 例

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2

目次
Translation2 クラス概要 -- Translation2 クラス
導入 -- Translation2 の使用法
管理者向けの導入 -- Translation2_Admin の使用法
コンテナの概要 -- さまざまな Translation2 コンテナの概要
constructor Translation2::Translation2() -- コンストラクタ
Translation2::factory() -- Translation2 オブジェクトのインスタンスを返す
Translation2::get() -- 翻訳された文字列を取得する
Translation2::getDecorator() -- デコレータのインスタンスを返す
Translation2::getLang() -- 言語情報を取得する
Translation2::getLangs() -- 言語情報を取得する
Translation2::getPage() -- 文字列グループの全体を取得する
Translation2::getRaw() -- 翻訳された文字列を (そのままの形式で) 取得する
Translation2::getRawPage() -- ページ内の文字列の配列を取得する
Translation2::getStringID() -- 指定した文字列に対応する stringID を取得する
Translation2::setCharset() -- 翻訳を取得/保存する際に使用する文字セットを設定する
Translation2::setLang() -- デフォルトの言語を設定する
Translation2::setPageID() -- デフォルトのページを設定する
Translation2::setParams() -- 次の文字列のパラメータを設定する
Translation2_Admin クラス概要 -- 翻訳文字管理のための管理ユーティリティ群
Translation2_Admin::addLang() -- 新しい言語に対応するためにストレージコンテナを準備する
Translation2_Admin::updateLang() -- 言語の詳細を更新する
Translation2_Admin::removeLang() -- langsAvail テーブルから言語を削除し、文字列テーブルを削除する
Translation2_Admin::add() -- 新しい翻訳を追加する
Translation2_Admin::remove() -- 翻訳文字列を削除する
Translation2_Decorator クラス概要 -- Translation2 クラスをデコレートする
Translation2_Decorator_CacheLiteFunction クラス概要 -- Cache_Lite_Function クラスを用いて、取得したデータをキャッシュするデコレータ
Translation2_Decorator_CacheMemory クラス概要 -- 取得したデータをメモリにキャッシュするデコレータ
Translation2_Decorator_DefaultText クラス概要 -- 空の文字列に対する代替テキストを提供するデコレータ
Translation2_Decorator_ErrorText クラス概要 -- 空の文字列に対するエラーメッセージを提供するデコレータ
Translation2_Decorator_Lang クラス概要 -- 空の文字列に対する代替言語を提供するデコレータ
Translation2_Decorator_Iconv クラス概要 -- 異なるエンコーディングへの切り替えを行うデコレータ
Translation2_Decorator_SpecialChars クラス概要 -- 特殊文字を、対応する html エンティティに変換するデコレータ
Translation2_Decorator_UTF8 クラス概要 -- UTF-8 文字列を ISO-8859-1 に変換するデコレータ
Translation2 パッケージの定数 -- Translation2 で定義され、使用されている定数
前のページ | ホーム | 次のページ
I18Nv2_Language::isValidCode() | 上に戻る | Translation2 クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2 パッケージの定数

Translation2 パッケージの定数 -- Translation2 で定義され、使用されている定数

すべての定数

DecoratorCacheMemory.php で定義されている定数

表 44-1DecoratorCacheMemory.php で定義されている定数

名前 | 値 | 行番号
TRANSLATION2_EMPTY_PAGEID_KEY | 'array_key_4_empty_pageID' | 34
TRANSLATION2_NULL_PAGEID_KEY | 'array_key_4_null_pageID' | 40

Translation2.php で定義されている定数

表 44-2Translation2.php で定義されている定数

名前 | 値 | 行番号
TRANSLATION2_DEFAULT_PAGEID | 'translation2_default_pageID' | 38
TRANSLATION2_ERROR | -1 | 43
TRANSLATION2_ERROR_METHOD_NOT_SUPPORTED | -2 | 44
TRANSLATION2_ERROR_CANNOT_CONNECT | -3 | 45
TRANSLATION2_ERROR_CANNOT_FIND_FILE | -4 | 46
TRANSLATION2_ERROR_DOMAIN_NOT_SET | -5 | 47
TRANSLATION2_ERROR_INVALID_PATH | -6 | 48
TRANSLATION2_ERROR_CANNOT_CREATE_DIR | -7 | 49
TRANSLATION2_ERROR_CANNOT_WRITE_FILE | -8 | 50
TRANSLATION2_ERROR_UNKNOWN_LANG | -9 | 51

前のページ | ホーム | 次のページ
Translation2_Decorator_UTF8 クラス概要 | 上に戻る | ログ記録

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- Translation2 の使用法

Translation2 とは?

Translation2 は、 多言語対応のアプリケーションを管理するためのクラスです。データソース (例: データベース) から多言語対応の文字列を取得するための簡単な手段を提供します。 その API は、洗練されていて使用しやすく、さらに強力で拡張しやすいように設計されています。 Translation2_Admin クラスを使用すると、翻訳の管理 (言語の追加/削除、文字列の追加/削除) が簡単にできます。

以下のコンテナ (データソースドライバ) が提供されています。

  • PEAR::DB

  • PEAR::MDB

  • PEAR::MDB2

  • gettext

  • PEAR::DB_DataObject (実験段階で、 PEAR:: HTML_Template_Flexy で使用されています)

  • XML

さまざまなタスクを補助するためのデコレータクラスが提供されています。 これらのデコレータは、好きなだけ積み重ねて使用することができます。 この方法は、あらゆるニーズにこたえることができるでしょう。 現在提供されているデコレータは、以下のとおりです。

  • CacheLiteFunction (ファイルベースの高速なキャッシュ)

  • CacheMemory (メモリベースのキャッシュ)

  • DefaultText (空の文字列を、キーあるいはデフォルトテキストで置き換える)

  • ErrorText (空の文字列を、代替メッセージ "error_text" で置き換える)

  • Iconv (さまざまなエンコーディングに切り替える)

  • Lang (空の文字列に対する代替言語を設定する)

  • SpecialChars (html エンティティを 16 進コードに置き換える)

  • UTF-8 (UTF-8 文字列を ISO-8859-1 に変換する)

使用例

この例は、 Translation2 オブジェクトを作成し、 MDB2 ドライバを使用してデータベースから翻訳文字列を取得する方法を示すものです。
// データベース接続用のパラメータを設定します
$dbinfo = array(
    'hostspec' => 'host',
    'database' => 'dbname',
    'phptype'  => 'mysql',
    'username' => 'user',
    'password' => 'pwd'
);

define('TABLE_PREFIX', 'mytable_');

// デフォルトと異なる場合に、
// データベースのテーブル構造を Translation2 に教えます。
// 注意: デフォルトのデータベース構造は以下のとおりです。
//
// "langs" テーブル (使用可能な言語とメタ情報)
// +----+------+------+----------+------------+
// | ID | name | meta | encoding | error_text |
// +----+------+------+----------+------------+
//
// "strings" テーブル (翻訳)
// +----+---------+----+----+----+-----+
// | ID | page_id | en | de | it | ... |
// +----+---------+----+----+----+-----+
// ひとつのテーブルにすべての翻訳を格納するのではなく、
// 言語ごとにひとつのテーブルを用意することも可能です。
//
$params = array(
    'langs_avail_table' => TABLE_PREFIX.'langs_avail',
    'lang_id_col'     => 'ID',
    'lang_name_col'   => 'name',
    'lang_meta_col'   => 'meta',
    'lang_errmsg_col' => 'error_text',
    'strings_tables'  => array(
                            'en' => TABLE_PREFIX.'i18n',
                            'it' => TABLE_PREFIX.'i18n',
                            'de' => TABLE_PREFIX.'i18n'
                         ),
    'string_id_col'      => 'ID',
    'string_page_id_col' => 'pageID',
    'string_text_col'    => '%s'  //'%s' は言語コードで置き換えられます
);

$driver = 'MDB2';

require_once 'Translation2.php';
$tr =& Translation2::factory($driver, $dbinfo, $params);

// エラーチェックは常に行います。この例では、コードを簡潔にするために
// エラーチェックを省略します。
if (PEAR::isError($tr)) {
    // エラーに対応します
}

// データベースで使用する文字セットを、たとえば 'utf8' のように指定することができます
$tr->setCharset('iso-8859-1');

// 主となる言語を設定します
$tr->setLang('it');

// 取得したい文字列のグループを設定します
$tr->setPageID('defaultGroup');

// 代替言語を指定するための Lang デコレータを追加します
$tr =& $tr->getDecorator('Lang');
$tr->setOption('fallbackLang', 'en');

// もうひとつ別の Lang デコレータを追加し、別の代替言語を設定します
// イタリア語と英語のどちらの翻訳も存在しない場合にこれが使用されます
$tr =& $tr->getDecorator('Lang');
$tr->setOption('fallbackLang', 'de');

// stringID 'test' に対応する文字列を取得します
echo $tr->get('test');

// イタリア語に翻訳されていない文字列を取得します (代替言語のテスト用)
echo $tr->get('only_english');

// 文字列グループをすべて取得します。代替言語は含めず
// 「デコレーション」も行いません
$rawPage = $tr->getRawPage();
print_r($rawPage);

// デコレータを適用して、文字列グループをすべて取得します
$page = $tr->getPage();
print_r($page);

// 言語と文字列グループを指定することが可能です
echo $tr->get('month_01', 'calendar', 'it');

// getRawPage() や getPage() についても同様です
$page = $tr->getPage('calendar', 'de');
print_r($page);

ご覧いただいたとおり、主要な役割を果たすメソッドは get()、 getPage() および getRawPage() です。完全な構文は
get($stringID, $pageID, $langID);
ですが、pageID や langID を事前に設定している場合は省略可能です。 get() をコールするたびにいちいち指定する必要はありません。

注意: これら 3 つのメソッドを実行する際には、 少なくとも最初の一回はエラーをチェックするようにしましょう。 データベースへの接続がここで行われるため、他の場所に比べてエラーの可能性が大きくなります。

言語情報の抽出

次に、データベースからメタ情報を取り出してみましょう。
$tr->getLang();     // langID を指定しない場合は、現在の言語についての情報を取得します
$tr->getLang('it'); // 現在の言語がイタリア語である場合、これは上と同じ意味になります

// 最初のパラメータは言語コード、そして
// 2 番目のパラメータで取得したい情報を絞り込みます
$tr->getLang('it', 'error_text');
$tr->getLang('en', 'name');
$tr->getLang('de', 'meta');
$tr->getLang('de', 'encoding');

デコレータの使用

Translation2 は、 デコレータ を使用して文字列のフィルタリング/変更を行います。複数のデコレータ (フィルタ) を連結したり、独自のデコレータを追加したりすることも可能です。
$tr =& Translation2::factory($driver, $dbinfo, $params);
$tr->setLang('en');
$tr->setPageID('calendar');

// メモリベースのデコレータを追加し、基本的な事前読み込みを行うことで
// データベースからの読み込み量を抑えます
$tr = & $tr->getDecorator('CacheMemory');

// ファイルベースのキャッシュデコレータを追加し、クエリ結果をページ内でキャッシュします
$tr =& $tr->getDecorator('CacheLiteFunction');
$tr->setOption('cacheDir', 'cache/');
$tr->setOption('lifeTime', 3600*24);

// 代替言語デコレータを追加します
$tr = & $tr->getDecorator('Lang');
$tr->setOption('fallbackLang', 'it');

// 特殊文字デコレータを追加し、特殊文字を html エンティティに変換します
$tr = & $tr->getDecorator('SpecialChars');
// 使用する文字セットを指定します
$tr->setOption('charset', 'ISO-8859-2');

// UTF-8 デコレータを追加し、自動的に UTF-8 文字列をデコードします
$tr = & $tr->getDecorator('UTF8');

// デフォルトテキストデコレータを追加し、空の文字列に対応します
$tr = & $tr->getDecorator('DefaultText');
// 空の文字列を stringID に置き換えます
echo $tr->get('emptyString');
// 独自の代替テキストを使用します
echo $tr->get('emptyString', 'stringGroup', 'en', 'show this default text');

文字列からの stringID の取得

getStringID() メソッドは、 get() の逆の動作をします。 文字列を別の言語に翻訳したいけれどその stringID がわからないという場合に、 このメソッドを使用します。
$tr->setLang('it');

// イタリア語の文字列 "gennaio" を、英語の "january" に翻訳します
$stringID = $tr->getStringID('gennaio', 'calendar');
echo $translatedString = $tr->get($stringID, 'calendar', 'en');

パラメータの置換

Translation2 はパラメータつきの文字列を処理することができます。 パラメータの置き換えは、実行時に行われます (パラメータの指定は、数値添字の配列あるいは連想配列で行います)。
// "hello_user" = "hello &&user&&, today is &&weekday&&, &&day&&th &&month&& &&year&&"

$tr->setParams(array(
    0         => '',
    'user'    => 'Joe',
    'day'     => '15',
    'month'   => $tr->get('month_01', 'calendar', 'en'),
    'year'    => '2004',
    'weekday' => $tr->get('day_5', 'calendar', 'en')
));

echo $tr->get('hello_user');
// この出力は "hello Joe, today is Friday, 15th January 2004" となります

複数の "ページ" からの翻訳の取得

あなたのサイトが、たとえばヘッダ・本文・フッタのように分けて構成されているとしましょう。 そんな場合はこれらの各部分を "ページ" (あるいは翻訳のグループ) として使用し、ひとつひとつ翻訳を取得します。
$header_trans = $tr->getPage('header');
$body_trans   = $tr->getPage('body');
$footer_trans = $tr->getPage('footer');
これらをひとつの結果にしたければ、ひとつの配列にまとめます。
$translations = array_merge(
    $tr->getPage('header'),
    $tr->getPage('body'),
    $tr->getPage('footer')
);

前のページ | ホーム | 次のページ
Translation2 クラス概要 | 上に戻る | 管理者向けの導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンテナの概要

コンテナの概要 -- さまざまな Translation2 コンテナの概要

概要

Translation2 はさまざまなストレージドライバを提供しています。 このページでは、それらの違いを説明します。

PEAR::DB、PEAR::MDB、 PEAR::MDB2

Translation2 は、これらのデータベース抽象化レイヤーの いずれでも使用することができます。使用するには、適切な接続オプションを渡します。 これら 3 つのコンテナの挙動はどれもまったく同じです (Translation2 に関しても、当然同じです)。
// 接続オプション
$dbinfo = array(
    'hostspec' => 'host',
    'database' => 'dbname',
    'phptype'  => 'mysql',
    'username' => 'user',
    'password' => 'pwd'
);
// お好みのドライバを選択します
$driver = 'MDB2'; // 必要に応じて 'DB' あるいは 'MDB' に変更します

require_once 'Translation2.php';
$tr =& Translation2::factory($driver, $dbinfo, $params);
デフォルトの定義と異なるテーブルを使用している場合は、 $params でそれを指定しなければなりません。 array.

DB_DataObject

DB_DataObject を使用する場合は、dataobjectsimple コンテナを使用するのが最も自然な選択です。こらは、DAO と密接に結びついています。 このストレージドライバは、 PEAR::DB 抽象化レイヤーがサポートしているすべてのデータベースを使用することができます。

このコンテナを使用する場合は、独自のテーブル定義を指定することはできません。 まだその機能はサポートされていないからです。つまり、 必ず以下の構造のテーブルを作成しなければなりません。
// メタデータなどはサポートされません
table: translations
id          // not null primary key autoincrement..
string_id   // 翻訳の id
page        // indexed varchar eg. (mytemplate.html)
lang        // index varchar (eg. en|fr|.....)
translation // lang 言語の翻訳
テーブルを作成するための MySQL のクエリは次のようになります。
create table translations (
  id int(11) auto_increment not null primary key,
  string_id int(11), page varchar(128),
  lang varchar(10), translation text
);
alter table translations add index page (page);
alter table translations add index lang (lang);
alter table translations add index string_id (string_id);
そして、createtables スクリプトを実行します。

Gettext

これは gettext 系の関数のラッパーです。 File_Gettext のおかげで、 コマンドラインのコンパイラを使用せずに ドメイン全体を読み込んだりドメインに書き出したりできます。

gettext コンテナには PEAR::File_Gettext および PEAR::I18Nv2 の 0.9.1 以降が必要です。これらがインストールされていることを確認しましょう。

作成時のパラメータは db 系とは少し異なります。 できるだけ簡潔にするため、ドメイン定義と使用できる言語の一覧は INI ファイルから読み込むものとします。

langs.ini は次のようになります。
; ソースエンコーディングを指定しなかった場合は ISO-8859-1 が使用されます
; エンコーディングを間違うと gettext が正しく動作しないことに注意しましょう

[en]
name = English
encoding = iso-8859-1

[de]
name = Deutsch
encoding = iso-8859-1

[it]
name = italiano
encoding = iso-8859-1
domains.ini は次のようになります。
messages = /path/to/locale
2nddomain = /path/to/locale
3rddomain = /path/to/locale

Translation2 で gettext コンテナを使用する例です。
require_once 'Translation2.php';

$params = array(
    'prefetch'          => false,
    'langs_avail_file'  => 'path/to/langs.ini',
    'domains_path_file' => 'path/to/domains.ini',
    'default_domain'    => 'messages',
    //'file_type'       => 'po',
);

// gettext コンテナでは prefetch を FALSE にするほうがよいです。
// これにより、リクエストのたびに File_Gettext が MO ファイルを
// 丸ごと読み込む必要がなくなります。
$tr =& Translation2::factory('gettext', $params);

$tr->setLang('en');

// 翻訳文字列がない場合は、gettext  コンテナは文字列の ID を
// 返すことに注意しましょう! これは、gettext 本来の挙動に習ったものです。
echo $tr->get('mystring');

print_r($tr->getPage('3rddomain'));

XML

XML コンテナは PEAR::XML_Serializer 0.13.0 以降を必要とします。 インストールされていることを確認しておきましょう。
$driver = 'XML';
$options = array(
    'filename'         => 'i18n.xml',
    'save_on_shutdown' => true, // FALSE にすると、即時に保存します
);
require_once 'Translation2.php';
$tr =& Translation2::factory($driver, $options);

前のページ | ホーム | 次のページ
管理者向けの導入 | 上に戻る | constructor Translation2::Translation2()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


管理者向けの導入

管理者向けの導入 -- Translation2_Admin の使用法

Translation2_Admin とは?

Translation2_Admin は、 翻訳の管理 (言語の追加/削除、文字列の追加/削除) を補助するためのクラスです。

新しい言語の追加

この例では、 MDB2 ドライバを使用して新しい言語を追加する [addLang()] 方法を示します。
// データベースに接続するためのパラメータを設定します
$dbinfo = array(
    'hostspec' => 'host',
    'database' => 'dbname',
    'phptype'  => 'mysql',
    'username' => 'user',
    'password' => 'pwd'
);

// デフォルト設定と異なる場合は、
// データベースのテーブル構成を Translation2 に教えます
$params = array(
    'langs_avail_table' => 'langs_avail',
    'lang_id_col'       => 'id',
    'lang_name_col'     => 'name',
    'lang_meta_col'     => 'meta',
    'lang_errmsg_col'   => 'error_text',
    'lang_encoding_col' => 'encoding',
    'strings_tables'    => array(
                            'it' => 'i18n',
                            'de' => 'i18n'
                         ),
    // あるいは、テーブルをひとつしか使用しないのなら
    //'strings_default_table' => 'i18n',
    'string_id_col'      => 'id',
    'string_page_id_col' => 'page_id',
    'string_text_col'    => '%s'  // '%s' は言語コードに置き換えられます
);

$driver = 'MDB2';

require_once 'Translation2/Admin.php';
$tr =& Translation2_Admin::factory($driver, $dbinfo, $params);

// 新しい言語についての情報を設定します
$newLang = array(
    'lang_id'    => 'en',
    'table_name' => 'i18n',
    'name'       => 'english',
    'meta'       => 'some meta info',
    'error_text' => 'not available',
    'encoding'   => 'iso-8859-1',
);

$tr->addLang($newLang);
これだけです。新しいテーブルを指定した場合はそのテーブルが作成されます。 他の翻訳用のテーブルと同じ名前を指定した場合は、 新しい言語用にそのテーブルが ALTER されます。

言語の更新

この例では、既存の言語を更新する [updateLang()] 方法を示します。
// 新しい言語についての情報を設定します
$langData = array(
    'lang_id'    => 'en',
    'table_name' => 'i18n',
    'name'       => 'English',
    'meta'       => 'some updated meta info',
    'error_text' => 'this text is not available in English',
    'encoding'   => 'iso-8859-15',
);

$tr->updateLang($langData);

既存の言語の削除

ある言語についての翻訳とその情報をすべて削除したい場合は、
$tr->removeLang('fr');
をコールすればいいだけです。 removeLang() には 2 番目のパラメータ ($force) を指定することができます。もし文字列テーブルをすべて削除したい場合 (それが他の言語で使用されているかどうかにかかわらず) は、このようにコールします。
$tr->removeLang('fr', true);
これは、一切のチェックを行わないことに注意しましょう。 自己責任で使用してください ;-)

新しい翻訳の追加

それでは、 　 add() を使用して新しい翻訳を追加する方法を見ていきましょう。
$stringArray = array(
    'en' => 'sample',
    'it' => 'esempio',
);

// stringID 'smallTest'、pageID 'testGroup' に対応する
// 英語とイタリア語の翻訳を追加します

$tr->add('smallTest', 'testGroup', $stringArray);

翻訳の削除

stringID を使用して、 remove() で翻訳を削除することも可能です。
$tr->remove('smallTest', 'testGroup');

前のページ | ホーム | 次のページ
導入 | 上に戻る | コンテナの概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2_Admin クラス概要

Translation2_Admin クラス概要 -- 翻訳文字管理のための管理ユーティリティ群

翻訳文字管理のための管理ユーティリティ群

このパッケージに関する文書は、未作成です。

Translation2_Admin のクラス階層

  • Translation2

    • Translation2_Admin

Translation2_Admin が継承しているメソッド

表 44-1 Translation2 から継承したもの

メソッド名 | 概要
Constructor Translation2::Translation2() | コンストラクタ (非推奨。かわりに factory() を使用します)。
Factory Translation2::factory() | Translation2 オブジェクトのインスタンスを返します。
Translation2::get() | 翻訳された文字列を取得します。
Translation2::getDecorator() | デコレータのインスタンスを返します。
Translation2::getLang() | 言語情報を取得します。
Translation2::getLangs() | 使用できる言語を取得します。
Translation2::getPage() | getRawPage() と同じですが、これは言語に依存し、 必要に応じてパラメータを置換します。
Translation2::getRaw() | 変換された文字列を (そのままの形で) 取得します。
Translation2::getRawPage() | ページ内の文字列を配列で取得します。
Translation2::setLang() | デフォルト言語を設定します。
Translation2::setPageID() | デフォルトのページを設定します。
Translation2::setParams() | 次の文字列のパラメータを設定します。
Translation2::getStringID() | 指定した文字列の stringID を取得します。

前のページ | ホーム | 次のページ
Translation2::setParams() | 上に戻る | Translation2_Admin::addLang()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2_Admin::add

PEAR マニュアル
前のページ 次のページ

Translation2_Admin::add()

Translation2_Admin::add() -- 新しい翻訳を追加する

概要

require_once 'Admin.php';

mixed Translation2_Admin::add (string $stringID [, string $pageID = NULL, array $stringArray])

説明

stringID に対応する 新しい翻訳文字列 (あるいは複数の翻訳文字列の組) を追加します。 例えば、stringID 'example' に対応する 英語、スペイン語そしてイタリア語の翻訳を追加するには、次のコードを使用します。
$stringArray = array(
    'en' => 'example',
    'es' => 'ejemplo',
    'it' => 'esempio',
);
$tr->add('example', 'mypage', $stringArray);

パラメータ

string $stringID

文字列の ID。

string $pageID

対象の pageID (この文字列が属する文字列グループ)。

array $stringArray

翻訳文字列の連想配列。

返り値

成功した場合に true、失敗した場合に PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Translation2_Admin::removeLang() | 上に戻る | Translation2_Admin::remove()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2_Admin::addLang

PEAR マニュアル
前のページ 次のページ

Translation2_Admin::addLang()

Translation2_Admin::addLang() -- 新しい言語に対応するためにストレージコンテナを準備する

概要

require_once 'Admin.php';

mixed Translation2_Admin::addLang (array $langData [, array $options])

説明

langsAvail テーブルが存在しない場合は、新しく作成されます。

パラメータ

array $langData

array(
    'lang_id'    => 'en',
    'table_name' => 'i18n',
    'name'       => 'english',
    'meta'       => 'some meta info',
    'error_text' => 'not available',
    'encoding'   => 'iso-8859-1',
);

array $options

array(
    'charset'   => 'latin1',
    'collation' => 'latin1_bin',
);

返り値

成功した場合に true、失敗した場合に PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Translation2_Admin クラス概要 | 上に戻る | Translation2_Admin::updateLang()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2_Admin::remove

PEAR マニュアル
前のページ 次のページ

Translation2_Admin::remove()

Translation2_Admin::remove() -- 翻訳文字列を削除する

概要

require_once 'Admin.php';

mixed Translation2_Admin::remove (string $stringID [, string $pageID = NULL])

説明

指定した stringID と pageID の組み合わせに対応するすべての翻訳を削除します。

パラメータ

string $stringID

string $pageID

返り値

成功した場合に true、失敗した場合に PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Translation2_Admin::add() | 上に戻る | Translation2_Decorator クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2_Admin::removeLang

PEAR マニュアル
前のページ 次のページ

Translation2_Admin::removeLang()

Translation2_Admin::removeLang() -- langsAvail テーブルから言語を削除し、文字列テーブルを削除する

概要

require_once 'Admin.php';

mixed Translation2_Admin::removeLang ([string $langID = NULL [, boolean $force = FALSE]])

説明

文字列テーブルに他の言語データが含まれており、かつ $force==FALSE の場合は、その言語のカラムのみが削除されます。$force==TRUE の場合は、一切のチェックをせずにテーブルを丸ごと削除します。

パラメータ

string $langID

削除する言語のコード。

boolean $force

返り値

成功した場合に true、失敗した場合に PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Translation2_Admin::updateLang() | 上に戻る | Translation2_Admin::add()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2_Admin::updateLang

PEAR マニュアル
前のページ 次のページ

Translation2_Admin::updateLang()

Translation2_Admin::updateLang() -- 言語の詳細を更新する

概要

require_once 'Admin.php';

mixed Translation2_Admin::updateLang (array $langData)

説明

言語の詳細を更新します。

パラメータ

array $langData

array(
    'lang_id'    => 'en',
    'table_name' => 'i18n',
    'name'       => 'english',
    'meta'       => 'some new meta info',
    'error_text' => 'text not available',
    'encoding'   => 'iso-8859-15',
);

返り値

成功した場合に true、失敗した場合に PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Translation2_Admin::addLang() | 上に戻る | Translation2_Admin::removeLang()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2_Decorator_CacheLiteFunction クラス概要

Translation2_Decorator_CacheLiteFunction クラス概要 -- Cache_Lite_Function クラスを用いて、取得したデータをキャッシュするデコレータ

Cache_Lite_Function デコレータの例

このデコレータは、非常に効率的なキャッシュを提供します。 PEAR::Cache_Lite が必要です。Cache_Lite がサポートするオプション

  • lifeTime [integer]

  • cacheDir [string]

  • fileLocking [boolean]

  • caching [boolean]

をすべてサポートしています。
$tr = new Translation2($driver, $dbinfo, $params);
$tr =& $tr->getDecorator('CacheLiteFunction');
$tr->setOption('cacheDir', '/var/tmp/');
$tr->setOption('lifeTime', 3600*24*7); // 一週間

前のページ | ホーム | 次のページ
Translation2_Decorator クラス概要 | 上に戻る | Translation2_Decorator_CacheMemory クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2_Decorator_CacheMemory クラス概要

Translation2_Decorator_CacheMemory クラス概要 -- 取得したデータをメモリにキャッシュするデコレータ

CacheMemory デコレータの例

このデコレータは、データをメモリにキャッシュします。 複数リクエスト間でキャッシュが持続することは「ありません」。 現在実行中のスクリプト内においてのみ有効です。 ネットワークの読み込みを少なくしたい場合には prefetch をオフにします (しかし、こうするとデータベースに対するクエリの数が増えます)。
$tr = new Translation2($driver, $dbinfo, $params);
$tr =& $tr->getDecorator('CacheMemory');
$tr->setOption('prefetch', true); // デフォルト値は true です

前のページ | ホーム | 次のページ
Translation2_Decorator_CacheLiteFunction クラス概要 | 上に戻る | Translation2_Decorator_DefaultText クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2_Decorator_DefaultText クラス概要

Translation2_Decorator_DefaultText クラス概要 -- 空の文字列に対する代替テキストを提供するデコレータ

DefaultText デコレータの例

取得した文字列が空の文字列だった場合に、 get() メソッドの 4 番目のパラメータ、つまり $defaultText でそれを置き換えます。 defaultText パラメータも空の文字列だった場合は、 "$emptyPostfix.$outputString.$emptyPrefix" を返します。 これら 3 つの変数の値は、クラスのプロパティとして独自の文字列を設定することができます。

getPage() がコールされた場合は、ページ内のすべての空文字列が stringID に置き換えられます。

$tr = new Translation2($driver, $dbinfo, $params);
$tr =& $tr->getDecorator('DefaultText');

// %stringID% は stringID に置き換えられます
// %pageID_url% は pageID に置き換えられます
// %stringID_url% は stringID を URL エンコードしたものに置き換えられます
// %url% は対象の URL に置き換えられます
$tr->outputString = '%stringID%<a href="%url%">(T)</a>'; // デフォルトは '%stringID%' です
$tr->url = '#';           // デフォルトと同じ値です
$tr->emptyPrefix  = '[';  // デフォルトは空の文字列です
$tr->emptyPostfix = ']';  // デフォルトは空の文字列です

前のページ | ホーム | 次のページ
Translation2_Decorator_CacheMemory クラス概要 | 上に戻る | Translation2_Decorator_ErrorText クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2_Decorator_ErrorText クラス概要

Translation2_Decorator_ErrorText クラス概要 -- 空の文字列に対するエラーメッセージを提供するデコレータ

ErrorText デコレータの例

取得した文字列が空の文字列だった場合に、lang_avail テーブルの "error_text" の内容でそれを置き換えます。
$tr = new Translation2($driver, $dbinfo, $params);
$tr =& $tr->getDecorator('ErrorText');

前のページ | ホーム | 次のページ
Translation2_Decorator_DefaultText クラス概要 | 上に戻る | Translation2_Decorator_Lang クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2_Decorator_Iconv クラス概要

Translation2_Decorator_Iconv クラス概要 -- 異なるエンコーディングへの切り替えを行うデコレータ

Iconv デコレータの例

$tr = new Translation2($driver, $dbinfo, $params);

// メインの言語をハンガリー語に設定します
$tr->setLang('hu');

// すべての文字列を、文字セット ISO-8859-2 でエンコードします
$tr =& $tr->getDecorator('Iconv');
$tr->setOption('encoding', 'ISO-8859-2');

前のページ | ホーム | 次のページ
Translation2_Decorator_Lang クラス概要 | 上に戻る | Translation2_Decorator_SpecialChars クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2_Decorator_Lang クラス概要

Translation2_Decorator_Lang クラス概要 -- 空の文字列に対する代替言語を提供するデコレータ

Lang デコレータの例

空の文字列に対する代替言語を提供したい場合に有用なデコレータです。 スタックに積み重ねることが可能で、複数のデフォルト言語を設定することができます。
$tr = new Translation2($driver, $dbinfo, $params);

// メインの言語として英語を設定します
$tr->setLang('en');

// 最初の代替言語としてイタリア語を設定します
$tr =& $tr->getDecorator('Lang');
$tr->setOption('fallbackLang', 'it');

// その次の代替言語としてスペイン語を設定します
$tr =& $tr->getDecorator('Lang');
$tr->setOption('fallbackLang', 'es');

前のページ | ホーム | 次のページ
Translation2_Decorator_ErrorText クラス概要 | 上に戻る | Translation2_Decorator_Iconv クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2_Decorator_SpecialChars クラス概要

Translation2_Decorator_SpecialChars クラス概要 -- 特殊文字を、対応する html エンティティに変換するデコレータ

SpecialChars デコレータの例

このデコレータは、特殊文字をそれに対応する html エンティティに変換します。 使用する文字セットを設定することが可能です (デフォルトは 'ISO-8859-1' です)。
$tr = new Translation2($driver, $dbinfo, $params);
$tr =& $tr->getDecorator('SpecialChars');
$tr->setOption('charset', 'UTF-8');

前のページ | ホーム | 次のページ
Translation2_Decorator_Iconv クラス概要 | 上に戻る | Translation2_Decorator_UTF8 クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2_Decorator クラス概要

Translation2_Decorator クラス概要 -- Translation2 クラスをデコレートする

Translation2 クラスをデコレートする

このクラスのサブクラスを作成し、「デコレーション」を行います。

Translation2_Decorator のクラス階層

  • Translation2_Decorator

表 44-1 Translation2_Decorator を継承するクラス

クラス | 概要
Translation2_Decorator_CacheLiteFunction | Cache_Lite_Function クラスを用いて、取得したデータをキャッシュするデコレータ。
Translation2_Decorator_CacheMemory | 取得したデータをメモリにキャッシュするデコレータ。
Translation2_Decorator_DefaultText | 空の文字列に対する代替テキストを提供するデコレータ。
Translation2_Decorator_ErrorText | 空の文字列に対するエラーメッセージを提供するデコレータ。
Translation2_Decorator_Iconv | 異なるエンコーディングへの切り替えを行うデコレータ。
Translation2_Decorator_Lang | 空の文字列に対する代替言語を提供するデコレータ。
Translation2_Decorator_SpecialChars | 特殊文字を、対応する html エンティティに変換するデコレータ。
Translation2_Decorator_UTF8 | UTF-8 文字列を ISO-8859-1 に変換するデコレータ。

前のページ | ホーム | 次のページ
Translation2_Admin::remove() | 上に戻る | Translation2_Decorator_CacheLiteFunction クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2_Decorator_UTF8 クラス概要

Translation2_Decorator_UTF8 クラス概要 -- UTF-8 文字列を ISO-8859-1 に変換するデコレータ

UTF-8 デコレータの例

このデコレータは、各文字列に対して utf8_decode() をコールします。
$tr = new Translation2($driver, $dbinfo, $params);
$tr =& $tr->getDecorator('UTF8');

前のページ | ホーム | 次のページ
Translation2_Decorator_SpecialChars クラス概要 | 上に戻る | Translation2 パッケージの定数

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2 クラス概要

Translation2 クラス概要 -- Translation2 クラス

Translation2 クラス

多言語対応のアプリケーションを管理するためのクラス

Translation2 のクラス階層

  • Translation2

表 44-1 Translation2 を継承するクラス

クラス | 概要
Translation2_Admin | 翻訳文字管理のための管理ユーティリティ群

前のページ | ホーム | 次のページ
Translation2 | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2::factory

PEAR マニュアル
前のページ 次のページ

Translation2::factory()

Translation2::factory() -- Translation2 オブジェクトのインスタンスを返す

概要

require_once 'Translation2.php';

void Translation2::factory (string $storageDriver [, mixed $options = '' [, array $params = array()]])

説明

Translation2 のファクトリです。

パラメータ

string $storageDriver

ストレージドライバの形式 ('db'、'mdb'、'mdb2'、 'gettext'、'dataobjectsimple')。

mixed $options

ストレージドライバに渡すオプション (例: ストレージドライバに DB を使用する場合は、dsn 文字列を指定しなければなりません)。

array $params

アダプタークラスへのパラメータの配列 (テーブル名/フィールド名の関連付けや このクラスで使用するテーブル名/フィールド名を指定します)。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor Translation2::Translation2() | 上に戻る | Translation2::get()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2::get

PEAR マニュアル
前のページ 次のページ

Translation2::get()

Translation2::get() -- 翻訳された文字列を取得する

概要

require_once 'Translation2.php';

string Translation2::get (string $stringID [, string $pageID = TRANSLATION2_DEFAULT_PAGEID [, string $langID = NULL [, string $defaultText = '']]])

説明

コンテナから文字列を取得します。文字列が空で DefaultText デコレータが使用されている場合は、$defaultText が返されます。

パラメータ

string $stringID

string $pageID

string $langID

string $defaultText

文字列が空の場合に表示されるテキスト。 注意: このパラメータは、DefaultText デコレータでのみ使用されます。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Translation2::factory() | 上に戻る | Translation2::getDecorator()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2::getDecorator

PEAR マニュアル
前のページ 次のページ

Translation2::getDecorator()

Translation2::getDecorator() -- デコレータのインスタンスを返す

概要

require_once 'Translation2.php';

object Decorator& Translation2::getDecorator (string $decorator, object [optional] 1)

説明

デコレータのインスタンスを取得するために使用します。 デコレータとはいわゆるフィルタのようなもので、 渡されたオブジェクトや変数の値を変更したり何らかの処理を加えたりします。

パラメータ

string $decorator

デコレータの名前。

object $obj [optional]

デコレートするオブジェクト (デフォルトのオブジェクトは $this です)。

返り値

Translation2_Decorator のサブクラスのオブジェクトへの参照を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Translation2::get() | 上に戻る | Translation2::getLang()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2::getLang

PEAR マニュアル
前のページ 次のページ

Translation2::getLang()

Translation2::getLang() -- 言語情報を取得する

概要

require_once 'Translation2.php';

mixed Translation2::getLang ([string $langID = NULL [, string $format = 'name']])

説明

言語に関する追加情報 (フルネーム、その言語用のエラー文字列、...) を取得します。

パラメータ

string $langID

string $format

['name', 'meta', 'error_text', 'array']

返り値

$format の内容に応じて、文字列あるいは配列を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Translation2::getDecorator() | 上に戻る | Translation2::getLangs()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2::getLangs

PEAR マニュアル
前のページ 次のページ

Translation2::getLangs()

Translation2::getLangs() -- 言語情報を取得する

概要

require_once 'Translation2.php';

array Translation2::getLangs ([string $format = 'name'])

説明

言語に関する追加情報 (フルネーム、その言語用のエラー文字列、そのコード、...) を取得します。

パラメータ

string $format

['ids', 'names', 'array']

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Translation2::getLang() | 上に戻る | Translation2::getPage()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2::getPage

PEAR マニュアル
前のページ 次のページ

Translation2::getPage()

Translation2::getPage() -- 文字列グループの全体を取得する

概要

require_once 'Translation2.php';

array Translation2::getPage ([string $pageID = TRANSLATION2_DEFAULT_PAGEID [, string $langID = NULL]])

説明

getRawPage() と同じですが、代替言語を考慮し、必要に応じてパラメータの置換を行います。

パラメータ

string $pageID

string $langID

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Translation2::getLangs() | 上に戻る | Translation2::getRaw()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2::getRaw

PEAR マニュアル
前のページ 次のページ

Translation2::getRaw()

Translation2::getRaw() -- 翻訳された文字列を (そのままの形式で) 取得する

概要

require_once 'Translation2.php';

string Translation2::getRaw (string $stringID [, string $pageID = TRANSLATION2_DEFAULT_PAGEID [, string $langID = NULL [, string $defaultText = '']]])

説明

コンテナから文字列を取得します。文字列が空の場合は $defaultText を返します。

パラメータ

string $stringID

string $pageID

string $langID

string $defaultText

文字列が空の場合に代わりに表示するテキスト。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Translation2::getPage() | 上に戻る | Translation2::getRawPage()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2::getRawPage

PEAR マニュアル
前のページ 次のページ

Translation2::getRawPage()

Translation2::getRawPage() -- ページ内の文字列の配列を取得する

概要

require_once 'Translation2.php';

array Translation2::getRawPage ([string $pageID = TRANSLATION2_DEFAULT_PAGEID [, string $langID = NULL]])

説明

コンテナからページ (あるいは '文字列グループ' とも言う) を取得します。その際、書式変換やパラメータ置換は行いません。

パラメータ

string $pageID

string $langID

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Translation2::getRaw() | 上に戻る | Translation2::getStringID()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2::getStringID

PEAR マニュアル
前のページ 次のページ

Translation2::getStringID()

Translation2::getStringID() -- 指定した文字列に対応する stringID を取得する

概要

require_once 'Translation2.php';

string Translation2::getStringID (string $string [, mixed $pageID = TRANSLATION2_DEFAULT_PAGEID])

説明

パラメータとして渡した文字列に対応する stringID を取得します。

パラメータ

string $string

これは stringID ではなく、実際の文字列です。 このメソッドは、文字列から stringID を返すものです。

mixed $pageID

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Translation2::getRawPage() | 上に戻る | Translation2::setCharset()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2::setCharset

PEAR マニュアル
前のページ 次のページ

Translation2::setCharset()

Translation2::setCharset() -- 翻訳を取得/保存する際に使用する文字セットを設定する

概要

require_once 'Translation2.php';

mixed Translation2::setCharset (string $charset)

説明

文字列を取得する際に使用する文字セットを設定します。 現在は、これを用いるのは MDB2 コンテナのみです。

パラメータ

string $charset コンテナに渡す文字セットの名前 (たとえば 'utf8')。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Translation2::getStringID() | 上に戻る | Translation2::setLang()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2::setLang

PEAR マニュアル
前のページ 次のページ

Translation2::setLang()

Translation2::setLang() -- デフォルトの言語を設定する

概要

require_once 'Translation2.php';

void Translation2::setLang (string $langID)

説明

文字列を取得する際に使用される言語を設定します。

パラメータ

string $langID 言語コード (例えば 'en' や 'it')。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Translation2::setCharset() | 上に戻る | Translation2::setPageID()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2::setPageID

PEAR マニュアル
前のページ 次のページ

Translation2::setPageID()

Translation2::setPageID() -- デフォルトのページを設定する

概要

require_once 'Translation2.php';

void Translation2::setPageID ([mixed $pageID = NULL, string $langID])

説明

文字列の取得の際に使用するページ (あるいは '文字列グループ' とも言う) を設定します。これを設定すると、 get() をコールするたびに毎回ページを指定する必要がなくなります。

パラメータ

string $pageID

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Translation2::setLang() | 上に戻る | Translation2::setParams()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Translation2::setParams

PEAR マニュアル
前のページ 次のページ

Translation2::setParams()

Translation2::setParams() -- 次の文字列のパラメータを設定する

概要

require_once 'Translation2.php';

void Translation2::setParams ([params $params = NULL])

説明

文字列内のパラメータを置換する文字を設定します。 パラメータの区切り文字は変更することが可能です。

パラメータ

array $params

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Translation2::setPageID() | 上に戻る | Translation2_Admin クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor Translation2::Translation2

PEAR マニュアル
前のページ 次のページ

constructor Translation2::Translation2()

constructor Translation2::Translation2() -- コンストラクタ

概要

require_once 'Translation2.php';

void constructor Translation2::Translation2 (string $storageDriver [, mixed $options = '' [, array $params = array()]])

説明

このコンストラクタは非推奨です。代わりに factory() メソッドを使用してください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
コンテナの概要 | 上に戻る | Translation2::factory()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Log

さまざまなログ処理メカニズムの抽象化および Subject-Observer パターンを 実装しています。

完全なオンラインドキュメントは、メンテナの webサイト http://www.indelible.org/pear/Log/guide.php を御覧ください。

前のページ | ホーム | 次のページ
ログ記録 | 上に戻る | メール

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail

目次
導入 -- メールの送信方法とメーラーのバックエンド
Mail::factory() -- メーラインスタンスを作成する
Mail::send() -- メールを送信する
RFC822 - 導入 -- メールアドレスの検証
Mail_RFC822::parseAddressList() -- メールアドレスの一覧から各部分を展開する

メール送信のためのインターフェース

前のページ | ホーム | 次のページ
メール | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_IMAP

目次
導入 -- Mail_IMAP は、c-client (IMAP) 拡張を利用したバックエンド処理を シンプルにします。

Mail_IMAP は、c-client (IMAP) 拡張を利用したバックエンド処理を シンプルにします。 一般に利用されている c-client 関数の OO ラッパーとして動作します。 ボディの処理と同様、構造とヘッダのパース機能も提供します。

前のページ | ホーム | 次のページ
Mail_RFC822::parseAddressList() | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- Mail_IMAP は、c-client (IMAP) 拡張を利用したバックエンド処理を シンプルにします。

Mail_IMAP 詳細

Mail_IMAP は、PHP のc-client (imap) 拡張を利用したオブジェクト指向 バックエンドを提供します。 c-client 拡張は、IMAP、POP3、NNTP メールボックスへの接続のための 機能を提供します。 Mail_IMAP は、ヘッダのパースや処理と同様、 マルチパートメッセージや知的なメッセージボディ処理のパース機能を 提供している c-client のほとんどの関数のラッパーとして動作します。 Mail_IMAP は、カスタマイズ可能な Web メールテンプレートが必要な場合、 理想的な解決策となります。 Mail_IMAP は、自動化されたメーリングリスト管理において、 コンポーネントとしても動作します。というのも、Subject、ボディ、添付、 あるいはその他のメッセージコンポーネントを処理するといった 多くの処理を行うことができます。

完全なオンラインドキュメントは、こちらにあります。

前のページ | ホーム | 次のページ
Mail_IMAP | 上に戻る | Mail_Mbox

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Mbox

目次
Mail_Mbox クラス概要 -- mbox メールファイルの読み込み用クラス
チュートリアル -- Mail_Mbox の使用法
constructor Mail_Mbox::Mail_Mbox() -- 新しい Mbox クラスのインスタンスを作成する
Mail_Mbox::close() -- Mbox をクローズする
Mail_Mbox::get() -- Mbox からメッセージを取得する
Mail_Mbox::getDebug() -- デバッグフラグの設定を返す
Mail_Mbox::getTmpDir() -- 一時ディレクトリを返す
Mail_Mbox::hasBeenModified() -- ファイルが読み込まれた後で変更されているかどうかを調べる
Mail_Mbox::insert() -- メッセージを挿入する
Mail_Mbox::open() -- Mbox ファイルをオープンする
Mail_Mbox::remove() -- Mbox からメッセージを削除し、保存する
Mail_Mbox::setDebug() -- デバッグフラグを設定する
Mail_Mbox::setTmpDir() -- 一時ファイル用のディレクトリを設定する
Mail_Mbox::size() -- この mbox のメッセージ数を取得する
Mail_Mbox::update() -- メッセージを更新する
Mail_Mbox::_move() -- ファイルを別の場所にコピーする
Mail_Mbox::_process() -- Mbox を処理する
前のページ | ホーム | 次のページ
導入 | 上に戻る | Mail_Mbox クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Mbox クラス概要

Mail_Mbox クラス概要 -- mbox メールファイルの読み込み用クラス

mbox ファイルの読み書き

mbox メールファイルは、複数のメールをひとつの大きなファイルにまとめたものです。 個々のメールは "From " から始まって改行で終わるので、 これを元に各メールを分割することができます。

このクラスは mbox ファイル名をコンストラクタで受け取り、 open() をコールして各メールの開始位置と終了位置のインデックスを作成します。 また、インデックスの位置を使用して get() をコールすると、各メールを返します。

このクラスを使用すると、mbox ファイルに対してメッセージの insert()、 remove() や update() ができるようになります。これらのメソッドをコールすると、 このクラスはまず、前回インデックスを作成した後でファイルが変更されていないかどうかを調べます。 間違った位置をインデックスで指定すると、ファイルが壊れてしまうからです。 get() で単一のメッセージを取得する際にはこのチェックは行われません。 なぜなら、例えば何千通ものメールを取得する際などに速度が遅くなってしまうからです。 しかし、 hasBeenModified() をコールしてから get() を使用することで、自分自身で変更をチェックすることができます。 このメソッドが true を返した場合は、 close() をコールしてから open() でファイルを再オープンしなければなりません。

もし何かおかしなことが起こってその原因がわからない場合は、 setDebug(true) でデバッグ機能を有効にします。また、mbox ファイルに対して追加/削除/変更 を行った際にファイルが保存される一時ディレクトリを変更するには、 setTmpDir('/path/') を使用します。

Mail_Mbox のクラス階層

  • PEAR

    • Mail_Mbox

前のページ | ホーム | 次のページ
Mail_Mbox | 上に戻る | チュートリアル

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Mbox::_move

PEAR マニュアル
前のページ 次のページ

Mail_Mbox::_move()

Mail_Mbox::_move() -- ファイルを別の場所にコピーする

概要

require_once '/Mbox.php';

void Mail_Mbox::_move (string $ftempname, string $filename)

説明

一時ファイルの内容を mbox ファイルにコピーするために、内部的に使用されます。

パラメータ

string $ftempname

コピー元ファイル。削除されます。

string $filename

出力ファイル。

前のページ | ホーム | 次のページ
Mail_Mbox::update() | 上に戻る | Mail_Mbox::_process()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Mbox::_process

PEAR マニュアル
前のページ 次のページ

Mail_Mbox::_process()

Mail_Mbox::_process() -- Mbox を処理する

概要

require_once '/Mbox.php';

void Mail_Mbox::_process ()

説明

  • 各メッセージの開始位置と終了位置のバイト数を取得します。

前のページ | ホーム | 次のページ
Mail_Mbox::_move() | 上に戻る | Mail_Mime

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Mbox::close

PEAR マニュアル
前のページ 次のページ

Mail_Mbox::close()

Mail_Mbox::close() -- Mbox をクローズする

概要

require_once '/Mbox.php';

mixed Mail_Mbox::close ()

説明

open() でオープンした Mbox ファイルをクローズします。

返り値

成功した場合に true、それ以外の場合に PEAR_Error を返します。

前のページ | ホーム | 次のページ
constructor Mail_Mbox::Mail_Mbox() | 上に戻る | Mail_Mbox::get()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Mbox::get

PEAR マニュアル
前のページ 次のページ

Mail_Mbox::get()

Mail_Mbox::get() -- Mbox からメッセージを取得する

概要

require_once '/Mbox.php';

string Mail_Mbox::get (int $message)

説明

指定した位置にあるメールのメッセージを返します。

注意: メッセージ番号は 0 からはじまります。

パラメータ

integer $message

取得するメッセージの番号。

返り値

メッセージを返します。エラー時には PEAR_Error を返します。

前のページ | ホーム | 次のページ
Mail_Mbox::close() | 上に戻る | Mail_Mbox::getDebug()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Mbox::getDebug

PEAR マニュアル
前のページ 次のページ

Mail_Mbox::getDebug()

Mail_Mbox::getDebug() -- デバッグフラグの設定を返す

概要

require_once '/Mbox.php';

boolean Mail_Mbox::getDebug ()

説明

デバッグが有効かどうかを返します。

返り値

デバッグが有効かどうかを返します。

前のページ | ホーム | 次のページ
Mail_Mbox::get() | 上に戻る | Mail_Mbox::getTmpDir()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Mbox::getTmpDir

PEAR マニュアル
前のページ 次のページ

Mail_Mbox::getTmpDir()

Mail_Mbox::getTmpDir() -- 一時ディレクトリを返す

概要

require_once '/Mbox.php';

string Mail_Mbox::getTmpDir ()

説明

一時ディレクトリを返します。

返り値

一時ディレクトリを返します。

前のページ | ホーム | 次のページ
Mail_Mbox::getDebug() | 上に戻る | Mail_Mbox::hasBeenModified()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Mbox::hasBeenModified

PEAR マニュアル
前のページ 次のページ

Mail_Mbox::hasBeenModified()

Mail_Mbox::hasBeenModified() -- ファイルが読み込まれた後で変更されているかどうかを調べる

概要

require_once '/Mbox.php';

boolean Mail_Mbox::hasBeenModified ()

説明

mbox ファイルが、オープンした後で変更されているかどうかを調べます。 これが true であった場合は、ファイルを再オープンしなければなりません。

返り値

ファイルが変更されている場合に true を返します。

前のページ | ホーム | 次のページ
Mail_Mbox::getTmpDir() | 上に戻る | Mail_Mbox::insert()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Mbox::insert

PEAR マニュアル
前のページ 次のページ

Mail_Mbox::insert()

Mail_Mbox::insert() -- メッセージを挿入する

概要

require_once '/Mbox.php';

mixed Mail_Mbox::insert (string $content, mixed [$offset = NULL])

説明

Mail_Mbox は、offset の位置にメッセージを挿入します (注意: メッセージ番号 3 は、4 番目のメッセージとなります)。 デフォルト (offset = null) では、最後のメッセージの後にメッセージは挿入されます。

注意: Mail_Mbox は、メッセージの最後に自動的に \n\n を追加します。

パラメータ

string $content

新しいメッセージの内容。

mixed $offset

返り値

true あるいは PEAR_Error オブジェクトを返します。

前のページ | ホーム | 次のページ
Mail_Mbox::hasBeenModified() | 上に戻る | Mail_Mbox::open()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor Mail_Mbox::Mail_Mbox

PEAR マニュアル
前のページ 次のページ

constructor Mail_Mbox::Mail_Mbox()

constructor Mail_Mbox::Mail_Mbox() -- 新しい Mbox クラスのインスタンスを作成する

概要

require_once '/Mbox.php';

void constructor Mail_Mbox::Mail_Mbox (string $file)

説明

作成した後で、 open() を使用しなければなりません。

パラメータ

string $file

オープンするファイルの名前。

前のページ | ホーム | 次のページ
チュートリアル | 上に戻る | Mail_Mbox::close()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Mbox::open

PEAR マニュアル
前のページ 次のページ

Mail_Mbox::open()

Mail_Mbox::open() -- Mbox ファイルをオープンする

概要

require_once '/Mbox.php';

void Mail_Mbox::open ()

説明

また、この関数は Mbox ファイルを処理し、 各メッセージの開始位置、終了位置のバイト数を記録するキャッシュを作成します。

前のページ | ホーム | 次のページ
Mail_Mbox::insert() | 上に戻る | Mail_Mbox::remove()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Mbox::remove

PEAR マニュアル
前のページ 次のページ

Mail_Mbox::remove()

Mail_Mbox::remove() -- Mbox からメッセージを削除し、保存する

概要

require_once '/Mbox.php';

mixed Mail_Mbox::remove (int $message)

説明

指定した ID のメッセージを削除します。

注意注意: メッセージ番号は 0 から始まります。

パラメータ

integer $message

削除するメッセージの番号、あるいは削除するメッセージ番号の配列。

返り値

true あるいは PEAR_Error を返します。

前のページ | ホーム | 次のページ
Mail_Mbox::open() | 上に戻る | Mail_Mbox::setDebug()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Mbox::setDebug

PEAR マニュアル
前のページ 次のページ

Mail_Mbox::setDebug()

Mail_Mbox::setDebug() -- デバッグフラグを設定する

概要

require_once '/Mbox.php';

void Mail_Mbox::setDebug (boolean $debug)

説明

デバッグフラグを設定します。デバッグを有効にすると、 より詳細な出力が得られます。

パラメータ

boolean $debug

デバッグが有効か無効か。

参照

Mail_Mbox::$debug も参照ください。

前のページ | ホーム | 次のページ
Mail_Mbox::remove() | 上に戻る | Mail_Mbox::setTmpDir()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Mbox::setTmpDir

PEAR マニュアル
前のページ 次のページ

Mail_Mbox::setTmpDir()

Mail_Mbox::setTmpDir() -- 一時ファイル用のディレクトリを設定する

概要

require_once '/Mbox.php';

void Mail_Mbox::setTmpDir (string $tmpdir)

説明

新しい mbox ファイルを保存する一時ディレクトリを設定します。

パラメータ

string $tmpdir

新しい一時ディレクトリ。

参照

Mail_Mbox::$tmpdir も参照ください。

前のページ | ホーム | 次のページ
Mail_Mbox::setDebug() | 上に戻る | Mail_Mbox::size()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Mbox::size

PEAR マニュアル
前のページ 次のページ

Mail_Mbox::size()

Mail_Mbox::size() -- この mbox のメッセージ数を取得する

概要

require_once '/Mbox.php';

int Mail_Mbox::size ()

説明

mbox ファイルメッセージ数を返します。

返り値

Mbox のメッセージ数を返します (1 から始まります。 メッセージが存在しない場合は 0 となります)。

前のページ | ホーム | 次のページ
Mail_Mbox::setTmpDir() | 上に戻る | Mail_Mbox::update()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Mbox::update

PEAR マニュアル
前のページ 次のページ

Mail_Mbox::update()

Mail_Mbox::update() -- メッセージを更新する

概要

require_once '/Mbox.php';

mixed Mail_Mbox::update (int $message, string $content)

説明

指定したメッセージを置き換えるテキストを渡すために、 このメソッドを使用します。

注意Mail_Mbox は、メッセージの最後に自動的に \n\n を追加します。

注意メッセージ番号は 0 から始まります。

パラメータ

integer $message

更新するメッセージの番号。

string $content

新しいメッセージの内容。

返り値

成功した場合に true、それ以外の場合に PEAR_Error を返します。

前のページ | ホーム | 次のページ
Mail_Mbox::size() | 上に戻る | Mail_Mbox::_move()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


チュートリアル

チュートリアル -- Mail_Mbox の使用法

Mail_Mbox の使用法

mbox ファイルに対して何らかの操作をする前に、 Mail_Mbox クラスの インスタンスを作成してから open() しなければなりません。

<?php
require_once 'Mail/Mbox.php';
$mbox = new Mail_Mbox('/path/to/mbox');
$mbox->open();
// ここで何かをします
?>

ファイルをオープンした後で個々のメッセージを取得するには get() を使用します。 size() メソッドを使用すると、メッセージの数を取得できます。

<?php
//... 初期化
for ($n = 0; $n < $mbox->size(); $n++) {
    $message = $mbox->get($n);
    // メッセージのテキストに対する処理
}
?>

ファイルに対する操作が終了したら、それを close() します。

<?php
//... その他のコード
$mbox->close();
?>

/path/to/pear/docs/Mail_Mbox/examples/ ディレクトリにある Mail_Mbox のサンプルも参照ください。

前のページ | ホーム | 次のページ
Mail_Mbox クラス概要 | 上に戻る | constructor Mail_Mbox::Mail_Mbox()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Mime

目次
Mail_Mime::Mail_Mime() -- 新規インスタンスを作成する
Mail_Mime::addAttachment() -- 添付を追加する
Mail_Mime::addHTMLImage() -- イメージをメッセージに追加
Mail_Mime::get() -- メッセージを構築する
Mail_Mime::headers() -- ヘッダ行を構築する
Mail_Mime::setHTMLBody() -- HTML 部分を設定する
Mail_Mime::setTxtBody() -- プレインテキスト部分を設定する
Mail_Mime - 例 -- MIME メールの生成と送信
Mail_mimePart::Mail_mimePart() -- コンストラクタ
Mail_mimePart::addsubpart() -- MIME パートにサブパートを追加する
Mail_mimePart::encode() -- メールをエンコードする
Mail_mimeDecode::Mail_mimeDecode() -- コンストラクタ
Mail_mimeDecode::decode() -- デコードを実行する
Mail_mimeDecode::uudecode() -- UUコードデータのデコード
Mail_mimeDecode::getXML() -- MIME パートの XML 表現を作成する
Mail_mimeDecode - 例 -- メールデコード

複雑なマルチパートメールの作成を容易にするパッケージです。 あなたが、電子メールを作成するための単純なAPIを捜しているなら、 Mail_Mimeクラスは恐らく十分でしょう。 また、Mail_mimePartを使用することで、 よりよいMIME生成の制御が出来ます。

Mail_mimeDecodeクラスはMIMEデータのデコードの為の APIを提供します。

前のページ | ホーム | 次のページ
Mail_Mbox::_process() | 上に戻る | Mail_Mime::Mail_Mime()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Mime::addAttachment()

Mail_Mime::addAttachment() -- 添付を追加する

概要

require_once 'Mail/mime.php';

boolean addAttachment (string $file, string [$c_type = 'application/octet-stream'], string [$name = ''], boolean [$isfile = TRUE], string [$encoding = 'base64'])

説明

メッセージに添付を追加します。

パラメータ

  • string $file - ファイル名あるいはデータ自体です。

  • string $c_type - イメージまたは画像のコンテントタイプ。

  • string $name - データのためにファイル名を示唆します。 $fileの内容がデータだった場合のみ使用します。

  • boolean $isfile - $file がファイル名かどうかです。

  • string $encoding - ファイルのデータを転送するための符号化の種類です。 デフォルトは "base64" です。 テキストベースのファイル(例えばスクリプトや HTML)には "quoted-printable" が利用出来るかもしれません (訳注:日本語のテキストは通常 "base64" を使用します)。

返り値

boolean - 成功時には TRUE、 失敗時には PEAR_Error を返します。

例外・エラー

表 46-1PEAR_Error の値

エラーコート | エラーメッセージ | 原因 | 解決
NULL | "File is not readable file_name" | ファイルが見つからないか、 スクリプトのファイルへのアクセス権限が足りません。 | ファイル名とパスを確認します。ユーザーとファイルパーミッションを確認します。
NULL | "Could not open file_name" | ファイルが既にオープンされており、 他のアプリケーションによってロックされています。 | たいていの場合は、プログラムはファイルを書き込みモードでオープンします。 addAttachment() はファイルのロックを行いません。 つまりこのエラーの原因は、この関数自体のコールの競合ではありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Mail_Mime::Mail_Mime() | 上に戻る | Mail_Mime::addHTMLImage()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Mime::addHTMLImage()

Mail_Mime::addHTMLImage() -- イメージをメッセージに追加

概要

require_once 'Mail/mime.php';

boolean addHTMLImage (string $file, string [$c_type = 'application/octet-stream'] [, string $name = '' [, boolean $isfile = TRUE]])

説明

組み込みイメージを持ったHTMLメッセージを送る場合は、 イメージを追加するこの関数を使用してください。

パラメータ

  • string $file - 画像ファイル名か、画像データ自身です。

  • string $c_type - イメージかファイルの内容の種類です。

  • string $name - 画像のファイル名で、 もし$file の内容が画像データの時のみ使用します。

  • boolean $isfile - $file がファイル名かどうかです。

返り値

boolean - 成功時には TRUE、 失敗時には PEAR_Error を返します。

例外・エラー

表 46-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 解決
NULL | "ファイル file_name が読み込めない" | ファイルが見つからないか、 スクリプトのファイルへのアクセス権限が足りません。 | ファイル名とパスを確認します。ユーザーとファイルパーミッションを確認します。
NULL | "file_name を開くことができない" | The file is already opened and exclusivly locked by another application. | In the most cases a programm opens the file for writing. addHTMLImage() does no file locking, so this problem is not caused by competitve callings of this function.

注意

この関数は、スタティックにコールする ことはできません。

参照

Mail_Mime::setHTMLBody()

前のページ | ホーム | 次のページ
Mail_Mime::addAttachment() | 上に戻る | Mail_Mime::get()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Mime - 例

Mail_Mime - 例 -- MIME メールの生成と送信

例

<?php
include('Mail.php');
include('Mail/mime.php');

$text = 'Text version of email';
$html = '<html><body>HTML version of email</body></html>';
$file = '/home/richard/example.php';
$crlf = "\n";
$hdrs = array(
              'From'    => 'you@yourdomain.com',
              'Subject' => 'Test mime message'
              );

$mime = new Mail_mime($crlf);

$mime->setTXTBody($text);
$mime->setHTMLBody($html);
$mime->addAttachment($file, 'text/plain');

// これらのコール順を逆にしないでください
$body = $mime->get();
$hdrs = $mime->headers($hdrs);

$mail =& Mail::factory('mail');
$mail->send('postmaster@localhost', $hdrs, $body);
?>
前のページ | ホーム | 次のページ
Mail_Mime::setTxtBody() | 上に戻る | Mail_mimePart::Mail_mimePart()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Mime::get()

Mail_Mime::get() -- メッセージを構築する

概要

require_once 'Mail/mime.php';

string &get (array [$param = NULL])

説明

text/html/image/attachment を追加した際には、この関数をコールしなければなりません。 この関数は、メッセージを構築してそれを返します。送信は行いません。この関数 (と headers() 関数) の返す内容をを送信するには、 Mail::send() 関数を使用しなければなりません。

パラメータ

  • array $param - パラメータの連想配列。 これらのパラメータは、メッセージ構築時に作用します。

    • $param["text_encoding"] - 電子メールのプレインテキストパートに使用するエンコードの種類です。 デフォルトは "7bit" です。

    • $param["html_encoding"] - 電子メールの HTML パートに使用するエンコードの種類です。

    • $param["7bit_wrap"] - テキストが終わる文字数です。 SMTP は、CRLF を含む 1000 文字を最大行の長さと規定します。 デフォルトは 998 文字です (CRLF を追加して 1000 文字になります)。

    • $param["head_charset"] - ヘッダに使用する文字コードセットです。デフォルトは "iso-8859-1" です。

    • $param["text_charset"] - 電子メールのプレインテキストパートに使用する文字コードセットです。 デフォルトは "iso-8859-1" です。

    • $param["html_charset"] - 電子メールの HTML パートに使用する文字コードセットです。 デフォルトは "iso-8859-1" です。

返り値

string - メッセージ本文です。

注意

この関数は、スタティックにコールする ことはできません。

参照

Mail_Mime::headers()

前のページ | ホーム | 次のページ
Mail_Mime::addHTMLImage() | 上に戻る | Mail_Mime::headers()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Mime::headers()

Mail_Mime::headers() -- ヘッダ行を構築する

概要

require_once 'Mail/mime.php';

array &headers ([array $headerEx = NULL])

説明

電子メールの先頭に必要なヘッダ (MIME-Version と Content-Type) の配列を返します。 headers() を呼ぶ前に、関数get() を呼ばなければならないことに注意してください。

パラメータ

  • array $headerEx - 追加のヘッダで、引き数の書式は $array["header-name"] = "header-value" です。

返り値

array - MIME ヘッダおよび追加のヘッダの連想配列。 返り値は直接Mail::send() の第 2 パラメータに渡すことが出来ます。

注意

この関数は、スタティックにコールする ことはできません。

警告

Mail_Mime::get() の後に、 Mail_Mime::headers()を呼ぶ必要があります。

参照

Mail_Mime::get()

前のページ | ホーム | 次のページ
Mail_Mime::get() | 上に戻る | Mail_Mime::setHTMLBody()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Mime::Mail_Mime()

Mail_Mime::Mail_Mime() -- 新規インスタンスを作成する

概要

require_once 'Mail/mime.php';

Mail_mime Mail_mime (string [$crlf = "\r\n"])

説明

Mail_Mime の新しいインスタンスを作成します。

パラメータ

  • string $crlf - 使用する行末の種類です。

注意

通常、 $crlf パラメータをセットする必要はありません。 しかし、 生成された MIME メッセージをMail を用いて送信する場合、 $crlf に "\n" を指定しなければなりません。

前のページ | ホーム | 次のページ
Mail_Mime | 上に戻る | Mail_Mime::addAttachment()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Mime::setHTMLBody()

Mail_Mime::setHTMLBody() -- HTML 部分を設定する

概要

require_once 'Mail/mime.php';

boolean setHTMLBody (string $data [, boolean $isfile = FALSE])

説明

メッセージのHTML部分を設定します。

パラメータ

  • string $data - The text to set or, if $isfile is TRUE a valid filename. An URL as argument is not allowed.

  • boolean $isfile - If TRUE, the content of given file $data is used as message text.

返り値

boolean - 成功時には TRUE、 失敗時には PEAR_Error を返します。

例外・エラー

表 46-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 解決
NULL | "ファイル file_name が読み込めない" | ファイルが見つからないか、 スクリプトのファイルへのアクセス権限が足りません。 | ファイル名とパスを確認します。ユーザーとファイルパーミッションを確認します。
NULL | "file_name を開くことができない" | The file is already opened and exclusivly locked by another application. | In the most cases a programm opens the file for writing. setHTMLBody() does no file locking, so this problem is not caused by competitve callings of this function.

注意

この関数は、スタティックにコールする ことはできません。

参照

Mail_Mime::setTxtBody()

前のページ | ホーム | 次のページ
Mail_Mime::headers() | 上に戻る | Mail_Mime::setTxtBody()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Mime::setTxtBody()

Mail_Mime::setTxtBody() -- プレインテキスト部分を設定する

概要

require_once 'Mail/mime.php';

boolean setTxtBody (string $data [, boolean $isfile = FALSE])

説明

メッセージのプレインテキスト部分を設定します。

パラメータ

  • string $data - The text to set or, if $isfile is TRUE a valid filename. An URL as argument is not allowed.

  • boolean $isfile - If TRUE, the content of given file $data is used as message text.

返り値

boolean - 成功時には TRUE、 失敗時には PEAR_Error を返します。

例外・エラー

表 46-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 解決
NULL | "ファイル file_name が読み込めない" | ファイルが見つからないか、 スクリプトのファイルへのアクセス権限が足りません。 | ファイル名とパスを確認します。ユーザーとファイルパーミッションを確認します。
NULL | "file_name を開くことができない" | The file is already opened and exclusivly locked by another application. | In the most cases a programm opens the file for writing. setTxtBody() does no file locking, so this problem is not caused by competitve callings of this function.

注意

この関数は、スタティックにコールする ことはできません。

参照

Mail_Mime::setHTMLBody()

前のページ | ホーム | 次のページ
Mail_Mime::setHTMLBody() | 上に戻る | Mail_Mime - 例

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_mimeDecode::decode()

Mail_mimeDecode::decode() -- デコードを実行する

概要

require_once 'Mail/mimeDecode.php';

object decode (array [$args = NULL])

説明

この関数は、 メッセージデータの構造内容のデコードを実行、結果を返します。

パラメータ

  • array $args - 関数の引数配列です。

    • boolean $args['include_bodies'] - 返される構造にメール本体も含むかどうかを指定します。

    • boolean $args['decode_bodies'] - 返される構造のメール本体をデコードするかどうかを指定します。

    • boolean $args['decode_headers'] - ヘッダのデコードをするかどうかを指定します。 (RFC2047).

    • string $args['input'] - もし静的に呼ばれた場合、 デコードすべきデータの入力を指定します。

    • string $args['crlf'] - もし静的に呼ばれた場合、 行末に使用する文字タイプを指定します。

返り値

object -

  • array $return->headers - an associative array of the headers. The keys of the array are the header names (lowercased) whilst the values are the header values (original case). If there are multiple headers with the same name (eg. Received: ) then the value is a numerically indexed array of each of the header values. If the parameter decode_headers is specified as TRUE, the headers will be decoded according to RFC 2047.

  • string $return->ctype_primary - the first part of the content type (ie. before the forward slash). Eg. if the content type is multipart/mixed, ctype_primary would be "multipart".

  • string $return->ctype_secondary - the second part of the content type. Eg. If the content type is multipart/mixed, ctype_secondary would be "mixed".

  • array $return->ctype_parameters - if the content type header has any parameters (eg. boundary="=_hudfhdsalfhds8fy8329hfj") then they will be in this associative array. Keys are the parameter name (eg. boundary) whilst the values are the parameter values (eg. =_hudfhdsalfhds8fy8329hfj).

  • string $return->disposition - if the Content-Disposition header is present, its value will be given here. This is usually either "inline" or "attachment".

  • array $return->d_parameters - if any parameters are given with the Content-Disposition header, they will be given here in an associative array, keys being the parameter names and values being the parameter values. "name" and "filename" are two common examples here.

  • array $return->body - if the include_bodies parameter is given when instanciating the class, (either statically or via a concrete instance), then this will be present if the part in question has a body. MIME parts with content type multipart/* generally do not not have bodies, instead consisting of subparts. If the parameter decode_bodies is specified as TRUE then the body will be decoded.

  • array $return->parts - if a MIME part consists of subparts, then this array will be present consisting of objects with the same properties as described here.

例外・エラー

表 46-1PEAR_Error の値

エラーコード | エラーメッセージ | 意味 | 解決策
NULL | " 静的に呼ばれたか、引数が与えられていない " | You called the function statically and forgot to fill $args['input'] | 総ての$args['input']を埋めるか、 静的にこの関数を呼ばないでください。
NULL | その他 | エラーメッセージを見てください。 | 入力されたメッセージ、 またはメッセージパートがMIME標準に準じていません。

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
Mail_mimeDecode::Mail_mimeDecode() | 上に戻る | Mail_mimeDecode::uudecode()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_mimeDecode - 例

Mail_mimeDecode - 例 -- メールデコード

例

例 46-1メールデコード

<?php
require_once 'Mail/mimeDecode.php';
...
$params['include_bodies'] = true;
$params['decode_bodies']  = true;
$params['decode_headers'] = true;

$decoder = new Mail_mimeDecode($input);
$structure = $decoder->decode($params);
?>

この例はdecode関数を静的に呼び (つまり直接関数を呼ぶのでオブジェクトはありません)、 次に、構造をgetXML() の関数へ渡します。

<?php

...
$params['include_bodies'] = true;
$params['decode_bodies']  = false;
$params['decode_headers'] = true;
$params['input']          = $input;
$params['crlf']           = "\r\n";

$structure = Mail_mimeDecode::decode($params);
$xml = Mail_mimeDecode::getXML($structure);

?>
前のページ | ホーム | 次のページ
Mail_mimeDecode::getXML() | 上に戻る | Mail_Queue

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_mimeDecode::getXML()

Mail_mimeDecode::getXML() -- MIME パートの XML 表現を作成する

概要

require_once 'Mail/mimeDecode.php';

string getXML (array $decoded)

説明

getXML()は、decode() が返した配列を有効な XML ドキュメントに変換します。

パラメータ

  • array $decode - decode() の配列です。

返り値

string - XML ドキュメントです。

注意

この関数は、スタティックにコールする ことができます。

例

例 46-1 XML 表現の作成

...
$output = $obj->decode();
$xml    = Mail_mimeDecode::getXML($output);
...
前のページ | ホーム | 次のページ
Mail_mimeDecode::uudecode() | 上に戻る | Mail_mimeDecode - 例

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_mimeDecode::Mail_mimeDecode()

Mail_mimeDecode::Mail_mimeDecode() -- コンストラクタ

概要

require_once 'Mail/mimeDecode.php';

void Mail_mimeDecode (string $input)

説明

新しいMail_mimeDecodeオブジェクトを作成します。

パラメータ

  • string $input - デコードすべきオブジェクトを指定します。

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
Mail_mimePart::encode() | 上に戻る | Mail_mimeDecode::decode()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_mimeDecode::uudecode()

Mail_mimeDecode::uudecode() -- UUコードデータのデコード

概要

require_once 'Mail/mimeDecode.php';

array &uudecode (string $input)

説明

UUコードデータのデコードをします。 'Unix-to-Unix'エンコードは、 電子メールのような7ビットASCIIのみのメディア上で、 バイナリファイル (例えばプログラムや画像)の送信を送信するときに使用します。

パラメータ

  • string $input - デコードするデータです。

返り値

array - デコードされたデータです。

  • string $return[]['filename'] - UUエンコードされたファイル名です。

  • string $return[]['fileperm'] - もし提供された場合は、 UUエンコードされたファイルのファイルパーミッションです。 書式はUNIXスタイルで、 例えば"0666"や、 "666"です。

  • string $return[]['filedata'] - UUエンコードされたファイルのデコードした内容です。

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
Mail_mimeDecode::decode() | 上に戻る | Mail_mimeDecode::getXML()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_mimePart::addsubpart()

Mail_mimePart::addsubpart() -- MIME パートにサブパートを追加する

概要

require_once 'Mail/mimePart.php';

resource &addSubPart (string $body, array $params)

説明

現在の MIME パートにサブパートを加え、そのリファレンスを返します。

パラメータ

  • string - サブパートの本体です。

  • array - サブパート用のパラメータです。指定可能な値は constructorを参照してください。

返り値

resource - 追加されたパートのリファレンスを返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 46-12 つのパートからなるメール

<?php
include 'Mail/mimePart.php';

...

$params['content_type'] = 'multipart/mixed';
$email = new Mail_mimePart('', $params);

// 作成済みのマルチパートオブジェクトにテキストを追加します。
// $body にはプレーンテキストが格納されているものとします。

$params['content_type'] = 'text/plain';
$params['encoding']     = '7bit';
$text = $email->addSubPart($body, $params);

// 添付ファイルを追加します。$contents には
// 添付ファイルの内容が格納されているものとします。

$params['content_type'] = 'application/zip';
$params['encoding']     = 'base64';
$params['disposition']  = 'attachment';
$params['dfilename']    = 'example.zip';
$attach =& $email->addSubPart($contents, $params);

// メールを組み立てます。encode 関数は、
// body と headers の 2 つの要素を持つ連想配列を返すことに
// 注意しましょう。メールを送信する前に、その他のヘッダ
// (例えば Mime-Version など) を追加することになるでしょう。

$email = $email->encode();
$email['headers']['Mime-Version'] = '1.0';

...
?>
前のページ | ホーム | 次のページ
Mail_mimePart::Mail_mimePart() | 上に戻る | Mail_mimePart::encode()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_mimePart::encode()

Mail_mimePart::encode() -- メールをエンコードする

概要

require_once 'Mail/mimePart.php';

array encode ()

説明

メールをエンコードし、エンコード結果を返します。

返り値

array - メール本体およびヘッダの二つの要素を含む連想配列を返します。 ヘッダ要素はそれ自体インデックスが付けられた配列になります。

下記がキー名です。

'headers' - メールヘッダの配列です。
'body' - メール本体の文字列です。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Mail_mimePart::addsubpart() | 上に戻る | Mail_mimeDecode::Mail_mimeDecode()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_mimePart::Mail_mimePart()

Mail_mimePart::Mail_mimePart() -- コンストラクタ

概要

require_once 'Mail/mimePart.php';

Mail_mimePart Mail_mimePart ([string $body = '' [, array $params = array()]])

説明

新たにMail_mimePartオブジェクトを作成します。

パラメータ

  • string $body - MIMEパートの本体。デフォルトは空文字です。

  • array $params - パラメータの連想配列:

    • $params["content_type"] - このパートのコンテントタイプを指定します。 multipart/mixed

    • $params["encoding"] - 使用する符号付け。つまり7bit, 8bit, base64か quoted-printableを指定します。

    • $params["cid"] - content ID to apply

    • $params["disposition"] - 内容配置inline(インライン) かattachment(添付)を指定します。

    • $params["dfilename"] - 内容配置用のオプションファイル名を指定します。

    • $params["description"] - 内容について記述します。

    • $params["charset"] - 使用する文字コードセットです。

    デフォルトは空配列です。

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
Mail_Mime - 例 | 上に戻る | Mail_mimePart::addsubpart()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Queue

目次
Mail_Queue のクラス概要 -- Mail_Queue - メールキュー管理のための基本クラス
チュートリアル -- Mail_Queue についてのチュートリアル
コンストラクタ Mail_Queue::Mail_Queue() -- Mail_Queue のコンストラクタ
Mail_Queue::deleteMail() -- キューからメールを削除する
Mail_Queue::factorySendMail() -- 必要な Mail オブジェクトを生成する
Mail_Queue::get() -- キューから次のメールを取得する
Mail_Queue::put() -- キューに新しいメールを追加する
Mail_Queue::sendMail() -- Mail_Queue::get() によって返されるメールオブジェクトを送信する
Mail_Queue::sendMailById() -- 特定のメールを送信する
Mail_Queue::sendMailsInQueue() -- キューからメールを送信する
前のページ | ホーム | 次のページ
Mail_mimeDecode - 例 | 上に戻る | Mail_Queue のクラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Queue のクラス概要

Mail_Queue のクラス概要 -- Mail_Queue - メールキュー管理のための基本クラス

Mail_Queue - メールキュー管理のための基本クラス

このクラスにより、 あとで配信するためにメールをキューに溜めることができます。

Mail_Queue のクラスツリー

  • Pear

  • Mail_Queue

前のページ | ホーム | 次のページ
Mail_Queue | 上に戻る | チュートリアル

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Queue::deleteMail

PEAR マニュアル
前のページ 次のページ

Mail_Queue::deleteMail()

Mail_Queue::deleteMail() -- キューからメールを削除する

概要

require_once 'Mail/Queue.php';

boolean Mail_Queue::deleteMail (integer $id)

説明

識別子を使ってキューからメールを削除します。

パラメータ

integer $id

メールの識別子を指定します

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
コンストラクタ Mail_Queue::Mail_Queue() | 上に戻る | Mail_Queue::factorySendMail()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Queue::factorySendMail

PEAR マニュアル
前のページ 次のページ

Mail_Queue::factorySendMail()

Mail_Queue::factorySendMail() -- 必要な Mail オブジェクトを生成する

概要

require_once 'Mail/Queue.php';

void Mail_Queue::factorySendMail ()

説明

必要な Mail オブジェクトを生成します。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Mail_Queue::deleteMail() | 上に戻る | Mail_Queue::get()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Queue::get

PEAR マニュアル
前のページ 次のページ

Mail_Queue::get()

Mail_Queue::get() -- キューから次のメールを取得する

概要

require_once 'Mail/Queue.php';

object Mail_Queue_Container::get ()

説明

キューから次のメールを取得します。処理速度の向上のため、 メールは内部バッファにプリロードされます。 Mail_Queue v.1.1 以降、preload() メソッドは全てのメールをメモリにプリロードせずに、 毎回数通だけプリロードします。 バッファが空の時、バッファは再び自動的に満たされます。新しい setBufferSize() メソッドを通してバッファのサイズをセットすることができます。

返り値

returnsMail_Queue_Body オブジェクト

例外・エラー

throws 投げられる例外はありません

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Mail_Queue::factorySendMail() | 上に戻る | Mail_Queue::put()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ Mail_Queue::Mail_Queue

PEAR マニュアル
前のページ 次のページ

コンストラクタ Mail_Queue::Mail_Queue()

コンストラクタ Mail_Queue::Mail_Queue() -- Mail_Queue のコンストラクタ

概要

require_once 'Mail/Queue.php';

mixed constructor Mail_Queue::Mail_Queue (array $container_options, array $mail_options)

説明

メールをストア、フェッチ、 送信するための新しいメールキューオブジェクトを生成します。

パラメータ

array $container_options

コンテナ (メールストレージ) オプションの配列を指定します。 詳細はチュートリアルを参照してください。

array $mail_options

メーラーオプションの配列を指定します。 詳細はチュートリアルを参照してください。

例 46-1

<?php

require_once 'Mail/Queue.php';

$container_options = array(
    'type'        => 'db',
    'database'    => 'dbname',
    'phptype'     => 'mysql',
    'username'    => 'root',
    'password'    => '',
    'mail_table'  => 'mail_queue',
);
  //オプションとして、db パラメータの代わりに文字列 'dns' を
  //指定することができる。詳細は、DB::connect() メソッド、
  //あるいは DB、MDB のドキュメントを参照のこと。
  //また、mdb コンテナを使用することができる。
$mail_options = array(
    'driver'   => 'smtp',
    'host'     => 'your_smtp_server.com',
    'port'     => 25,
    'auth'     => false,
    'username' => '',
    'password' => '',
);

$mail_queue =& new Mail_Queue($container_options, $mail_options);

* *****************************************************************
* // メールをキューに追加する
* *****************************************************************
$from             = 'user@server.com';
$from_name        = 'admin';
$recipient        = 'recipient@other_server.com';
$recipient_name   = 'recipient';
$message          = 'Test message';
$from_params      = empty($from_name) ? '<'.$from.'>' : '"'.$from_name.'" <'.$from.'>';
$recipient_params = empty($recipient_name) ? '<'.$recipient.'>' : '"'.$recipient_name.'" <'.$recipient.'>';
$hdrs = array(
    'From'    => $from_params,
    'To'      => $recipient_params,
    'Subject' => 'test message body',
);
$mime =& new Mail_mime();
$mime->setTXTBody($message);
$body = $mime->get();
$hdrs = $mime->headers($hdrs);

// キューにメッセージを追加する
$mail_queue->put($from, $recipient, $hdrs, $body);

// メッセージをより上級モードで追加することもできる
$seconds_to_send = 3600;
$delete_after_send = false;
$id_user = 7;
$mail_queue->put( $from, $recipient, $hdrs, $body, $seconds_to_send, $delete_after_send, $id_user );

// キューにあるメールをを送信する

// 毎回何通のメールを送信するか
$max_ammount_mails = 50;
$mail_queue =& new Mail_Queue($container_options, $mail_options);
$mail_queue->sendMailsInQueue($max_ammount_mails);

?>

返り値

returns成功時は True、さもなければ PEAR エラークラス

例外・エラー

throws 投げられる例外はありません

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
チュートリアル | 上に戻る | Mail_Queue::deleteMail()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Queue::put

PEAR マニュアル
前のページ 次のページ

Mail_Queue::put()

Mail_Queue::put() -- キューに新しいメールを追加する

概要

require_once 'Mail/Queue.php';

int Mail_Queue::put (string $from, string $to, array $hdrs, array $body [, integer $sec_to_send = 0 [, bool $delete_after_send = TRUE [, integer $id_user = MAILQUEUE_SYSTEM]]])

説明

メールキューに新しいメールを追加します。

パラメータ

string $from

送信者の e-mail アドレスを指定します

string $to

受信者の e-mail アドレスを指定します

array $hdrs

Mail_Mime::headers() から返されるような メールヘッダの配列を指定します

array $body

Mail_Mime::get() から返されるようなメールボディの配列を指定します

mixed $sec_to_send

オプション - 配信されようとする前に経過させる秒数を指定します

mixed $delete_after_send

オプション - 配信後にメールを削除するかどうかを指定します

integer $id_user

オプション - ユーザー ID を指定します。 キューにストアされ、後ほど getIdUser() を使ってメールボディオブジェクトから読み込むことができます。

返り値

returns このメールが追加されたレコードの ID、 あるいはエラー時には Mail_Queue_Error

例外・エラー

throws 投げられる例外はありません

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Mail_Queue::get() | 上に戻る | Mail_Queue::sendMail()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Queue::sendMail

PEAR マニュアル
前のページ 次のページ

Mail_Queue::sendMail()

Mail_Queue::sendMail() -- Mail_Queue::get() によって返されるメールオブジェクトを送信する

概要

require_once 'Mail/Queue.php';

mixed Mail_Queue::sendMail (object MailBody $mail)

説明

Mail_Queue::get() によって返されるメールオブジェクトを送信します。

パラメータ

object MailBody $mail

Mail オブジェクトを指定します

返り値

returns 成功の場合は True、さもなければ PEAR エラークラス

例外・エラー

throws 投げられる例外はありません

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Mail_Queue::put() | 上に戻る | Mail_Queue::sendMailById()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Queue::sendMailById

PEAR マニュアル
前のページ 次のページ

Mail_Queue::sendMailById()

Mail_Queue::sendMailById() -- 特定のメールを送信する

概要

require_once 'Mail/Queue.php';

bool Mail_Queue::sendMailById (integer $id)

説明

キューから $id で特定される 1 通のメールを送信します。注意: キューエントリは配送後自動的に削除されません!

パラメータ

integer $id

メールの識別子を指定します

返り値

returns 成功の場合 True、さもなければ false

例外・エラー

throws 投げられる例外はありません

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Mail_Queue::sendMail() | 上に戻る | Mail_Queue::sendMailsInQueue()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_Queue::sendMailsInQueue

PEAR マニュアル
前のページ 次のページ

Mail_Queue::sendMailsInQueue()

Mail_Queue::sendMailsInQueue() -- キューからメールを送信する

概要

require_once 'Mail/Queue.php';

mixed Mail_Queue::sendMailsInQueue ([integer $limit = MAILQUEUE_ALL [, integer $offset = MAILQUEUE_START [, integer $try = MAILQUEUE_TRY]]])

説明

キューに残っているメールを送信します。

パラメータ

integer $limit

オプション - 送信するメールの最大数を指定します

integer $offset

オプション - $offset 分のメールをスキップし、そこから送信を開始します

integer $try

オプション - あとで送信するためメールをキューに戻す前に試みる回数を指定します

返り値

returns成功の場合 True、さもなければ Mail_Queue_Error オブジェクト

例外・エラー

throws 投げられる例外はありません

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Mail_Queue::sendMailById() | 上に戻る | 数値計算 (Math)

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


チュートリアル

チュートリアル -- Mail_Queue についてのチュートリアル

シンプルな例を用いた Mail_Queue の使い方

ここでは、例として DB コンテナと mysql データベースを使用します。 mysql データベースに、（キューに追加される）メッセージをストアしておくための テーブルを作成する必要があります。

例 46-1mysql.sql

CREATE TABLE mail_queue (
  id bigint(20) NOT NULL default '0',
  create_time datetime NOT NULL default '0000-00-00 00:00:00',
  time_to_send datetime NOT NULL default '0000-00-00 00:00:00',
  sent_time datetime default NULL,
  id_user bigint(20) NOT NULL default '0',
  ip varchar(20) NOT NULL default 'unknown',
  sender varchar(50) NOT NULL default '',
  recipient text NOT NULL,
  headers text NOT NULL,
  body longtext NOT NULL,
  try_sent tinyint(4) NOT NULL default '0',
  delete_after_send tinyint(1) NOT NULL default '1',
  PRIMARY KEY  (id),
  KEY id (id),
  KEY time_to_send (time_to_send),
  KEY id_user (id_user)
);

定義が必要なオプションがあります。 それらは 2 回必要となりますので（一回はメッセージをキューへ追加する時、 もう一回はメッセージを送信する時）、 設定ファイルにまとめて記述するのが良いでしょう。 ここでは、その設定ファイルを config.php と名付けます。

例 46-2config.php

<?php

require_once "Mail/Queue.php";

// メッセージをストアするためのオプション。
// type は使用しているコンテナで、今のところ db と mdb が利用可能。
$db_options['type']       = 'db';
// その他は使用しているコンテナのためのオプション。
// これらは db のためのオプション。
$db_options['dsn']        = 'mysql://user:password@host/database';
$db_options['mail_table'] = 'mail_queue';

// これらはメッセージ自身を送信するためのオプション。
// Mail-Classで必要とされるオプションや特に Mail::factory()
// で使用されるオプションがある
$mail_options['driver']    = 'smtp';
$mail_options['host']      = 'your_server_smtp.com';
$mail_options['port']      = 25;
$mail_options['localhost'] = 'localhost'; //オプションの Mail_smtp パラメータ
$mail_options['auth']      = false;
$mail_options['username']  = '';
$mail_options['password']  = '';

?>

それでは、設定が終わったので、使ってみましょう。 最初にメールメッセージを構築し、キューに追加する必要があります。

例 46-3add_message.php

<?php
include './config.php';
/* db_options と mail_options をここで使用する */
$mail_queue =& new Mail_Queue($db_options, $mail_options);

$from = 'user@server.com';
$to = "user2@server.com";
$message = 'Hi! This is test message!! :)';

$hdrs = array( 'From'    => $from,
               'To'      => $to,
               'Subject' => "test message body"  );

/* 有効なメールを構築するため、Mail_mime() を使用する */
$mime =& new Mail_mime();
$mime->setTXTBody($message);
$body = $mime->get();
$hdrs = $mime->headers($hdrs);

/* メッセージをキューに追加する */
$mail_queue->put( $from, $to, $hdrs, $body );

?>

よろしいでしょうか。ここでは、メッセージのキューへの追加をシンプルな方法で行いました。 より高度なオプションの指定も可能ですので、put 関数のドキュメントを参照してください。 次いで、（キューに追加した）メッセージを送信する必要があります。これには、cron を用いて メッセージを送信するスクリプトを定期的に実行させて行うことが一般的です。 以下が、メッセージ送信を行うシンプルなスクリプトです。

例 46-4send_messages.php

<?php
include './config.php';

/* スクリプトがコールされるたびに何通のメールを送信するか */
$max_amount_mails = 50;

/* 設定から db_options と mail_options を再び使用する */
$mail_queue =& new Mail_Queue($db_options, $mail_options);

/* メッセージを実際に送信する */
$mail_queue->sendMailsInQueue($max_amount_mails);
?>

これで完了です。 上記のスクリプトを定期的に実行し、必要なときにメールをキューに追加します。

Mail_Queue v.1.1 以降、preload() メソッドは、全てのメールを一度にプリロードせずに、 毎回数通だけをメモリにプリロードします。 バッファが空になると、自動的に再びプリロードされます。新しく加えられた setBufferSize() メソッドを通してバッファのサイズをセットすることができます。

また、キューにストアされたメールを一通ずつ送信することもできます。 以下がそれを行うシンプルなスクリプトです。

例 46-5send_messages_one_by_one.php

<?php
// メモリリソースに応じて内部バッファを
// セットする (数値は、一回に付き、
// 何通のメールがバッファに
// 保持されるかを表す)

$mail_queue->setBufferSize(20);

// キューのサイズを設定する (すなわち、送信するメール数)
$limit = 50;
$mail_queue->setOption($limit);

// ストアされたメール分だけループし、それらを送信する
while ($mail = $mail_queue->get()) {
    $result = $mail_queue->sendMail($mail);
}
?>
前のページ | ホーム | 次のページ
Mail_Queue のクラス概要 | 上に戻る | コンストラクタ Mail_Queue::Mail_Queue()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


RFC822 - 導入

RFC822 - 導入 -- メールアドレスの検証

説明

このクラスは、RFC822 に基づいたメールアドレスのチェックを行います。

このクラスがチェックするのは、 そのメールアドレスの書式が正しいかどうかだけであることに注意しましょう。 つまり、そのメールアドレスが実際に存在するかどうかや そのアドレスを使用しているのが特定の人物であるかどうか といったことを保証するものではありません。それを調べるには、 ユーザに実際にメールを送信し、返信してもらうことになるでしょう。

前のページ | ホーム | 次のページ
Mail::send() | 上に戻る | Mail_RFC822::parseAddressList()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail_RFC822::parseAddressList()

Mail_RFC822::parseAddressList() -- メールアドレスの一覧から各部分を展開する

概要

require_once 'Mail/RFC822.php';

array parseAddressList ([string $address = '', string [$defaultDomain = 'localhost'] [, boolean $nestGroups = NULL [, boolean $validate = NULL]]])

説明

指定したアドレスを各部分に展開します。

パラメータ

  • string $address - 検証するアドレス。

  • string $defaultDomain - 指定されたアドレスでドメインが指定されていない場合に使用する、 デフォルトのドメイン。

  • boolean $nestGroups - 結果を入れ子構造の見やすい形式で返すかどうか。

  • boolean $validate - atom の検証を行うかどうか。 例えば、名前をエンコードする前にアドレスの検証をしたい場合などにこれを Off にします。

返り値

array - 入れ子状の配列、あるいは無名オブジェクトの配列を返します。

$nestGroups が FALSE の場合は、 次の段落を読み飛ばしてください。

配列のエントリはグループ単位のオブジェクトとなっています。 このオブジェクトは二つの属性を持っています。

groupname - グループの名前。
addresses - グループ内のすべてのアドレスの配列。

配列 addresses は、 各アドレスを表す無名オブジェクトの配列です。 このオブジェクトは次の属性を持っています。

personal - アドレスの所有者名。
comment - アドレスについてのコメントを保持する配列。
mailbox - メールボックスの名前。@ の前の部分。
host - サーバの名前。@ の後の部分。

例外・エラー

表 46-1PEAR_Error の値

エラーコード | エラーメッセージ | 原因 | 対応
NULL | すべて | 指定した文字列は RFC822 に準拠していません。 | エラーの内容がエラーコードに含まれます。

注意

この関数は、スタティックにコールする ことができます。

警告

このクラスがチェックするのは文字列だけです。 そのアドレスが実際に存在するかどうかはチェックしません。

例

例 46-1アドレスの展開

<?php
$address = 'My group: "Richard" <richard@localhost>;, ted@example.com (A comment)';

$addresses = Mail_RFC822::parseAddressList($address, 'phpguru.org', TRUE);
print_r($addresses);
?>

前のページ | ホーム | 次のページ
RFC822 - 導入 | 上に戻る | Mail_IMAP

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail::factory()

Mail::factory() -- メーラインスタンスを作成する

概要

require_once 'Mail.php';

object &factory (string $backend [, array $params = array()])

説明

バックエンド毎のmailクラスのインスタンスを生成します。

パラメータ

  • string $backend - バックエンド名 "mail"、"smtp"、 "sendmail"

  • array $params - バックエンド固有ののパラメータの配列。

    バックエンド毎のパラメータ一覧

    • mail

      • セーフモードが無効の場合、 $params は PHP mail() 関数の 5 番引数として渡されるでしょう。 $params が配列の場合、 その要素はスペース区切りの文字列として連結されるでしょう。

    • sendmail

      • $params["sendmail_path"] - システム上での sendmail プログラムの場所、デフォルトは、 /usr/bin/sendmail

      • $params["sendmail_args"] - sendmail プログラムへ渡す追加パラメータ。 デフォルトは -i

    • smtp

      • $params["host"] - 接続するサーバ名。 デフォルトは、localhostです。

      • $params["port"] - 接続するポート番号。 デフォルトは、25です。

      • $params["auth"] - SMTP 認証を使用するかどうか。 デフォルトは FALSE です。

      • $params["username"] - SMTP 認証で使用するユーザ名。

      • $params["password"] - SMTP 認証で使用するパスワード。

      • $params["localhost"] - EHLO あるいは HELO を送信する際に使用する値。 デフォルトは localhost です。

      • $params["timeout"] - SMTP 接続のタイムアウト。 デフォルトは NULL (タイムアウトしない) です。

      • $params["verp"] - VERP を使用するかどうか。デフォルトは FALSE です。

      • $params["debug"] - SMTP デバッグモードを使用するかどうか。デフォルトは FALSE です。

      • $params["persist"] - SMTP 接続を、send() メソッドの複数回呼出しで持続させるかどうか指示します。

返り値

object - 特定の Mail インスタンス、 または失敗した場合は PEAR_Error オブジェクト。

例外・エラー

表 46-1PEAR_Error の値

エラーコード | エラーメッセージ | 意味 | 解決
NULL | "Unable to find class for driver xxx" | メーラーバックエンドクラスが見つかりません。 | $backend パラメータのチェックをします。 もし正しい場合、Mail パッケージの再インストール、 または更新をします。

注意

この関数は、スタティックにコール されます。

参照

"導入"

前のページ | ホーム | 次のページ
導入 | 上に戻る | Mail::send()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- メールの送信方法とメーラーのバックエンド

メールの送信方法

Mailは、 メールを送信するための異なる形式のバックエンドをサポートします。 このため、メールを送信するために 2 段階の手順が必要です。

  • 手順 1

    指定した Mail の新規インスタンス、 つまり factory() メソッドを有するバックエンドを作成します。

  • 手順 2

    send() を用いてメールを送信します。

メーラーバックエンド

Mail は以下の 3 種類のバックエンドをサポートします。

  • mail

    PHP の組込関数 mail() を使用して送信します。

  • sendmail

    sendmail プログラムにより送信します。

  • smtp

    SMTP サーバに直接接続してメールを送信します。

前のページ | ホーム | 次のページ
Mail | 上に戻る | Mail::factory()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Mail::send()

Mail::send() -- メールを送信する

概要

require_once 'Mail.php';

mixed send (mixed $recipients, array $headers, string $body)

説明

メールを送信します。 send() 関数は、 factory() から返されたオブジェクトによって提供されます。

パラメータ

  • mixed $recipients - 配列かカンマで区切った受取アドレスの文字列です。

  • array $headers - ヘッダの連想配列。 ヘッダ名が配列のキー、ヘッダの値が配列の値となります。

  • string $body - メール本文です。

返り値

boolean - TRUE か、または失敗した場合は PEAR_Error オブジェクトです。

例外・エラー

表 46-1PEAR_Error の値

メーラドライバ | エラーコード | エラーメッセージ | 意味 | 解決
sendmail NULL "No from address given." $headers は、 少なくとも from エントリを必要とします、 From ヘッダを追加します:
$headers['From'] = 'mymail@example.com';
sendmail | NULL | "From address specified with dangerous characters." | $headers 配列の from エントリの中に、 RFC に準拠していない文字が含まれています。 | From アドレスに与えた文字に、 下記のような文字が無いか検査してください。 半角空白・; か & か ` (バッククォート/バックティック)
sendmail | NULL | "sendmail [path to sendmail] not executable" | sendmail プログラムへのパスが正確ではありません。 実行可能な sendmail が見つかりませんでした。 | あなたが Mail::factory() を呼び出したときの、 $param['sendmail_path'] エントリを調べてください。 もし例えば qmail といった sendmail とは別のメーラの場合は メーラのインストールを確認してください。 通常は sendmail ラッパを含んでいるはずです。
sendmail | NULL | "sendmail returned error code code" | sendmail が返すエラーです。 使用者はそれを扱わなければなりません。 | あなたのメーラプログラムのドキュメントを参照ください。
smtp | PEAR_MAIL_SMTP_ERROR_CREATE | "Failed to create a Net_SMTP object" | クラス生成の失敗です。 | Net_SMTP パッケージの再インストールか更新をします。
smtp | PEAR_MAIL_SMTP_ERROR_CONNECT | "Failed to connect to host:port" | SMTP サーバへの接続に失敗しました | あなたが Mail::factory() を呼んだ時の $param['port'] と $param['host'] エントリを確認します。
smtp | PEAR_MAIL_SMTP_ERROR_AUTH | "method authentication failure" | 認証の失敗です。 | あなたが Mail::factory() を呼んだときの $param['auth']・ $param['username'] と $param['password'] エントリを確認します。 その SMTP サーバ用の、正しい認証方法を使用してください。
smtp PEAR_MAIL_SMTP_ERROR_FROM "No From: address has been provided" $headers 配列には、少なくとも from のエントリが必要です。 From ヘッダを追加します:
$headers['From'] = 'mymail@example.com';
smtp | PEAR_MAIL_SMTP_ERROR_SENDER | "Failed to set sender: from" | sendar (送信者) アドレスの設定に失敗しました。 | sendar アドレスが RFC に準拠しているかどうか、 またサーバと接続できているかどうかを確認してください。
smtp | PEAR_MAIL_SMTP_ERROR_RECIPIENT | "Failed to add recipient: recipient " | 受信者アドレスの送信に失敗しました。 | 受信者のアドレスが RFC に準拠しているかどうか、 またサーバと接続できているかどうかを確認してください。
smtp | PEAR_MAIL_SMTP_ERROR_DATA | "Failed to send data" | メールメッセージ本文の送信が出来ませんでした。 | メッセージ本文のRFC準拠とサーバ接続を確認してください。

注意

この関数は、スタティックにコールする ことはできません。

例

<?php
include('Mail.php');

$recipients = 'joe@example.com';

$headers['From']    = 'richard@example.com';
$headers['To']      = 'joe@example.com';
$headers['Subject'] = 'Test message';

$body = 'Test message';

$params['sendmail_path'] = '/usr/lib/sendmail';

// Mail::factory メソッドを使用してメールオブジェクトを作成します
$mail_object =& Mail::factory('sendmail', $params);

$mail_object->send($recipients, $headers, $body);
?>

参照

Mail::factory()

前のページ | ホーム | 次のページ
Mail::factory() | 上に戻る | RFC822 - 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_CheckIP

目次
Net_CheckIP::check_ip() -- IPv4アドレスの検証

IPv4 アドレスが文法的に正しいかどうかを調べるパッケージです。

前のページ | ホーム | 次のページ
ネットワーク処理 | 上に戻る | Net_CheckIP::check_ip()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_CheckIP::check_ip()

Net_CheckIP::check_ip() -- IPv4アドレスの検証

概要

require_once 'Net/CheckIP.php';

boolean Net_CheckIP::check_ip (string $ip)

説明

この関数は、 与えられた文字列がIPv4文法として有効か検証することができます。

パラメータ

  • string $ip - 検査するIPアドレス

返り値

boolean - 文法が有効だった場合はTRUEが返ります。

注意

この関数は、スタティックにコールする ことができます。

例

例 48-1check_ip()の使用法

require_once "Net_CheckIP/CheckIP.php";

if (Net_CheckIP::check_ip("your_ip_goes_here")) {
    // Syntax of the IP is ok
}
前のページ | ホーム | 次のページ
Net_CheckIP | 上に戻る | Net_DNS

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_DNS

目次
導入 -- 一般的な DNS 問い合わせとパケットの解析
Net_DNS のクラス概要 -- DNS パケットの操作クラス
Net_DNS_Resolver クラス概要 -- DNS 問い合わせを操作するためのリゾルバの実装を提供する
Net_DNS_Resolver::query() -- ネームサーバへの問い合わせを行い、結果を受け取る
Net_DNS_Resolver::rawQuery() -- ネームサーバへの問い合わせを行い、結果を受け取る
Net_DNS_Resolver::axfr() -- ネームサーバからのゾーン転送を行う
Net_DNS_Packet クラス概要 -- DNS パケットを抽象化したオブジェクトを提供する
Net_DNS_RR クラス概要 -- リソースレコードの解析と生成の機能を提供する
例 -- DNS 更新 -- RFC 2136 DNS 更新

DNS サーバから返ってくる DNS パケットの解析と操作、そして DNS パケットの送受信のためのいくつかのメソッドを提供します。

前のページ | ホーム | 次のページ
Net_CheckIP::check_ip() | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- 一般的な DNS 問い合わせとパケットの解析

貢献者

  • Eric Kilfoil

  • Sara Golemon

  • Thomas V.V. Cox

  • PEAR 利用者のみなさん - ありがとう

Description

Net_DNS クラスは、DNS パケットの操作メソッドを 提供し、またネームサーバとのパケットの送受信機能も持っています。 どんなタイプの DNS パケットでも生成することができ、その中には RFC 2136 形式の DNS UPDATE パケットも含まれます。

現在サポートされているリソースレコードは、以下のとおりです。

  • A

  • AAAA

  • A

  • CNAME

  • HINFO

  • MX

  • NAPTR

  • NS

  • PTR

  • SOA

  • SRV

  • TSIG

  • TXT

前のページ | ホーム | 次のページ
Net_DNS | 上に戻る | Net_DNS のクラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_DNS_Packet クラス概要

Net_DNS_Packet クラス概要 -- DNS パケットを抽象化したオブジェクトを提供する

Net_DNS_Packet

Net_DNS_Packet クラスは、ネームサーバに 送信するための適切な DNS パケットを生成するメソッドを提供します。 また、ネームサーバからの返答を解析し、Net_DNS_Packet オブジェクトに 格納するためのメソッドも提供します。

標準的は DNS パケットは 5 つの部分から成り立っています。

  • ヘッダ

  • 質問セクション

  • 回答セクション

  • 権限セクション

  • 付加セクション

Net_DNS では、ヘッダを Net_DNS_Header オブジェクトとして定義します。 質問セクションは Net_DNS_Question オブジェクトで定義します。残りの 3 つのセクションは、 Net_DNS_RR オブジェクトの配列となります。

前のページ | ホーム | 次のページ
Net_DNS_Resolver::axfr() | 上に戻る | Net_DNS_RR クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_DNS_Resolver クラス概要

Net_DNS_Resolver クラス概要 -- DNS 問い合わせを操作するためのリゾルバの実装を提供する

Net_DNS_Resolver

リゾルバクラスは、DNS サーバと通信するための高レベルなインターフェース です。リゾルバを設定するために（もし存在すれば）UNIX システムの リゾルバ設定ファイルを用います。手動で設定することで、システム設定を 上書きすることも可能です。そのためには、Net_DNS_Resolver オブジェクトに対して適切な値を設定します。リゾルバ設定の詳細については Net_DNS_Resolver::query() を参照してください。

前のページ | ホーム | 次のページ
Net_DNS のクラス概要 | 上に戻る | Net_DNS_Resolver::query()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_DNS_Resolver::axfr()

Net_DNS_Resolver::axfr() -- ネームサーバからのゾーン転送を行う

概要

require_once('Net/DNS.php');

Net_DNS_Packet Net_DNS_Resolver::axfr (string $dname [, string $class = 'IN' [, boolean $old = FALSE]])

説明

  • dname - 転送するドメイン名（ゾーン名）

  • class - 転送するゾーンのクラス

  • old - 以前のバージョンの Net_DNS との互換性のためだけに用いられる

axfr() は、Net_DNS_Resolver->nameservers の配列で指定されている ネームサーバからのゾーン転送を試みます。 Net_DNS_Resolver::axfr() は Net_DNS_Resolver::query() メソッドが使っているのと同じリゾルバ設定を利用します。

ほとんどの公開ネームサーバは、標準ではゾーン転送を許可していません。 ゾーン転送は、ゾーンファイル内の DNS リソースレコードの完全なリストを提供します。 ゾーン転送には、UDP の代わりに常に TCP が用いられます。

戻される RR オブジェクトの詳細は Net_DNS_RR を参照してください。

例

例 48-1Net_DNS_Resolver::axfr() 問い合わせの失敗例

<?php
require_once 'Net/DNS.php';

$resolver = new Net_DNS_Resolver();
$resolver->debug = 1;
$response = $resolver->axfr('example.com');
print_r($response);
if (count($response) == 0) {
  echo "\n";
  echo "AXFR 失敗\n";
}
?>

出力結果:

;; axfr_start(example.com, IN)
;; query(example.com, AXFR, IN)
;; axfr_start(192.168.0.254:53)
;; sending 29 bytes
;; read_tcp: expecting 2 bytes
;; read_tcp: received 2 bytes
;; read_tcp: expecting 29 bytes
;; read_tcp: received 29 bytes
;; received 29bytes
;; HEADER SECTION
;; id = 29190
;; qr = 1    opcode = QUERY    aa = 0    tc = 0    rd = 1
;; ra = 1    rcode  = NOTAUTH
;; qdcount = 1  ancount = 0  nscount = 0  arcount = 0

;; QUESTION SECTION (1 record)
;;
;example.com.   IN      AXFR

;; ANSWER SECTION (0 records)

;; AUTHORITY SECTION (0 records)

;; ADDITIONAL SECTION (0 records)
Array
(
)

AXFR 失敗

次の例では、デバッグ表示が有効になっており、またネームサーバは ゾーン転送を許可するように設定されています。この例でもっとも注目すべき 箇所は、応答内容の最初と最後にある SOA レコードです。 ネームサーバがゾーン転送を行う際、最初に送られるレコードが SOA レコードです。ゾーン転送の完了後に、ネームサーバは SOA レコードを 再送します。このことは、デバッグ出力から確認できます。 axfr() の結果として戻される配列には、最後の SOA レコードは含まれません。

例 48-2Net_DNS_Resolver::axfr() 問い合わせの成功例

<?php
require_once 'Net/DNS.php';

$resolver = new Net_DNS_Resolver();
$resolver->debug = 1;
$response = $resolver->axfr('my.example.com');
echo "\n\n以下のリソースレコードがネームサーバから戻されました：\n";
if (count($response)) {
  foreach ($response as $rr) {
    $rr->display();
  }
}
?>

出力結果:

;; axfr_start(my.example.com, IN)
;; query(my.example.com, AXFR, IN)
;; axfr_start(192.168.0.254:53)
;; sending 32 bytes
;; read_tcp: expecting 2 bytes
;; read_tcp: received 2 bytes
;; read_tcp: expecting 262 bytes
;; read_tcp: received 262 bytes
;; received 262bytes
;; HEADER SECTION
;; id = 21220
;; qr = 1    opcode = QUERY    aa = 1    tc = 0    rd = 0
;; ra = 1    rcode  = NOERROR
;; qdcount = 1  ancount = 10  nscount = 0  arcount = 0

;; QUESTION SECTION (1 record)
;;
;my.example.com.        IN      AXFR

;; ANSWER SECTION (10 records)
my.example.com.         300     IN      SOA     ns1.my.example.com. hostmaster.my.example.com. 103 3600 1800 2592000 300
my.example.com.         300     IN      NS      ns1.my.example.com.
my.example.com.         300     IN      MX      10 mx1.my.example.com.
my.example.com.         300     IN      MX      20 mx2.my.example.com.
my.example.com.         300     IN      A       192.168.0.1
mx1.my.example.com.     300     IN      A       192.168.0.2
mx2.my.example.com.     300     IN      A       192.168.0.3
server.my.example.com.  300     IN      CNAME   www.my.example.com.
www.my.example.com.     300     IN      A       192.168.0.1
my.example.com.         300     IN      SOA     ns1.my.example.com. hostmaster.my.example.com. 103 3600 1800 2592000 300

;; AUTHORITY SECTION (0 records)

;; ADDITIONAL SECTION (0 records)

以下のリソースレコードがネームサーバから戻されました：
my.example.com.         300     IN      SOA     ns1.my.example.com. hostmaster.my.example.com. 103 3600 1800 2592000 300
my.example.com.         300     IN      NS      ns1.my.example.com.
my.example.com.         300     IN      MX      10 mx1.my.example.com.
my.example.com.         300     IN      MX      20 mx2.my.example.com.
my.example.com.         300     IN      A       192.168.0.1
mx1.my.example.com.     300     IN      A       192.168.0.2
mx2.my.example.com.     300     IN      A       192.168.0.3
server.my.example.com.  300     IN      CNAME   www.my.example.com.
www.my.example.com.     300     IN      A       192.168.0.1

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_DNS_Resolver::rawQuery() | 上に戻る | Net_DNS_Packet クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_DNS_Resolver::query()

Net_DNS_Resolver::query() -- ネームサーバへの問い合わせを行い、結果を受け取る

概要

require_once('Net/DNS.php');

Net_DNS_Packet Net_DNS_Resolver::query (string $hostname [, string $type = 'A' [, string $class = 'IN']])

説明

  • hostname - 調べたい名前（例. www.php.net）

  • type - 調べたいレコードタイプ

  • class - 調べたいゾーンクラス

DNS 問い合わせパケットを作成し、それをシステムで設定されている （例. /etc/resolv.conf）ネームサーバに送ります。 DNS サーバからの応答は、Net_DNS_Packet オブジェクトの形式で 戻されます。

リゾルバオブジェクトは、多くのプロパティを持っています。 その中には、システムのリゾルバ設定から自動的に読み込まれるものもあります。 Linux/UNIX 系のシステムでは、これらの設定は /etc/resolv.conf や環境変数の値から取得されます。設定はオブジェクトのインスタンスが 生成される時点で行われ、その後適切なプロパティをセットすることで 上書き可能です。

ANSWER セクションがリソースレコードを含んでいる場合、この関数は Net_DNS_Packet のみを返します。特に、もし DNS パケットヘッダの ANCOUNT 変数が 0 だった場合、query() は 0 を返します （注：0 です。FALSE ではありません）。ANSWER セクションのうち リソースレコード以外の部分を取得したい場合は、 Net_DNS_Resolver::rawQuery() を利用してください。これは、手動で再帰問い合わせをする際に便利です。

返ってきた RR データオブジェクトの詳細については、 Net_DNS_RR を参照してください。

リゾルバ設定オブジェクトのプロパティ：

  • array $nameservers

    問い合わせ対象となるネームサーバの IP アドレスの配列

  • int $port

    問い合わせ対象となるネームサーバのポート。デフォルト値は 53。

  • array $domain

    リゾルバクライアントホストが属するドメイン

  • array $searchlist

    不完全なホスト名に対して付加されるドメイン名の配列

  • int $retry

    回答が得られなかった問い合わせについて、問い合わせを再送信するまでの秒数

  • int $retrans

    回答が得られなかった問い合わせについて、問い合わせを再送信する回数

  • int $recurse

    ヘッダの RD (recursion desired) ビットの値を設定する。 もしこの値が 0 なら、サーバは再帰問い合わせを行わない。

  • int $usevc

    TCP（仮想回線）を UDP の代わりに用いるかどうかを設定する。 もしこの値が 0 なら、TCP を要求されない限りは UDP を利用する。 TCP を要求されるのは、問い合わせや応答の内容が 512 バイトを超える 場合である。

  • int $debug

    もしこの値が TRUE (ゼロ以外）なら、リゾルバが問い合わせを行う際に デバッグ用コードが表示される。

環境変数：

  • RES_NAMESERVERS

    問い合わせ対象ネームサーバの IP アドレスリスト。スペースで区切られた文字列。

  • RES_SEARCHLIST

    不完全な検索要求に対して付加されるドメイン名。スペースで区切られた文字列。

  • LOCALDOMAIN

    ドメイン名

  • RES_OPTIONS

    スペースで区切られたオプションのリスト。書式は以下のとおり

    オプション名:値

    値が省略された場合、初期値として 1 (true) が設定される。 オプション名は、オブジェクトのプロパティに対応する。

例

例 48-1Net_DNS_Resolver::query() の使用

<?php
require_once 'Net/DNS.php';

$resolver = new Net_DNS_Resolver();
$response = $resolver->query('example.com');
if ($response) {
  foreach ($response->answer as $rr) {
    $rr->display();
  }
}
?>

出力結果:

example.com.            129808  IN      A       192.0.34.166

次の例は、MX レコードを問い合わせる DNS クエリの例です。 ゾーン内のメールエクスチェンジャの IP アドレスが、回答の中の付加セクションに 含まれていることに注目しましょう。２番目のエクスチェンジャ （これはゾーン内にはありません）の IP アドレスは含まれません。 このアドレスを受け取るには、得られたホスト名に対する A レコードを 改めて問い合わせる必要があります。

例 48-2Net_DNS_Resolver::query() を用いて MX レコードを検索する

<?php
require_once 'Net/DNS.php';

$resolver = new Net_DNS_Resolver();
$response = $resolver->query('php.net', 'MX');
if ($response) {
  foreach ($response->answer as $rr) {
    $rr->display();
  }
  if (count($response->additional)) {
    foreach ($response->additional as $rr) {
      $rr->display();
    }
  }
}
?>

出力結果:

php.net.                86121   IN      MX      15 smtp.osuosl.org.
php.net.                86121   IN      MX      5 osu1.php.net.
osu1.php.net.           86121   IN      A       140.211.166.39

次はもう少し複雑な例で、デバッグ情報の表示を有効にしています。 usevc オプションを TRUE に設定していることに注意してください。 これにより、リゾルバに対して UDP ではなく TCP を利用することを強制しています。 このことは、デバッグ出力の中の send_tcp() の行で確認できます。

例 48-3ネームサーバとオプションを指定しての Net_DNS_Resolver::query() の使用

<?php
require_once 'Net/DNS.php';

$resolver = new Net_DNS_Resolver();
$resolver->debug = 1; // デバッグ用出力を有効にする
$resolver->usevc = 1; // UDP の代わりに TCP の使用を強制する
$resolver->nameservers = array(
                           '198.41.0.4',     // ネームサーバに問い合わせる
                           '192.228.79.201'  // IP アドレスを設定する
                           );
$response = $resolver->query('example.com');
if (! $response) {
  echo "\n";
  echo "ANCOUNT が 0 、つまり query() は「失敗しました」\n";
  echo "このパケットを受け取るには、Net_DNS_Resolver::rawQuery() を参照してください\n";
}
?>

出力結果:

;; query(example.com, A, IN)
;; send_tcp(198.41.0.4:53)
;; sending 29 bytes
;; received 517 bytes
;; HEADER SECTION
;; id = 58298
;; qr = 1    opcode = QUERY    aa = 0    tc = 0    rd = 1
;; ra = 0    rcode  = NOERROR
;; qdcount = 1  ancount = 0  nscount = 13  arcount = 15

;; QUESTION SECTION (1 record)
;;
;example.com.   IN      A

;; ANSWER SECTION (0 records)

;; AUTHORITY SECTION (13 records)
com.            172800  IN      NS      A.GTLD-SERVERS.NET.
com.            172800  IN      NS      G.GTLD-SERVERS.NET.
com.            172800  IN      NS      H.GTLD-SERVERS.NET.
com.            172800  IN      NS      C.GTLD-SERVERS.NET.
com.            172800  IN      NS      I.GTLD-SERVERS.NET.
com.            172800  IN      NS      B.GTLD-SERVERS.NET.
com.            172800  IN      NS      D.GTLD-SERVERS.NET.
com.            172800  IN      NS      L.GTLD-SERVERS.NET.
com.            172800  IN      NS      F.GTLD-SERVERS.NET.
com.            172800  IN      NS      J.GTLD-SERVERS.NET.
com.            172800  IN      NS      K.GTLD-SERVERS.NET.
com.            172800  IN      NS      E.GTLD-SERVERS.NET.
com.            172800  IN      NS      M.GTLD-SERVERS.NET.

;; ADDITIONAL SECTION (15 records)
A.GTLD-SERVERS.NET.     172800  IN      AAAA    2001:503:a83e::2:30
A.GTLD-SERVERS.NET.     172800  IN      A       192.5.6.30
G.GTLD-SERVERS.NET.     172800  IN      A       192.42.93.30
H.GTLD-SERVERS.NET.     172800  IN      A       192.54.112.30
C.GTLD-SERVERS.NET.     172800  IN      A       192.26.92.30
I.GTLD-SERVERS.NET.     172800  IN      A       192.43.172.30
B.GTLD-SERVERS.NET.     172800  IN      AAAA    2001:503:231d::2:30
B.GTLD-SERVERS.NET.     172800  IN      A       192.33.14.30
D.GTLD-SERVERS.NET.     172800  IN      A       192.31.80.30
L.GTLD-SERVERS.NET.     172800  IN      A       192.41.162.30
F.GTLD-SERVERS.NET.     172800  IN      A       192.35.51.30
J.GTLD-SERVERS.NET.     172800  IN      A       192.48.79.30
K.GTLD-SERVERS.NET.     172800  IN      A       192.52.178.30
E.GTLD-SERVERS.NET.     172800  IN      A       192.12.94.30
M.GTLD-SERVERS.NET.     172800  IN      A       192.55.83.30

ANCOUNT が 0 、つまり query() は「失敗しました」
このパケットを受け取るには、Net_DNS_Resolver::rawQuery() を参照してください

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_DNS_Resolver クラス概要 | 上に戻る | Net_DNS_Resolver::rawQuery()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_DNS_Resolver::rawQuery()

Net_DNS_Resolver::rawQuery() -- ネームサーバへの問い合わせを行い、結果を受け取る

概要

require_once('Net/DNS.php');

Net_DNS_Packet Net_DNS_Resolver::rawQuery (string $hostname [, string $type = 'A' [, string $class = 'IN']])

説明

  • hostname - 調べたい名前（例. www.php.net）

  • type - 調べたいレコードタイプ

  • class - 調べたいゾーンクラス

Net_DNS_Resolver::rawQuery() 関数は Net_DNS_Resolver::query() 関数と同じように DNS 問い合わせを行います。しかし、rawQuery() は、ネームサーバからの応答をそのままの形ですべて受け取ります。 これは、応答パケットの "ANSWER" セクション内にどのようなリソースレコードが 含まれているかを調べるのに便利です。

rawQuery() は Net_DNS_Resolver::query() が用いているのと同じリゾルバ設定を利用します。

返ってきた RR データオブジェクトの詳細については、 Net_DNS_RR を参照してください。

例

例 48-1Net_DNS_Resolver::rawQuery() の使用

<?php
require_once 'Net/DNS.php';

$resolver = new Net_DNS_Resolver();
$response = $resolver->rawQuery('example.com');
if ($response) {
  if (count($response->answer)) {
    foreach ($response->answer as $rr) {
      $rr->display();
    }
  }
}
?>

出力結果:

example.com.            129808  IN      A       192.0.34.166

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_DNS_Resolver::query() | 上に戻る | Net_DNS_Resolver::axfr()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_DNS_RR クラス概要

Net_DNS_RR クラス概要 -- リソースレコードの解析と生成の機能を提供する

Net_DNS_RR

Net_DNS_RR クラスの提供する機能は、ネームサーバから返された リソースレコードの解析、ネームサーバに送るリソースレコードの生成、 そしてそれらのリソースレコードをオブジェクトのプロパティとして 扱うことです。

それぞれのリソースレコードオブジェクトは、必ず以下のプロパティを 含む必要があります。

  • name - リソースレコード（RR）の DNS 名

  • type - RR のタイプ

  • class - RR のレコードクラス（一般的には IN）

  • ttl - RR の有効期限

  • rdlength - rdata セクションのデータ量（バイト単位）

  • rdata - RR の右側のデータ（非圧縮）

サポートされている RR タイプを type に設定すると、 適切なプロパティの値が自動的に設定されます。RR オブジェクトの中身は、 RR のタイプに応じて変化します。

サポートされる RR タイプ

  • A

    • string address - IPv4 形式のアドレス

  • AAAA

    • string address - IPv6 形式のアドレス

  • CNAME

    • string cname - 問い合わせ対象ホストの別名

  • HINFO

    • string cpu - ホストの CPU 名

    • string os - ホストの OS 名

  • MX

    • integer preference - MX の優先度（小さいほうが優先される）

    • string exchange - メール交換ホストの名称

  • NAPTR

    • unknown order - 不明

    • unknown preference - 不明

    • unknown flags - 不明

    • unknown services - 不明

    • unknown regex - 不明

    • unknown replacement - 不明

  • NS

    • string nsdname - NS レコードのネームサーバ名

  • PTR

    • string ptrdname - 問い合わせ対象 IP アドレスの別名

  • SOA

    • string mname - SOA レコードで指定されている マスタネームサーバのホスト名 - 正確でなくてもよい

    • string rname - ゾーンの責任者のメールアドレス - 正確でなくてもよい

    • string serial - ゾーンのシリアル番号 （バージョン番号）

    • string refresh - ゾーンのリフレッシュ間隔

    • string retry - ゾーンのリフレッシュが失敗 した際の再試行間隔

    • string expire - リフレッシュが失敗した際に ゾーンのデータが無効になったと判断するまでの期間

    • string minimum - ゾーン内の RR について、 別途指定されていない場合の最小の有効期限

  • SRV

    • unknown preference - 不明

    • unknown weight - 不明

    • unknown port - 不明

    • unknown target - 不明

  • TSIG

    • integer time_signed - 署名が作成された時刻

    • integer fudge - クライアントとサーバの間で 許される時刻のずれ

    • integer mac_size - 後に続く署名データのサイズ

    • string/binary mac - 後に続くデータ

    • integer original_id - サーバとの間でやりとりされる問い合わせを識別するための識別子

    • integer error - 署名の検証に失敗した場合のエラー番号

    • integer other_len - 署名に追加するデータの量（バイト単位）

    • string other_data - ネームサーバが、署名のために要求する追加データ

    • string key - クライアントとサーバ間で認証を行うためのキー

  • TXT

    • string text - レコードで定義されているテキスト

前のページ | ホーム | 次のページ
Net_DNS_Packet クラス概要 | 上に戻る | 例 -- DNS 更新

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_DNS のクラス概要

Net_DNS のクラス概要 -- DNS パケットの操作クラス

DNS パケットの操作クラス

このクラスのサブクラスは、DNS パケットを作成したり解析したり 送受信したりするメソッドを提供します。

このクラスは単なるコンテナクラスであり、決して直接生成すべきものでは ありません。このクラスには RFC 1035 で定義されている定数の定義が 含まれており、またそれらの定数名と実際の数値を変換するためのメソッドも 含まれています。

ネームサーバに特定のレコードを問い合わせるための情報は、 Net_DNS_Resolver::query() を参照してください。

前のページ | ホーム | 次のページ
導入 | 上に戻る | Net_DNS_Resolver クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


例 -- DNS 更新

例 -- DNS 更新 -- RFC 2136 DNS 更新

RFC 2136 DNS 更新

特別な形式の DNS パケットを作成してネームサーバに送信すると、 動的な DNS 更新が簡単に実現できます。Net_DNS が更新の要求のために 用いる DNS パケットの使用は、RFC 2136 で定義されています。 ネームサーバが DNS 更新要求を受け付けるように設定されていることが 前提条件となります。また、クライアントとサーバの間で鍵が確立されている ことも必要です。さらにもっとも大切なのは、鍵の MD5 ダイジェストを 生成するため、PHP の mhash 拡張が組み込まれていなければならないことです。

DNS パケットの構造は非常に特殊なものであり、DNS 更新がどのような 動作をするのかについての深い知識が要求されます。 Net_DNS は、現時点では抽象化されたパケットを サポートしていません。パケットの作成と送信は手動で行う必要があります。 更新パケットの完全な仕様は RFC 2136 を参照してください。

DNS 更新パケットで有効な項目の完全な一覧は、RFC2136 (http://www.ietf.org/rfc/rfc2136.txt) を参照してください。 以下の例は、DNS 更新に最低限必要な項目のみを扱っています。

例 48-1動的 DNS 更新パケットをネームサーバに送信する

<?php
require_once 'Net/DNS.php';

$resolver = new Net_DNS_Resolver();

// リクエストを送信する対象は、そのゾーンに対する DNS 更新を
// 受け付けているマスタサーバに限られるべきです。
$resolver->nameservers = array('192.168.0.254');

// DNS 更新のためのパケットを手動で生成する必要があります。
// まず最初にパケットオブジェクトのインスタンスを生成しなければなりません。
$packet = new Net_DNS_Packet();

// 更新パケットのヘッダを生成します。ほとんどの項目はデフォルト値の
// ままで大丈夫ですが、OPCODE ヘッダは "UPDATE" としなければなりません。
$packet->header = new Net_DNS_Header();
$packet->header->id = $resolver->nextid();
$packet->header->qr = 0;
$packet->header->opcode = "UPDATE";

// RFC2136 で定義述べられているように、質問セクションが "ZONE" セクションと
// なります。ここには、これから我々が更新しようとしているゾーンを指定します。
// これは、ネームサーバの設定で指定されているようなゾーン設定を反映します。
$packet->question[0] = new Net_DNS_Question('example.com', "SOA", "IN");

// パケットの回答セクションが "PREREQUISITE（条件）" セクションとなります。
// RFC2136 の セクション 2.4 に、とりうる値が定義されています。
// ここでの例のように何も条件を指定しなかった場合、ネームサーバは無条件での
// 更新を試みます。
$packet->answer = array();

// 権限セクションが、"UPDATE（更新）" セクションとなります。更新セクションは
// 変更したいリソースレコードをまとめたものです。RR オブジェクトに設定した値
// により、RR を削除したり追加したりすることができます。これらの値については
// RFC2136 で定義されていますが、ここでもひととおりまとめておきます。
//
// RR を追加する
// ゼロ以外の TTL が設定されている完全な RR オブジェクトは、追加とみなされます。
//
// RR を削除する
// TTL にゼロが設定されている完全な RR オブジェクトは、削除とみなされます。
// TTL 以外のすべての値が（正確に）一致するオブジェクトが削除されます。
//
// 複数の RR を削除する
// TTL にゼロ、TYPE に ANY が設定されている完全な RR オブジェクトは、指定された
// 名前とタイプの RR をすべて削除します。TTL と TYPE 以外のすべての値が（正確に）
// 一致するオブジェクトが削除されます。
//
// ある名前の RR をすべて削除する
// TTL にゼロ、TYPE に ANY 、そしてクラスにも ANY が設定されている完全な
// RR オブジェクトは、指定された名前の RR をすべて削除します。name セクションが
// 一致するすべてのオブジェクトが削除されます。
//
// 次の設定は、名前が "example.com"・クラスが "IN"・タイプが "A"・
// そしてアドレスが "192.0.34.166" の RR を削除します。
$rrDelete = new Net_DNS_RR("example.com. 0 IN A 192.0.34.166");
//
// 次の設定は、名前が example.com・TTL が 1 時間・クラスが "IN"・
// タイプが "A"・そしてアドレスが "192.0.34.155" の RR を追加します。
// 先ほどの例との違いは TTL の値だけであることに注目してください。
$rrAdd = new Net_DNS_RR("example.com. 3600 IN A 192.0.34.166");
//
// RR の更新内容は、DNS パケットの権限（更新）セクションに追加します。
$packet->authority[0] = $rrDelete;
$packet->authority[1] = $rrAdd;
//
// ネームサーバが認証を要求している場合、送信されるすべてのパケットに署名を
// つけなければなりません。DNS パケットの付加セクションに、TSIG RR が付加さ
// れます。
$tsig = new Net_DNS_RR("keyname.as.specified.in.server. TSIG ThisIsMyKey");
$packet->additional = array($tsig);
// Net_DNS は、それぞれのセクションのレコード数を自動計算しません。
// 手動で計算する必要があります。
$packet->header->qdcount = count($packet->question);
$packet->header->ancount = count($packet->answer);
$packet->header->nscount = count($packet->authority);
$packet->header->arcount = count($packet->additional);
//
// パケットが出来上がったら、処理を進めるためにそれをネームサーバに
// 送信します。 DNS 更新には send_tcp() メソッドを利用しなければなりません。
$response = $resolver->send_tcp($packet, $packet->data());
//
// サーバからの応答はいろいろ変化します。もし更新が成功した場合、サーバは
// "NOERROR" という応答コードを戻します。何かエラーが発生した場合、それは
// 応答パケットのヘッダの "rcode" に格納されます。
if ($response->header->rcode != "NOERROR") {
  return($response->header->rcode);
}

?>
前のページ | ホーム | 次のページ
Net_DNS_RR クラス概要 | 上に戻る | Net_DNSBL

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_DNSBL

目次
導入 -- Net_DNSBL の導入

Net_DNSBL は、指定したホストあるいは URL が、 DNS ベースのブラックホールリスト (DNSBL、あるいは リアルタイムブラックホールリスト: RBL) あるいは Spam URI リアルタイムブロックリスト (SURBL) にリストされているかどうかを調べます。

前のページ | ホーム | 次のページ
例 -- DNS 更新 | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- Net_DNSBL の導入

説明

PEAR::Net_DNSBL は、指定したホストあるいは URL が、 DNS ベースのブラックホールリスト (DNSBL、あるいは リアルタイムブラックホールリスト: RBL) あるいは Spam URI リアルタイムブロックリスト (SURBL) にリストされているかどうかを調べます。

現時点では IPv4 のIPアドレスにしか対応していないことに注意してください。

使用法

まずは簡単な例からはじめましょう。リモートホストが、 ふたつのブラックリストにリストされているかどうかをチェックします。
<?php
require_once 'Net/DNSBL.php';
$dnsbl = new Net_DNSBL();
$remoteIP = $_SERVER['REMOTE_ADDR'];
$remoteIP = '81.70.69.193';
$dnsbl->setBlacklists(array('sbl-xbl.spamhaus.org', 'bl.spamcop.net'));
if ($dnsbl->isListed($remoteIP)) {
    // 何かの処理
}
?>

この例では、URL が SURBL(Spam URI Realtime Blocklists) にリストされているかどうかをチェックします。
<?php
require_once 'Net/DNSBL/SURBL.php';
$surbl = new Net_DNSBL_SURBL();
if ($surbl->isListed($addData['url'])) {
    // 何かの処理
}
?>
テキストから URL を抽出する方法は、 http://www.phpfreaks.com/quickcode/Extract_All_URLs_on_a_Page/15.php で見つけられます。それをこのように利用します。
<?php
foreach ($extracted_urls as $surbl_check_url) {
    if ($surbl->isListed($surbl_check_url)) {
        // 何かの処理
        break;
    }
}
?>

ホストが一覧に載っていた場合に、詳細な情報を取得してみましょう。
<?php
require_once 'Net/DNSBL.php';
$dnsbl = new Net_DNSBL();
$dnsbl->setBlacklists(array('sbl-xbl.spamhaus.org', 'bl.spamcop.net'));
if ($dnsbl->isListed($_SERVER['REMOTE_ADDR'])) {
   var_dump($dnsbl->getDetails($_SERVER['REMOTE_ADDR']));
   var_dump($dnsbl->getTxt($_SERVER['REMOTE_ADDR']));
   var_dump($dnsbl->getListingBl($_SERVER['REMOTE_ADDR']));
   var_dump($dnsbl->getListingRecord($_SERVER['REMOTE_ADDR']);
}
?>

前のページ | ホーム | 次のページ
Net_DNSBL | 上に戻る | Net_Finger

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Finger

目次
Net_Finger::query() -- finger 問い合わせを実行する

Finger は、サーバ上のユーザについての情報を提供するサービスです。 インターネット上の多くのサーバでは、セキュリティ上の理由から finger プロトコルが使えなくなっています。したがって、このサービスが 有効に使えるのはイントラネットやローカルホストの管理ということになります。

finger コマンドの出力結果はシステムに依存しており、標準化されていません。 なぜなら、出力結果は人間が読みやすい形式で表示されるようになっており、 機械にとっては解析しにくい形式だからです。

前のページ | ホーム | 次のページ
導入 | 上に戻る | Net_Finger::query()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Finger::query()

Net_Finger::query() -- finger 問い合わせを実行する

概要

require_once 'Net/Finger.php';

string Net_Finger::query (string $server, string $query)

説明

サーバ上で、finger 問い合わせを実行します。

パラメータ

  • string $server - サーバ名あるいは IP アドレス

  • string $query - 検索したい finger オブジェクト

返り値

string - finger 問い合わせからのデータ。

例外・エラー

エラー時に戻される PEAR_Error オブジェクトの内容は不定であり、 エラー番号やエラーメッセージは無視できます。 エラーの原因は、サーバに接続できなかった・サーバで finger サービスが稼動していなかったのどちらかでしょう。

注意 サーバ上に存在しないユーザについて検索したために失敗した場合は、 PEAR_Error は戻されません。 このような場合は query() の返り値を調べないと 判断できません。

注意

この関数は、スタティックにコールする ことができます。

例

例 48-1query() の使用

<?php

$server = "localhost" ; // または IP アドレス
$query  = "ralph" ;     // 検索したいユーザ名

$data = Net_Finger::query( $server, $query) ;
echo $data ;

?>
前のページ | ホーム | 次のページ
Net_Finger | 上に戻る | Net_FTP

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_FTP

目次
定数 -- 定義済の定数
Net_FTP::Net_FTP() -- コンストラクタ
Net_FTP::connect() -- 指定された FTP サーバに接続する
Net_FTP::disconnect() -- FTP サーバとの接続を切断する
Net_FTP::login() -- 接続した FTP サーバにログインする
Net_FTP::cd() -- サーバ上でディレクトリを移動する
Net_FTP::pwd() -- サーバ上での現在のディレクトリを返す
Net_FTP::mkdir() -- ディレクトリを作成する
Net_FTP::execute() -- サーバ上でコマンドを実行する
Net_FTP::mdtm() -- ファイルの最終更新日を返す
Net_FTP::size() -- ファイルのサイズをバイト数で返す
Net_FTP::ls() -- 指定した方法で、ディレクトリ内の一覧を返す
Net_FTP::rm() -- ファイルあるいはディレクトリを削除する
Net_FTP::get() -- スクリプトを動作させているコンピュータ上にファイルをダウンロードする
Net_FTP::put() -- ファイルを FTP サーバにアップロードする
Net_FTP::getRecursive() -- スクリプトを動作させているコンピュータ上にディレクトリを丸ごとダウンロードする
Net_FTP::putRecursive() -- ディレクトリを丸ごと FTP サーバにアップロードする
Net_FTP::checkFileExtension() -- ファイルの転送モードを指定するために、extensions.ini をチェックする

Net_FTP は、FTP サーバとの快適な通信を提供します。 主な機能は PHP の組み込み FTP 関数に対するオブジェクト指向ラッパです。 また、指定したフォルダ以下の再帰的なアップロードやダウンロード、 指定したフォルダ以下の再帰的な削除等 組み込み FTP 関数には含まれない機能も提供します。ディレクトリ内の一覧機能は、 より構造化された形式でディレクトリやファイルを扱えるように拡張されています。

Net_FTP の便利な機能の中には、再帰的なファイルパーミッションの変更 （SITE コマンドを利用します）・さまざまな方法でのディレクトリ内一覧 ・Windows のサポートなどがあります。また、今後は PHP のソケット関数を 用いてこれらの機能を実装しなおすことも考えています。

前のページ | ホーム | 次のページ
Net_Finger::query() | 上に戻る | 定数

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_FTP::cd()

Net_FTP::cd() -- サーバ上でディレクトリを移動する

概要

require_once 'Net/FTP.php';

mixed Net_FTP::cd (string $directory)

説明

ログインしているサーバ上でのディレクトリを変更します。パラメータは 絶対パス（例 '/home/mydir'）または相対パス（例 'mydir'） のどちらの形式でも指定できます。

パラメータ

  • string $directory - 変更したいディレクトリ。 絶対パス（例 '/home/mydir'）または相対パス（例 'mydir'）。

返り値

mixed - 成功時には true 、それ以外は PEAR::Error

例外・エラー

エラー時に返される PEAR_Error オブジェクトの中身は不定です。 エラー番号やエラーメッセージは無視できます。なぜなら、この操作が 失敗した際は「ディレクトリの変更に失敗した」以外の情報は得られないからです。

注意

この関数は、スタティックにコールする ことはできません。

例

例 48-1cd() の使用

<?php

    $test->cd('../mydir');

?>
前のページ | ホーム | 次のページ
Net_FTP::login() | 上に戻る | Net_FTP::pwd()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_FTP::checkFileExtension()

Net_FTP::checkFileExtension() -- ファイルの転送モードを指定するために、extensions.ini をチェックする

概要

require_once 'Net/FTP.php';

integer Net_FTP::checkfileextension (string $filename)

説明

このメソッドは、与えられたファイル名に対する適切な転送モードを調べます （extensions.ini を利用します）。もし拡張子が見つからなければ、 the class fall back to the standard transfer mode (attribute).

パラメータ

  • string $filename - 調べたいファイル名

返り値

int - FTP_ASCII または FTP_BINARY のいずれか

例外・エラー

エラーは発生しない。常にファイル転送モードが返される。

注意

この関数は、スタティックにコールする ことはできません。

例

例 48-1checkFileExtension() の使用

<?php

    var_dump($test->checkfileextension('foo/bar.zip'));

?>
前のページ | ホーム | 次のページ
Net_FTP::putRecursive() | 上に戻る | Net_GameServerQuery

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_FTP::connect()

Net_FTP::connect() -- 指定された FTP サーバに接続する

概要

require_once 'Net/FTP.php';

mixed Net_FTP::connect ([string $host = null [, int $port = null]])

説明

FTP サーバとの通信のための新規オブジェクトを生成します。

パラメータ

  • string $host = null - 接続先ホスト（IP アドレスあるいはドメイン名のいずれか）。 コンストラクタ等で事前に設定している場合、このパラメータは省略可能です。

  • int $port = null - サーバへの 接続のためのポート番号。コンストラクタ等で事前に設定している場合、 このパラメータは省略可能です。

返り値

mixed - 成功時には true 、それ以外は PEAR::Error

例外・エラー

エラー時に返される PEAR_Error オブジェクトの中身は不定です。 エラー番号やエラーメッセージは無視できます。なぜなら、この操作が 失敗した際は「接続に失敗した」以外の情報は得られないからです。

注意

この関数は、スタティックにコールする ことはできません。

例

例 48-1connect() の使用

<?php

    $test->connect('192.168.0.1', 21);

?>
前のページ | ホーム | 次のページ
Net_FTP::Net_FTP() | 上に戻る | Net_FTP::disconnect()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


定数

定数 -- 定義済の定数

NET_FTP_FILES_ONLY

Net_FTP::ls() の戻り値を、ファイル名（ディレクトリ名は含まない）の配列にします。

NET_FTP_DIRS_ONLY

Net_FTP::ls() の戻り値を、ディレクトリ名（ファイル名は含まない）の配列にします。

NET_FTP_DIRS_FILES

Net_FTP::ls() の戻り値を、ディレクトリ名とファイル名の両方を含む配列にします。

NET_FTP_RAWLIST

Net_FTP::ls() の戻り値を、PHP 関数の ftp_rawlist() と同じ形式の配列にします。

前のページ | ホーム | 次のページ
Net_FTP | 上に戻る | Net_FTP::Net_FTP()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_FTP::disconnect()

Net_FTP::disconnect() -- FTP サーバとの接続を切断する

概要

require_once 'Net/FTP.php';

void Net_FTP::disconnect ()

説明

FTP サーバとの接続を切断します。

返り値

void

注意

この関数は、スタティックにコールする ことはできません。

例

例 48-1disconnect() の使用

<?php

    $test->disconnect();

?>
前のページ | ホーム | 次のページ
Net_FTP::connect() | 上に戻る | Net_FTP::login()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_FTP::execute()

Net_FTP::execute() -- サーバ上でコマンドを実行する

概要

require_once 'Net/FTP.php';

mixed Net_FTP::execute (string $command)

説明

指定されたコマンドをサーバ上で実行します（SITE EXEC コマンド自体は、 メソッドによって付け加えられます）。

パラメータ

  • string $command - 実行されるコマンド（SITE EXEC を除く）

返り値

mixed - 成功時には true 、それ以外は PEAR::Error

例外・エラー

エラー時に返される PEAR_Error オブジェクトの中身は定義されています。 エラー番号は常に１種類のみです。また、エラーメッセージは、 "Execution of command '$command' failed" という形式になります。

注意

この関数は、スタティックにコールする ことはできません。

例

例 48-1execute() の使用

<?php

    $test->execute($myCommand);

?>
前のページ | ホーム | 次のページ
Net_FTP::mkdir() | 上に戻る | Net_FTP::mdtm()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_FTP::get()

Net_FTP::get() -- スクリプトを動作させているコンピュータ上にファイルをダウンロードする

概要

require_once 'Net/FTP.php';

mixed Net_FTP::get (string $remote_file, string $local_file [, bool $overwrite = false [, int $mode = null]])

説明

スクリプトを動作させているコンピュータに、FTP サーバからファイルを ダウンロードします。

パラメータ

  • string $remote_file - ダウンロードしたいファイル名。絶対パス、あるいは相対パスで指定します （ディレクトリ名ではありません！ Net_FTP::getRecursive() 参照）。

  • string $local_file - ダウンロードしたファイルの保存先（ファイル名を含みます。 ディレクトリではありません！）。絶対パス、あるいはスクリプトの ディレクトリからの相対パスで指定します（注意：include を利用している 場合、スクリプトのディレクトリはインクルード元のファイルがある場所と なります！）

  • bool $overwrite = false - ローカルファイルが存在した場合に、それを上書きするかどうか。 指定しなかった場合、ファイルは上書きされません。

  • int $mode = null - 定数 FTP_ASCII あるいは FTP_BINARY のどちらかを指定しなければなりません。 指定されなかった場合、ファイルの拡張子から（extensions.ini によって） モードを決定します。それにも失敗した場合は標準転送モード （mode プロパティの値）が用いられます。

返り値

mixed - 成功時には true 、それ以外は PEAR::Error

例外・エラー

get から戻されるエラーにはいくつかの種類があります。エラー番号は （現時点では）不定で、エラーメッセージについての情報は得られません。 発生する可能性のあるエラーは以下のとおりです。

表 48-1PEAR_Error の値

エラーメッセージ | 説明 | 対処方法
Local file '$local_file' exists and may not be overwriten. | 指定した場所にはすでにファイルが存在し、上書きできません。 | $overwrite パラメータを true に設定します。
Local file '$file' is not writeable. Can not overwrite. | ローカルファイルを上書きするように指定しましたが、 上書きできませんでした。 | おそらくファイルを上書きする権限がないのでしょう。 ファイルのパーミッションを確認してください。
File '$remote_file' could not be downloaded to '$local_file'. | リモートファイルのダウンロードに失敗しました。 | いくつかの原因が考えられます：リモートファイルが存在しない、 ダウンロード先ローカルディレクトリが存在しない、あるいは ローカルディレクトリへの書き込み権限がないなど。

注意

この関数は、スタティックにコールする ことはできません。

例

例 48-1get() の使用

<?php

    var_dump($test->get('foo/bar.zip', '/tmp/downloaded.zip', true, FTP_BINARY));

?>
前のページ | ホーム | 次のページ
Net_FTP::rm() | 上に戻る | Net_FTP::put()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_FTP::getRecursive()

Net_FTP::getRecursive() -- スクリプトを動作させているコンピュータ上にディレクトリを丸ごとダウンロードする

概要

require_once 'Net/FTP.php';

mixed Net_FTP::getRecursive (string $remote_path, string $local_path [, bool $overwrite = false [, int $mode = null]])

説明

スクリプトを動作させているコンピュータに、FTP サーバから ディレクトリを丸ごとダウンロードします。

パラメータ

  • string $remote_path - ダウンロードしたいディレクトリ。絶対パス、あるいは相対パスで指定します （パスの最後には '/' をつけます）。

  • string $local_path - ダウンロードしたディレクトリの保存先。絶対パス、あるいはスクリプトの ディレクトリからの相対パスで指定します（注意：include を利用している 場合、スクリプトのディレクトリはインクルード元のファイルがある場所と なります！）

  • bool $overwrite = false - ローカルファイルが存在した場合に、それを上書きするかどうか。 指定しなかった場合、ディレクトリは上書きされません。

  • int $mode = null - 定数 FTP_ASCII あるいは FTP_BINARY のどちらかを指定しなければなりません。 指定されなかった場合、ファイルの拡張子から（extensions.ini によって） モードを決定します。それにも失敗した場合は標準転送モード （mode プロパティの値）が用いられます。

返り値

mixed - 成功時には true 、それ以外は PEAR::Error

例外・エラー

getRecursive から戻されるエラーにはいくつかの種類があります。エラー番号は （現時点では）不定で、エラーメッセージについての情報は得られません。 発生する可能性のあるエラーは以下のとおりです。

表 48-1PEAR_Error の値

エラーメッセージ | 説明 | 対処方法
Given remote-path '$remote_path' seems not to be a directory. | あなたが指定したパスは、FTP サーバ上の有効なディレクトリではありません。 | パスが '/' で終わっていない、あるいはそのディレクトリが存在しないのでしょう。
Given local-path '$local_path' seems not to be a directory. | あなたが指定したパスは、ローカルホスト上の有効なディレクトリではありません。 | パスが '/' で終わっていない、あるいはそのディレクトリが存在しないのでしょう。
Could not create dir '$local_path'. | 指定されたディレクトリが作成できません。 | ディレクトリのパーミッションを確認しましょう。

注意

この関数は、スタティックにコールする ことはできません。

例

例 48-1getRecursive() の使用

<?php

    var_dump($test->getRecursive('foo/', '/tmp/foo/', true));

?>
前のページ | ホーム | 次のページ
Net_FTP::put() | 上に戻る | Net_FTP::putRecursive()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_FTP::login()

Net_FTP::login() -- 接続した FTP サーバにログインする

概要

require_once 'Net/FTP.php';

mixed Net_FTP::login ([string $username = null [, int $password = null]])

説明

接続した FTP サーバにログインします。事前に FTP サーバに 接続していなければなりません。ユーザ名とパスワードは、 パラメータで指定することができます。あるいは事前に （set メソッドで）設定しておくことも可能です。

パラメータ

  • string $username = null - ログイン時に使われるユーザ名。省略可能ですが、その際には事前に手動で 設定してください！

  • int $password = null - ログイン時に使われるパスワード。省略可能ですが、その際には事前に手動で 設定してください！

返り値

mixed - 成功時には true 、それ以外は PEAR::Error

例外・エラー

エラー時に返される PEAR_Error オブジェクトの中身は不定です。 エラー番号やエラーメッセージは無視できます。なぜなら、この操作が 失敗した際は「ログインに失敗した」以外の情報は得られないからです。

注意

この関数は、スタティックにコールする ことはできません。

例

例 48-1login() の使用

<?php

    $test->login('myuser', 'mypass');

?>
前のページ | ホーム | 次のページ
Net_FTP::disconnect() | 上に戻る | Net_FTP::cd()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_FTP::ls()

Net_FTP::ls() -- 指定した方法で、ディレクトリ内の一覧を返す

概要

require_once 'Net/FTP.php';

mixed Net_FTP::ls ([string $dir = null [, string $mode = NET_FTP_DIRS_FILES]])

説明

この関数は、ファイル/ディレクトリ/その両方 の一覧、あるいは 整形されていない配列（PHP の ftp_rawlist() 関数と同じ形式） を返します。

パラメータ

  • string [$dir = null] - 一覧を取得したいディレクトリ。相対パスまたは絶対パスのいずれかで 指定できます。このパラメータは省略可能で、省略した場合は カレントパスに設定されます。

  • int $mode = NET_FTP_DIRS_FILES - 出力形式（ディレクトリのみ、ファイルのみ、その両方、ftp_rawlist() 形式） をあらわす定数。このパラメータは定数で定義されます（参照： 定数）。 このパラメータは省略可能で、省略した場合はディレクトリとファイルの 両方を構造化された配列形式で出力します。

返り値

mixed - 成功時には指定した形式による ディレクトリ内の一覧、それ以外は PEAR::Error

例外・エラー

ls から戻されるエラーにはいくつかの種類があります。エラー番号は （現時点では）不定で、エラーメッセージについての情報は得られません。 発生する可能性のあるエラーは以下のとおりです。

表 48-1PEAR_Error の値

エラーメッセージ | 説明 | 対処方法
Raw directory-list in wrong format. | PHP の ftp_rawlist() 関数から返ってきた値のフォーマットが 間違っています。取得しようとしているディレクトリ名が正しいものか、 そしてそのディレクトリへのアクセス権限があるかどうかを 確認してください。 | 正確なディレクトリパス（例. /my/file/path/, ../）を指定し、そのディレクトリに対する アクセス権限を確認（必要なら、変更）してください。
Could not get last-modification-date of '$file'. 最終更新日が取得できませんでした。理由として考えられるのは、 FTP サーバがそのコマンドをサポートしていないこと、あるいは 存在しないファイルの情報を取得しようとしたことです。

  • 指定したファイルが存在することを確認する

  • FTP サーバの管理者に連絡する

Date-format failed on timestamp '$res'. | 指定されたフォーマット文字列が不正確です。 | PHP の date() 関数のドキュメントを確認してください。

注意

この関数は、スタティックにコールする ことはできません。

例

例 48-1ls() の使用

<?php

    var_dump($test->ls('/foo/bar'));

?>
前のページ | ホーム | 次のページ
Net_FTP::size() | 上に戻る | Net_FTP::rm()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_FTP::mdtm()

Net_FTP::mdtm() -- ファイルの最終更新日を返す

概要

require_once 'Net/FTP.php';

mixed Net_FTP::mdtm (string $file [, string $format = null])

説明

ファイルが最後に更新された日時を、UNIX タイムスタンプ形式あるいは フォーマットされた書式で返します。 date.

パラメータ

  • string $file - チェックしたいファイル名

    string $format - date() 関数と同じ形式のフォーマット文字列

返り値

mixed - 成功時には最終更新日、 それ以外は PEAR::Error

例外・エラー

mtdm から戻されるエラーにはいくつかの種類があります。エラー番号は （現時点では）不定で、エラーメッセージについての情報は得られません。 発生する可能性のあるエラーは以下のとおりです。

表 48-1PEAR_Error の値

エラーメッセージ | 説明 | 対処方法
Filename '$file' seems to be a directory. | 指定したファイル名は、通常のファイルではなくディレクトリを さしています。 | 正しいファイル名を指定してください（例. /my/file/path/foo.html, ../foo.html）。
Could not get last-modification-date of '$file'. 最終更新日が取得できませんでした。理由として考えられるのは、 FTP サーバがそのコマンドをサポートしていないこと、あるいは 存在しないファイルの情報を取得しようとしたことです。

  • 指定したファイルが存在することを確認する

  • FTP サーバの管理者に連絡する

Date-format failed on timestamp '$res'. | 指定されたフォーマット文字列が不正確です。 | PHP の date() 関数のドキュメントを確認してください。

注意

この関数は、スタティックにコールする ことはできません。

例

例 48-1mdtm() の使用

<?php

    var_dump($test->mdtm('/foo/bar'));

    // 最終更新時刻を、ドイツの書式で返す
    var_dump($test->mdtm('/foo/bar', 'd.m.Y, H:i'));

?>
前のページ | ホーム | 次のページ
Net_FTP::execute() | 上に戻る | Net_FTP::size()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_FTP::mkdir()

Net_FTP::mkdir() -- ディレクトリを作成する

概要

require_once 'Net/FTP.php';

mixed Net_FTP::mkdir (string $directory [, bool $recursive = false])

説明

FTP サーバ上に新しいディレクトリを作成します。最初のパラメータは 相対パスあるいは絶対パスで指定できます。ふたつ目の（省略可能な） パラメータを指定すると、ディレクトリを再帰的に作成することができます （つまり、たとえ './my' が存在しなくても './my/new/dir' を作成できる ということです。3 つのディレクトリがすべて作成されます）。

パラメータ

  • string $directory - 作成したいディレクトリ。 絶対パス（例. '/home/mydir'）あるいは相対パス（例. 'mydir'）。

返り値

mixed - 成功時には true 、それ以外は PEAR::Error

例外・エラー

エラー時に返される PEAR_Error オブジェクトの中身は定義されています。 エラー番号は常に１種類のみです。また、エラーメッセージは、エラーが起こった ディレクトリを含む "Creation of '$dir' failed" という形式になります。

注意

この関数は、スタティックにコールする ことはできません。

例

例 48-1mkdir() の使用

<?php

    $test->mkdir('../mydir');

?>
前のページ | ホーム | 次のページ
Net_FTP::pwd() | 上に戻る | Net_FTP::execute()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_FTP::Net_FTP()

Net_FTP::Net_FTP() -- コンストラクタ

概要

require_once 'Net/FTP.php';

object Net_FTP::Net_FTP ([string $host = null [, int $port = null]])

説明

FTP サーバと通信するための新規オブジェクトを生成します。

パラメータ

  • string $host = null - 接続先ホスト（IP アドレスあるいはドメイン名のいずれか）。

  • int $port = null - サーバへの接続のためのポート番号。

返り値

object - 新規 Net_FTP オブジェクト

注意

この関数は、スタティックにコールする ことはできません。

例

例 48-1Net_FTP() の使用

<?php

    require_once 'Net/FTP.php';

    $test = new Net_FTP('ftp.mydomain.com', 21);

?>
前のページ | ホーム | 次のページ
定数 | 上に戻る | Net_FTP::connect()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_FTP::put()

Net_FTP::put() -- ファイルを FTP サーバにアップロードする

概要

require_once 'Net/FTP.php';

mixed Net_FTP::put (string $local_file, string $remote_file [, bool $overwrite = false [, int $mode = null]])

説明

スクリプトを動作させているコンピュータから、FTP サーバにファイルを アップロードします。

パラメータ

  • string $local_file - アップロードしたいファイル名。絶対パス、あるいはスクリプトの ディレクトリからの相対パスで指定します（注意：include を利用している 場合、スクリプトのディレクトリはインクルード元のファイルがある場所と なります！）

  • string $remote_file - アップロード先のパス （ファイル名を含む）。絶対パス、あるいは相対パスで指定します （ディレクトリ名ではありません！ Net_FTP::putRecursive() 参照）。

  • bool $overwrite = false - リモートファイルが存在した場合に、それを上書きするかどうか。 指定しなかった場合、ファイルは上書きされません。

  • int $mode = null - 定数 FTP_ASCII あるいは FTP_BINARY のどちらかを指定しなければなりません。 指定されなかった場合、ファイルの拡張子から（extensions.ini によって） モードを決定します。それにも失敗した場合は標準転送モード （mode プロパティの値）が用いられます。

返り値

mixed - 成功時には true 、それ以外は PEAR::Error

例外・エラー

put から戻されるエラーにはいくつかの種類があります。エラー番号は （現時点では）不定で、エラーメッセージについての情報は得られません。 発生する可能性のあるエラーは以下のとおりです。

表 48-1PEAR_Error の値

エラーメッセージ | 説明 | 対処方法
Local file '$local_file' does not exist. | 指定したローカルファイルは存在しません。 | ローカルファイルのパスを修正します。
Remote file '$remote_file' exists and may not be overwriten. | 指定した場所にはすでにファイルが存在しますが、上書きできません。 | おそらくファイルを上書きする権限がないのでしょう。 ファイルのパーミッションを確認してください。
File '$local_file' could not be uploaded to '$remote_file'. | ローカルファイルのアップロードに失敗しました。 | いくつかの原因が考えられます：ローカルファイルが存在しない、 アップロード先リモートディレクトリが存在しない、あるいは リモートディレクトリへの書き込み権限がないなど。

注意

この関数は、スタティックにコールする ことはできません。

例

例 48-1put() の使用

<?php

    var_dump($test->put('/tmp/downloaded.zip', 'foo/bar.zip', true, FTP_BINARY));

?>
前のページ | ホーム | 次のページ
Net_FTP::get() | 上に戻る | Net_FTP::getRecursive()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_FTP::putRecursive()

Net_FTP::putRecursive() -- ディレクトリを丸ごと FTP サーバにアップロードする

概要

require_once 'Net/FTP.php';

mixed Net_FTP::putrecursive (string $local_path, string $remote_path [, bool $overwrite = false [, int $mode = null]])

説明

スクリプトを動作させているコンピュータから、FTP サーバに ディレクトリを丸ごとアップロードします。

パラメータ

  • string $local_path - アップロードしたいディレクトリ。絶対パス、あるいはスクリプトの ディレクトリからの相対パスで指定します（注意：include を利用している 場合、スクリプトのディレクトリはインクルード元のファイルがある場所と なります！）

  • string $remote_path - アップロードしたいパス。絶対パス、あるいは相対パスで指定します。

  • bool $overwrite = false - リモートディレクトリが存在した場合に、それを上書きするかどうか。 指定しなかった場合、ディレクトリは上書きされません。

  • int $mode = null - 定数 FTP_ASCII あるいは FTP_BINARY のどちらかを指定しなければなりません。 指定されなかった場合、ファイルの拡張子から（extensions.ini によって） モードを決定します。それにも失敗した場合は標準転送モード （mode プロパティの値）が用いられます。

返り値

mixed - 成功時には true 、それ以外は PEAR::Error

例外・エラー

putRecursive から戻されるエラーにはいくつかの種類があります。エラー番号は （現時点では）不定で、エラーメッセージについての情報は得られません。 発生する可能性のあるエラーは以下のとおりです。

表 48-1PEAR_Error の値

エラーメッセージ | 説明 | 対処方法
Given local-path '$local_path' seems not to be a directory. | あなたが指定したローカルパスは、ディレクトリではないようです。 | ローカルパスを修正してください（'/' で終わっていますか？）。
Given remote-path '$remote_path' seems not to be a directory. | あなたが指定したリモートパスは、ディレクトリではないようです。 | リモートパスを修正してください（'/' で終わっていますか？）。

注意

この関数は、スタティックにコールする ことはできません。

例

例 48-1putRecursive() の使用

<?php

    var_dump($test->putRecursive('/tmp/foo/', 'foo/', true));

?>
前のページ | ホーム | 次のページ
Net_FTP::getRecursive() | 上に戻る | Net_FTP::checkFileExtension()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_FTP::pwd()

Net_FTP::pwd() -- サーバ上での現在のディレクトリを返す

概要

require_once 'Net/FTP.php';

mixed Net_FTP::pwd ()

説明

サーバ上で、現在選択されているディレクトリを返します。

返り値

mixed - 成功時には絶対パスを文字列で、 それ以外は PEAR::Error

例外・エラー

エラー時に返される PEAR_Error オブジェクトの中身は不定です。 エラー番号やエラーメッセージは無視できます。なぜなら、この操作が 失敗した際は「実際のパスを決定できなかった」以外の情報は得られないからです。

注意

この関数は、スタティックにコールする ことはできません。

例

例 48-1pwd() の使用

<?php

    echo $test->pwd();

?>
前のページ | ホーム | 次のページ
Net_FTP::cd() | 上に戻る | Net_FTP::mkdir()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_FTP::rm()

Net_FTP::rm() -- ファイルあるいはディレクトリを削除する

概要

require_once 'Net/FTP.php';

mixed Net_FTP::rm ([string $path = null [, string $recursive = false]])

説明

このメソッドは、ファイルあるいはディレクトリを削除します。

パラメータ

  • string $path = null - 削除したいファイル、 あるいはディレクトリ。ふたつめのパラメータを true に設定した場合、 空でないディレクトリも削除されます。その中にあるファイルやディレクトリは すべて削除されます。

  • $recursive = false - このパラメータは、空のディレクトリのみ削除する（標準）あるいは 中身が存在した場合にそれも含めてすべて削除する（$recursive = true） のどちらであるかを指定します。

返り値

mixed - 成功時には true 、それ以外は PEAR::Error

例外・エラー

rm から戻されるエラーにはいくつかの種類があります。エラー番号は （現時点では）不定で、エラーメッセージについての情報は得られません。 発生する可能性のあるエラーは以下のとおりです。

表 48-1PEAR_Error の値

エラーメッセージ | 説明 | 対処方法
Could not delete file '$file'. | ファイル $file（完全パス）は削除できません。 | ファイルが存在しない、あるいはそのファイルを削除する権限が ありません。ファイルが存在するかどうか、そして削除する権限が あるかどうかを確認してください。
Directory name '$dir' is invalid, has to end with '/' | 削除したいディレクトリ名（$recursive = true）を、最後の '/' をつけずに指定しました。 | パラメータを修正してください。
Could not delete directory '$dir'. | ディレクトリ $dir は削除できません。 | ディレクトリの中身が空でない（$recursive = false） あるいはそのディレクトリを削除する権限がないのでしょう。

注意

この関数は、スタティックにコールする ことはできません。

例

例 48-1rm() の使用

<?php

    var_dump($test->rm('/foo/bar/', true));

?>
前のページ | ホーム | 次のページ
Net_FTP::ls() | 上に戻る | Net_FTP::get()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_FTP::size()

Net_FTP::size() -- ファイルのサイズをバイト数で返す

概要

require_once 'Net/FTP.php';

mixed Net_FTP::size (string $file)

説明

ファイルのサイズをバイト数で返します。

パラメータ

  • string $file - チェックしたいファイル

返り値

mixed - 成功時には指定したファイルのサイズ、 それ以外は PEAR::Error

例外・エラー

エラー時に返される PEAR_Error オブジェクトの中身は不定です。 エラー番号やエラーメッセージは無視できます。なぜなら、この操作が 失敗した際は「接続に失敗した」以外の情報は得られないからです。

注意

この関数は、スタティックにコールする ことはできません。

例

例 48-1size() の使用

<?php

    var_dump($test->size('/foo/bar'));

?>
前のページ | ホーム | 次のページ
Net_FTP::mdtm() | 上に戻る | Net_FTP::ls()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_GameServerQuery

目次
導入 -- ゲームサーバへの問い合わせを行うための共通 API を提供する

ゲームサーバへの問い合わせを行い、正規化された出力を得るためのオブジェクトです。

前のページ | ホーム | 次のページ
Net_FTP::checkFileExtension() | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- ゲームサーバへの問い合わせを行うための共通 API を提供する

Net_GameServerQuery 概要

Net_GameServerQuery はゲームサーバへの問い合わせを行うための共通 API を提供します。

完全なオンラインドキュメントはこちらです

前のページ | ホーム | 次のページ
Net_GameServerQuery | 上に戻る | Net_Geo

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Geo

目次
Net_Geo - 例 -- リモートクライアントの IP を調べる
Net_Geo::Net_Geo() -- コンストラクタ
Net_Geo::getRecord() -- IP についての地理的な位置情報を取得する

Netgeo サービスへの問い合わせを行い、IP アドレスから 地理的な位置を取得するパッケージです。

前のページ | ホーム | 次のページ
導入 | 上に戻る | Net_Geo - 例

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Geo - 例

Net_Geo - 例 -- リモートクライアントの IP を調べる

例

<?php

require_once('Net/Geo.php');

// Net_Geo オブジェクトを生成する
$net_geo = new Net_Geo();

// クライアントの IP アドレスを取得する
$ip = $_SERVER['REMOTE_ADDR'];

// net_geo からの情報を配列として取得する
$results = $net_geo->getRecord($ip);

// 出力
echo "単一 IP の結果：<br />";
echo "<pre>";
print_r($results);
echo "</pre>";

// 複数 IP を配列形式で扱う例
$arr_ips = array
(
  gethostbyname("www.google.com"),
  gethostbyname("www.heise.de"),
  gethostbyname("www.college.ch")
);

// net_geo からの情報を配列として取得する
$results = $net_geo->getRecord($arr_ips);

// 出力
echo "複数 IP の結果：<br />";
echo "<pre>";
print_r($results);
echo "</pre>";

?>
前のページ | ホーム | 次のページ
Net_Geo | 上に戻る | Net_Geo::Net_Geo()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Geo::getRecord()

Net_Geo::getRecord() -- IP についての地理的な位置情報を取得する

概要

require_once('Net/Geo.php');

array getRecord() (mixed $target)

説明

ひとつ、もしくは複数の対象についての地理的な位置情報を取得します。 返される配列の STATUS 要素の中に、エラーメッセージあるいは "OK" が書き込まれます。

パラメータ

  • mixed $target - IP アドレス、 あるいは複数 IP アドレスの配列。

返り値

array - 対象についての地理的な位置情報を格納した配列。

例外・エラー

表 48-1STATUS のエラー情報

エラーコード | エラーメッセージ | 原因 | 対応方法
文字列 "OK" | "No error occured." | 対象が正しく処理されました。 | NULL
定数 INPUT_ERROR | "User input is unusable target" | 指定された対象は処理されませんでした。 | target パラメータをチェックします。単一のドメイン名・IP アドレスを 表す文字列、あるいは複数のドメイン名・IP アドレスからなる一次元配列 のどちらかでなければなりません。
定数 NETGEO_HTTP_ERROR | "Netgeo unreachable" | Netgeo サービスへの接続を確立できませんでした。 | http://netgeo.caida.org/perl/netgeo.cgi (デフォルトで使われる URL) が存在することを確認します。もしスクリプトが移動していた場合は Net_Geo() の $alternateServerUrl パラメータを設定します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Geo::Net_Geo() | 上に戻る | Net_GeoIP

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Geo::Net_Geo()

Net_Geo::Net_Geo() -- コンストラクタ

概要

require_once('Net/Geo.php');

bool Net_Geo() ([string $applicationName = '' [, string $alternateServerUrl = '']])

説明

IP アドレスから地理的な位置情報を取得するためのオブジェクトを生成します。

パラメータ

  • string $applicationName - Netgeo への問い合わせの際に UserAgent として指定されるアプリケーション名。

  • string $alternateServerUrl - Netgeo サービスのスクリプトの URL 。指定しない場合は、 "http://netgeo.caida.org/perl/netgeo.cgi" が用いられます。

返り値

boolean - 常に TRUE を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Geo - 例 | 上に戻る | Net_Geo::getRecord()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_GeoIP

目次
Net_GeoIP::getInstance() -- インスタンスを取得し、データベースの再読み込みを防ぐメソッド
Net_GeoIP::lookupCountryName() -- 指定した IP アドレスに対応する国名を返す
Net_GeoIP::lookupCountryCode() -- 指定した IP アドレスに対応する、2 文字の国コード (例: "CA") を返す
Net_GeoIP::lookupRegion() -- 指定した IP アドレスに対応する地域を返す
Net_GeoIP::lookupLocation() -- 指定した IP アドレスに対応する場所レコードを返す
Net_GeoIP::lookupOrg() -- 指定した IP アドレスに対応する組織名あるいは ISP 名を返す

IP アドレスから地理情報を取得するためのライブラリ

このパッケージは、MaxMind の GeoIP データベースに基づいて作成されたもので、 IP アドレスに対応する地理情報を取得します。 MaxMind は フリー版 および 非フリー版 の両方のデータベースを提供しています。 これらのデータベースの取得方法については、 それぞれのウェブサイトを参照ください。

前のページ | ホーム | 次のページ
Net_Geo::getRecord() | 上に戻る | Net_GeoIP::getInstance()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_GeoIP::getInstance()

Net_GeoIP::getInstance() -- インスタンスを取得し、データベースの再読み込みを防ぐメソッド

概要

require_once "Net/GeoIP.php";

object getInstance() (string $filename [, int $flags])

説明

このメソッドは、いわゆるシングルトンパターンを実装したものです。 Net_GeoIP のインスタンスを作成するには、 このメソッドを使用することを推奨します。

例 48-1 Net_GeoIP のインスタンスの作成

require_once "Net/GeoIP.php";

$geoip = Net_GeoIP::getInstance("/path/to/geoipdb.dat", Net_GeoIP::SHARED_MEMORY);

複数インスタンス

アプリケーション内で複数のデータベースを使用したい場合は、 それぞれのデータベースに対して Net_GeoIP のインスタンスを個別に作成する必要があります。 シングルトンメソッド getInstance() を使用すると、 個々のデータベースに対応するインスタンスは常にひとつであることが保証されます。 これにより、データベース設定のオーバーヘッドを抑えることができます。

パラメータ

  • string $filename - データベースファイルの名前 (そこまでのパスも含む)。

  • int $flags - クラスの振る舞いを制御するフラグ。以下のクラス定数のいずれかです。

    • Net_GeoIp::SHARED_MEMORY - 複数の PHP インスタンスでデータベースを共有するために、 SHMOP を使用します。

      注意 同時に複数の Net_GeoIP インスタンスが共有メモリを使用することはできません。

      Net_GeoIP::SHARED_MEMORY (shmop) を使用する場合は、単一のインスタンス (つまりひとつのデータベース) に対してのみしか使用できません。 それ以降に SHARED_MEMORY を使用したインスタンスを作成しようとすると、 すでに作成されているインスタンスと同じ共有メモリブロックを読み込んでしまい、 問題が発生します。というのも、 そこから読み込んだデータベースは期待しているものとは異なるからです。

      Net_GeoIP::SHARED_MEMORY を使用した 2 つめ以降インスタンスの作成をとめるための エラーを通知する簡単な方法はありません。 また、2 つめ以降のインスタンスが共有メモリブロックを上書きするようにすることも (事実上) 不可能です。

      簡単に言うと、複数データベースの環境で Net_GeoIP::SHARED_MEMORY を使う際には注意しましょうということです。

    • Net_GeoIp::MEMORY_CACHE - 現在のスクリプト内で使用するために、 データベースの中身をすべてメモリに格納します。

      これは、スクリプト内で何度もデータベースにアクセスする際に有用です。

    • Net_GeoIp::STANDARD - 標準の形式で、キャッシュを行いません。 このパラメータを省略した場合のデフォルト値でもあります。

前のページ | ホーム | 次のページ
Net_GeoIP | 上に戻る | Net_GeoIP::lookupCountryName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_GeoIP::lookupCountryCode()

Net_GeoIP::lookupCountryCode() -- 指定した IP アドレスに対応する、2 文字の国コード (例: "CA") を返す

概要

require_once "Net/GeoIP.php";

string lookupCountryCode() (string $addr)

説明

このメソッドは、指定した IP アドレスに対応する 2 文字の国コードを返します。 フリー版、非フリー版のどちらのデータベースでも使用可能です。

例 48-1 国コードの検索

require_once "Net/GeoIP.php";

$geoip = Net_GeoIP::getInstance("/path/to/geoipdb.dat");

try {
    echo $geoip->lookupCountryCode($_SERVER['REMOTE_ADDR']);
} catch (Exception $e) {
    // 例外処理
}

パラメータ

  • string $addr - IP アドレス。

    注意 ホスト名はサポートされません。 詳細な情報はこちらです。

例外・エラー

IP アドレスが無効な場合、あるいはデータベースの形式が不正な場合に このメソッドは例外をスローします。

前のページ | ホーム | 次のページ
Net_GeoIP::lookupCountryName() | 上に戻る | Net_GeoIP::lookupRegion()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_GeoIP::lookupCountryName()

Net_GeoIP::lookupCountryName() -- 指定した IP アドレスに対応する国名を返す

概要

require_once "Net/GeoIP.php";

string lookupCountryName() (string $addr)

説明

このメソッドは、指定した IP アドレスに対応する国名を返します。 フリー版、非フリー版のどちらのデータベースでも使用可能です。

例 48-1 国名の検索

require_once "Net/GeoIP.php";

$geoip = Net_GeoIP::getInstance("/path/to/geoipdb.dat");

try {
    echo $geoip->lookupCountryName($_SERVER['REMOTE_ADDR']);
} catch (Exception $e) {
    // 例外処理
}

パラメータ

  • string $addr - IP アドレス。

    ホスト名の検索 この PHP API は、ホスト名による検索をサポートしていないことに注意しましょう。 これにより公開 API をシンプルに保つことが可能となり、 IP 検索が失敗した場合に名前による検索を試みる必要がなくなります (API をシンプルに保ちつつ名前ベースの検索をサポートするには、 これが唯一の方法でしょう)。

    IP アドレスがわからない場合は、PHP のネイティブ関数やその他のライブラリを使用すれば 簡単にホスト名から IP アドレスを取得できます。

    $geoip->lookupCountryName(gethostbyname("example.com"));

    あるいは、名前と IP アドレスのどちらが指定されるかわからない場合には、 アプリケーションレベルでロジックを作成しましょう。

    if (ip2long($ip_or_name) === false) {
    $ip = gethostbyname($ip_or_name);
} else {
    $ip = $ip_or_name;
}

$country = $geoip->lookupCountryName($ip);

例外・エラー

IP アドレスが無効な場合、あるいはデータベースの形式が不正な場合に このメソッドは例外をスローします。

前のページ | ホーム | 次のページ
Net_GeoIP::getInstance() | 上に戻る | Net_GeoIP::lookupCountryCode()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_GeoIP::lookupLocation()

Net_GeoIP::lookupLocation() -- 指定した IP アドレスに対応する場所レコードを返す

概要

require_once "Net/GeoIP.php";

object lookupLocation() (string $addr)

説明

このメソッドは、指定した IP アドレスに対応する Net_GeoIP_Location のインスタンスを返します。非フリー版の都市データベースが必要です。

例 48-1 場所レコードの検索

require_once "Net/GeoIP.php";

$geoip = Net_GeoIP::getInstance("/path/to/geoipdb.dat");

try {
    $location = $geoip->lookupLocation($_SERVER['REMOTE_ADDR']);

    var_dump($location);

    printf("都市: %s, %s\n緯度: %s, 経度: %s\n",
           $location->city, $location->region,
           $location->latitude, $location->longitude);

} catch (Exception $e) {
    // 例外処理
}

パラメータ

  • string $addr - IP アドレス。

    注意 ホスト名はサポートされません。 詳細な情報はこちらです。

例外・エラー

IP アドレスが無効な場合にこのメソッドは例外をスローします。

前のページ | ホーム | 次のページ
Net_GeoIP::lookupRegion() | 上に戻る | Net_GeoIP::lookupOrg()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_GeoIP::lookupOrg()

Net_GeoIP::lookupOrg() -- 指定した IP アドレスに対応する組織名あるいは ISP 名を返す

概要

require_once "Net/GeoIP.php";

string lookupOrg() (string $addr)

説明

このメソッドは、指定した IP アドレスに対応する組織名 あるいはその IP アドレスを含む範囲を登録している ISP の名前を返します。 非フリー版の 組織/ISP データベースが必要です。

例 48-1 組織名の検索

require_once "Net/GeoIP.php";

$geoip = Net_GeoIP::getInstance("/path/to/geoipdb.dat");

try {
    echo $geoip->lookupOrg($_SERVER['REMOTE_ADDR']);
} catch (Exception $e) {
    // 例外処理
}

パラメータ

  • string $addr - IP アドレス。

    注意 ホスト名はサポートされません。 詳細な情報はこちらです。

例外・エラー

IP アドレスが無効な場合、あるいはデータベースの形式が不正な場合に このメソッドは例外をスローします。

前のページ | ホーム | 次のページ
Net_GeoIP::lookupLocation() | 上に戻る | Net_IPv4

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_GeoIP::lookupRegion()

Net_GeoIP::lookupRegion() -- 指定した IP アドレスに対応する地域を返す

概要

require_once "Net/GeoIP.php";

array lookupRegion() (string $addr)

説明

このメソッドは、指定した IP アドレスに対応する 国コードおよび地域を含む配列を返します。 非フリー版の地域データベースが必要です。

例 48-1 地域の検索

require_once "Net/GeoIP.php";

$geoip = Net_GeoIP::getInstance("/path/to/geoipdb.dat");

try {
    list($country_code, $region) = $geoip->lookupRegion($_SERVER['REMOTE_ADDR']);
} catch (Exception $e) {
    // 例外処理
}

パラメータ

  • string $addr - IP アドレス。

    注意 ホスト名はサポートされません。 詳細な情報はこちらです。

例外・エラー

IP アドレスが無効な場合にこのメソッドは例外をスローします。

前のページ | ホーム | 次のページ
Net_GeoIP::lookupCountryCode() | 上に戻る | Net_GeoIP::lookupLocation()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_IPv4

目次
Net_IPv4::atoh() -- ドット区切りに整形された IP アドレスを16進数文字列に変換する
Net_IPv4::htoa() -- 16進数文字列をドット区切りに整形された IP アドレスに変換する
Net_IPv4::ip2double() -- IP アドレスを PHP の倍精度数に変換する
Net_IPv4::validateIP() -- 与えられた IP アドレスの書式を検証する
Net_IPv4::validateNetmask() -- 与えられたネットマスクの書式を検証する
Net_IPv4::parseAddress() -- CIDR アドレス (アドレス/ネットマスクの組み合わせ)をパースする
Net_IPv4::calculate() -- IP アドレスとネットマスクに基づいて、ネットワーク情報を計算する
Net_IPv4::ipInNetwork() -- 与えられた IP が与えられたネットワーク内にあるかどうかを決定する

IP アドレスとネットマスクを使った処理のためのいくつかのメソッドを 提供します。

前のページ | ホーム | 次のページ
Net_GeoIP::lookupOrg() | 上に戻る | Net_IPv4::atoh()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_IPv4::atoh()

Net_IPv4::atoh() -- ドット区切りに整形された IP アドレスを16進数文字列に変換する

概要

require_once 'Net/IPv4.php';

mixed atoh (string $addr)

説明

ドット区切りに整形されたIPアドレスを16進数文字列に変換します。 たとえば、"192.168.1.0" を "c0a80100" に変換します。 与えられた文字列が有効な IP アドレスでない場合、FALSE を返します。

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
Net_IPv4 | 上に戻る | Net_IPv4::htoa()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_IPv4::calculate()

Net_IPv4::calculate() -- IP アドレスとネットマスクに基づいて、ネットワーク情報を計算する

概要

require_once 'Net/IPv4.php';

mixed calculate ()

説明

IP アドレスとネットマスク/ビットマスクに基づいて、 オブジェクトプロパティをセットします。 一度、これら二つのフィールドがセットされると、 calculate() はネットワークとそのネットワークのブロードキャストアドレスを 決定するための計算を実行します。

例

例 48-1ブロードキャストとネットワークアドレスの計算

<?php

require 'Net/IPv4.php';

// create IPv4 object
$ip_calc = new Net_IPv4();

// set variables
$ip_calc->ip = "192.168.1.10";
$ip_calc->netmask = "255.255.255.0";

/* alternative method with numerical values:
$ip_calc->long = 3232235786;
$ip_calc->bitmask = 24;
*/

// calculate
$error = $ip_calc->calculate();
if (!is_object($error))
{
  // if returned true, output
  echo "Your network address: ".$ip_calc->network."<br />";
  echo "Your broadcast address: ".$ip_calc->broadcast."<br />";
}
else
{
  // otherwise handle error
  echo "An error occured: ".$error->getMessage();
}

?>

返り値

boolean - 成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_IPv4::parseAddress() | 上に戻る | Net_IPv4::ipInNetwork()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_IPv4::htoa()

Net_IPv4::htoa() -- 16進数文字列をドット区切りに整形された IP アドレスに変換する

概要

require_once 'Net/IPv4.php';

mixed htoa (string $addr)

説明

16進数文字列をドット区切りに整形された IP アドレスに変換します。 たとえば、"c0a80100" を "192.168.1.0" に変換します。 与えられた文字列が有効な IP アドレスでない場合、FALSE を返します。

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
Net_IPv4::atoh() | 上に戻る | Net_IPv4::ip2double()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_IPv4::ip2double()

Net_IPv4::ip2double() -- IP アドレスを PHP の倍精度数に変換する

概要

require_once 'Net/IPv4.php';

float ip2double (string $ip_addr)

説明

IP アドレスを PHP の倍精度数に変換します。 たとえば、"192.168.1.0" は "3232235776" に変換されます。 倍精度数は、PHP の long2ip() 関数から返される整数と対照的に符号がないため、 ユーザーに表示する場合はより違和感がないでしょう。

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
Net_IPv4::htoa() | 上に戻る | Net_IPv4::validateIP()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_IPv4::ipInNetwork()

Net_IPv4::ipInNetwork() -- 与えられた IP が与えられたネットワーク内にあるかどうかを決定する

概要

require_once 'Net/IPv4.php';

bool validateIP (string $ip_addr, string $cidr_block)

説明

与えられた IP が与えられたネットワーク内にあるかどうかを判定します。

例

例 48-1IP アドレスがネットワークに含まれるかどうかチェックする

<?php

require 'Net/IPv4.php';

$ip   = '10.11.12.13';
$net1 = '10.0.0.1/8';
$net2 = '127.0.0.1/8';

echo Net_IPv4::ipInNetwork($ip, $net1) // bool(true)
echo Net_IPv4::ipInNetwork($ip, $net2) // bool(false)
?>

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
Net_IPv4::calculate() | 上に戻る | Net_IPv6

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_IPv4::parseAddress()

Net_IPv4::parseAddress() -- CIDR アドレス (アドレス/ネットマスクの組み合わせ)をパースする

概要

require_once('Net/IPv4.php');

bool parseAddress (string $address)

説明

Classless Inter-Domain Routing アドレス (たとえば、192.168.1.0/24) をパースし、オブジェクト変数 network, ip, netmask, broadcast, long, bitmask に情報をストアします。

例

例 48-1CIDR アドレスからネットマスクとブロードキャストの取得方法

<?php

require('Net/IPv4.php');

$cidr = '192.168.0.50/16';
$net = Net_IPv4::parseAddress($cidr);
echo $net->network;   // 192.168.0.0
echo $net->ip;        // 192.168.0.50
echo $net->broadcast; // 192.168.255.255
echo $net->bitmask;   // 16
echo $net->long;      // 3232235520 (long/double version of 192.168.0.50)
echo $net->netmask;   // 255.255.0.0

?>

返り値

boolean - 成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_IPv4::validateNetmask() | 上に戻る | Net_IPv4::calculate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_IPv4::validateIP()

Net_IPv4::validateIP() -- 与えられた IP アドレスの書式を検証する

概要

require_once 'Net/IPv4.php';

bool validateIP (string $ip_addr)

説明

IP アドレスの形式ががドット区切りであるか検証します。 アドレスが有効な場合、true を返し、そうでなければ false を返します。

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
Net_IPv4::ip2double() | 上に戻る | Net_IPv4::validateNetmask()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_IPv4::validateNetmask()

Net_IPv4::validateNetmask() -- 与えられたネットマスクの書式を検証する

概要

require_once 'Net/IPv4.php';

bool validateNetmask (string $netmask)

説明

ドット区切りに整形されたネットマスクの書式を検証します。 ネットマスクが有効な場合、true を返し、 そうでなければ false を返します。

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
Net_IPv4::validateIP() | 上に戻る | Net_IPv4::parseAddress()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_IPv6

目次
Net_IPv6::checkIPv6() -- IPv6 アドレスの検証
Net_IPv6::compress() -- IPv6 アドレスの圧縮
Net_IPv6::uncompress() -- IPv6 アドレスを伸長する
Net_IPv6::getAddressType() -- IP アドレスの形式を返す
Net_IPv6::getNetmask() -- ネットワークプレフィックスを計算する
Net_IPv6::isInNetmask() -- IP が指定したアドレス空間にあるかどうかを調べる
Net_IPv6::removeNetmaskSpec() -- ネットマスク長の指定を削除する
Net_IPv6::splitV64() -- IPv6 アドレスを IPv6 パートと IPv4 パートに分割する

'Internet Protocol v6' を使った機能を提供します。

前のページ | ホーム | 次のページ
Net_IPv4::ipInNetwork() | 上に戻る | Net_IPv6::checkIPv6()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_IPv6::checkIPv6()

Net_IPv6::checkIPv6() -- IPv6 アドレスの検証

概要

require_once 'Net/IPv6.php';

boolean Net_IPv6::checkIPv6 (string $ip)

説明

IP の IPv6 への適合性をチェックします。

パラメータ

  • string $ip - チェックする IP アドレスを指定します。

返り値

boolean - 書式が有効な場合、TRUE

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
Net_IPv6 | 上に戻る | Net_IPv6::compress()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_IPv6::compress()

Net_IPv6::compress() -- IPv6 アドレスの圧縮

概要

require_once 'Net/IPv6.php';

string Net_IPv6::compress (string $ip)

説明

IPv6 アドレスを圧縮します。 RFC 2373 では、アドレス内のゼロを '::' に圧縮することを許可しています。 この関数は有効な IPv6アドレスを期待しており、 圧縮可能なゼロを '::' に圧縮します。
FF01:0:0:0:0:0:0:101 -> FF01::101
      0:0:0:0:0:0:0:1      -> ::1

パラメータ

  • string $ip - 圧縮する IP アドレスを指定します。

返り値

string - 圧縮された IPv6 アドレス

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
Net_IPv6::checkIPv6() | 上に戻る | Net_IPv6::uncompress()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_IPv6::getAddressType()

Net_IPv6::getAddressType() -- IP アドレスの形式を返す

概要

require_once 'Net/IPv6.php';

int Net_IPv6::getAddressType (string $ip)

説明

RFC 1883 のセクション 2.3 では、IPv6 アドレス空間内のアドレス形式について説明されています。 このメソッドは、指定された IP アドレスの型を判別します。

警告

中には予約済みの空間に割り当てられているアドレス型もあり、 将来変更される可能性があります。

パラメータ

  • string $ip - 16 進形式の IP アドレス。 圧縮された IP も受け付けます。

返り値

int - アドレス型。

以下の定数のいずれかです。

  • NET_IPV6_MULTICAST

  • NET_IPV6_UNICAST_PROVIDER

  • NET_IPV6_LOCAL_LINK

  • NET_IPV6_LOCAL_SITE

  • NET_IPV6_UNKNOWN_TYPE

  • NET_IPV6_RESERVED_UNICAST_GEOGRAPHIC

  • NET_IPV6_RESERVED_IPX

  • NET_IPV6_RESERVED

  • NET_IPV6_RESERVED_NSAP

  • NET_IPV6_UNASSIGNED

注意

この関数は、スタティックにコールする ことができます。

リリース 1.1.0 以降で使用可能です。

前のページ | ホーム | 次のページ
Net_IPv6::uncompress() | 上に戻る | Net_IPv6::getNetmask()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_IPv6::getNetmask()

Net_IPv6::getNetmask() -- ネットワークプレフィックスを計算する

概要

require_once 'Net/IPv6.php';

string Net_IPv6::getNetmask (string $ip [, int $bits = null])

説明

ネットマスクビットにもとづいて、ネットワークプレフィックスを計算します。

パラメータ

  • string $ip - 16 進形式の IP アドレス。 圧縮された IP も受け付けます。

  • int $bits - ネットマスクビットが IP に含まれていない場合は、 ビット数を指定しなければなりません。

返り値

string - ネットワークプレフィックス。

注意

この関数は、スタティックにコールする ことができます。

リリース 1.1.0 以降で使用可能です。

前のページ | ホーム | 次のページ
Net_IPv6::getAddressType() | 上に戻る | Net_IPv6::isInNetmask()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_IPv6::isInNetmask()

Net_IPv6::isInNetmask() -- IP が指定したアドレス空間にあるかどうかを調べる

概要

require_once 'Net/IPv6.php';

boolean Net_IPv6::isInNetmask (string $ip, string $netmask [, int $bits = null])

説明

(圧縮された) IP が指定したアドレス空間にあるかどうかを調べます。 IP にネットマスクビット数が含まれない場合 (例: F8000::FFFF/16) は、 $bits パラメータを指定しなければなりません。

パラメータ

  • string $ip - 16 進形式の IP アドレス。 圧縮された IP も受け付けます。

  • string $netmask - ネットマスク (例: F800::)。

  • int $bits - ネットマスクビットが IP に含まれていない場合は、 ビット数を指定しなければなりません。

返り値

boolean - IP がアドレス空間にある場合に TRUE。

注意

この関数は、スタティックにコールする ことができます。

リリース 1.1.0 以降で使用可能です。

前のページ | ホーム | 次のページ
Net_IPv6::getNetmask() | 上に戻る | Net_IPv6::removeNetmaskSpec()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_IPv6::removeNetmaskSpec()

Net_IPv6::removeNetmaskSpec() -- ネットマスク長の指定を削除する

概要

require_once 'Net/IPv6.php';

string Net_IPv6::removeNetmaskSpec (string $ip)

説明

ネットマスク長の指定を IP アドレスから削除します。

パラメータ

  • string $ip - 16 進形式の IP アドレス。 圧縮された IP も受け付けます。

返り値

string - ネットマスク長の指定を含まない IP。

注意

この関数は、スタティックにコールする ことができます。

リリース 1.1.0 以降で使用可能です。

前のページ | ホーム | 次のページ
Net_IPv6::isInNetmask() | 上に戻る | Net_IPv6::splitV64()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_IPv6::splitV64()

Net_IPv6::splitV64() -- IPv6 アドレスを IPv6 パートと IPv4 パートに分割する

概要

require_once 'Net/IPv6.php';

array Net_IPv6::splitV64 (string $ip)

説明

IPv6 アドレスを IPv6 パートと IPv4 形式のパートに分割します RFC 2373 では、 IPv6 の最後の2パートを IPv4 アドレス形式 で表現することを許可しています。
0:0:0:0:0:0:13.1.68.3
     0:0:0:0:0:FFFF:129.144.52.38

パラメータ

  • string $ip - 分割する IP アドレスを指定します。

返り値

array - キー [0] には IPv6 パートが、キー [1] には IPv4 形式のパートがそれぞれ含まれます。

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
Net_IPv6::removeNetmaskSpec() | 上に戻る | Net_NNTP

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_IPv6::uncompress()

Net_IPv6::uncompress() -- IPv6 アドレスを伸長する

概要

require_once 'Net/IPv6.php';

string Net_IPv6::uncompress (string $ip)

説明

IPv6 アドレスを伸長します。 RFC 2373 では、アドレス内のゼロを '::'に圧縮する事を許可しています。 この関数は有効な IPv6アドレスを期待しており、 '::' を必要とされるゼロに伸長します。
FF01::101 ->  FF01:0:0:0:0:0:0:101
      ::1       ->  0:0:0:0:0:0:0:1

パラメータ

  • string $ip - 伸長する IP アドレスを指定します。

返り値

string - 伸長された IPv6 アドレス

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
Net_IPv6::compress() | 上に戻る | Net_IPv6::getAddressType()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP

NNTP プロトコルを実装したものです。

注意 Net_NNTP クラスは、v0.10.x の時点で「将来廃止される予定」という扱いに なっています。新規アプリケーションでは、代わりに Net_NNTP_Client を用いるようにすべきです。 過去のバージョンとの互換性を保つため、Net_NNTP には Net_NNTP_Client の機能をバックポートしたものが残されています。しかしこれは一時的な処置であり、 そう長くは続けられないでしょう。

Net_NNTP_Client

目次
定数 -- 定義済の定数
Net_NNTP_Client::authenticate() -- 認証を行う
Net_NNTP_Client::connect() -- NNTP サーバに接続する
Net_NNTP_Client::connectAuthenticated() -- NNTP サーバに接続し、認証を行う
Net_NNTP_Client::count() -- ニュースグループに投稿されている記事の総数を取得する
Net_NNTP_Client::getDescriptions() --
Net_NNTP_Client::first() -- ニュースグループの最初の記事の番号を取得する
Net_NNTP_Client::getArticle() -- NNTP サーバから記事を取得する
Net_NNTP_Client::getArticleRaw() -- NNTP サーバから記事を取得する
Net_NNTP_Client::getGroupArticles() --
Net_NNTP_Client::getBodyRaw() -- NNTP サーバから記事の本文を取得する
Net_NNTP_Client::getDate() -- NNTP サーバから日付を取得する
Net_NNTP_Client::getGroups() -- ニュースグループの一覧を取得する
Net_NNTP_Client::getHeader() -- NNTP サーバから記事のヘッダを取得する
Net_NNTP_Client::getHeaderRaw() -- 記事のヘッダを取得する
Net_NNTP_Client::getNewGroups() --
Net_NNTP_Client::getNewNews() --
Net_NNTP_Client::getOverview() -- ニュースグループの概要を取得する
Net_NNTP_Client::getReferencesOverview() --
Net_NNTP_Client::group() --
Net_NNTP_Client::isConnected() -- 接続中?
Net_NNTP_Client::last() -- 現在のニュースグループの最新の記事番号を取得する
Net_NNTP_Client::post() --
Net_NNTP_Client::quit() -- NNTP サーバとの接続を切断する
Net_NNTP_Client::selectGroup() -- ニュースグループを選択する

NNTP クライアントの実装

Net_NNTP

目次
定数 -- 定義済の定数
Net_NNTP::command() -- ニュースサーバにコマンドを送信する
Net_NNTP::connect() -- ニュースサーバに接続する
Net_NNTP::connectAuthenticated() -- ニュースサーバに接続し、認証を行う
Net_NNTP::date() -- ニュースサーバから日付を取得する
Net_NNTP::first() -- メッセージ番号の最小値を取得する
Net_NNTP::getArticle() -- サーバから記事を取得する
Net_NNTP::getArticleRaw() -- ニュースサーバから記事を取得する
Net_NNTP::getBody() -- 記事の本文を取得する
Net_NNTP::getBodyRaw() -- 記事の本文を取得する
Net_NNTP::getDate() -- ニュースサーバから日付を取得する
Net_NNTP::getGroups() -- ニュースグループの一覧を取得する
Net_NNTP::getHeaderRaw() -- 記事のヘッダを取得する
Net_NNTP::getHeaders() -- 記事のヘッダを取得する
Net_NNTP::getOverview() -- 記事のヘッダの数を取得する
Net_NNTP::getOverviewFmt() -- 記事のヘッダの名前を取得する
Net_NNTP::getOverviewFormat() -- 記事のヘッダの名前を取得する
Net_NNTP::isConnected() -- 接続の状態を確認する
Net_NNTP::last() -- 記事番号の最大値を取得する
Net_NNTP::max() -- 記事番号の最大値を取得する
Net_NNTP::min() -- 記事番号の最小値を取得する
Net_NNTP::post() -- 記事を投稿する
Net_NNTP::prepareConnection() -- ニュースサーバ上のニュースグループに接続する
Net_NNTP::quit() -- ニュースサーバとの接続を切断する
Net_NNTP::selectGroup() -- ニュースグループを選択する
Net_NNTP::setDebug() -- デバッグモードを設定する
Net_NNTP::splitHeaders() -- 記事のヘッダを配列形式で取得する

警告

この関数は 非推奨の関数です。 今後、このパッケージの将来のバージョンでは、 サポートされないかもしれません。

大昔に使われていた Net_NNTP クラス

Net_NNTP_Header

警告

このモジュールは、 実験的 なものです。 これらの関数の動作・関数名を含めここに書かれていることすべてが このパッケージの将来のリリースで予告なく変更される可能性があります。 注意を喚起するとともに、使用者のリスクでこのモジュールを使用してください。

このパッケージに関する文書は、未作成です。

Net_NNTP_Message

警告

このモジュールは、 実験的 なものです。 これらの関数の動作・関数名を含めここに書かれていることすべてが このパッケージの将来のリリースで予告なく変更される可能性があります。 注意を喚起するとともに、使用者のリスクでこのモジュールを使用してください。

このパッケージに関する文書は、未作成です。

Net_NNTP_Protocol_Client

目次
定数 -- 定義済の定数

低レベルの NNTP クライアント実装

このパッケージに関する文書は、未作成です。

前のページ | ホーム | 次のページ
Net_IPv6::splitV64() | 上に戻る | Net_Ping

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


定数

定数 -- 定義済の定数

NET_NNTP_PROTOCOL_CLIENT_DEFAULT_HOST

デフォルトの NNTP ホスト名：localhost

NET_NNTP_PROTOCOL_CLIENT_DEFAULT_PORT

デフォルトの NNTP ポート番号：119

前のページ | ホーム | 次のページ
Net_NNTP | 上に戻る | Net_Ping

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP::command()

Net_NNTP::command() -- ニュースサーバにコマンドを送信する

概要

require_once 'Net/NNTP.php';

string Net_NNTP::command (string $cmd, boolean $auth)

説明

Command() は、ニュースサーバにコマンド文字列を 送信します。送信するコマンドをカスタマイズすることができます。

パラメータ

  • string $cmd - 送信するコマンド。

  • boolean $auth - TRUE の場合、 コマンドを送信する前に認証処理が実行されます。

返り値

string - サーバからの応答。

注意

この関数は、スタティックにコールする ことはできません。

警告

Command() は送信するコマンドについて事前に何も チェックしません。また、サーバからの応答についても何も処理せず そのままの形式で返します。したがって、自分がこれから行おうとしている 処理については事前にしっかり理解しておくべきです。

例

例 48-1command() の使用

...
$response = $nntp->command("ARTICLE 1004853");
前のページ | ホーム | 次のページ
定数 | 上に戻る | Net_NNTP::connect()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP::connect()

Net_NNTP::connect() -- ニュースサーバに接続する

概要

require_once 'Net/NNTP.php';

boolean Net_NNTP::connect (string $host = NET_NNTP_PROTOCOL_DEFAULT_HOST [, integer $port = NET_NNTP_PROTOCOL_DEFAULT_PORT])

説明

指定したニュースサーバに接続します。

パラメータ

  • $host - ニュースサーバのホスト名。

  • $port - ニュースサーバのポート番号。

返り値

boolean - 成功時には TRUE、 失敗時には PEAR_Error を返します。

例外・エラー

表 48-1PEAR_Error の値

エラー番号 エラーメッセージ 原因 対応方法
NULL "Could not connect to NNTP-server $host" または "Not connected" 接続が確立できませんでした。原因は

  • サーバ名あるいはアドレスが間違っている

  • ホストがネットワークに接続されていない

  • ファイアウォールによってアクセスが制限されている

 サーバ名やネットワーク接続の状況を調べます。また、可能なら ファイアウォールの設定も確かめます。

注意

この関数は、スタティックにコールする ことはできません。

参照

Net_NNTP::quit(), Net_NNTP::pepareConnection()

例

例 48-1connect() の使用

require_once "Net/NNTP.php";

$nntp = new Net_NNTP;
$ret = $nntp->connect("news.php.net");
if( PEAR::isError($ret)) {
 // エラー処理
} else {
 // 成功
}
前のページ | ホーム | 次のページ
Net_NNTP::command() | 上に戻る | Net_NNTP::connectAuthenticated()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP::connectAuthenticated()

Net_NNTP::connectAuthenticated() -- ニュースサーバに接続し、認証を行う

概要

require_once 'Net/NNTP.php';

boolean Net_NNTP::connectAuthenticated ([integer $user = NULL [, integer $pass = NULL, string $host = NET_NNTP_PROTOCOL_DEFAULT_HOST [, integer $port = NET_NNTP_PROTOCOL_DEFAULT_PORT, integer [$authmode = NET_NNTP_AUTHORIGINAL]]]])

説明

指定したニュースサーバに接続し、認証を行います。

パラメータ

  • $user - 認証のためのユーザ名。

  • $pass - 認証のためのパスワード。

  • $host - NNTP サーバのホスト名。

  • $port - NNTP サーバのポート番号。

  • $authmode - 認証の種類。 現在は NET_NNTP_AUTHORIGINAL のみに対応。

返り値

boolean - 成功時には TRUE、 失敗時には PEAR_Error を返します。

例外・エラー

表 48-1PEAR_Error の値

エラー番号 エラーメッセージ 原因 対応方法
NULL "Could not connect to NNTP-server $nntpserver" または "Not connected" 接続が確立できませんでした。原因は

  • サーバ名あるいは IP アドレスやポート番号が間違っている

  • ホストがネットワークに接続されていない

  • ファイアウォールによってアクセスが制限されている

 サーバ名やネットワーク接続の状況を調べます。また、可能なら ファイアウォールの設定も確かめます。

注意

0.3 以降

この関数は、スタティックにコールする ことはできません。

参照

Net_NNTP::connect() Net_NNTP::quit(),

例

例 48-1connectauthenticated() の使用

require_once "Net/NNTP.php";

$nntp = new Net_NNTP;
$ret = $nntp->connectAuthenticated("news.php.net");
if( PEAR::isError($ret)) {
 // エラー処理
} else {
 // 成功
}
前のページ | ホーム | 次のページ
Net_NNTP::connect() | 上に戻る | Net_NNTP::date()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


定数

定数 -- 定義済の定数

NET_NNTP_PROTOCOL_DEFAULT_HOST

デフォルトの NNTP ホスト名：localhost

NET_NNTP_PROTOCOL_DEFAULT_PORT

デフォルトの NNTP ポート番号：119

NET_NNTP_AUTHORIGINAL

NNTP サーバが提供する認証方法

NET_NNTP_AUTHSIMPLE

NNTP サーバが提供する認証方法

NET_NNTP_AUTHGENERIC

NNTP サーバが提供する認証方法

PEAR_NNTP_ALL

非推奨（使わないでください）

PEAR_NNTP_LIST

非推奨（使わないでください）

PEAR_NNTP_NAMES

非推奨（使わないでください）

PEAR_NNTP_AUTHORIGINAL

非推奨（NET_NNTP_AUTHORIGINAL を使用してください）

PEAR_NNTP_AUTHSIMPLE

非推奨（NET_NNTP_AUTHSIMPLE を使用してください）

PEAR_NNTP_AUTHGENERIC

非推奨（NET_NNTP_AUTHGENERIC を使用してください）

前のページ | ホーム | 次のページ
Net_NNTP | 上に戻る | Net_NNTP::command()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP::date()

Net_NNTP::date() -- ニュースサーバから日付を取得する

概要

require_once 'Net/NNTP.php';

array Net_NNTP::date ()

説明

警告

この関数は 非推奨の関数です。 今後、このパッケージの将来のバージョンでは、 サポートされないかもしれません。

ニュースサーバから日付を取得します。

返り値

array - 日付を格納した連想配列。

  • $date['y'] 年

  • $date['m'] 月

  • $date['d'] 日

注意

この関数は、スタティックにコールする ことはできません。

例

例 48-1date() の使用

...
$date = $nntp->date();
echo "Date: ".$date['m']."-".$date['d']."-".$date['y'];
前のページ | ホーム | 次のページ
Net_NNTP::connectAuthenticated() | 上に戻る | Net_NNTP::first()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP::first()

Net_NNTP::first() -- メッセージ番号の最小値を取得する

概要

require_once 'Net/NNTP.php';

integer Net_NNTP::first ()

説明

選択されているニュースグループのメッセージ番号の最小値を取得します。

返り値

integer - メッセージ番号の最小値。

注意

0.3 以降

この関数は、スタティックにコールする ことはできません。

例

例 48-1first() の使用

...
$nntp->selectGroup("php.pear.dev");
echo "メッセージ番号の最小値: ".$nntp->first();
前のページ | ホーム | 次のページ
Net_NNTP::date() | 上に戻る | Net_NNTP::getArticle()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP::getArticle()

Net_NNTP::getArticle() -- サーバから記事を取得する

概要

require_once 'Net/NNTP.php';

mixed Net_NNTP::getArticle (string $articleId)

説明

現在選択されているニュースグループの記事全体を返します。

警告

この関数は 非推奨の関数です。 今後、このパッケージの将来のバージョンでは、 サポートされないかもしれません。

この関数は廃止予定であることに気をつけてください。 代わりに Net_NNTP::getArticleRaw() を利用してください。

パラメータ

  • string $articleID - 取得したい記事番号の Message-ID 。

返り値

string - 記事が存在した場合、その内容を文字列で 返します。もし失敗した場合は PEAR_Error を返します。

例外・エラー

表 48-1PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
NULL | いろいろなエラーメッセージ | ニュースサーバから返される文字列をそのままの形式で返します。 たいがいの場合、存在しない記事を取得しようとしたことが原因です。 | 記事番号を確認してください。あるいは、サーバと正しく 接続できているかどうかを確認します （ Net_NNTP::isConnected()）。

注意

この関数は、スタティックにコールする ことはできません。

参照

Net_NNTP::getHeaders() , Net_NNTP::getBody() , Net_NNTP::getOverview()

例

例 48-1getArticle() の使用

...
$article = $nntp->getArticle($msg_id);
if( PEAR::isError($article)) {
 // エラー処理
} else {
 // 成功
}
前のページ | ホーム | 次のページ
Net_NNTP::first() | 上に戻る | Net_NNTP::getArticleRaw()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP::getArticleRaw()

Net_NNTP::getArticleRaw() -- ニュースサーバから記事を取得する

概要

require_once 'Net/NNTP.php';

mixed Net_NNTP::getArticleRaw (string $articleId)

説明

現在選択されているニュースグループの記事全体を返します。

パラメータ

  • string $articleID - 取得したい記事番号の Message-ID 。

返り値

string - 記事が存在した場合、その内容を文字列で 返します。もし失敗した場合は PEAR_Error を返します。

例外・エラー

表 48-1PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
NULL | いろいろなエラーメッセージ | ニュースサーバから返される文字列をそのままの形式で返します。 たいがいの場合、存在しない記事を取得しようとしたことが原因です。 | 記事 ID を確認してください。あるいは、サーバと正しく 接続できているかどうかを確認します （ Net_NNTP::isConnected()）。

注意

0.3 以降

この関数は、スタティックにコールする ことはできません。

参照

Net_NNTP::getHeadersRaw() , Net_NNTP::getBodyRaw() , Net_NNTP::getOverview()

例

例 48-1getArticleRaw() の使用

...
$article = $nntp->getArticleRaw($msg_id);
if( PEAR::isError($article)) {
 // エラー処理
} else {
 // 成功
}
前のページ | ホーム | 次のページ
Net_NNTP::getArticle() | 上に戻る | Net_NNTP::getBody()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP::getBody()

Net_NNTP::getBody() -- 記事の本文を取得する

概要

require_once 'Net/NNTP.php';

string Net_NNTP::getBody (string $articleId)

説明

サーバから、現在選択されているニュースグループの記事本文を返します。

警告

この関数は 非推奨の関数です。 今後、このパッケージの将来のバージョンでは、 サポートされないかもしれません。

この関数は廃止予定であることに気をつけてください。 代わりに Net_NNTP::getBodyRaw() を利用してください。

パラメータ

  • string $articleId - Message-ID あるいは記事番号

返り値

string/array - 記事が存在した場合、 その本文を文字列で返します。もし失敗した場合は PEAR_Error を返します。

例外・エラー

表 48-1PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
NULL | いろいろなエラーメッセージ | ニュースサーバから返される文字列をそのままの形式で返します。 たいがいの場合、存在しない記事を取得しようとしたことが原因です。 | 記事 ID を確認します。あるいは、現在サーバと接続中かどうかを確認します （ Net_NNTP::isConnected()）。

注意

この関数は、スタティックにコールする ことはできません。

注意 getBody() が、本文の文字コードを変換することは ありません。本文の内容が「あるがままの形式で」返されます。

参照

Net_NNTP::getHeaders() , Net_NNTP::splitHeaders() , Net_NNTP::getArticle() , Net_NNTP::getOverview()

例

例 48-1getBody() の使用

...

$body = $nntp->getBody($msgId);
if( PEAR::isError($body)) {
 // エラー処理
} else {
 // 成功 - 本文の表示
 echo $body;
}
前のページ | ホーム | 次のページ
Net_NNTP::getArticleRaw() | 上に戻る | Net_NNTP::getBodyRaw()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP::getBodyRaw()

Net_NNTP::getBodyRaw() -- 記事の本文を取得する

概要

require_once 'Net/NNTP.php';

string Net_NNTP::getBodyRaw (string $articleId)

説明

サーバから、現在選択されているニュースグループの記事本文を返します。

パラメータ

  • string $articleId - Message-ID あるいは記事番号

返り値

string/array - 記事が存在した場合、 その本文を文字列で返します。もし失敗した場合は PEAR_Error を返します。

例外・エラー

表 48-1PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
NULL | いろいろなエラーメッセージ | ニュースサーバから返される文字列をそのままの形式で返します。 たいがいの場合、存在しない記事を取得しようとしたことが原因です。 | 記事 ID を確認します。あるいは、現在サーバと接続中かどうかを確認します （ Net_NNTP::isConnected()）。

注意

0.3 以降

この関数は、スタティックにコールする ことはできません。

注意 getBody() が、本文の文字コードを変換することは ありません。本文の内容が「あるがままの形式で」返されます。

参照

Net_NNTP::getHeaderRaw() , Net_NNTP::splitHeaders() , Net_NNTP::getArticleRaw() , Net_NNTP::getOverview()

例

例 48-1Using getBodyRaw()

...

$body = $nntp->getBodyRaw($msgId);
if( PEAR::isError($body)) {
 // エラー処理
} else {
 // 成功 - 本文の表示
 echo $body;
}
前のページ | ホーム | 次のページ
Net_NNTP::getBody() | 上に戻る | Net_NNTP::getDate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP::getDate()

Net_NNTP::getDate() -- ニュースサーバから日付を取得する

概要

require_once 'Net/NNTP.php';

array Net_NNTP::getDate ()

説明

ニュースサーバから日付を取得します。

返り値

array - 日付を格納した連想配列。

  • $date['y'] 年

  • $date['m'] 月

  • $date['d'] 日

注意

0.3 以降

この関数は、スタティックにコールする ことはできません。

例

例 48-1getDate() の使用

...
$date = $nntp->getDate();
echo "Date: ".$date['m']."-".$date['d']."-".$date['y'];
前のページ | ホーム | 次のページ
Net_NNTP::getBodyRaw() | 上に戻る | Net_NNTP::getGroups()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP::getGroups()

Net_NNTP::getGroups() -- ニュースグループの一覧を取得する

概要

require_once 'Net/NNTP.php';

array Net_NNTP::getGroups ([string $fetch = TRUE])

説明

接続されているニュースサーバから、有効なニュースグループの一覧を返します。

パラメータ

  • $fetch - 無視できます。利用されません。

返り値

array - 二次元配列です。最初の要素が ニュースグループ名を表し、それぞれの要素の下にニュースグループの情報が 格納されています。

  • $groups[newsgroup_name]['group'] ニュースグループの名前

  • $groups[newsgroup_name]['last'] 最新の記事の記事番号

  • $groups[newsgroup_name]['first'] 最初の記事の記事番号

  • $groups[newsgroup_name]['posting_allowed'] とりうる値：y - はい、 n - いいえ、 m - モデレートされています

  • $groups[newsgroup_name]['desc'] ニュースグループの概要

注意

この関数は、スタティックにコールする ことはできません。

警告

一般向けに公開されているニュースサーバの場合、30,000 以上のニュースグループが含まれていることもあります。そのような場合、 この関数の実行時間が php.ini で設定されている maximum execution time を超えてしまうかもしれません。

参照

Net_NNTP::selectGroup()

例

例 48-1getGroups() の使用

...
$ret = $nntp->connect("news.php.net");
if( PEAR::isError($ret)) {
 // エラー処理
} else {
 // 成功
 $groups = $nntp->getGroups();
 // 有効なニュースグループ一覧の表示
 foreach($groups as $group) {
    echo $group['group'].': '.$group['desc'].'<br>';
 }
}
前のページ | ホーム | 次のページ
Net_NNTP::getDate() | 上に戻る | Net_NNTP::getHeaderRaw()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP::getHeaderRaw()

Net_NNTP::getHeaderRaw() -- 記事のヘッダを取得する

概要

require_once 'Net/NNTP.php';

string Net_NNTP::getHeaderRaw (string $articleId)

説明

現在選択されているニュースグループの指定した記事について、 そのヘッダ行の内容を返します。

パラメータ

  • string $articleId - Message-ID あるいは記事番号

返り値

string - 記事が存在した場合、 そのヘッダを文字列形式で返します。もし失敗した場合は PEAR_Error を返します。

例外・エラー

表 48-1PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
NULL | いろいろなエラーメッセージ | ニュースサーバから返される文字列をそのままの形式で返します。 たいがいの場合、存在しない記事を取得しようとしたことが原因です。 | 記事 ID を確認してください。あるいは、サーバと正しく 接続できているかどうかを確認します （ Net_NNTP::isConnected()）。

注意

0.3 以降

この関数は、スタティックにコールする ことはできません。

参照

Net_NNTP::splitHeaders() , Net_NNTP::getBodyRaw() , Net_NNTP::getOverview()

例

例 48-1getHeaderRaw() の使用

...

$headers = $nntp->getHeaderRaw($msgId);
if( PEAR::isError($headers)) {
 // エラー処理
} else {
 // 成功 - 文字列を配列に分解する
 $headersArray = explode( "\n", $headers);
}
前のページ | ホーム | 次のページ
Net_NNTP::getGroups() | 上に戻る | Net_NNTP::getHeaders()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP::getHeaders()

Net_NNTP::getHeaders() -- 記事のヘッダを取得する

概要

require_once 'Net/NNTP.php';

string Net_NNTP::getHeaders (string $articleId)

説明

現在選択されているニュースグループの指定した記事について、 そのヘッダ行の内容を返します。

警告

この関数は 非推奨の関数です。 今後、このパッケージの将来のバージョンでは、 サポートされないかもしれません。

この関数は廃止予定であることに気をつけてください。 代わりに Net_NNTP::getHeaderRaw() を利用してください。

パラメータ

  • string $articleId - Message-ID あるいは記事番号

返り値

string - 記事が存在した場合、 そのヘッダを文字列形式で返します。もし失敗した場合は PEAR_Error を返します。

例外・エラー

表 48-1PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
NULL | いろいろなエラーメッセージ | ニュースサーバから返される文字列をそのままの形式で返します。 たいがいの場合、存在しない記事を取得しようとしたことが原因です。 | 記事 ID を確認してください。あるいは、サーバと正しく 接続できているかどうかを確認します （ Net_NNTP::isConnected()）。

注意

この関数は、スタティックにコールする ことはできません。

参照

Net_NNTP::splitHeaders() , Net_NNTP::getBody() , Net_NNTP::getOverview()

例

例 48-1getHeaders() の使用

...

$headers = $nntp->getHeaders($msgId);
if( PEAR::isError($headers)) {
 // エラー処理
} else {
 // 成功 - 文字列を配列に分解する
 $headersArray = explode( "\n", $headers);
}
前のページ | ホーム | 次のページ
Net_NNTP::getHeaderRaw() | 上に戻る | Net_NNTP::getOverview()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP::getOverview()

Net_NNTP::getOverview() -- 記事のヘッダの数を取得する

概要

require_once 'Net/NNTP.php';

array Net_NNTP::getOverview (string $first, string $last)

説明

現在選択されているニュースグループの、指定した範囲の記事のヘッダを返します。

パラメータ

  • $first - 指定する範囲の最初の記事の ID 。

  • $last - 指定する範囲の最後の記事の ID 。

返り値

array - 記事の Message-Id をキーとする配列。 個々のエントリには、ヘッダの内容が配列形式で格納されている。
$msgs[message_id][headername] = headercontent

注意

この関数は、スタティックにコールする ことはできません。

警告

範囲を指定する際には十分注意してください。多くのメッセージの ヘッダを取得しようとすると、かなり時間がかかることがあります。

参照

Net_NNTP::getOverviewFmt()

例

例 48-1getOverview() の使用

...
$ret = $nntp->connect("news.php.net");
if( PEAR::isError($ret)) {
 // エラー処理
} else {
 // 最近の 10 件の記事を表示する
 $data = $nntp->selectGroup("php.pear.dev");
 $msgs = $nntp->getOverview( $data['last'] - 10, $data[last]);

 foreach($msgs as $msg) {
    // Subject を表示する
    echo $msg['Subject'].'<br>';
 }
}
前のページ | ホーム | 次のページ
Net_NNTP::getHeaders() | 上に戻る | Net_NNTP::getOverviewFmt()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP::getOverviewFmt()

Net_NNTP::getOverviewFmt() -- 記事のヘッダの名前を取得する

概要

require_once 'Net/NNTP.php';

array Net_NNTP::getOverviewFmt ()

説明

記事のヘッダの名前を返します。これは、すべての記事に含まれるものです。

返り値

array - ヘッダ名の配列。

注意

この関数は、スタティックにコールする ことはできません。

参照

Net_NNTP::getOverview()

例

例 48-1getOverviewFmt() の使用

...
$tblheaders = $nntp->getOverviewFmt();
// テーブルのヘッダ行を作成する
echo '<table>';
echo '<tr>';
foreach($tblheaders as $th) {
   // ヘッダ名を表示する
   echo '<th>'.$th.'</th>';
}
echo '</tr>';
... // ヘッダの内容を表示する
echo '</table>';
前のページ | ホーム | 次のページ
Net_NNTP::getOverview() | 上に戻る | Net_NNTP::getOverviewFormat()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP::getOverviewFormat()

Net_NNTP::getOverviewFormat() -- 記事のヘッダの名前を取得する

概要

require_once 'Net/NNTP.php';

array Net_NNTP::getOverviewFormat ()

説明

記事のヘッダの名前を返します。これは、すべての記事に含まれるものです。

返り値

array - ヘッダ名の配列。

注意

この関数は、スタティックにコールする ことはできません。

参照

Net_NNTP::getOverview()

例

例 48-1getOverviewFmt() の使用

...
$tblheaders = $nntp->getOverviewFormat();
// テーブルのヘッダ行を作成する
echo '<table>';
echo '<tr>';
foreach($tblheaders as $th) {
   // ヘッダ名を表示する
   echo '<th>'.$th.'</th>';
}
echo '</tr>';
... // ヘッダの内容を表示する
echo '</table>';
前のページ | ホーム | 次のページ
Net_NNTP::getOverviewFmt() | 上に戻る | Net_NNTP::isConnected()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP::isConnected()

Net_NNTP::isConnected() -- 接続の状態を確認する

概要

require_once 'Net/NNTP.php';

boolean Net_NNTP::isConnected ()

説明

接続の状態を返します。

返り値

boolean - 接続されている場合は TRUE

注意

この関数は、スタティックにコールする ことはできません。

例

例 48-1isConnected() の使用

...
if(PEAR::isError($response)) {
    // 何かがおかしいので、接続の状態を確認する
    if($nntp->isConnected()) {
        echo "disconnected from newsserver!"
        ...
    }
}
前のページ | ホーム | 次のページ
Net_NNTP::getOverviewFormat() | 上に戻る | Net_NNTP::last()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP::last()

Net_NNTP::last() -- 記事番号の最大値を取得する

概要

require_once 'Net/NNTP.php';

integer Net_NNTP::last ()

説明

現在選択されているニュースグループの最大の記事番号を取得します。

返り値

integer - 記事番号の最大値。

注意

0.3 以降

この関数は、スタティックにコールする ことはできません。

例

例 48-1last() の使用

...
$nntp->selectGroup("php.pear.dev");
echo "記事番号の最大値: ".$nntp->last();
前のページ | ホーム | 次のページ
Net_NNTP::isConnected() | 上に戻る | Net_NNTP::max()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP::max()

Net_NNTP::max() -- 記事番号の最大値を取得する

概要

require_once 'Net/NNTP.php';

integer Net_NNTP::max ()

説明

警告

この関数は 非推奨の関数です。 今後、このパッケージの将来のバージョンでは、 サポートされないかもしれません。

現在選択されているニュースグループの最大の記事番号を取得します。

返り値

integer - 記事番号の最大値。

注意

この関数は、スタティックにコールする ことはできません。

例

例 48-1max() の使用

...
$nntp->selectGroup("php.pear.dev");
echo "記事番号の最大値: ".$nntp->max();
前のページ | ホーム | 次のページ
Net_NNTP::last() | 上に戻る | Net_NNTP::min()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP::min()

Net_NNTP::min() -- 記事番号の最小値を取得する

概要

require_once 'Net/NNTP.php';

integer Net_NNTP::min ()

説明

警告

この関数は 非推奨の関数です。 今後、このパッケージの将来のバージョンでは、 サポートされないかもしれません。

現在選択されているニュースグループの最小の記事番号を取得します。

返り値

integer - 記事番号の最小値。

注意

この関数は、スタティックにコールする ことはできません。

例

例 48-1min() の使用

...
$nntp->selectGroup("php.pear.dev");
echo "記事番号の最小値: ".$nntp->min();
前のページ | ホーム | 次のページ
Net_NNTP::max() | 上に戻る | Net_NNTP::post()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP::post()

Net_NNTP::post() -- 記事を投稿する

概要

require_once 'Net/NNTP.php';

string Net_NNTP::post (string $subject, string $newsgroup, string $from, string $body [, string $additional])

説明

ニュースサーバに記事を投稿します。

パラメータ

  • $subject - 記事の Subject 。

  • $newsgroup - 投稿先のニュースグループ。

  • $from - 投稿者のメールアドレス。

  • $body - 記事の本文。

  • $additional - 追加するヘッダ。

返り値

string - サーバからの応答。

例外・エラー

表 48-1PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
NULL | "Not connected" | ニュースサーバに接続するのを忘れてしまったか、あるいは 接続が閉じられてしまっています。 | post() を使う前に、まず接続を 開いて ください。 post() を使う前に、まず接続の状態を 調べて ください。

注意

この関数は、スタティックにコールする ことはできません。

警告

post() は、Subject や本文の文字コードを感知しません。 もし ASCII-127 以外の文字を使っている場合、正しいヘッダを設定することに 気をつけてください。

例

例 48-1post() の使用

...

$subject   = "Testpost";
$newsgroup = "php.test";
$body      = "Le Mardi 12 f=E9vrier 2002, this is a test message using special french chars";
$from      = "test@example.com";
$addheader = "Content-Transfer-Encoding: quoted-printable\n".
             "Content-Type: text/plain; charset=ISO-8859-1;";

$response = $nntp->post($subject, $newsgroup, $from, $body, $addheader);
...
前のページ | ホーム | 次のページ
Net_NNTP::min() | 上に戻る | Net_NNTP::prepareConnection()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP::prepareConnection()

Net_NNTP::prepareConnection() -- ニュースサーバ上のニュースグループに接続する

概要

require_once 'Net/NNTP.php';

boolean Net_NNTP::prepareConnection (string $nntpserver [, integer $port = 119, integer $newsgroup [, integer $user = NULL [, integer $pass = NULL, integer [$authmode = PEAR_NNTP_ORIGINAL]]]])

説明

指定したニュースサーバに接続し、ニュースグループにアクセスします。

警告

この関数は 非推奨の関数です。 今後、このパッケージの将来のバージョンでは、 サポートされないかもしれません。

この関数は廃止予定であることに気をつけてください。 代わりに Net_NNTP::connectAuthenticated() を利用してください。

パラメータ

  • $nntpserver - 接続するニュースサーバ名。

  • $port - ニュースサーバのポート番号。

  • $newsgroup - アクセスしたいニュースグループ。

  • $user - 認証のためのユーザ名。

  • $pass - 認証のためのパスワード。

  • $authmode - 認証の種類。 現在は NET_NNTP_AUTHORIGINAL のみに対応。

返り値

boolean - 成功した場合は TRUE を返します。

例外・エラー

表 48-1PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
NULL "Could not connect to NNTP-server $nntpserver" または "Not connected" 接続が確立できませんでした。原因は

  • サーバ名あるいは IP アドレスが間違っている

  • ホストがネットワークに接続されていない

  • ファイアウォールによってアクセスが制限されている

 サーバ名やネットワーク接続の状況を調べます。また、可能なら ファイアウォールの設定も確かめます。
NULL | それ以外のすべてのメッセージ | ニュースサーバから返される文字列をそのままの形式で返します。 たいがいの場合、存在しないニュースグループを指定したことが原因です。 | ニュースグループの名前を確認します。

注意

この関数は、スタティックにコールする ことはできません。

警告

この関数は 非推奨の関数です。 今後、このパッケージの将来のバージョンでは、 サポートされないかもしれません。

データの取得速度は、 prepareConnection() による接続のほうが connect() で接続した場合より早くなります。

参照

Net_NNTP::quit(), Net_NNTP::connect()

例

例 48-1prepareConnection() の使用

require_once "Net/NNTP.php";

$nntp = new Net_NNTP;
$ret = $nntp->connect("news.php.net", 119, "php.pear.dev");
if( PEAR::isError($ret)) {
 // エラー処理
} else {
 // 成功
}
前のページ | ホーム | 次のページ
Net_NNTP::post() | 上に戻る | Net_NNTP::quit()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP::quit()

Net_NNTP::quit() -- ニュースサーバとの接続を切断する

概要

require_once 'Net/NNTP.php';

void Net_NNTP::quit ()

説明

ニュースサーバとの接続を切断します。

注意

この関数は、スタティックにコールする ことはできません。

参照

Net_NNTP::connect(), Net_NNTP::prepareConnection()

前のページ | ホーム | 次のページ
Net_NNTP::prepareConnection() | 上に戻る | Net_NNTP::selectGroup()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP::selectGroup()

Net_NNTP::selectGroup() -- ニュースグループを選択する

概要

require_once 'Net/NNTP.php';

array Net_NNTP::selectGroup (string $newsgroup)

説明

ニュースサーバ上の指定したニュースグループを選択します。

パラメータ

  • string $newsgroup - アクセスしたいニュースグループ名。

返り値

array - ニュースグループが存在した場合、 配列が返されます。その中身は、最初の記事の記事番号 （キー: ['first']）と最後の記事の記事番号 （キー: ['last']）です。 もし失敗した場合は PEAR_Error が返されます。

例外・エラー

表 48-1PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
NULL | いろいろなエラーメッセージ | ニュースサーバから返される文字列をそのままの形式で返します。 たいがいの場合、存在しない記事を取得しようとしたことが原因です。 | 記事番号を確認してください。あるいは、サーバと正しく 接続できているかどうかを確認します （ Net_NNTP::isConnected()）。

注意

この関数は、スタティックにコールする ことはできません。

参照

Net_NNTP::connect() , Net_NNTP::getGroups()

例

例 48-1selectGroup() の使用

...
$ret = $nntp->connect("news.php.net");
if( PEAR::isError($ret)) {
 // エラー処理
} else {
 // 成功
 $data = $nntp->selectGroup("php.pear.dev");
 // 記事の総数を表示
 echo "Count: ", $data['last'] - $data['first'];
}
前のページ | ホーム | 次のページ
Net_NNTP::quit() | 上に戻る | Net_NNTP::setDebug()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP::setDebug()

Net_NNTP::setDebug() -- デバッグモードを設定する

概要

require_once 'Net/NNTP.php';

void Net_NNTP::setDebug (boolean $on = TRUE)

説明

Net_NNTP のデバッグモードを有効または無効にします。

パラメータ

  • boolean $on - TRUE = デバッグ有効、 FALSE = デバッグ無効。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_NNTP::selectGroup() | 上に戻る | Net_NNTP::splitHeaders()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP::splitHeaders()

Net_NNTP::splitHeaders() -- 記事のヘッダを配列形式で取得する

概要

require_once 'Net/NNTP.php';

array Net_NNTP::splitHeaders (string $articleId)

説明

現在選択されているニュースグループの指定した記事について、 ヘッダ行の内容を配列形式で返します。

パラメータ

  • string $articleId - Message-Id あるいは記事番号。

返り値

array - 記事が存在した場合にはヘッダの内容を 配列で、存在しない場合には PEAR_Error を返します。 配列は、ヘッダ名をキーとする連想配列となります。

例外・エラー

表 48-1PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
NULL | いろいろなエラーメッセージ | ニュースサーバから返される文字列をそのままの形式で返します。 たいがいの場合、存在しない記事を取得しようとしたことが原因です。 | 記事番号を確認してください。あるいは、サーバと正しく 接続できているかどうかを確認します （ Net_NNTP::isConnected()）。

注意

この関数は、スタティックにコールする ことはできません。

参照

Net_NNTP::getHeaders() , Net_NNTP::getBody() , Net_NNTP::getOverview()

例

例 48-1splitHeaders() の使用

...

$headers = $nntp->splitHeaders($msg_id);
if( PEAR::isError($headers)) {
 // エラー処理
} else {
 // 成功 - ヘッダ行の内容を表示
 foreach($headers as $headerName => $headerValue) {
 echo $headerName.': '.$headerValue.'<br>';
 }
}
前のページ | ホーム | 次のページ
Net_NNTP::setDebug() | 上に戻る | Net_Ping

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP_Client::authenticate()

Net_NNTP_Client::authenticate() -- 認証を行う

概要

require_once 'Net/NNTP/Client.php';

public boolean Net_NNTP_Client::authenticate(string $user, string $pass, integer $authmode = NET_NNTP_AUTHORIGINAL);

説明

すでに接続が確立されている状況で、認証を行います。

パラメータ

  • $user - 認証のためのユーザ名。

  • $pass - 認証のためのパスワード。

  • $authmode - 認証方法。デフォルトは NET_NNTP_AUTHORIGINAL

返り値

boolean - 成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

参照

Net_NNTP_Client::connectAuthenticated()

前のページ | ホーム | 次のページ
定数 | 上に戻る | Net_NNTP_Client::connect()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP_Client::connect()

Net_NNTP_Client::connect() -- NNTP サーバに接続する

概要

require_once 'Net/NNTP/Client.php';

boolean Net_NNTP_Client::connect ([string $host = NET_NNTP_PROTOCOL_DEFAULT_HOST [, integer $port = NET_NNTP_PROTOCOL_DEFAULT_PORT]])

説明

指定した NNTP サーバに接続します。

パラメータ

  • $host - NNTP サーバのホスト名。デフォルトは NET_NNTP_PROTOCOL_DEFAULT_HOST

  • $port - NNTP サーバのポート番号。デフォルトは NET_NNTP_PROTOCOL_DEFAULT_PORT

返り値

boolean - 成功時には TRUE、 失敗時には PEAR_Error を返します。

例外・エラー

表 48-1PEAR_Error の値

エラー番号 エラーメッセージ 原因 対応方法
NULL "Could not connect to NNTP-server $host" または "Not connected" 接続が確立できませんでした。原因は

  • サーバ名あるいは IP アドレスやポート番号が間違っている

  • ホストがネットワークに接続されていない

  • ファイアウォールによってアクセスが制限されている

 サーバ名やネットワーク接続の状況を調べます。また、可能なら ファイアウォールの設定も確かめます。

注意

この関数は、スタティックにコールする ことはできません。

参照

Net_NNTP::quit(), Net_NNTP::pepareConnection()

例

例 48-1connect() の使用

require_once 'Net/NNTP/Client.php';

$nntp = new Net_NNTP_Client();
$ret = $nntp->connect('news.php.net');
if( PEAR::isError($ret)) {
    // エラー処理
} else {
    // 成功
}
前のページ | ホーム | 次のページ
Net_NNTP_Client::authenticate() | 上に戻る | Net_NNTP_Client::connectAuthenticated()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP_Client::connectAuthenticated()

Net_NNTP_Client::connectAuthenticated() -- NNTP サーバに接続し、認証を行う

概要

require_once 'Net/NNTP/Client.php';

boolean Net_NNTP_Client::connectAuthenticated ([integer $user = NULL [, integer $pass = NULL [, string $host = NET_NNTP_PROTOCOL_DEFAULT_HOST [, integer $port = NET_NNTP_PROTOCOL_DEFAULT_PORT [, integer $authmode = NET_NNTP_AUTHORIGINAL]]]]])

説明

指定した NNTP サーバに接続し、認証を行います。

警告

この関数は 非推奨の関数です。 今後、このパッケージの将来のバージョンでは、 サポートされないかもしれません。

パラメータ

  • $user - 認証のためのユーザ名。

  • $pass - 認証のためのパスワード。

  • $host - NNTP サーバのホスト名。デフォルトは NET_NNTP_PROTOCOL_DEFAULT_HOST

  • $port - NNTP サーバのポート番号。デフォルトは NET_NNTP_PROTOCOL_DEFAULT_PORT

  • $authmode - 認証方法。デフォルトは NET_NNTP_AUTHORIGINAL

返り値

boolean - 成功時には TRUE、 失敗時には PEAR_Error を返します。

例外・エラー

表 48-1PEAR_Error の値

エラー番号 エラーメッセージ 原因 対応方法
NULL "Could not connect to NNTP-server $host" または "Not connected" 接続が確立できませんでした。原因は

  • サーバ名あるいは IP アドレスやポート番号が間違っている

  • ホストがネットワークに接続されていない

  • ファイアウォールによってアクセスが制限されている

 サーバ名やネットワーク接続の状況を調べます。また、可能なら ファイアウォールの設定も確かめます。

注意

0.3 以降

この関数は、スタティックにコールする ことはできません。

参照

Net_NNTP_Client::connect() Net_NNTP_Client::quit(),

例

例 48-1connectauthenticated() の使用

require_once 'Net/NNTP/Client.php';

$nntp = new Net_NNTP_Client();
$ret = $nntp->connectAuthenticated('news.php.net');
if( PEAR::isError($ret)) {
    // エラー処理
} else {
    // 成功
}
前のページ | ホーム | 次のページ
Net_NNTP_Client::connect() | 上に戻る | Net_NNTP_Client::count()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


定数

定数 -- 定義済の定数

NET_NNTP_PROTOCOL_DEFAULT_HOST

デフォルトの NNTP ホスト名：localhost

NET_NNTP_PROTOCOL_DEFAULT_PORT

デフォルトの NNTP ポート番号：119

NET_NNTP_AUTHORIGINAL

NNTP サーバが提供する認証方法

NET_NNTP_AUTHSIMPLE

NNTP サーバが提供する認証方法

NET_NNTP_AUTHGENERIC

NNTP サーバが提供する認証方法

前のページ | ホーム | 次のページ
Net_NNTP | 上に戻る | Net_NNTP_Client::authenticate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP_Client::count()

Net_NNTP_Client::count() -- ニュースグループに投稿されている記事の総数を取得する

概要

require_once 'Net/NNTP/Client.php';

public integer Net_NNTP_Client::count();

説明

ニュースグループに投稿されている記事の総数を取得します。

返り値

integer - 記事の総数。

注意

0.3 以降

この関数は、スタティックにコールする ことはできません。

例

例 48-1count() の使用

...
$nntp->selectGroup("php.pear.dev");
echo "記事の総数: ".$nntp->count();
前のページ | ホーム | 次のページ
Net_NNTP_Client::connectAuthenticated() | 上に戻る | Net_NNTP_Client::getDescriptions()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP_Client::first()

Net_NNTP_Client::first() -- ニュースグループの最初の記事の番号を取得する

概要

require_once 'Net/NNTP/Client.php';

public integer Net_NNTP_Client::first();

説明

ニュースグループの最初の記事の番号を取得します。

返り値

integer - ニュースグループの記事番号の最小値。

注意

0.3 以降

この関数は、スタティックにコールする ことはできません。

例

例 48-1first() の使用

...
$nntp->selectGroup("php.pear.dev");
echo "記事番号の最小値: ".$nntp->first();
前のページ | ホーム | 次のページ
Net_NNTP_Client::getDescriptions() | 上に戻る | Net_NNTP_Client::getArticle()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP_Client::getArticle()

Net_NNTP_Client::getArticle() -- NNTP サーバから記事を取得する

概要

require_once 'Net/NNTP/Client.php';

mixed Net_NNTP_Client::getArticle (string $article)

説明

警告

この関数については、現在のところ文書化されていません。

参照

Net_NNTP_Client::getArticleRaw()

前のページ | ホーム | 次のページ
Net_NNTP_Client::first() | 上に戻る | Net_NNTP_Client::getArticleRaw()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP_Client::getArticleRaw()

Net_NNTP_Client::getArticleRaw() -- NNTP サーバから記事を取得する

概要

require_once 'Net/NNTP/Client.php';

mixed Net_NNTP_Client::getArticleRaw (string $article, boolean $implode = false)

説明

現在選択されているニュースグループの記事全体を返します。

パラメータ

  • string $article - 取得したい記事の番号 あるいは Message-ID 。

    boolean $implode - 結果の配列を、ひとつの 文字列として連結して返すかどうかを指定します。

返り値

array/string - 記事が存在した場合、 その内容を文字列で返します。もし失敗した場合は PEAR_Error を返します。

例外・エラー

表 48-1PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
NULL | いろいろなエラーメッセージ | ニュースサーバから返される文字列をそのままの形式で返します。 たいがいの場合、存在しない記事を取得しようとしたことが原因です。 |

注意

0.3 以降

この関数は、スタティックにコールする ことはできません。

参照

Net_NNTP_Client::getArticle() , Net_NNTP_Client::getHeaderRaw() , Net_NNTP_Client::getBodyRaw()

例

例 48-1getArticleRaw() の使用

...
$article = $nntp->getArticleRaw($msg_id);
if( PEAR::isError($article)) {
    // エラー処理
} else {
    // 成功
}
前のページ | ホーム | 次のページ
Net_NNTP_Client::getArticle() | 上に戻る | Net_NNTP_Client::getGroupArticles()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP_Client::getBodyRaw()

Net_NNTP_Client::getBodyRaw() -- NNTP サーバから記事の本文を取得する

概要

require_once 'Net/NNTP/Client.php';

mixed Net_NNTP_Client::getBodyRaw (string $article, boolean $implode = false)

説明

現在選択されているニュースグループの記事本文を返します。

パラメータ

  • string $article - 取得したい記事の番号 あるいは Message-ID 。

    boolean $implode - 結果の配列を、ひとつの 文字列として連結して返すかどうかを指定します。

返り値

string/array - 記事が存在した場合、 その本文を文字列で返します。もし失敗した場合は PEAR_Error を返します。

例外・エラー

表 48-1PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
NULL | いろいろなエラーメッセージ | ニュースサーバから返される文字列をそのままの形式で返します。 たいがいの場合、存在しない記事を取得しようとしたことが原因です。 |

注意

0.3 以降

この関数は、スタティックにコールする ことはできません。

注意 getBody() が、本文の文字コードを変換することは ありません。本文の内容が「あるがままの形式で」返されます。

参照

Net_NNTP_Client::getHeaderRaw() , Net_NNTP_Client::getArticleRaw()

例

例 48-1getBodyRaw() の使用

...

$body = $nntp->getBodyRaw($msgId);
if( PEAR::isError($body)) {
    // エラー処理
} else {
    // 成功 - 本文の表示
    echo $body;
}
前のページ | ホーム | 次のページ
Net_NNTP_Client::getGroupArticles() | 上に戻る | Net_NNTP_Client::getDate()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP_Client::getDate()

Net_NNTP_Client::getDate() -- NNTP サーバから日付を取得する

概要

require_once 'Net/NNTP/Client.php';

mixed Net_NNTP_Client::getDate ([integer $format = 1])

説明

NNTP サーバから日付を取得します。

パラメータ

  • $format - 返り値の書式を指定します。

返り値

表 48-1

$format | 返り値
0 | timestamp
1 array - 連想配列形式

  • $date['y'] 年

  • $date['m'] 月

  • $date['d'] 日

注意

0.3 以降

この関数は、スタティックにコールする ことはできません。

例

例 48-1getDate() の使用

...
$date = $nntp->getDate();
echo "Date: ".$date['m']."-".$date['d']."-".$date['y'];
前のページ | ホーム | 次のページ
Net_NNTP_Client::getBodyRaw() | 上に戻る | Net_NNTP_Client::getGroups()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP_Client::getDescriptions()

Net_NNTP_Client::getDescriptions() --

概要

require_once 'Net/NNTP/Client.php';

public boolean Net_NNTP_Client::getDescriptions();

警告

このメソッドについては、現在のところ文書化されていません。

警告

この関数は、 実験的 なものです。 この関数の動作・関数名を含めここに書かれていることすべてが このパッケージの将来のリリースで予告なく変更される可能性があります。 注意を喚起するとともに、使用者のリスクでこの関数を使用してください。

説明

前のページ | ホーム | 次のページ
Net_NNTP_Client::count() | 上に戻る | Net_NNTP_Client::first()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP_Client::getGroupArticles()

Net_NNTP_Client::getGroupArticles() --

概要

require_once 'Net/NNTP/Client.php';

public boolean Net_NNTP_Client::getGroupArticles(string $newsgroup);

警告

このメソッドについては、現在のところ文書化されていません。

警告

この関数は、 実験的 なものです。 この関数の動作・関数名を含めここに書かれていることすべてが このパッケージの将来のリリースで予告なく変更される可能性があります。 注意を喚起するとともに、使用者のリスクでこの関数を使用してください。

説明

前のページ | ホーム | 次のページ
Net_NNTP_Client::getArticleRaw() | 上に戻る | Net_NNTP_Client::getBodyRaw()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP_Client::getGroups()

Net_NNTP_Client::getGroups() -- ニュースグループの一覧を取得する

概要

require_once 'Net/NNTP/Client.php';

array Net_NNTP_Client::getGroups ()

説明

有効なニュースグループの一覧を返します。

返り値

array - 二次元配列です。最初の要素が ニュースグループ名を表し、それぞれの要素の下にニュースグループの情報が 格納されています。

  • $groups[newsgroup_name]['group'] ニュースグループの名前

  • $groups[newsgroup_name]['last'] 最新の記事の記事番号

  • $groups[newsgroup_name]['first'] 最初の記事の記事番号

  • $groups[newsgroup_name]['posting'] とりうる値： y - はい、 n - いいえ、 m - モデレートされています

注意

この関数は、スタティックにコールする ことはできません。

警告

一般向けに公開されているニュースサーバの場合、30,000 以上のニュースグループが含まれていることもあります。そのような場合、 この関数の実行時間が php.ini で設定されている maximum execution time を超えてしまうかもしれません。

参照

Net_NNTP_Client::selectGroup()

例

例 48-1getGroups() の使用

...
$ret = $nntp->connect('news.php.net');
if( PEAR::isError($ret)) {
    // エラー処理
} else {
    // 成功
    $groups = $nntp->getGroups();
    // 有効なニュースグループ一覧の表示
    foreach($groups as $group) {
        echo $group['group'].'<br>';
    }
}
前のページ | ホーム | 次のページ
Net_NNTP_Client::getDate() | 上に戻る | Net_NNTP_Client::getHeader()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP_Client::getHeader()

Net_NNTP_Client::getHeader() -- NNTP サーバから記事のヘッダを取得する

概要

require_once 'Net/NNTP/Client.php';

object Net_NNTP_Client::getHeader (string $article)

説明

警告

この関数については、現在のところ文書化されていません。

参照

Net_NNTP_Client::getHeaderRaw()

前のページ | ホーム | 次のページ
Net_NNTP_Client::getGroups() | 上に戻る | Net_NNTP_Client::getHeaderRaw()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP_Client::getHeaderRaw()

Net_NNTP_Client::getHeaderRaw() -- 記事のヘッダを取得する

概要

require_once 'Net/NNTP/Client.php';

string Net_NNTP_Client::getHeaderRaw (string $article, boolean $implode = false)

説明

現在選択されているニュースグループの記事のヘッダを返します。

パラメータ

  • string $article - 取得したい記事の番号 あるいは Message-ID 。

    boolean $implode - 結果の配列を、ひとつの 文字列として連結して返すかどうかを指定します。

返り値

array/string - 記事が存在した場合、 そのヘッダを返します。もし失敗した場合は PEAR_Error を返します。

例外・エラー

表 48-1PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
NULL | いろいろなエラーメッセージ | ニュースサーバから返される文字列をそのままの形式で返します。 たいがいの場合、存在しない記事を取得しようとしたことが原因です。 |

注意

0.3 以降

この関数は、スタティックにコールする ことはできません。

参照

Net_NNTP_Client::getHeader() , Net_NNTP_Client::getArticleRaw() , Net_NNTP_Client::getBodyRaw()

例

例 48-1getHeaderRaw() の使用

...

$headers = $nntp->getHeaderRaw($msgId);
if( PEAR::isError($headers)) {
    // エラー処理
} else {
    // 成功 - 文字列を配列形式に変換する
    $headersArray = explode( "\n", $headers);
}
前のページ | ホーム | 次のページ
Net_NNTP_Client::getHeader() | 上に戻る | Net_NNTP_Client::getNewGroups()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP_Client::getNewGroups()

Net_NNTP_Client::getNewGroups() --

概要

require_once 'Net/NNTP/Client.php';

public boolean Net_NNTP_Client::getNewGroups(mixed $time);

警告

このメソッドについては、現在のところ文書化されていません。

警告

この関数は、 実験的 なものです。 この関数の動作・関数名を含めここに書かれていることすべてが このパッケージの将来のリリースで予告なく変更される可能性があります。 注意を喚起するとともに、使用者のリスクでこの関数を使用してください。

説明

前のページ | ホーム | 次のページ
Net_NNTP_Client::getHeaderRaw() | 上に戻る | Net_NNTP_Client::getNewNews()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP_Client::getNewNews()

Net_NNTP_Client::getNewNews() --

概要

require_once 'Net/NNTP/Client.php';

public boolean Net_NNTP_Client::getNewNews(mixed $time, string $pass);

警告

このメソッドについては、現在のところ文書化されていません。

警告

この関数は、 実験的 なものです。 この関数の動作・関数名を含めここに書かれていることすべてが このパッケージの将来のリリースで予告なく変更される可能性があります。 注意を喚起するとともに、使用者のリスクでこの関数を使用してください。

説明

前のページ | ホーム | 次のページ
Net_NNTP_Client::getNewGroups() | 上に戻る | Net_NNTP_Client::getOverview()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP_Client::getOverview()

Net_NNTP_Client::getOverview() -- ニュースグループの概要を取得する

概要

require_once 'Net/NNTP/Client.php';

array Net_NNTP_Client::getOverview (string $first, string $last)

説明

現在選択されているニュースグループの（指定した範囲の） 概要を返します。

パラメータ

  • $first - 指定する範囲の最初の記事番号。

  • $last - 指定する範囲の最後の記事番号。

返り値

array - 記事の Message-Id をキーとする配列。 個々のエントリには、ヘッダの内容が配列形式で格納されている。
$msgs[message_id][headername] = headercontent

注意

この関数は、スタティックにコールする ことはできません。

警告

範囲を指定する際には十分注意してください。多くのメッセージの ヘッダを取得しようとすると、かなり時間がかかることがあります。

参照

Net_NNTP_Client::getOverviewFormat()

例

例 48-1getOverview() の使用

...
$ret = $nntp->connect('news.php.net');
if( PEAR::isError($ret)) {
 // エラー処理
} else {
 // 最近の 10 件の記事を表示する
 $data = $nntp->selectGroup('php.pear.dev');
 $msgs = $nntp->getOverview( $data['last'] - 10, $data[last]);

 foreach($msgs as $msg) {
    // Subject を表示する
    echo $msg['subject'].'<br>';
 }
}
前のページ | ホーム | 次のページ
Net_NNTP_Client::getNewNews() | 上に戻る | Net_NNTP_Client::getReferencesOverview()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP_Client::getReferencesOverview()

Net_NNTP_Client::getReferencesOverview() --

概要

require_once 'Net/NNTP/Client.php';

public boolean Net_NNTP_Client::getReferencesOverview(integer $first, integer $last);

警告

このメソッドについては、現在のところ文書化されていません。

警告

この関数は、 実験的 なものです。 この関数の動作・関数名を含めここに書かれていることすべてが このパッケージの将来のリリースで予告なく変更される可能性があります。 注意を喚起するとともに、使用者のリスクでこの関数を使用してください。

説明

前のページ | ホーム | 次のページ
Net_NNTP_Client::getOverview() | 上に戻る | Net_NNTP_Client::group()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP_Client::group()

Net_NNTP_Client::group() --

概要

require_once 'Net/NNTP/Client.php';

public boolean Net_NNTP_Client::group(string $user, string $pass, integer $authmode = NET_NNTP_AUTHORIGINAL);

警告

このメソッドについては、現在のところ文書化されていません。

警告

この関数は、 実験的 なものです。 この関数の動作・関数名を含めここに書かれていることすべてが このパッケージの将来のリリースで予告なく変更される可能性があります。 注意を喚起するとともに、使用者のリスクでこの関数を使用してください。

説明

前のページ | ホーム | 次のページ
Net_NNTP_Client::getReferencesOverview() | 上に戻る | Net_NNTP_Client::isConnected()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP_Client::isConnected()

Net_NNTP_Client::isConnected() -- 接続中?

概要

require_once 'Net/NNTP/Client.php';

public boolean Net_NNTP_Client::isConnected();

警告

このメソッドについては、現在のところ文書化されていません。

警告

この関数は、 実験的 なものです。 この関数の動作・関数名を含めここに書かれていることすべてが このパッケージの将来のリリースで予告なく変更される可能性があります。 注意を喚起するとともに、使用者のリスクでこの関数を使用してください。

説明

前のページ | ホーム | 次のページ
Net_NNTP_Client::group() | 上に戻る | Net_NNTP_Client::last()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP_Client::last()

Net_NNTP_Client::last() -- 現在のニュースグループの最新の記事番号を取得する

概要

require_once 'Net/NNTP/Client.php';

public integer Net_NNTP_Client::last();

説明

現在のニュースグループの最新の記事番号を取得します。

返り値

integer - 記事番号の最大値。

注意

0.3 以降

この関数は、スタティックにコールする ことはできません。

例

例 48-1last() の使用

...
$nntp->selectGroup("php.pear.dev");
echo "記事番号の最大値: ".$nntp->last();
前のページ | ホーム | 次のページ
Net_NNTP_Client::isConnected() | 上に戻る | Net_NNTP_Client::post()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP_Client::post()

Net_NNTP_Client::post() --

概要

require_once 'Net/NNTP/Client.php';

public boolean Net_NNTP_Client::post(string $newsgroups, string $subject, string $body, string $from, integer $additional = '');

警告

このメソッドについては、現在のところ文書化されていません。

警告

この関数は、 実験的 なものです。 この関数の動作・関数名を含めここに書かれていることすべてが このパッケージの将来のリリースで予告なく変更される可能性があります。 注意を喚起するとともに、使用者のリスクでこの関数を使用してください。

説明

前のページ | ホーム | 次のページ
Net_NNTP_Client::last() | 上に戻る | Net_NNTP_Client::quit()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP_Client::quit()

Net_NNTP_Client::quit() -- NNTP サーバとの接続を切断する

概要

require_once 'Net/NNTP/Client.php';

public void Net_NNTP_Client::post();

説明

NNTP サーバとの接続を切断します。

注意

この関数は、スタティックにコールする ことはできません。

参照

Net_NNTP_Client::connect

前のページ | ホーム | 次のページ
Net_NNTP_Client::post() | 上に戻る | Net_NNTP_Client::selectGroup()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_NNTP_Client::selectGroup()

Net_NNTP_Client::selectGroup() -- ニュースグループを選択する

概要

require_once 'Net/NNTP/Client.php';

array Net_NNTP_Client::selectGroup (string $newsgroup)

説明

NNTP サーバ上の指定したニュースグループを選択します。

パラメータ

  • string $newsgroup - アクセスしたいニュースグループ名。

返り値

array - ニュースグループが存在した場合、 配列が返されます：

表 48-1

キー | 値
'count' | グループ内の記事の数
'first' | グループ内の最初の記事番号
'last' | グループ内の最後の記事番号
'group' | グループ名
それ以外の場合、PEAR_Error が返されます。

例外・エラー

表 48-2PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
NULL | いろいろなエラーメッセージ | ニュースサーバから返される文字列をそのままの形式で返します。 たいがいの場合、存在しない記事を取得しようとしたことが原因です。 |

注意

この関数は、スタティックにコールする ことはできません。

参照

Net_NNTP_Client::connect() , Net_NNTP_Client::getGroups()

例

例 48-1selectGroup() の使用

...
$ret = $nntp->connect('news.php.net');
if( PEAR::isError($ret)) {
    // エラー処理
} else {
    // 成功
    $data = $nntp->selectGroup('php.pear.dev');
    // 記事の数を取得する
    echo "記事の数: ", $data['last'] - $data['first'];
}
前のページ | ホーム | 次のページ
Net_NNTP_Client::quit() | 上に戻る | Net_Ping

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Ping

目次
Net_Ping::Net_Ping() -- コンストラクタ
Net_Ping::ping() -- pingコマンドを実行する
Net_Ping::setArgs() -- pingコマンド用引数を設定する

Pingコマンド用APIです。

前のページ | ホーム | 次のページ
Net_NNTP | 上に戻る | Net_Ping::Net_Ping()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Ping::Net_Ping()

Net_Ping::Net_Ping() -- コンストラクタ

概要

require_once 'Net/Ping.php';

void Net_Ping::Net_Ping ()

説明

このコンストラクタを直接使用するのではなく、 Net_Ping::factory() を用いてください。

前のページ | ホーム | 次のページ
Net_Ping | 上に戻る | Net_Ping::ping()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Ping::ping()

Net_Ping::ping() -- pingコマンドを実行する

概要

require_once 'Net/Ping.php';

string Net_Ping::ping (string host)

説明

pingコマンドを実行します。

パラメータ

  • string $host - サーバーの名前かIPアドレスを指定します。

返り値

string - pingコマンドのメッセージを返します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 48-1Sending a ping request

<?php
require_once "Net/Ping.php";
$ping = Net_Ping::factory();
if (PEAR::isError($ping)) {
    echo $ping->getMessage();
} else {
    $ping->setArgs(array('count' => 2));
    var_dump($ping->ping('example.com'));
}
?>
前のページ | ホーム | 次のページ
Net_Ping::Net_Ping() | 上に戻る | Net_Ping::setArgs()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Ping::setArgs()

Net_Ping::setArgs() -- pingコマンド用引数を設定する

概要

require_once 'Net/Ping.php';

boolean Net_Ping::setArgs (array $args)

説明

pingコマンド用引数を設定します。

パラメータ

  • array $args - 設定する引数の配列を指定します。

    表 48-1possible array keys

    キー名 | 説明 | サポートしないOS
    "count" | 送信するpingパケット数です。
    "quiet" | Level of output verbosity | Windows
    "iface" | FreeBSD, Linux, Windows
    "ttl"
    "timeout" | pingパッケージのACKを待つ時間です。
    "size" | pingパケットのサイズです。 | FreeBSD, Darwin, Linux, Windows

返り値

boolean - 成功時には TRUE、 失敗時には PEAR_Error を返します。

例外・エラー

表 48-2PEAR_Error の値

エラーコード | エラーメッセージ | 意味 | 解決策
NULL | PING_INVALID_ARGUMENTS | サポートされない引数が与えられました。 | 引数の種類(キー名)とOSのサポート引数を確認してください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Ping::ping() | 上に戻る | Net_POP3

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_POP3

目次
Net_POP3の導入 --
Net_POP3::Net_POP3() -- コンストラクタ
Net_POP3::connect() -- POP3 サーバに接続する
Net_POP3::deleteMsg() -- メッセージに削除マークをつける
Net_POP3::disconnect() -- POP3 サーバとの接続を切断する
Net_POP3::getBody() -- メッセージの本文を返す
Net_POP3::getListing() -- メールボックスのメッセージの一覧を取得する
Net_POP3::getMsg() -- メッセージ全体を返す
Net_POP3::getParsedHeaders() -- 指定したメッセージのヘッダをパースして返す
Net_POP3::getRawHeaders() -- 指定したメッセージの生のヘッダを返す
Net_POP3::getSize() -- メールボックスのサイズを返す
Net_POP3::login() -- Performs the login procedure
Net_POP3::numMsg() -- メールボックス内のメッセージ数を返す

POP3クラスはPOP3サーバーへのアクセスを提供します。

前のページ | ホーム | 次のページ
Net_Ping::setArgs() | 上に戻る | Net_POP3の導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_POP3::connect()

Net_POP3::connect() -- POP3 サーバに接続する

概要

require_once 'Net/POP3.php';

boolean Net_POP3::connect (string $host, integer $port)

説明

指定したホストの指定したポートに接続します。 また、APOP 認証に必要なタイムスタンプも取得します。

パラメータ

  • string $host - 接続するホスト名/IP アドレス。 to

  • integer $port - 接続に使用するポート。 host

返り値

boolean - 成功時には TRUE 、 失敗時には FALSE を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_POP3::Net_POP3() | 上に戻る | Net_POP3::deleteMsg()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_POP3::deleteMsg()

Net_POP3::deleteMsg() -- メッセージに削除マークをつける

概要

require_once 'Net/POP3.php';

boolean Net_POP3::deleteMsg (integer $msg_id)

説明

メッセージに削除マークをつけます。 実際に削除されるのは、disconnect() メソッドがコールされたときです。

パラメータ

  • integer $msg_id - 削除するメッセージ。

返り値

mixed - 成功時には TRUE 、 失敗時には FALSE を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_POP3::connect() | 上に戻る | Net_POP3::disconnect()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_POP3::disconnect()

Net_POP3::disconnect() -- POP3 サーバとの接続を切断する

概要

require_once 'Net/POP3.php';

boolean Net_POP3::disconnect ()

説明

接続を切断します。QUIT コマンドを発行し、ソケットを閉じます。

返り値

boolean - 成功時には TRUE 、 失敗時には FALSE を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_POP3::deleteMsg() | 上に戻る | Net_POP3::getBody()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_POP3::getBody()

Net_POP3::getBody() -- メッセージの本文を返す

概要

require_once 'Net/POP3.php';

mixed Net_POP3::getBody (integer $msg_id)

説明

指定したメッセージ番号のメッセージ本文を返します。

パラメータ

  • integer $msg_id - メッセージ番号。

返り値

mixed - メッセージの本文、 あるいはエラー時に FALSE を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_POP3::disconnect() | 上に戻る | Net_POP3::getListing()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_POP3::getListing()

Net_POP3::getListing() -- メールボックスのメッセージの一覧を取得する

概要

require_once 'Net/POP3.php';

mixed Net_POP3::getListing (integer $msg_id)

説明

メールボックス内のメッセージの一覧を取得します。 LIST/UIDL コマンドを組み合わせて使用し、結果を配列で返します。

パラメータ

  • integer $msg_id - オプションで指定するメッセージ番号。

返り値

mixed - データの配列、あるいはエラー時に false を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_POP3::getBody() | 上に戻る | Net_POP3::getMsg()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_POP3::getMsg()

Net_POP3::getMsg() -- メッセージ全体を返す

概要

require_once 'Net/POP3.php';

mixed Net_POP3::getMsg (integer $msg_id)

説明

指定されたメッセージ番号のメッセージ全体を返します。

パラメータ

  • integer $msg_id - メッセージ番号。

返り値

mixed - メッセージ全体、あるいはエラー時に FALSE を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_POP3::getListing() | 上に戻る | Net_POP3::getParsedHeaders()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_POP3::getParsedHeaders()

Net_POP3::getParsedHeaders() -- 指定したメッセージのヘッダをパースして返す

概要

require_once 'Net/POP3.php';

mixed Net_POP3::getParsedHeaders (integer $msg_id)

説明

指定したメッセージのヘッダを、連想配列で返します。 ヘッダの名前が配列のキー、そしてヘッダの値が配列の値となります。 同名のヘッダが複数存在する場合 (例えば Received: など) は、 連想配列の値として配列を保持し、すべてのヘッダ値を格納します。

パラメータ

  • integer $msg_id - メッセージ番号。

返り値

mixed - ヘッダの配列、あるいはエラー時に FALSE を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_POP3::getMsg() | 上に戻る | Net_POP3::getRawHeaders()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_POP3::getRawHeaders()

Net_POP3::getRawHeaders() -- 指定したメッセージの生のヘッダを返す

概要

require_once 'Net/POP3.php';

mixed Net_POP3::getRawHeaders (integer $msg_id)

説明

指定したメッセージの生のヘッダを返します。

パラメータ

  • integer $msg_id - メッセージ番号。

返り値

strings - 生のヘッダ、あるいはエラー時に FALSE を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_POP3::getParsedHeaders() | 上に戻る | Net_POP3::getSize()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_POP3::getSize()

Net_POP3::getSize() -- メールボックスのサイズを返す

概要

require_once 'Net/POP3.php';

mixed Net_POP3::getSize ()

説明

メールボックスのサイズを返します。

返り値

mixed - メールボックスのサイズ、 あるいはエラー時に FALSE を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_POP3::getRawHeaders() | 上に戻る | Net_POP3::login()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_POP3の導入

Net_POP3の導入 --

Net_POP3について

POP3サーバーにアクセスするために、 POP3クラスを提供します。 UIDLリストおよびAPOP認証を含む、 POP3コマンドをすべてサポートします。

注意 IMAPのような、 ネイティブPHP拡張モジュールと比較した場合、 このクラスの使用法は遅く、不十分な特徴かもしれません。 もし利用可能な場合、 PHP拡張モジュールを使用するように"強く"勧められます。

Net_POP3の使用例

例 48-1使用法

include 'Net_POP3.php';

$pop3 =& new Net_POP3();

/*
 * Connect to localhost on usual port
 * If not given, defaults are localhost:110
 */
$pop3->connect('localhost', 110);

/*
* Login using username/password. APOP will
* be tried first if supported, then basic.
*/
$pop3->login('richard', 'Alien3');

/*
 * Get the raw headers of message 1
 */
echo '<h2>getRawHeaders()</h2>';
echo '<pre>' . htmlspecialchars($pop3->getRawHeaders(1)) . '</pre>';

/*
 * Get structured headers of message 1
 */
echo '<h2>getParsedHeaders()</h2> <pre>';
print_r($pop3->getParsedHeaders(1));
echo '</pre>';

/*
 * Get body of message 1
 */
echo '<h2>getBody()</h2>';
echo '<pre>' . htmlspecialchars($pop3->getBody(1)) . '</pre>';
/*
* Get number of messages in maildrop
*/
echo '<h2>getNumMsg</h2>';
echo '<pre>' . $pop3->numMsg() . '</pre>';

/*
 * Get entire message
 */
echo '<h2>getMsg()</h2>';
echo '<pre>' . htmlspecialchars($pop3->getMsg(1)) . '</pre>';

/*
 * Get listing details of the maildrop
 */
echo '<h2>getListing()</h2>';
echo '<pre>';
print_r($pop3->getListing());
echo '</pre>';

/*
 * Get size of maildrop
 */
echo '<h2>getSize()</h2>';
echo '<pre>' . $pop3->getSize() . '</pre>';

$pop3->disconnect();
前のページ | ホーム | 次のページ
Net_POP3 | 上に戻る | Net_POP3::Net_POP3()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_POP3::login()

Net_POP3::login() -- Performs the login procedure

概要

require_once 'Net/POP3.php';

boolean Net_POP3::login (string $user string $pass boolean $apop)

説明

Performs the login procedure. If there is a timestamp stored, APOP will be tried first, then basic USER/PASS.

パラメータ

  • string $user - Username to use

  • string $pass - Password to use

  • boolean $apop - Whether to try APOP first

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_POP3::getSize() | 上に戻る | Net_POP3::numMsg()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_POP3::Net_POP3()

Net_POP3::Net_POP3() -- コンストラクタ

概要

require_once 'Net/POP3.php';

Net_POP3::Net_POP3 ()

説明

コンストラクタです。オブジェクト変数を設定し、 ソケットオブジェクトのインスタンスを作成します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_POP3の導入 | 上に戻る | Net_POP3::connect()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_POP3::numMsg()

Net_POP3::numMsg() -- メールボックス内のメッセージ数を返す

概要

require_once 'Net/POP3.php';

mixed Net_POP3::numMsg ()

説明

メールボックス内のメッセージ数を返します。

返り値

mixed - メッセージ数、あるいはエラー時に FALSE を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_POP3::login() | 上に戻る | Net_Portscan

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Portscan

目次
Net_Portscan::checkPort() -- 有効なサービスが存在するかを調べる
Net_Portscan::checkPortRange() -- 有効なサービスが存在するかを調べる
Net_Portscan::getPort() -- サービスのポート名
Net_Portscan::getService() -- サービスの名称

ポートスキャンを行うための API を提供します。

前のページ | ホーム | 次のページ
Net_POP3::numMsg() | 上に戻る | Net_Portscan::checkPort()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Portscan::checkPort()

Net_Portscan::checkPort() -- 有効なサービスが存在するかを調べる

概要

require_once 'Net/Portscan.php';

boolean Net_Portscan::checkPort (string $host, integer $port [, integer $timeout = 30])

説明

この関数は、指定したマシンの指定したポート上で サービスが稼動しているかどうかを調べます。

パラメータ

  • string $host - 調べたいホストのアドレス。

  • string $port - 調べたいポート番号。

  • string $timeout - ホストからの応答を待ち続ける時間を、秒単位で指定します。

    重要項目 もしこのパラメータを十分に大きな値にしているにもかかわらず タイムアウトが発生する場合、php.ini の設定項目 default_socket_timeout が ここでの指定より小さく設定されていないか確認する必要があります。

返り値

boolean - 成功時には TRUE 、 失敗時には FALSE を返します。

注意

この関数は、スタティックにコールする ことができます。

例

例 48-1checkPort の使用法

require_once "Net/Portscan.php";

if (Net_Portscan::checkPort("localhost", 80) == NET_PORTSCAN_SERVICE_FOUND) {
    echo "ローカルホストのポート 80（" . Net_Portscan::getService(80) . "）でサービスが稼動しています。\n";
}
前のページ | ホーム | 次のページ
Net_Portscan | 上に戻る | Net_Portscan::checkPortRange()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Portscan::checkPortRange()

Net_Portscan::checkPortRange() -- 有効なサービスが存在するかを調べる

概要

require_once 'Net/Portscan.php';

array Net_Portscan::checkPortRange (string $host, integer $minPort, integer $maxPort [, integer $timeout = 30])

説明

この関数は、指定したマシンの指定した範囲のポート上で サービスが稼動しているかどうかを調べます。

パラメータ

  • string $host - 調べたいホストのアドレス。

  • string $minPort - 調べたいポート番号範囲の 最小値。

  • string $maxPort - 調べたいポート番号の 最大値。

  • string $timeout - ホストからの個々の応答を待ち続ける時間を、秒単位で指定します。

    重要項目 もしこのパラメータを十分に大きな値にしているにもかかわらず タイムアウトが発生する場合、php.ini の設定項目 default_socket_timeout が ここでの指定より小さく設定されていないか確認する必要があります。

返り値

array - それぞれのポートについてのスキャン結果を含む 連想配列。

注意

この関数は、スタティックにコールする ことができます。

例

例 48-1checkPortRange の使用法

require_once "Net/Portscan.php";

echo "ローカルホストのポート 70-90 を調べます。\n";
$result = Net_Portscan::checkPortRange("localhost", 70, 90);

foreach ($result as $port => $element) {
    if ($element == NET_PORTSCAN_SERVICE_FOUND) {
        echo "ポート " . $port . " でサービスが見つかりました。\n";
    } else {
        echo "ポート " . $port . " ではサービスが見つかりませんでした。\n";
    }
}
前のページ | ホーム | 次のページ
Net_Portscan::checkPort() | 上に戻る | Net_Portscan::getPort()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Portscan::getPort()

Net_Portscan::getPort() -- サービスのポート名

概要

require_once 'Net/Portscan.php';

integer Net_Portscan::getPort (string $service [, string $protocol = 'tcp'])

説明

この関数は、指定されたサービス名とプロトコルに対応するポート番号を '/etc/services' から取得して返します。

パラメータ

  • string $service - 調べたいサービスの名称。

  • string $protocol - アクセスプロトコル。

返り値

integer - サービスのポート番号。

注意

この関数は、スタティックにコールする ことができます。

ポート番号は Net_Portscan を実行している マシン上の情報をもとに取得されます。リモートホストの情報を取得する わけではありません。この関数は、 Net_Portscan::checkPort() とともに使うことが多くなるでしょう。

前のページ | ホーム | 次のページ
Net_Portscan::checkPortRange() | 上に戻る | Net_Portscan::getService()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Portscan::getService()

Net_Portscan::getService() -- サービスの名称

概要

require_once 'Net/Portscan.php';

string Net_Portscan::checkPortRange (integer $port [, string $protocol = 'tcp'])

説明

この関数は、指定されたポートとプロトコルに対応するサービス名を '/etc/services' から取得して返します。

パラメータ

  • integer $port - 調べたいポート。

  • string $protocol - アクセスプロトコル。

返り値

string - そのポートで稼動しているサービスの名称。

注意

この関数は、スタティックにコールする ことができます。

サービスの名称は Net_Portscan を実行している マシン上の情報をもとに取得されます。リモートホストの情報を取得する わけではありません。この関数は、 Net_Portscan::checkPort() とともに使うことが多くなるでしょう。

前のページ | ホーム | 次のページ
Net_Portscan::getPort() | 上に戻る | Net_Server

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server

目次
導入 -- Net_Server 導入
例 -- Net_Server の利用
Net_Server のクラス概要 -- PHP ソケットサーバの基底クラス
Net_Server::create() -- 新しいサーバを生成する
Net_Server_Driver のクラス概要 -- 全てのドライバの基底クラス
Net_Server_Driver::getLastSocketError() -- 最後のソケットエラー文字列を返す
Net_Server_Driver::setCallbackObject() -- 全てのイベントを操作するために使用される コールバックオブジェクトを登録する
Net_Server_Driver::setDebugMode() -- デバッグモードをセットする
Net_Server_Driver_Fork のクラス概要 -- サーバクラスをフォークする
Net_Server_Driver_Fork::broadcastData() -- 全てのクライアントにデータを送信する
Net_Server_Driver_Fork::closeConnection() -- 現在の接続を閉じる
Net_Server_Driver_Fork::getClientInfo() -- クライアントについての現在の情報を取得する
Net_Server_Driver_Fork::getClients() -- 現在のクライアント数を取得する
Net_Server_Driver_Fork::isConnected() -- クライアントがまだ接続しているかどうかチェックする
Net_Server_Driver_Fork::sendData() -- 1クライアントにデータを送信する
Net_Server_Driver_Fork::serviceRequest() -- 現在のリクエストにサービスを提供する
Net_Server_Driver_Fork::setMaxClients() -- 最大同時接続数をセットする
Net_Server_Driver_Fork::shutDown() -- サーバを停止する
Net_Server_Driver_Fork::start() -- サーバを起動する
Net_Server_Driver_Sequential のクラス概要 -- シーケンシャルなサーバクラス
Net_Server_Driver_Sequential::acceptConnection() -- 新しい接続を受け入れる
Net_Server_Driver_Sequential::broadcastData() -- 全てのクライアントにデータを送信する
Net_Server_Driver_Sequential::closeConnection() -- クライアントへの接続を閉じる
Net_Server_Driver_Sequential::getClientInfo() -- クライアントについての現在の情報を取得する
Net_Server_Driver_Sequential::getClients() -- 現在のクライアント数を取得する
Net_Server_Driver_Sequential::isConnected() -- クライアントがまだ接続しているかどうかチェックする
Net_Server_Driver_Sequential::sendData() -- 1クライアントにデータを送信する
Net_Server_Driver_Sequential::setMaxClients() -- 最大同時接続数をセットする
Net_Server_Driver_Sequential::shutDown() -- サーバを停止する
Net_Server_Driver_Sequential::start() -- サーバを起動する
Net_Server_Handler のクラス概要 -- 全てのハンドラの基底クラス
Net_Server_Handler::onClose() -- onClose ハンドラ
Net_Server_Handler::onConnect() -- onConnect ハンドラ
Net_Server_Handler::onConnectionRefused() -- onConnectionRefused ハンドラ
Net_Server_Handler::onReceiveData() -- onReceiveData ハンドラ
Net_Server_Handler::onShutdown() -- onShutdown ハンドラ
Net_Server_Handler::onStart() -- onStart ハンドラ
Net_Server_Handler::setServerReference() -- サーバオブジェクトへの参照をセットする
Net_Server パッケージの定数 -- Net_Server で定義され使用される定数

デーモンを生成するための一般的なサーバパッケージ

前のページ | ホーム | 次のページ
Net_Portscan::getService() | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server パッケージの定数

Net_Server パッケージの定数 -- Net_Server で定義され使用される定数

全ての定数

Server.php で定義されている定数

表 48-1Server.php で定義されている定数

名前 | 値 | 行番号
NET_SERVER_ERROR_DRIVER_CORRUPT | 52 | 39
NET_SERVER_ERROR_NOT_SUPPORTED | 53 | 44
NET_SERVER_ERROR_PCNTL_REQUIRED | 54 | 49
NET_SERVER_ERROR_UNKNOWN_DRIVER | 51 | 34

前のページ | ホーム | 次のページ
Net_Server_Handler::setServerReference() | 上に戻る | Net_SmartIrc

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


例

例 -- Net_Server の利用

シンプルなデーモンを生成する

以下の例は、データを受信しユーザーに送信するフォークサーバの構築が どんなに簡単か、を示しています。

例 48-1簡単な応答サーバを生成する

#!/usr/local/bin/php
<?php
    // server base class
    require_once 'Net/Server.php';

    // base class for the handler
    require_once 'Net/Server/Handler.php';

/**
 * simple example that implements a talkback.
 *
 * Normally this should be a bit more code and in a separate file
 */
class Net_Server_Handler_Talkback extends Net_Server_Handler
{
   /**
    * If the user sends data, send it back to him
    *
    * @access   public
    * @param    integer $clientId
    * @param    string  $data
    */
    function    onReceiveData( $clientId = 0, $data = "" )
    {
        $this->_server->sendData( $clientId, "You said: $data" );
    }
}

    // create a server that forks new processes
    $server  = &Net_Server::create('fork', 'localhost', 9090);

    $handler = &new Net_Server_Handler_Talkback;

    // hand over the object that handles server events
    $server->setCallbackObject($handler);

    // start the server
    $server->start();
?>
前のページ | ホーム | 次のページ
導入 | 上に戻る | Net_Server のクラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- Net_Server 導入

Net_Server 導入

Net_Server は PHP 4 のソケット拡張に基づいたデーモンアプリケーションを 生成するためのインターフェースを提供します。 Net_Server を利用するために、PHP のバージョンを PHP 4.2 もしくはそれ以上にする必要があり、PHP-CLI が使用されることを意味します。

Net_Server はデーモンのドライバを変更することができる driver based アーキテクチャーを使用しています。 現在、フォークを行うドライバとフォークを行わないドライバが利用でき、 その他については追って利用可能になります。

Net_Server はソケット拡張の抽象レイヤーを提供していますので、 PHP 関数についての内部的な知識は必要ありません。 やるべきことは、デーモン内でのイベント - 新しい接続やデータの受信など - のためのコールバック関数を実装することです。

前のページ | ホーム | 次のページ
Net_Server | 上に戻る | 例

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Driver_Fork のクラス概要

Net_Server_Driver_Fork のクラス概要 -- サーバクラスをフォークする

サーバクラスのフォーク

このクラスはそれぞれの接続のために新しいプロセスをフォークします。 これにより、クライアント間で通信が問題ないサーバを構築する事ができます。

操作可能なイベントは次の通りです:

  • onStart

  • onConnect

  • onClose

  • onReceiveData

Net_Server_Driver_Fork のクラスツリー

  • PEAR

    • Net_Server_Driver

      • Net_Server_Driver_Fork

Net_Server_Driver_Fork 継承したメソッド

表 48-1Net_Server_Driver からの継承

メソッド名 | 概要
Net_Server_Driver::getLastSocketError() | 最後のソケットエラー文字列を返す
Net_Server_Driver::setCallbackObject() | 全てのイベントを処理するために使用されるコールバックオブジェクトを 登録する
Net_Server_Driver::setDebugMode() | デバッグモードをセットする

前のページ | ホーム | 次のページ
Net_Server_Driver::setDebugMode() | 上に戻る | Net_Server_Driver_Fork::broadcastData()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Driver_Fork::broadcastData

PEAR マニュアル
前のページ 次のページ

Net_Server_Driver_Fork::broadcastData()

Net_Server_Driver_Fork::broadcastData() -- 全てのクライアントにデータを送信する

概要

require_once 'ServerDriverFork.php';

void Net_Server_Driver_Fork::broadcastData (string $data [, array $exclude = array()])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $data

送信するデータを指定します。

array $exclude

除外するクライアントIDを指定します。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Driver_Fork のクラス概要 | 上に戻る | Net_Server_Driver_Fork::closeConnection()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Driver_Fork::closeConnection

PEAR マニュアル
前のページ 次のページ

Net_Server_Driver_Fork::closeConnection()

Net_Server_Driver_Fork::closeConnection() -- 現在の接続を閉じる

概要

require_once 'ServerDriverFork.php';

void Net_Server_Driver_Fork::closeConnection ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Driver_Fork::broadcastData() | 上に戻る | Net_Server_Driver_Fork::getClientInfo()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Driver_Fork::getClientInfo

PEAR マニュアル
前のページ 次のページ

Net_Server_Driver_Fork::getClientInfo()

Net_Server_Driver_Fork::getClientInfo() -- クライアントについての現在の情報を取得する

概要

require_once 'ServerDriverFork.php';

array Net_Server_Driver_Fork::getClientInfo ()

説明

このパッケージに関する文書は、未作成です。

返り値

returns クライアントについての情報

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Driver_Fork::closeConnection() | 上に戻る | Net_Server_Driver_Fork::getClients()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Driver_Fork::getClients

PEAR マニュアル
前のページ 次のページ

Net_Server_Driver_Fork::getClients()

Net_Server_Driver_Fork::getClients() -- 現在のクライアント数を取得する

概要

require_once 'ServerDriverFork.php';

PEAR_Error Net_Server_Driver_Fork::getClients ()

説明

フォークしているものは取得できません。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Driver_Fork::getClientInfo() | 上に戻る | Net_Server_Driver_Fork::isConnected()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Driver_Fork::isConnected

PEAR マニュアル
前のページ 次のページ

Net_Server_Driver_Fork::isConnected()

Net_Server_Driver_Fork::isConnected() -- クライアントがまだ接続しているかどうかチェックする

概要

require_once 'ServerDriverFork.php';

boolean Net_Server_Driver_Fork::isConnected (integer $id)

説明

このパッケージに関する文書は、未作成です。

パラメータ

integer $id

クライアントのIDを指定します。

返り値

returns もしクライアントが接続していれば true、そうでなければ false

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Driver_Fork::getClients() | 上に戻る | Net_Server_Driver_Fork::sendData()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Driver_Fork::sendData

PEAR マニュアル
前のページ 次のページ

Net_Server_Driver_Fork::sendData()

Net_Server_Driver_Fork::sendData() -- 1クライアントにデータを送信する

概要

require_once 'ServerDriverFork.php';

void Net_Server_Driver_Fork::sendData (string $data [, boolean $debugData = TRUE])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $data

送信するデータを指定します。

boolean $debugData

ソケットに書かれたデータがデバッグメッセージとして送信されたかどうか を示すフラグを指定します。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Driver_Fork::isConnected() | 上に戻る | Net_Server_Driver_Fork::serviceRequest()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Driver_Fork::serviceRequest

PEAR マニュアル
前のページ 次のページ

Net_Server_Driver_Fork::serviceRequest()

Net_Server_Driver_Fork::serviceRequest() -- 現在のリクエストにサービスを提供する

概要

require_once 'ServerDriverFork.php';

void Net_Server_Driver_Fork::serviceRequest ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Driver_Fork::sendData() | 上に戻る | Net_Server_Driver_Fork::setMaxClients()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Driver_Fork::setMaxClients

PEAR マニュアル
前のページ 次のページ

Net_Server_Driver_Fork::setMaxClients()

Net_Server_Driver_Fork::setMaxClients() -- 最大同時接続数をセットする

概要

require_once 'ServerDriverFork.php';

void Net_Server_Driver_Fork::setMaxClients (int $maxClients)

説明

各クライアントがそれ自身のプロセスを得ることはできません。

パラメータ

integer $maxClients

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Driver_Fork::serviceRequest() | 上に戻る | Net_Server_Driver_Fork::shutDown()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Driver_Fork::shutDown

PEAR マニュアル
前のページ 次のページ

Net_Server_Driver_Fork::shutDown()

Net_Server_Driver_Fork::shutDown() -- サーバを停止する

概要

require_once 'ServerDriverFork.php';

void Net_Server_Driver_Fork::shutDown ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Driver_Fork::setMaxClients() | 上に戻る | Net_Server_Driver_Fork::start()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Driver_Fork::start

PEAR マニュアル
前のページ 次のページ

Net_Server_Driver_Fork::start()

Net_Server_Driver_Fork::start() -- サーバを起動する

概要

require_once 'ServerDriverFork.php';

void Net_Server_Driver_Fork::start ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Driver_Fork::shutDown() | 上に戻る | Net_Server_Driver_Sequential のクラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Driver_Sequential のクラス概要

Net_Server_Driver_Sequential のクラス概要 -- シーケンシャルなサーバクラス

シーケンシャルなサーバクラス

このクラスは1つのサーバプロセスで全ての接続を処理します。 これにより、クライアント間の通信が簡単なサーバを構築することができます。 難点は、クライアントはシーケンシャル（名前によって）に処理される、 ということです。 もし、クライアントにデータの大きなブロックを送信した場合、 ほかのクライアントは待たなければなりません。 クライアント間の通信が必要ないサーバの場合、 代わりに Net_Server_Fork を使用してください。

操作可能なイベントは次の通りです:

  • onStart

  • onConnect

  • onConnectionRefused

  • onClose

  • onReceiveData

  • onShutdown

Net_Server_Driver_Sequential のクラスツリー

  • PEAR

    • Net_Server_Driver

      • Net_Server_Driver_Sequential

Net_Server_Driver_Sequential 継承したメソッド

表 48-1Inherited from Net_Server_Driver

メソッド名 | 概要
Net_Server_Driver::getLastSocketError() | 最後のソケットエラー文字列を返す
Net_Server_Driver::setCallbackObject() | 全てのイベントを処理するために使用されるコールバックオブジェクトを登録する
Net_Server_Driver::setDebugMode() | デバッグモードをセットする

前のページ | ホーム | 次のページ
Net_Server_Driver_Fork::start() | 上に戻る | Net_Server_Driver_Sequential::acceptConnection()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Driver_Sequential::acceptConnection

PEAR マニュアル
前のページ 次のページ

Net_Server_Driver_Sequential::acceptConnection()

Net_Server_Driver_Sequential::acceptConnection() -- 新しい接続を受け入れる

概要

require_once 'ServerDriverSequential.php';

int Net_Server_Driver_Sequential::acceptConnection (resource &$socket)

説明

このパッケージに関する文書は、未作成です。

パラメータ

resource &$socket

新しい接続を受信したソケットを指定します。

返り値

returns クライアントの内部ID

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Driver_Sequential のクラス概要 | 上に戻る | Net_Server_Driver_Sequential::broadcastData()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Driver_Sequential::broadcastData

PEAR マニュアル
前のページ 次のページ

Net_Server_Driver_Sequential::broadcastData()

Net_Server_Driver_Sequential::broadcastData() -- 全てのクライアントにデータを送信する

概要

require_once 'ServerDriverSequential.php';

void Net_Server_Driver_Sequential::broadcastData (string $data [, array $exclude = array()])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $data

送信するデータを指定します。

array $exclude

除外するクライアントIDを指定します。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Driver_Sequential::acceptConnection() | 上に戻る | Net_Server_Driver_Sequential::closeConnection()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Driver_Sequential::closeConnection

PEAR マニュアル
前のページ 次のページ

Net_Server_Driver_Sequential::closeConnection()

Net_Server_Driver_Sequential::closeConnection() -- クライアントへの接続を閉じる

概要

require_once 'ServerDriverSequential.php';

void Net_Server_Driver_Sequential::closeConnection ([mixed $id = 0, int $clientID])

説明

このパッケージに関する文書は、未作成です。

パラメータ

mixed $id

integer $clientID

クライアントの内部IDを指定します。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Driver_Sequential::broadcastData() | 上に戻る | Net_Server_Driver_Sequential::getClientInfo()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Driver_Sequential::getClientInfo

PEAR マニュアル
前のページ 次のページ

Net_Server_Driver_Sequential::getClientInfo()

Net_Server_Driver_Sequential::getClientInfo() -- クライアントについての現在の情報を取得する

概要

require_once 'ServerDriverSequential.php';

array Net_Server_Driver_Sequential::getClientInfo (int $clientId)

説明

このパッケージに関する文書は、未作成です。

パラメータ

integer $clientId

クライアントのIDを指定します

返り値

returns クライアントについての情報

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Driver_Sequential::closeConnection() | 上に戻る | Net_Server_Driver_Sequential::getClients()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Driver_Sequential::getClients

PEAR マニュアル
前のページ 次のページ

Net_Server_Driver_Sequential::getClients()

Net_Server_Driver_Sequential::getClients() -- 現在のクライアント数を取得する

概要

require_once 'ServerDriverSequential.php';

int Net_Server_Driver_Sequential::getClients ()

説明

このパッケージに関する文書は、未作成です。

返り値

returns クライアント数

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Driver_Sequential::getClientInfo() | 上に戻る | Net_Server_Driver_Sequential::isConnected()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Driver_Sequential::isConnected

PEAR マニュアル
前のページ 次のページ

Net_Server_Driver_Sequential::isConnected()

Net_Server_Driver_Sequential::isConnected() -- クライアントがまだ接続しているかどうかチェックする

概要

require_once 'ServerDriverSequential.php';

boolean Net_Server_Driver_Sequential::isConnected (integer $id)

説明

このパッケージに関する文書は、未作成です。

パラメータ

integer $id

クライアントIDを指定します。

返り値

returns クライアントが接続していれば true、そうでなければ false

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Driver_Sequential::getClients() | 上に戻る | Net_Server_Driver_Sequential::sendData()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Driver_Sequential::sendData

PEAR マニュアル
前のページ 次のページ

Net_Server_Driver_Sequential::sendData()

Net_Server_Driver_Sequential::sendData() -- 1クライアントにデータを送信する

概要

require_once 'ServerDriverSequential.php';

void Net_Server_Driver_Sequential::sendData (int $clientId, string $data [, boolean $debugData = TRUE])

説明

このパッケージに関する文書は、未作成です。

パラメータ

integer $clientId

クライアントのIDを指定します。

string $data

送信するデータを指定します。

boolean $debugData

ソケットに書かれたデータがデバッグメッセージとして送信されたかどうか を示すフラグを指定します。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Driver_Sequential::isConnected() | 上に戻る | Net_Server_Driver_Sequential::setMaxClients()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Driver_Sequential::setMaxClients

PEAR マニュアル
前のページ 次のページ

Net_Server_Driver_Sequential::setMaxClients()

Net_Server_Driver_Sequential::setMaxClients() -- 最大同時接続数をセットする

概要

require_once 'ServerDriverSequential.php';

void Net_Server_Driver_Sequential::setMaxClients (int $maxClients)

説明

このパッケージに関する文書は、未作成です。

パラメータ

integer $maxClients

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Driver_Sequential::sendData() | 上に戻る | Net_Server_Driver_Sequential::shutDown()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Driver_Sequential::shutDown

PEAR マニュアル
前のページ 次のページ

Net_Server_Driver_Sequential::shutDown()

Net_Server_Driver_Sequential::shutDown() -- サーバを停止する

概要

require_once 'ServerDriverSequential.php';

void Net_Server_Driver_Sequential::shutDown ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Driver_Sequential::setMaxClients() | 上に戻る | Net_Server_Driver_Sequential::start()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Driver_Sequential::start

PEAR マニュアル
前のページ 次のページ

Net_Server_Driver_Sequential::start()

Net_Server_Driver_Sequential::start() -- サーバを起動する

概要

require_once 'ServerDriverSequential.php';

void Net_Server_Driver_Sequential::start ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Driver_Sequential::shutDown() | 上に戻る | Net_Server_Handler のクラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Driver のクラス概要

Net_Server_Driver のクラス概要 -- 全てのドライバの基底クラス

全てのドライバの基底クラス

このパッケージに関する文書は、未作成です。

Net_Server_Driver のクラスツリー

  • PEAR

    • Net_Server_Driver

表 48-1Net_Server_Driver を継承したクラス

クラス | 概要
Net_Server_Driver_Fork | サーバクラスをフォークする
Net_Server_Driver_Sequential | シーケンシャルなサーバクラス

前のページ | ホーム | 次のページ
Net_Server::create() | 上に戻る | Net_Server_Driver::getLastSocketError()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Driver::getLastSocketError

PEAR マニュアル
前のページ 次のページ

Net_Server_Driver::getLastSocketError()

Net_Server_Driver::getLastSocketError() -- 最後のソケットエラー文字列を返す

概要

require_once 'ServerDriver.php';

string Net_Server_Driver::getLastSocketError (mixed &$fd)

説明

このパッケージに関する文書は、未作成です。

パラメータ

mixed &$fd

返り値

returns 最後のエラー

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Driver のクラス概要 | 上に戻る | Net_Server_Driver::setCallbackObject()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Driver::setCallbackObject

PEAR マニュアル
前のページ 次のページ

Net_Server_Driver::setCallbackObject()

Net_Server_Driver::setCallbackObject() -- 全てのイベントを操作するために使用される コールバックオブジェクトを登録する

概要

require_once 'ServerDriver.php';

void Net_Server_Driver::setCallbackObject (object &$object)

説明

このパッケージに関する文書は、未作成です。

パラメータ

object &$object

コールバックオブジェクトを指定します。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Driver::getLastSocketError() | 上に戻る | Net_Server_Driver::setDebugMode()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Driver::setDebugMode

PEAR マニュアル
前のページ 次のページ

Net_Server_Driver::setDebugMode()

Net_Server_Driver::setDebugMode() -- デバッグモードをセットする

概要

require_once 'ServerDriver.php';

void Net_Server_Driver::setDebugMode (mixed $debug [, string $dest = "stdout"])

説明

このパッケージに関する文書は、未作成です。

パラメータ

mixed $debug

[text|htmlFALSE] のいずれかを指定します。

string $dest

デバッグメッセージの宛先 (出力のための stdout や書き込まれるログファイル名) を指定します。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Driver::setCallbackObject() | 上に戻る | Net_Server_Driver_Fork のクラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Handler のクラス概要

Net_Server_Handler のクラス概要 -- 全てのハンドラの基底クラス

全てのハンドラの基底クラス

このパッケージに関する文書は、未作成です。

Net_Server_Handler のクラスツリー

  • Net_Server_Handler

前のページ | ホーム | 次のページ
Net_Server_Driver_Sequential::start() | 上に戻る | Net_Server_Handler::onClose()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Handler::onClose

PEAR マニュアル
前のページ 次のページ

Net_Server_Handler::onClose()

Net_Server_Handler::onClose() -- onClose ハンドラ

概要

require_once 'ServerHandler.php';

void Net_Server_Handler::onClose ([integer $clientId = 0])

説明

このハンドラは、クライアントがサーバから切断する時にコールされます。 次のサーバで利用可能です:

  • Net_Server_Sequential

  • Net_Server_Fork

パラメータ

integer $clientId

クライアントの一意なIDを指定します。 Net_Server_Fork では常に 0 です。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Handler のクラス概要 | 上に戻る | Net_Server_Handler::onConnect()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Handler::onConnect

PEAR マニュアル
前のページ 次のページ

Net_Server_Handler::onConnect()

Net_Server_Handler::onConnect() -- onConnect ハンドラ

概要

require_once 'ServerHandler.php';

void Net_Server_Handler::onConnect ([integer $clientId = 0])

説明

このハンドラは、新しいクライアントが接続する時にコールされます。 次のサーバで利用可能です:

  • Net_Server_Sequential

  • Net_Server_Fork

パラメータ

integer $clientId

クライアントの一意なIDを指定します。 Net_Server_Fork では常に 0 です。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Handler::onClose() | 上に戻る | Net_Server_Handler::onConnectionRefused()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Handler::onConnectionRefused

PEAR マニュアル
前のページ 次のページ

Net_Server_Handler::onConnectionRefused()

Net_Server_Handler::onConnectionRefused() -- onConnectionRefused ハンドラ

概要

require_once 'ServerHandler.php';

void Net_Server_Handler::onConnectionRefused ([integer $clientId = 0])

説明

このハンドラは、 新しいクライアントが接続を試みるも許可されない時にコールされます。 次のサーバで利用可能です:

  • Net_Server_Sequential

パラメータ

integer $clientId

クライアントの一意なIDを指定します。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Handler::onConnect() | 上に戻る | Net_Server_Handler::onReceiveData()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Handler::onReceiveData

PEAR マニュアル
前のページ 次のページ

Net_Server_Handler::onReceiveData()

Net_Server_Handler::onReceiveData() -- onReceiveData ハンドラ

概要

require_once 'ServerHandler.php';

void Net_Server_Handler::onReceiveData ([integer $clientId = 0 [, string $data = ""]])

説明

このハンドラは、 クライアントがサーバにデータを送信する時にコールされます。 次のサーバで利用可能です:

  • Net_Server_Sequential

  • Net_Server_Fork

パラメータ

integer $clientId

クライアントの一意なIDを指定します。 Net_Server_Fork では常に 0 です。

string $data

クライアントから送信されたデータを指定します。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Handler::onConnectionRefused() | 上に戻る | Net_Server_Handler::onShutdown()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Handler::onShutdown

PEAR マニュアル
前のページ 次のページ

Net_Server_Handler::onShutdown()

Net_Server_Handler::onShutdown() -- onShutdown ハンドラ

概要

require_once 'ServerHandler.php';

void Net_Server_Handler::onShutdown ()

説明

このハンドラは、サーバが停止するときにコールされます。 次のサーバで利用可能です:

  • Net_Server_Sequential

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Handler::onReceiveData() | 上に戻る | Net_Server_Handler::onStart()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Handler::onStart

PEAR マニュアル
前のページ 次のページ

Net_Server_Handler::onStart()

Net_Server_Handler::onStart() -- onStart ハンドラ

概要

require_once 'ServerHandler.php';

void Net_Server_Handler::onStart ()

説明

このハンドラは、サーバが起動するときにコールされます。 次のサーバで利用可能です:

  • Net_Server_Sequential

  • Net_Server_Fork

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Handler::onShutdown() | 上に戻る | Net_Server_Handler::setServerReference()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server_Handler::setServerReference

PEAR マニュアル
前のページ 次のページ

Net_Server_Handler::setServerReference()

Net_Server_Handler::setServerReference() -- サーバオブジェクトへの参照をセットする

概要

require_once 'ServerHandler.php';

void Net_Server_Handler::setServerReference (object Net_Server_* &$server)

説明

これは、ハンドラがサーバに関連付けられる時、自動的に行われます。

パラメータ

object Net_Server_*; &$server

オブジェクトを指定します。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server_Handler::onStart() | 上に戻る | Net_Server パッケージの定数

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server のクラス概要

Net_Server のクラス概要 -- PHP ソケットサーバの基底クラス

PHP ソケットサーバ基底クラス

このクラスは、静的メソッド 'create()' を使用して新しいサーバを生成するためだけに使用されなければなりません。

サーバ実行中に発生したイベントを操作するために、 全てのイベントを操作する新しいクラスを生成する必要があります。

1     require_once 'myHandler.php';
2      require_once 'Net/Server.php';
3
4      $server = &Net_Server::create('fork', 'localhost', 9090);
5
6      $handler = &new myHandler;
7
8      $server->setCallbackObject($handler);
9
10     $server->start();

新しいハンドラを実装するために利用できる基底クラス Server/Handler.php を参照してください。

Net_Server のクラスツリー

  • Net_Server

前のページ | ホーム | 次のページ
例 | 上に戻る | Net_Server::create()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Server::create

PEAR マニュアル
前のページ 次のページ

Net_Server::create()

Net_Server::create() -- 新しいサーバを生成する

概要

require_once 'Server.php';

void& Net_Server::create (string $type, string $host, integer $port)

説明

現在では2種類のサーバがサポートされています:

  • 'sequential', 全てのクライアントからの全てのリクエストを、 1つのプロセスが順番に処理を行うサーバを生成する

  • 'fork', サーバに接続する各クライアントのために新しいプロセスがフォークされるサーバを 生成する。これは、*NIXでのみ動作する。

パラメータ

string $type

サーバの種類を指定します。

string $host

ホスト名を指定します。

integer $port

ポートを指定します。

例外・エラー

throws 投げられる例外はありません。

static

static

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Server のクラス概要 | 上に戻る | Net_Server_Driver のクラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_SmartIrc

目次
導入 -- Net_SmartIRC は IRC ネットワークを利用した通信を行うための PHP クラスで、 RFC 2812（IRC プロトコル）の仕様に従っています。

Net_SmartIRC は IRC ネットワークを利用した通信を行うための PHP クラスで、 RFC 2812（IRC プロトコル）の仕様に従っています。IRC プロトコルでの すべてのメッセージを取り扱うための API を提供します。 このクラスは、IRC ボットやチャットプログラムを作成したり Web ページ上に IRC に関連する情報を表示したりするために作られています。

前のページ | ホーム | 次のページ
Net_Server パッケージの定数 | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- Net_SmartIRC は IRC ネットワークを利用した通信を行うための PHP クラスで、 RFC 2812（IRC プロトコル）の仕様に従っています。

Net_SmartIRC 概要

Net_SmartIRC は IRC ネットワークを利用した通信を行うための PHP クラスで、 RFC 2812（IRC プロトコル）の仕様に従っています。 IRC プロトコルでのすべてのメッセージを取り扱うための API を提供します。 このクラスは、IRC ボットやチャットプログラムを作成したり Web ページ上に IRC に関連する情報を表示したりするために作られています。

完全なオンラインドキュメントはこちらです

前のページ | ホーム | 次のページ
Net_SmartIrc | 上に戻る | Net_SMTP

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_SMTP

目次
Net_SMTP クラス概要 -- PEAR の Net_Socket:: クラスを用いた SMTP プロトコルの実装を提供する
導入案内 -- SMTP プロトコルの実装を提供する
コンストラクタ Net_SMTP::Net_SMTP() -- 新しい Net_SMTP オブジェクトを生成する。パラメータを 設定することで、ネットワーク設定を上書きする
Net_SMTP::auth() -- SMTP 認証を試みる
Net_SMTP::connect() -- SMTP サーバへの接続を試みる
Net_SMTP::data() -- メッセージ本文を開始するための DATA コマンドを送信する
Net_SMTP::disconnect() -- SMTP サーバとの接続の切断を試みる
Net_SMTP::getResponse() -- SMTP サーバからの応答を返す
Net_SMTP::helo() -- HELO コマンドを送信する
Net_SMTP::identifySender() -- 旧バージョンとの互換性を保つためのメソッド。identifySender() の機能は、現在は内部に組み込まれている
Net_SMTP::mailFrom() -- MAIL FROM: コマンドを送信する
Net_SMTP::noop() -- NOOP コマンドを送信する
Net_SMTP::quotedata() -- SMTP 標準に従うよう、データをクォートする
Net_SMTP::rcptTo() -- RCPT TO: コマンドを送信する
Net_SMTP::rset() -- RSET コマンドを送信する
Net_SMTP::saml_from() -- SAML FROM: コマンドを送信する
Net_SMTP::send_from() -- SEND FROM: コマンドを送信する
Net_SMTP::setDebug() -- デバッグ用フラグを設定する
Net_SMTP::soml_from() -- SOML FROM: コマンドを送信する
Net_SMTP::vrfy() -- VRFY コマンドを送信する
前のページ | ホーム | 次のページ
導入 | 上に戻る | Net_SMTP クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入案内

導入案内 -- SMTP プロトコルの実装を提供する

Net_SMTP の導入案内

Net_SMTP パッケージは（RFC 2554 で定義されている）SMTP 認証に 対応しています。Net_SMTP は DIGEST-MD5 や CRAM-MD5, LOGIN, PLAIN といった認証方法に対応しています。

完全な案内はこちら

前のページ | ホーム | 次のページ
Net_SMTP クラス概要 | 上に戻る | コンストラクタ Net_SMTP::Net_SMTP()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_SMTP クラス概要

Net_SMTP クラス概要 -- PEAR の Net_Socket:: クラスを用いた SMTP プロトコルの実装を提供する

PEAR の Net_Socket:: クラスを用いた SMTP プロトコルの実装を提供

このパッケージは、Simple Mail Transfer Protocol (SMTP) を実装したものです。 SMTP はホスト間のメール交換をする際のインターネット標準プロトコルです。 サーバとの接続には Net_Socket:: クラスを用います。SMTP は、 メール送信の仕組みを提供します。

Net_SMTP のクラス階層

  • Net_SMTP

前のページ | ホーム | 次のページ
Net_SMTP | 上に戻る | 導入案内

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_SMTP::auth

PEAR マニュアル
前のページ 次のページ

Net_SMTP::auth()

Net_SMTP::auth() -- SMTP 認証を試みる

概要

require_once 'NET/SMTP.php';

mixedNet_SMTP::auth (string $uid, string $pwd [, string $method = ''])

説明

この関数は、サポートしている方法を用いて認証セッションを開始します。 サポートしている認証手法を、より望ましいものから並べると 以下のとおりになります: Digest-MD5, そして CRAMMD5, LOGIN, PLAIN.

パラメータ

string $uid

認証に用いるユーザ ID 。

string $pwd

認証に用いるパスワード。

string $method

認証手法。指定されなかった場合は、最もサポートされている手法が 用いられます。

返り値

returns 失敗時にはエラーメッセージが含まれた PEAR_Error 、成功時には true

例外・エラー

throws 例外は発生しません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
コンストラクタ Net_SMTP::Net_SMTP() | 上に戻る | Net_SMTP::connect()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_SMTP::connect

PEAR マニュアル
前のページ 次のページ

Net_SMTP::connect()

Net_SMTP::connect() -- SMTP サーバへの接続を試みる

概要

require_once 'NET/SMTP.php';

mixed Net_SMTP::connect ([int $timeout = NULL])

説明

SMTP サーバとの接続を試みます。

パラメータ

integer $timeout

ソケット接続のタイムアウトまでの時間（秒単位）

返り値

returns 失敗時にはエラーメッセージが含まれた PEAR_Error 、成功時には true

例外・エラー

throws 例外は発生しません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_SMTP::auth() | 上に戻る | Net_SMTP::data()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_SMTP::data

PEAR マニュアル
前のページ 次のページ

Net_SMTP::data()

Net_SMTP::data() -- メッセージ本文を開始するための DATA コマンドを送信する

概要

require_once 'NET/SMTP.php';

mixedNet_SMTP::data (string $data)

説明

この関数は、メッセージの本文を DATA コマンドで送信し、セッションを終了します。

パラメータ

string $data

送りたい本文

返り値

returns 失敗時にはエラーメッセージが含まれた PEAR_Error 、成功時には true

例外・エラー

throws 例外は発生しません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_SMTP::connect() | 上に戻る | Net_SMTP::disconnect()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_SMTP::disconnect

PEAR マニュアル
前のページ 次のページ

Net_SMTP::disconnect()

Net_SMTP::disconnect() -- SMTP サーバとの接続の切断を試みる

概要

require_once 'NET/SMTP.php';

mixedNet_SMTP::disconnect ()

説明

SMTP サーバとの接続の切断を試みます。

返り値

returns 失敗時にはエラーメッセージが含まれた PEAR_Error 、成功時には true

例外・エラー

throws 例外は発生しません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_SMTP::data() | 上に戻る | Net_SMTP::getResponse()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_SMTP::getResponse

PEAR マニュアル
前のページ 次のページ

Net_SMTP::getResponse()

Net_SMTP::getResponse() -- SMTP サーバからの応答を返す

概要

require_once 'NET/SMTP.php';

array Net_SMTP::getResponse ()

説明

SMTP サーバからの応答を、２つの要素からなる配列形式で戻します。

返り値

returns ２つの要素からなる配列： 最初の要素にはレスポンスコードが整数で格納され、２番目の要素には そのコードの内容が文字列で格納されます。

例外・エラー

throws 例外は発生しません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_SMTP::disconnect() | 上に戻る | Net_SMTP::helo()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_SMTP::helo

PEAR マニュアル
前のページ 次のページ

Net_SMTP::helo()

Net_SMTP::helo() -- HELO コマンドを送信する

概要

require_once 'NET/SMTP.php';

mixed Net_SMTP::helo (string $domain)

説明

HELO コマンドを送信します。これはメール送信 SMTP トランザクションの いちばん最初にくるもので、メールを送る際にはまずこのコマンドが用いられます。

パラメータ

string $domain

所属するドメイン名。

返り値

returns 失敗時にはエラーメッセージが含まれた PEAR_Error 、成功時には true

例外・エラー

throws 例外は発生しません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_SMTP::getResponse() | 上に戻る | Net_SMTP::identifySender()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_SMTP::identifySender

PEAR マニュアル
前のページ 次のページ

Net_SMTP::identifySender()

Net_SMTP::identifySender() -- 旧バージョンとの互換性を保つためのメソッド。identifySender() の機能は、現在は内部に組み込まれている

概要

require_once 'NET/SMTP.php';

booleanNet_SMTP::identifySender ()

説明

旧バージョンとの互換性を保つためのメソッドです。identifySender() が持っていた機能は、現在は内部に組み込まれています。

返り値

returns つねに true

例外・エラー

throws 例外は発生しません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_SMTP::helo() | 上に戻る | Net_SMTP::mailFrom()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_SMTP::mailFrom

PEAR マニュアル
前のページ 次のページ

Net_SMTP::mailFrom()

Net_SMTP::mailFrom() -- MAIL FROM: コマンドを送信する

概要

require_once 'NET/SMTP.php';

mixedNet_SMTP::mailFrom (string $sender)

説明

MAIL FROM: コマンドを送信します。

パラメータ

string $sender

発信者（返信先）として設定する値

返り値

returns 失敗時にはエラーメッセージが含まれた PEAR_Error 、成功時には true

例外・エラー

throws 例外は発生しません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_SMTP::identifySender() | 上に戻る | Net_SMTP::noop()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ Net_SMTP::Net_SMTP

PEAR マニュアル
前のページ 次のページ

コンストラクタ Net_SMTP::Net_SMTP()

コンストラクタ Net_SMTP::Net_SMTP() -- 新しい Net_SMTP オブジェクトを生成する。パラメータを 設定することで、ネットワーク設定を上書きする

概要

require_once 'NET/SMTP.php';

void constructor Net_SMTP::Net_SMTP ([string $host = NULL [, int $port = NULL [, string $localhost = NULL]]])

説明

新しい Net_SMTP オブジェクトを生成するコンストラクタです。

パラメータ

string $host

接続先サーバ

integer $port

接続先ポート

string $localhost

EHLO あるいは HELO を送信する際に用いられる値

例外・エラー

throws 例外は発生しません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
導入案内 | 上に戻る | Net_SMTP::auth()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_SMTP::noop

PEAR マニュアル
前のページ 次のページ

Net_SMTP::noop()

Net_SMTP::noop() -- NOOP コマンドを送信する

概要

require_once 'NET/SMTP.php';

mixedNet_SMTP::noop ()

説明

NOOP コマンドを送信します。

返り値

returns 失敗時にはエラーメッセージが含まれた PEAR_Error 、成功時には true

例外・エラー

throws 例外は発生しません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_SMTP::mailFrom() | 上に戻る | Net_SMTP::quotedata()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_SMTP::quotedata

PEAR マニュアル
前のページ 次のページ

Net_SMTP::quotedata()

Net_SMTP::quotedata() -- SMTP 標準に従うよう、データをクォートする

概要

require_once 'NET/SMTP.php';

void Net_SMTP::quotedata (string &$data)

説明

この関数は、クラスとは独立した個別のパブリック関数となっています。 これは、クォートの方法をカスタマイズしたい場合などに関数のオーバーロードを しやすくするためです。

パラメータ

string &$data

クォートしたい文字列。文字列は参照形式で渡す必要があります。 渡された文字列が直接変更されます。

例外・エラー

throws 例外は発生しません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_SMTP::noop() | 上に戻る | Net_SMTP::rcptTo()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_SMTP::rcptTo

PEAR マニュアル
前のページ 次のページ

Net_SMTP::rcptTo()

Net_SMTP::rcptTo() -- RCPT TO: コマンドを送信する

概要

require_once 'NET/SMTP.php';

mixedNet_SMTP::rcptTo (string $recipient)

説明

SMTP プロトコルの RCPT TO コマンドを送信します。

パラメータ

string $recipient

受信者（送信先）として設定する値

返り値

returns 失敗時にはエラーメッセージが含まれた PEAR_Error 、成功時には true

例外・エラー

throws 例外は発生しません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_SMTP::quotedata() | 上に戻る | Net_SMTP::rset()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_SMTP::rset

PEAR マニュアル
前のページ 次のページ

Net_SMTP::rset()

Net_SMTP::rset() -- RSET コマンドを送信する

概要

require_once 'NET/SMTP.php';

mixed Net_SMTP::rset ()

説明

SMTP プロトコルの RSET コマンドを送信します。

返り値

returns 失敗時にはエラーメッセージが含まれた PEAR_Error 、成功時には true

例外・エラー

throws 例外は発生しません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_SMTP::rcptTo() | 上に戻る | Net_SMTP::saml_from()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_SMTP::saml_from

PEAR マニュアル
前のページ 次のページ

Net_SMTP::saml_from()

Net_SMTP::saml_from() -- SAML FROM: コマンドを送信する

概要

require_once 'NET/SMTP.php';

mixedNet_SMTP::saml_from (string $path)

説明

SMTP プロトコルの SAML FROM コマンドを送信します。

パラメータ

string $path

返信先として設定する値

返り値

returns 失敗時にはエラーメッセージが含まれた PEAR_Error 、成功時には true

例外・エラー

throws 例外は発生しません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_SMTP::rset() | 上に戻る | Net_SMTP::send_from()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_SMTP::send_from

PEAR マニュアル
前のページ 次のページ

Net_SMTP::send_from()

Net_SMTP::send_from() -- SEND FROM: コマンドを送信する

概要

require_once 'NET/SMTP.php';

mixed Net_SMTP::send_from (string $path)

説明

SMTP プロトコルの SEND FROM コマンドを送信します。

パラメータ

string $path

返信先として設定する値

返り値

returns 失敗時にはエラーメッセージが含まれた PEAR_Error 、成功時には true

例外・エラー

throws 例外は発生しません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_SMTP::saml_from() | 上に戻る | Net_SMTP::setDebug()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_SMTP::setDebug

PEAR マニュアル
前のページ 次のページ

Net_SMTP::setDebug()

Net_SMTP::setDebug() -- デバッグ用フラグを設定する

概要

require_once 'NET/SMTP.php';

voidNet_SMTP::setDebug (boolean $debug)

説明

デバッグ用フラグの値を設定します。

パラメータ

boolean $debug

デバッグ用フラグの値

例外・エラー

throws 例外は発生しません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_SMTP::send_from() | 上に戻る | Net_SMTP::soml_from()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_SMTP::soml_from

PEAR マニュアル
前のページ 次のページ

Net_SMTP::soml_from()

Net_SMTP::soml_from() -- SOML FROM: コマンドを送信する

概要

require_once 'NET/SMTP.php';

mixed Net_SMTP::soml_from (string $path)

説明

SMTP プロトコルの SOML FROM: コマンドを送信します。

パラメータ

string $path

返信先として設定する値

返り値

returns 失敗時にはエラーメッセージが含まれた PEAR_Error 、成功時には true

例外・エラー

throws 例外は発生しません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_SMTP::setDebug() | 上に戻る | Net_SMTP::vrfy()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_SMTP::vrfy

PEAR マニュアル
前のページ 次のページ

Net_SMTP::vrfy()

Net_SMTP::vrfy() -- VRFY コマンドを送信する

概要

require_once 'NET/SMTP.php';

mixed Net_SMTP::vrfy (string $string)

説明

SMTP プロトコルの VRFY コマンドを送信します。

パラメータ

string $string

確認したい受信者

返り値

returns 失敗時にはエラーメッセージが含まれた PEAR_Error 、成功時には true

例外・エラー

throws 例外は発生しません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_SMTP::soml_from() | 上に戻る | Net_Socket

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Socket

目次
Net_Socket::connect() -- サーバに接続する
Net_Socket::disconnect() -- サーバとの接続を切断する
Net_Socket::eof() -- ファイルの最後まで進んだかどうかを調べる
Net_Socket::gets() -- 文字列を読み込む
Net_Socket::getStatus() -- 接続に関する情報を取得する
Net_Socket::isBlocking() -- ブロッキングモードかどうかを調べる
Net_Socket::read() -- データを読み込む
Net_Socket::readAll() -- 接続が閉じるまでデータを読み込む
Net_Socket::readByte() -- 1 バイトのデータを読み込む
Net_Socket::readInt() -- 整数値を読み込む
Net_Socket::readIPAddress() -- IP アドレスを読み込む
Net_Socket::readLine() -- 行末までのデータを読み込む
Net_Socket::readString() -- 文字列を読み込む
Net_Socket::readWord() -- 1 ワードのデータを読み込む
Net_Socket::setBlocking() -- ブロッキングモードを設定する
Net_Socket::setTimeout() -- タイムアウトを設定する
Net_Socket::write() -- データを書き込む
Net_Socket::writeLine() -- EOL を含めたデータを書き込む
例 -- Net_Socket の使用法

Net_Socket は、TCP/IP ソケット通信のための 一般的な API を提供します。

前のページ | ホーム | 次のページ
Net_SMTP::vrfy() | 上に戻る | Net_Socket::connect()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Socket::connect()

Net_Socket::connect() -- サーバに接続する

概要

require_once 'Net/Socket.php';

boolean Net_Socket::connect (string $addr, integer $port, boolean [$persistent = NULL], integer [$timeout = NULL])

説明

指定されたポートに接続します。すでに接続を確立させているときに この関数が呼ばれた場合は、いったん接続を切断し改めて接続しなおします。

返り値

boolean - 成功時には TRUE、 失敗時には PEAR_Error を返します。

例外・エラー

表 48-1PEAR_Error の値

エラー番号 エラーメッセージ 原因 対応方法
every every 接続が確立できませんでした。その理由は、

  • サーバ名あるいは IP アドレスが間違っている

  • ホストがネットワークに接続されていない

  • ファイアウォールによってアクセスが禁止されている

 サーバ名をチェックし、ネットワークに接続されていることを確認します。 そして、可能ならファイアウォールの設定を確認します。

注意

この関数は、スタティックにコールする ことはできません。

参照

Net_Socket::disconnect()

前のページ | ホーム | 次のページ
Net_Socket | 上に戻る | Net_Socket::disconnect()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Socket::disconnect()

Net_Socket::disconnect() -- サーバとの接続を切断する

概要

require_once 'Net/Socket.php';

boolean Net_Socket::disconnect ()

説明

サーバとの接続を切断し、ソケットを閉じます。

返り値

boolean - 成功時には TRUE、 失敗時には PEAR_Error を返します。

例外・エラー

表 48-1PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
NULL | "not connected" | 閉じようとしている接続は現在開いていません。あるいはすでに閉じられています。 | connect() が正しく呼び出されたことを確認します。

注意

この関数は、スタティックにコールする ことはできません。

参照

Net_Socket::connect()

前のページ | ホーム | 次のページ
Net_Socket::connect() | 上に戻る | Net_Socket::eof()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Socket::eof()

Net_Socket::eof() -- ファイルの最後まで進んだかどうかを調べる

概要

require_once 'Net/Socket.php';

boolean Net_Socket::eof ()

説明

データの転送が終了したかどうかを調べます。

返り値

boolean - 有効なデータがなくなった場合、 あるいは接続が閉じられた場合に TRUE

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Socket::disconnect() | 上に戻る | Net_Socket::gets()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


例

例 -- Net_Socket の使用法

例

例 48-1データの送受信

$socket = new Net_Socket() ;

// 接続を確立する
$socket->connect("http://www.example.com", 80, true, 30);

// 改行を含むデータを送信する
$socket->writeLine("String with data");

// 改行が現れるまでデータを受信する
$result = $socket->readLine();

// 指定したサイズのデータを受信する
$result = $socket->read(512);

// 接続を切断する
$socket->disconnect();
前のページ | ホーム | 次のページ
Net_Socket::writeLine() | 上に戻る | Net_Traceroute

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Socket::gets()

Net_Socket::gets() -- 文字列を読み込む

概要

require_once 'Net/Socket.php';

mixed Net_Socket::gets (integer $size)

説明

ソケット接続から、文字列データを返します。

パラメータ

  • integer $size - 最大受信文字数。

返り値

string - 受信データあるいは PEAR_Error

例外・エラー

表 48-1PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
NULL | "not connected" | 接続が確立されていません。 | まず接続を確立しなければなりません（ Net_Socket::connect()）。

注意

この関数は、スタティックにコールする ことはできません。

参照

Net_Socket::read()

前のページ | ホーム | 次のページ
Net_Socket::eof() | 上に戻る | Net_Socket::getStatus()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Socket::getStatus()

Net_Socket::getStatus() -- 接続に関する情報を取得する

概要

require_once 'Net/Socket.php';

array Net_Socket::getStatus ()

説明

現在の接続についての情報を返します。

返り値

array - 配列形式のデータ、あるいは PEAR_Error

配列の構造は以下のとおり：

  • boolean 'timed_out' - データを待っているソケットのタイムアウト

  • boolean 'blocked' - ブロッキングモード

  • boolean 'eof' - EOF に達したかどうかを示す

  • integer 'unread_bytes' - ソケットバッファに残っているバイト数

例外・エラー

表 48-1PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
NULL | "not connected" | 接続が確立されていません。 | まず接続を確立しなければなりません（ Net_Socket::connect()）。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Socket::gets() | 上に戻る | Net_Socket::isBlocking()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Socket::isBlocking()

Net_Socket::isBlocking() -- ブロッキングモードかどうかを調べる

概要

require_once 'Net/Socket.php';

boolean Net_Socket::isBlocking ()

説明

ソケットが ブロッキング モード になっているかどうかを調べます。

返り値

boolean - TRUE の場合、 接続はブロッキングモードです。

注意

この関数は、スタティックにコールする ことはできません。

参照

Net_Socket::setBlocking()

前のページ | ホーム | 次のページ
Net_Socket::getStatus() | 上に戻る | Net_Socket::read()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Socket::read()

Net_Socket::read() -- データを読み込む

概要

require_once 'Net/Socket.php';

mixed Net_Socket::read (integer $size)

説明

指定したサイズのデータを読み込みます。必ず何らかの結果が返ってくる ということが保証されており、さらにすべてのデータを一度の fread() で取得できるという利点もあります。 これから読み込もうとしているデータのサイズが事前にわかっている場合、 この関数を用いるのが一番確実です。

パラメータ

  • integer $size - 読み込みたいデータの最大文字数。

返り値

mixed - 読み込んだデータ、あるいは PEAR_Error

例外・エラー

表 48-1PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
NULL | "not connected" | 接続が確立されていません。 | まず接続を確立しなければなりません（ Net_Socket::connect()）。

注意

この関数は、スタティックにコールする ことはできません。

参照

Net_Socket::read()

前のページ | ホーム | 次のページ
Net_Socket::isBlocking() | 上に戻る | Net_Socket::readAll()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Socket::readAll()

Net_Socket::readAll() -- 接続が閉じるまでデータを読み込む

概要

require_once 'Net/Socket.php';

mixed Net_Socket::readAll ()

説明

ソケットが切断されるまで、データを読み込みます。

警告

ブロッキングモードの場合は、ソケットが切断されるまで この関数は終了しません。

返り値

mixed - 読み込んだデータ、あるいは PEAR_Error

例外・エラー

表 48-1PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
NULL | "not connected" | 接続が確立されていません。 | まず接続を確立しなければなりません（ Net_Socket::connect()）。

注意

この関数は、スタティックにコールする ことはできません。

参照

Net_Socket::read()

前のページ | ホーム | 次のページ
Net_Socket::read() | 上に戻る | Net_Socket::readByte()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Socket::readByte()

Net_Socket::readByte() -- 1 バイトのデータを読み込む

概要

require_once 'Net/Socket.php';

mixed Net_Socket::readByte ()

説明

1 バイトのデータを読み込みます。

返り値

mixed - 読み込んだデータ、あるいは PEAR_Error

例外・エラー

表 48-1PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
NULL | "not connected" | 接続が確立されていません。 | まず接続を確立しなければなりません（ Net_Socket::connect()）。

注意

この関数は、スタティックにコールする ことはできません。

参照

 Net_Socket::read()
,
 Net_Socket::readWord()
,
 Net_Socket::readInt()
,
 Net_Socket::readString()
,
 Net_Socket::readIPAddress()

前のページ | ホーム | 次のページ
Net_Socket::readAll() | 上に戻る | Net_Socket::readInt()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Socket::readInt()

Net_Socket::readInt() -- 整数値を読み込む

概要

require_once 'Net/Socket.php';

mixed Net_Socket::readInt ()

説明

ソケットから整数値を読み込みます。

返り値

mixed - 読み込んだデータ、あるいは PEAR_Error

例外・エラー

表 48-1PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
NULL | "not connected" | 接続が確立されていません。 | まず接続を確立しなければなりません（ Net_Socket::connect()）。

注意

この関数は、スタティックにコールする ことはできません。

参照

 Net_Socket::read()
,
 Net_Socket::readByte()
,
 Net_Socket::readWord()
,
 Net_Socket::readString()
,
 Net_Socket::readIPAddress()

前のページ | ホーム | 次のページ
Net_Socket::readByte() | 上に戻る | Net_Socket::readIPAddress()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Socket::readIPAddress()

Net_Socket::readIPAddress() -- IP アドレスを読み込む

概要

require_once 'Net/Socket.php';

string Net_Socket::readIPAddress ()

説明

ソケットから IP アドレスを読み込みます。読み込むデータは、 IP アドレスに変換可能な整数値が想定されています。 この関数は、IPv4 形式のアドレスだけに対応しています。

返り値

string - 読み込んだデータ、あるいは PEAR_Error

例外・エラー

表 48-1PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
NULL | "not connected" | 接続が確立されていません。 | まず接続を確立しなければなりません（ Net_Socket::connect()）。

注意

この関数は、スタティックにコールする ことはできません。

参照

 Net_Socket::read()
,
 Net_Socket::readByte()
,
 Net_Socket::readWord()
,
 Net_Socket::readInt()
,
 Net_Socket::readString()

前のページ | ホーム | 次のページ
Net_Socket::readInt() | 上に戻る | Net_Socket::readLine()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Socket::readLine()

Net_Socket::readLine() -- 行末までのデータを読み込む

概要

require_once 'Net/Socket.php';

mixed Net_Socket::readLine ()

説明

データが終了するか改行コードが現れるまでデータを読み込みます。 改行コードは返り値から取り除かれます。

返り値

mixed - 読み込んだデータ、あるいは PEAR_Error

例外・エラー

表 48-1PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
NULL | "not connected" | 接続が確立されていません。 | まず接続を確立しなければなりません（ Net_Socket::connect()）。

注意

この関数は、スタティックにコールする ことはできません。

参照

Net_Socket::read()

前のページ | ホーム | 次のページ
Net_Socket::readIPAddress() | 上に戻る | Net_Socket::readString()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Socket::readString()

Net_Socket::readString() -- 文字列を読み込む

概要

require_once 'Net/Socket.php';

mixed Net_Socket::readString ()

説明

ゼロ（"\x00"）で区切られた文字列を、 ソケットから読み込みます。

返り値

mixed - 読み込んだデータ、あるいは PEAR_Error

例外・エラー

表 48-1PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
NULL | "not connected" | 接続が確立されていません。 | まず接続を確立しなければなりません（ Net_Socket::connect()）。

注意

この関数は、スタティックにコールする ことはできません。

参照

 Net_Socket::read()
,
 Net_Socket::readByte()
,
 Net_Socket::readWord()
,
 Net_Socket::readInt()
,
 Net_Socket::readIPAddress()

前のページ | ホーム | 次のページ
Net_Socket::readLine() | 上に戻る | Net_Socket::readWord()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Socket::readWord()

Net_Socket::readWord() -- 1 ワードのデータを読み込む

概要

require_once 'Net/Socket.php';

mixed Net_Socket::readWord ()

説明

1 ワードのデータをソケットから読み込みます。

返り値

mixed - 読み込んだデータ、あるいは PEAR_Error

例外・エラー

表 48-1PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
NULL | "not connected" | 接続が確立されていません。 | まず接続を確立しなければなりません（ Net_Socket::connect()）。

注意

この関数は、スタティックにコールする ことはできません。

注意 ここで述べている "ワード" は、単語という意味ではありません。 データのサイズをあらわす単位です。

参照

 Net_Socket::read()
,
 Net_Socket::readByte()
,
 Net_Socket::readInt()
,
 Net_Socket::readString()
 ,
 Net_Socket::readIPAddress()

前のページ | ホーム | 次のページ
Net_Socket::readString() | 上に戻る | Net_Socket::setBlocking()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Socket::setBlocking()

Net_Socket::setBlocking() -- ブロッキングモードを設定する

概要

require_once 'Net/Socket.php';

boolean Net_Socket::setBlocking (boolean $mode)

説明

ソケット接続がブロッキングモードであるかそうでないかを設定します。 非ブロッキングモードのソケットでのデータ読み込み処理は、 読み込むデータがなかった場合に即時に終了します。一方 ブロッキングモードのソケットでは、データが送られてくるまで 処理を終了せずに待ち続けます。

パラメータ

  • boolean $mode - ブロッキングモードの場合は TRUE 、 非ブロッキングモードの場合は FALSE

返り値

  • boolean - 成功時には TRUE、 失敗時には PEAR_Error を返します。

例外・エラー

表 48-1PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
NULL | "not connected" | 接続が確立されていません。 | まず接続を確立しなければなりません（ Net_Socket::connect()）。

注意

この関数は、スタティックにコールする ことはできません。

参照

Net_Socket::isBlocking()

前のページ | ホーム | 次のページ
Net_Socket::readWord() | 上に戻る | Net_Socket::setTimeout()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Socket::setTimeout()

Net_Socket::setTimeout() -- タイムアウトを設定する

概要

require_once 'Net/Socket.php';

boolean Net_Socket::setTimeout (integer $seconds, integer $microseconds)

説明

ソケット記述子にタイムアウト値を設定します。 秒とマイクロ秒であらわした値の合計が設定されます。

パラメータ

  • integer $seconds - 秒の部分。

  • integer $microseconds - マイクロ秒の部分。

返り値

boolean - 成功時には TRUE、 失敗時には PEAR_Error を返します。

例外・エラー

表 48-1PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
NULL | "not connected" | 接続が確立されていません。 | まず接続を確立しなければなりません（ Net_Socket::connect()）。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Socket::setBlocking() | 上に戻る | Net_Socket::write()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Socket::write()

Net_Socket::write() -- データを書き込む

概要

require_once 'Net/Socket.php';

boolean Net_Socket::write (string $data)

説明

データをソケットに書き込みます。

パラメータ

  • string $data - 書き込むデータ。

返り値

boolean - 成功時には TRUE、 失敗時には PEAR_Error を返します。

例外・エラー

表 48-1PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
NULL | "not connected" | 接続が確立されていません。 | まず接続を確立しなければなりません（ Net_Socket::connect()）。

注意

この関数は、スタティックにコールする ことはできません。

参照

Net_Socket::writeLine()

前のページ | ホーム | 次のページ
Net_Socket::setTimeout() | 上に戻る | Net_Socket::writeLine()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Socket::writeLine()

Net_Socket::writeLine() -- EOL を含めたデータを書き込む

概要

require_once 'Net/Socket.php';

boolean Net_Socket::writeLine (string $data)

説明

データをソケットに書き込みます。データの最後に "\r\n" が付け加えられます。

パラメータ

  • string $data - 書き込むデータ。

返り値

boolean - 成功時には TRUE、 失敗時には PEAR_Error を返します。

例外・エラー

表 48-1PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
NULL | "not connected" | 接続が確立されていません。 | まず接続を確立しなければなりません（ Net_Socket::connect()）。

注意

この関数は、スタティックにコールする ことはできません。

参照

Net_Socket::write()

前のページ | ホーム | 次のページ
Net_Socket::write() | 上に戻る | 例

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Traceroute

目次
Net_Traceroute クラス概要 -- traceroute 呼び出しのラッパクラス
Net_Traceroute::factory() -- Net_Traceroute のファクトリメソッド
Net_Traceroute::setArgs() -- 引数の配列を設定する
Net_Traceroute::traceroute() -- traceroute を実行する
Net_Traceroute_Result クラス概要 -- Net_Traceroute の結果を格納するコンテナクラス
Net_Traceroute_Result::factory() -- Net_Traceroute_Result のファクトリメソッド
Net_Traceroute_Result::getHops() -- 結果から、ホップ数を取得する
Net_Traceroute_Result::getRawData() -- traceroute の結果を、そのままの形式で取得する
Net_Traceroute_Result::getSystemName() -- "想定される" sysname（稼動している OS）を取得する
Net_Traceroute_Result::getTargetIp() -- 結果から、対象 IP アドレスを取得する
Net_Traceroute_Result::getTTL() -- 結果から、TTL を取得する
Net_Traceroute_Result::getValue() -- Traceroute_Result のプロパティを取得する
Net_Traceroute パッケージの定数 -- Net_Traceroute で定義され、使われている定数
前のページ | ホーム | 次のページ
例 | 上に戻る | Net_Traceroute クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Traceroute パッケージの定数

Net_Traceroute パッケージの定数 -- Net_Traceroute で定義され、使われている定数

All Constants

Traceroute.php で定義されている定数

表 48-1Traceroute.php で定義されている定数

名前 | 値 | 行番号
NET_TRACEROUTE_CANT_LOCATE_TRACEROUTE_BINARY | 3 | 57
NET_TRACEROUTE_CANT_LOCATE_TRACEROUTE_BINARY_MSG | 'unable to locate the traceroute binary' | 51
NET_TRACEROUTE_FAILED |  | 54
NET_TRACEROUTE_FAILED_MSG | 'execution of traceroute failed' | 48
NET_TRACEROUTE_HOST_NOT_FOUND | 1 | 55
NET_TRACEROUTE_HOST_NOT_FOUND_MSG | 'unknown host' | 49
NET_TRACEROUTE_INVALID_ARGUMENTS | 2 | 56
NET_TRACEROUTE_INVALID_ARGUMENTS_MSG | 'invalid argument array' | 50
NET_TRACEROUTE_RESULT_UNSUPPORTED_BACKEND | 4 | 58
NET_TRACEROUTE_RESULT_UNSUPPORTED_BACKEND_MSG | 'Backend not Supported' | 52

前のページ | ホーム | 次のページ
Net_Traceroute_Result::getValue() | 上に戻る | Net_Whois

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Traceroute_Result クラス概要

Net_Traceroute_Result クラス概要 -- Net_Traceroute の結果を格納するコンテナクラス

Net_Traceroute の結果を格納するコンテナクラス

このパッケージに関する文書は、未作成です。

Net_Traceroute_Result のクラス階層

  • Net_Traceroute_Result

前のページ | ホーム | 次のページ
Net_Traceroute::traceroute() | 上に戻る | Net_Traceroute_Result::factory()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Traceroute_Result::factory

PEAR マニュアル
前のページ 次のページ

Net_Traceroute_Result::factory()

Net_Traceroute_Result::factory() -- Net_Traceroute_Result のファクトリメソッド

概要

require_once '/Traceroute.php';

void Net_Traceroute_Result::factory (array $result, string $sysname)

説明

このパッケージに関する文書は、未作成です。

パラメータ

array $result

Net_Traceroute の結果

string $sysname

OS_Guess::sysname

例外・エラー

throws 例外は発生しません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Traceroute_Result クラス概要 | 上に戻る | Net_Traceroute_Result::getHops()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Traceroute_Result::getHops

PEAR マニュアル
前のページ 次のページ

Net_Traceroute_Result::getHops()

Net_Traceroute_Result::getHops() -- 結果から、ホップ数を取得する

概要

require_once '/Traceroute.php';

array Net_Traceroute_Result::getHops ()

説明

このパッケージに関する文書は、未作成です。

返り値

returns ホップ数

例外・エラー

throws 例外は発生しません。

参照

see _hops

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Traceroute_Result::factory() | 上に戻る | Net_Traceroute_Result::getRawData()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Traceroute_Result::getRawData

PEAR マニュアル
前のページ 次のページ

Net_Traceroute_Result::getRawData()

Net_Traceroute_Result::getRawData() -- traceroute の結果を、そのままの形式で取得する

概要

require_once '/Traceroute.php';

array Net_Traceroute_Result::getRawData ()

説明

このパッケージに関する文書は、未作成です。

返り値

returns 生データ

例外・エラー

throws 例外は発生しません。

参照

see _raw_data

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Traceroute_Result::getHops() | 上に戻る | Net_Traceroute_Result::getSystemName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Traceroute_Result::getSystemName

PEAR マニュアル
前のページ 次のページ

Net_Traceroute_Result::getSystemName()

Net_Traceroute_Result::getSystemName() -- "想定される" sysname（稼動している OS）を取得する

概要

require_once '/Traceroute.php';

string Net_Traceroute_Result::getSystemName ()

説明

このパッケージに関する文書は、未作成です。

返り値

returns OS_Guess::sysname

例外・エラー

throws 例外は発生しません。

参照

see _sysname

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Traceroute_Result::getRawData() | 上に戻る | Net_Traceroute_Result::getTargetIp()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Traceroute_Result::getTargetIp

PEAR マニュアル
前のページ 次のページ

Net_Traceroute_Result::getTargetIp()

Net_Traceroute_Result::getTargetIp() -- 結果から、対象 IP アドレスを取得する

概要

require_once '/Traceroute.php';

string Net_Traceroute_Result::getTargetIp ()

説明

このパッケージに関する文書は、未作成です。

返り値

returns IP アドレス

例外・エラー

throws 例外は発生しません。

参照

see _target_ip

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Traceroute_Result::getSystemName() | 上に戻る | Net_Traceroute_Result::getTTL()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Traceroute_Result::getTTL

PEAR マニュアル
前のページ 次のページ

Net_Traceroute_Result::getTTL()

Net_Traceroute_Result::getTTL() -- 結果から、TTL を取得する

概要

require_once '/Traceroute.php';

int Net_Traceroute_Result::getTTL ()

説明

このパッケージに関する文書は、未作成です。

返り値

returns TTL

例外・エラー

throws 例外は発生しません。

参照

see _ttl

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Traceroute_Result::getTargetIp() | 上に戻る | Net_Traceroute_Result::getValue()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Traceroute_Result::getValue

PEAR マニュアル
前のページ 次のページ

Net_Traceroute_Result::getValue()

Net_Traceroute_Result::getValue() -- Traceroute_Result のプロパティを取得する

概要

require_once '/Traceroute.php';

mixed Net_Traceroute_Result::getValue (string $name)

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $name

プロパティ名

返り値

returns プロパティの値。

例外・エラー

throws 例外は発生しません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Traceroute_Result::getTTL() | 上に戻る | Net_Traceroute パッケージの定数

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Traceroute クラス概要

Net_Traceroute クラス概要 -- traceroute 呼び出しのラッパクラス

traceroute 呼び出しのラッパクラス

このパッケージに関する文書は、未作成です。

Net_Traceroute のクラス階層

  • Net_Traceroute

前のページ | ホーム | 次のページ
Net_Traceroute | 上に戻る | Net_Traceroute::factory()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Traceroute::factory

PEAR マニュアル
前のページ 次のページ

Net_Traceroute::factory()

Net_Traceroute::factory() -- Net_Traceroute のファクトリメソッド

概要

require_once '/Traceroute.php';

object Net_Traceroute Net_Traceroute::factory ()

説明

Net_Traceroute の新しいインスタンスを生成するために、このメソッドを呼び出します。

例外・エラー

throws 例外は発生しません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Traceroute クラス概要 | 上に戻る | Net_Traceroute::setArgs()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Traceroute::setArgs

PEAR マニュアル
前のページ 次のページ

Net_Traceroute::setArgs()

Net_Traceroute::setArgs() -- 引数の配列を設定する

概要

require_once '/Traceroute.php';

mixed Net_Traceroute::setArgs (array $args)

説明

このパッケージに関する文書は、未作成です。

パラメータ

array $args

オプションを指定した連想配列

返り値

returns true あるいは PEAR_error

例外・エラー

throws 例外は発生しません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Traceroute::factory() | 上に戻る | Net_Traceroute::traceroute()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Traceroute::traceroute

PEAR マニュアル
前のページ 次のページ

Net_Traceroute::traceroute()

Net_Traceroute::traceroute() -- traceroute を実行する

概要

require_once '/Traceroute.php';

object Net_Traceroute_Result Net_Traceroute::traceroute (string $host)

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $host

対象となるホスト名あるいは IP アドレス。

例外・エラー

throws 例外は発生しません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Net_Traceroute::setArgs() | 上に戻る | Net_Traceroute_Result クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Whois

目次
Net_Whois::query() -- whois 問い合わせを実行する

Whois サービスを利用するための API を提供します。

前のページ | ホーム | 次のページ
Net_Traceroute パッケージの定数 | 上に戻る | Net_Whois::query()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Whois::query()

Net_Whois::query() -- whois 問い合わせを実行する

概要

require_once 'Net/Whois.php';

string Net_Whois::query (string $query, string $server)

説明

サーバ上で Whois 問い合わせを実行します。

パラメータ

  • string $query - Whois で検索したいドメイン

  • string $server - Whois サーバの名前、あるいは IP アドレス

返り値

string - Whois リクエストに対する応答。

例外・エラー

表 48-1PEAR_Error の値

エラー番号 | エラーメッセージ | 原因 | 対応方法
すべて | " Error connecting to server (Net_Socket says: Error-Message.) " | サーバへの接続に失敗しました。 | サーバのアドレスが正しく指定されていること、そしてホストが ネットワークに接続されていることを確認してください。

注意 存在しないドメインについて検索した場合は、PEAR_Error は戻されません。したがって、このような場合は query() の返り値を調べないと判断できません。

例

例 48-1Whois-query() の使用

<?php
require_once "Net/Whois.php";

$server = "whois.denic.de";
$query  = "phpcrawler.de";     // このドメインについての
                               // 情報を検索する
$whois = new Net_Whois;
$data = $whois->query($query, $server);
echo $data;
?>
前のページ | ホーム | 次のページ
Net_Whois | 上に戻る | Net_Wifi

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Net_Wifi

目次
セットアップ -- 動作させる方法
ローカルの情報 -- 現在のインターフェイスの設定
スキャン -- 無線ネットワークの検索

無線ネットワークをスキャンします。

前のページ | ホーム | 次のページ
Net_Whois::query() | 上に戻る | セットアップ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


ローカルの情報

ローカルの情報 -- 現在のインターフェイスの設定

ローカルインターフェイスの情報の取得

まず最初に、コンピュータ上のネットワークインターフェイスの情報を取得するために getSupportedInterfaces() を使用します。 これは、文字列の配列を返します。配列の要素は、 ネットワークインターフェイスの名前となります。たとえば "eth1" や "wlan0" などです。

ネットワークインターフェイスの状態についての完全な情報を取得するには getCurrentConfig() を使用します。 これは Net_Wifi_Config オブジェクトを返します。 インターフェースの接続が確立されているかどうかだけを調べたいのなら isConnected() メソッドを使用します。 このメソッドも、インターフェイス名をパラメータとして指定します。

Net_Wifi_Config はこのような形式になります。
Net_Wifi_Config {
  activated     => bool(true)
  associated    => bool(true)
  ap            => string(17) "00:03:C9:44:34:2C"
  ssid          => string(4) "free"
  mode          => string(7) "managed"
  nick          => NULL
  rate          => string(2) "54"
  power         => string(2) "20"
  protocol      => string(12) "IEEE 802.11g"
  rssi          => string(3) "-37"
}

前のページ | ホーム | 次のページ
セットアップ | 上に戻る | スキャン

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


スキャン

スキャン -- 無線ネットワークの検索

無線ネットワークの検索

あなたの環境で使用できる無線ネットワークを探すには、 scan() メソッドを使用します。 これはネットワークインターフェイスの名前をパラメータとして受け取り、 Net_Wifi_Cell オブジェクトの配列を返します。

ローカルのネットワークインターフェイスの配列を取得するには、 getSupportedInterfaces() メソッドを使用します。

cell オブジェクトはこのような形式になります。
Net_Wifi_Cell {
  cell      => string(2) "01"
  mac       => string(17) "00:03:C9:44:34:2C"
  ssid      => string(8) "<hidden>"
  mode      => string(6) "master"
  channel   => int(1)
  encryption=> bool(false)
  frequency => NULL
  protocol  => string(13) "IEEE 802.11bg"
  rate      => float(54)
  rates     => array(12) {
    0   => float(1)
    1   => float(2)
    2   => float(5.5)
    3   => float(6)
  }
  rssi      => string(3) "-39"
  beacon    => int(336)
  quality   => string(6) "90/100"
}

前のページ | ホーム | 次のページ
ローカルの情報 | 上に戻る | 数 (Numbers)

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


セットアップ

セットアップ -- 動作させる方法

セットアップ - 動作させる方法

Net_Wifi は、コマンドラインツール iwconfig および iwlist を使用して、ローカルの無線ネットワークインターフェイスについての情報を集めます。 そして、その情報をあなたのコンピュータから利用できるようにします。

このクラスを動作させるには、これらのプログラムが両方存在する必要があります。 デフォルトでは、/sbin/ および /usr/sbin/ の下を探すようになっています。 見つからなかった場合は、そのシステムの which コマンドを使用して場所を探します。

これらのプログラムの場所の取得や設定は、それぞれ getPathIwconfig() と setPathIwconfig()、 あるいは getPathIwlist() と setPathIwlist() で行えます。

前のページ | ホーム | 次のページ
Net_Wifi | 上に戻る | ローカルの情報

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Info

目次
導入 -- PEAR_Info導入
PEAR_Info::PEAR_Info -- コンストラクタ
PEAR_Info::setProxy -- proxyを設定する
PEAR_Info::show -- PEAR_Infoを表示する

現在インストールされているPEARに関する情報を表示します。 PHPのphpinfo() と類似です。

前のページ | ホーム | 次のページ
PEAR_Frontend_Gtk2 | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Frontend_Gtk2

PEAR_Frontend_Gtk2 は、PHP-Gtk2 を使用した PEAR 用のフロントエンドです。 さまざまなチャネルのパッケージを一覧し、 インストールやアンインストールを行うことができます。

PEAR 1.4.6 以降のバージョンでは、もしこのパッケージがインストールされていれば pear -G でプログラムを起動することができます。

前のページ | ホーム | 次のページ
PEAR | 上に戻る | PEAR_Info

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- PEAR_Info導入

PEAR_Info導入

PEAR_Infoは、 あなたの現在インストールしているPEARに関する情報を得て表示します PEAR_Infoページは、 pkg_Package_Nameの形をしている個々のパッケージのアンカーと同様に、 容易な探索のためのA-Zインデックスを特徴とします (例えばurl.tld/pearinfo.php#pkg_PEAR_Info)。 PEAR_Infoは、さらに、 現在インストールされたパッケージの著者に関する情報と共に、 完全な「PEARクレジット」ページを特徴とします。 PEAR_Infoは、 さらに最新にすることを支援する為の、 PEARから利用可能なすべての後のバージョンを表示します。

例 51-1PEAR_Infoの使用法

<?php
    require_once 'PEAR/Info.php';

    /*
    If you need to set a http_proxy value at run-time you can use the
    following, this must be called BEFORE instantiating the PEAR_Info object
    */

    PEAR_Info::setProxy('your.proxy.here');

    /*
    Optional pear_dir variable, allows you to choose where your PEAR
    install is, in case its not found
    */

    $pear_dir = "/path/to/your/pear/files";

    /*
    Instantiate PEAR_Info object
    */

    $info = new PEAR_Info($pear_dir);

    /*
    Show PEAR_Info output
    */

    $info->show();
?>
前のページ | ホーム | 次のページ
PEAR_Info | 上に戻る | PEAR_Info::PEAR_Info

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Info::PEAR_Info

PEAR_Info::PEAR_Info -- コンストラクタ

概要

require_once "PEAR/Info.php";

void PEAR_Info::PEAR_Info ([string $pear_dir=''])

説明

コンストラクタです。

パラメータ

  • string $pear_dir - フルパスのPEARのインストールディレクトリです。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
導入 | 上に戻る | PEAR_Info::setProxy

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Info::setProxy

PEAR_Info::setProxy -- proxyを設定する

概要

require_once "PEAR/Info.php";

void PEAR_Info::setProxy ()

説明

ランタイムで設定するhttp_proxy構成を設定する。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
PEAR_Info::PEAR_Info | 上に戻る | PEAR_Info::show

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Info::show

PEAR_Info::show -- PEAR_Infoを表示する

概要

require_once "PEAR/Info.php";

void PEAR_Info::show ()

説明

PEAR_Infoの結果を表示します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Info::setProxy | 上に戻る | PEAR_PackageFileManager

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFileManager

目次
PEAR_PackageFileManager クラスの概要 -- PEAR :: PackageFileManager は、PEAR の package.xml ファイルの <filelist></filelist> セクションを更新して現在の状態を反映し、リリースの準備をする
コンストラクタ PEAR_PackageFileManager::PEAR_PackageFileManager() -- なにもせず、setOptions を使用する
PEAR_PackageFileManager::addConfigureOption() -- インストール時にソースをビルドする際の設定オプションを追加する
PEAR_PackageFileManager::addDependency() -- 他のパッケージや拡張モジュール/php への依存情報を追加する
PEAR_PackageFileManager::addMaintainer() -- メンテナ一覧にメンテナを追加する
PEAR_PackageFileManager::addPlatformException() -- インストール時のプラットフォーム条件を追加する
PEAR_PackageFileManager::addGlobalReplacement() -- すべてのファイルに対して置換オプションを追加する
PEAR_PackageFileManager::addReplacement() -- 特定のファイルに対して置換オプションを追加する
PEAR_PackageFileManager::addRole() -- ロールマッピングオプションに、拡張子とロールの対応を追加する
PEAR_PackageFileManager::detectDependencies() -- PHP_CompatInfo を使用して、PHP および拡張モジュールの 依存性を自動検出する
PEAR_PackageFileManager::debugPackageFile() -- package.xml を書き換える前に「常に」これで出力内容を確かめること!!
PEAR_PackageFileManager::getWarnings() -- 警告の一覧を取得する
PEAR_PackageFileManager::isIncludeable() -- include_path 内の個々の値について http://www.php.net/file_exists をコールする
PEAR_PackageFileManager::pushWarning() -- 警告スタックに警告を保存する
PEAR_PackageFileManager::raiseError() -- エラー生成コードを短縮するユーティリティ関数
PEAR_PackageFileManager::setOptions() -- package.xml の生成オプションを設定する
PEAR_PackageFileManager::writePackageFile() -- 新しく作成された <release></release> タグを使用して package.xml ファイルを書き出す
PEAR_PackageFileManager_CVS クラスの概要 -- CVS をチェックアウトしたものからファイル一覧を生成する
PEAR_PackageFileManager_CVS::dirList() -- CVS リポジトリ内の全ファイルの一覧を返す
PEAR_PackageFileManager_File クラスの概要 -- ディレクトリ内のファイル一覧を取得する
コンストラクタ PEAR_PackageFileManager_File::PEAR_PackageFileManager_File() -- ファイル一覧ジェネレータを設定する
PEAR_PackageFileManager_File::dirList() -- $directory およびそのサブディレクトリ内のすべてのファイルの一覧を取得する
PEAR_PackageFileManager_File::getFileList() -- パッケージファイルの <filelist></filelist> の部分を 作成する
PEAR_PackageFileManager_XMLOutput クラスの概要 -- XML 出力のためのクラス
PEAR_PackageFileManager パッケージの定数 -- PEAR_PackageFileManager で定義され、使用されている定数
PEAR_PackageFileManager パッケージのグローバル変数 -- PEAR_PackageFileManager で定義され、使用されているグローバル変数
前のページ | ホーム | 次のページ
PEAR_Info::show | 上に戻る | PEAR_PackageFileManager クラスの概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFileManager パッケージの定数

PEAR_PackageFileManager パッケージの定数 -- PEAR_PackageFileManager で定義され、使用されている定数

すべての定数

PackageFileManager.php で定義されている定数

表 51-1PackageFileManager.php で定義されている定数

名前 | 値 | 行番号
PEAR_PACKAGEFILEMANAGER_ADD_MAINTAINERS | 19 | 50
PEAR_PACKAGEFILEMANAGER_CANTCOPY_PKGFILE | 9 | 40
PEAR_PACKAGEFILEMANAGER_CANTOPEN_TMPPKGFILE | 10 | 41
PEAR_PACKAGEFILEMANAGER_CANTWRITE_PKGFILE | 7 | 38
PEAR_PACKAGEFILEMANAGER_CVS_PACKAGED | 26 | 57
PEAR_PACKAGEFILEMANAGER_DEST_UNWRITABLE | 8 | 39
PEAR_PACKAGEFILEMANAGER_DIR_DOESNT_EXIST | 13 | 44
PEAR_PACKAGEFILEMANAGER_GENERATOR_NOTFOUND | 5 | 36
PEAR_PACKAGEFILEMANAGER_GENERATOR_NOTFOUND_ANYWHERE | 6 | 37
PEAR_PACKAGEFILEMANAGER_IGNORED_EVERYTHING | 21 | 52
PEAR_PACKAGEFILEMANAGER_INVALID_PACKAGE | 22 | 53
PEAR_PACKAGEFILEMANAGER_INVALID_REPLACETYPE | 23 | 54
PEAR_PACKAGEFILEMANAGER_INVALID_ROLE | 24 | 55
PEAR_PACKAGEFILEMANAGER_NOBASEDIR | 4 | 35
PEAR_PACKAGEFILEMANAGER_NOCVSENTRIES | 12 | 43
PEAR_PACKAGEFILEMANAGER_NODESC | 18 | 49
PEAR_PACKAGEFILEMANAGER_NOPACKAGE | 15 | 46
PEAR_PACKAGEFILEMANAGER_NOPKGDIR | 3 | 34
PEAR_PACKAGEFILEMANAGER_NOSTATE | 1 | 32
PEAR_PACKAGEFILEMANAGER_NOSUMMARY | 17 | 48
PEAR_PACKAGEFILEMANAGER_NOVERSION | 2 | 33
PEAR_PACKAGEFILEMANAGER_NO_FILES | 20 | 51
PEAR_PACKAGEFILEMANAGER_PATH_DOESNT_EXIST | 11 | 42
PEAR_PACKAGEFILEMANAGER_PHP_NOT_PACKAGE | 25 | 56
PEAR_PACKAGEFILEMANAGER_RUN_SETOPTIONS | 14 | 45
PEAR_PACKAGEFILEMANAGER_WRONG_MROLE | 16 | 47

前のページ | ホーム | 次のページ
PEAR_PackageFileManager_XMLOutput クラスの概要 | 上に戻る | PEAR_PackageFileManager パッケージのグローバル変数

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFileManager パッケージのグローバル変数

PEAR_PackageFileManager パッケージのグローバル変数 -- PEAR_PackageFileManager で定義され、使用されているグローバル変数

すべてのグローバル変数

PackageFileManager.php で定義されているグローバル変数

表 51-1PackageFileManager.php で定義されているグローバル変数

名前 値 行番号
$GLOBALS['_PEAR_PACKAGEFILEMANAGER_ERRORS']
1     array(
2         'en' =>
3         array(
4             PEAR_PACKAGEFILEMANAGER_NOSTATE =>
5                 'Release State (option \'state\') must by specified in PEAR_PackageFileManager setOptions (alpha|beta|stable)',
6             PEAR_PACKAGEFILEMANAGER_NOVERSION =>
7                 'Release Version (option \'version\') must be specified in PEAR_PackageFileManager setOptions',
8             PEAR_PACKAGEFILEMANAGER_NOPKGDIR =>
9                 'Package source base directory (option \'packagedirectory\') must be ' .
10                'specified in PEAR_PackageFileManager setOptions',
11            PEAR_PACKAGEFILEMANAGER_NOBASEDIR =>
12                'Package install base directory (option \'baseinstalldir\') must be ' .
13                'specified in PEAR_PackageFileManager setOptions',
14            PEAR_PACKAGEFILEMANAGER_GENERATOR_NOTFOUND =>
15                'Base class "%s" can\'t be located',
16            PEAR_PACKAGEFILEMANAGER_GENERATOR_NOTFOUND_ANYWHERE =>
17                'Base class "%s" can\'t be located in default or user-specified directories',
18            PEAR_PACKAGEFILEMANAGER_CANTWRITE_PKGFILE =>
19                'Failed to write package.xml file to destination directory',
20            PEAR_PACKAGEFILEMANAGER_DEST_UNWRITABLE =>
21                'Destination directory "%s" is unwritable',
22            PEAR_PACKAGEFILEMANAGER_CANTCOPY_PKGFILE =>
23                'Failed to copy package.xml.tmp file to package.xml',
24            PEAR_PACKAGEFILEMANAGER_CANTOPEN_TMPPKGFILE =>
25                'Failed to open temporary file "%s" for writing',
26            PEAR_PACKAGEFILEMANAGER_PATH_DOESNT_EXIST =>
27                'package.xml file path "%s" doesn\'t exist or isn\'t a directory',
28            PEAR_PACKAGEFILEMANAGER_NOCVSENTRIES =>
29                'Directory "%s" is not a CVS directory (it must have the CVS/Entries file)',
30            PEAR_PACKAGEFILEMANAGER_DIR_DOESNT_EXIST =>
31                'Package source base directory "%s" doesn\'t exist or isn\'t a directory',
32            PEAR_PACKAGEFILEMANAGER_RUN_SETOPTIONS =>
33                'Run $managerclass->setOptions() before any other methods',
34            PEAR_PACKAGEFILEMANAGER_NOPACKAGE =>
35                'Package Name (option \'package\') must by specified in PEAR_PackageFileManager '.
36                'setOptions to create a new package.xml',
37            PEAR_PACKAGEFILEMANAGER_NOSUMMARY =>
38                'Package Summary (option \'summary\') must by specified in PEAR_PackageFileManager' .
39                ' setOptions to create a new package.xml',
40            PEAR_PACKAGEFILEMANAGER_NODESC =>
41                'Detailed Package Description (option \'description\') must be' .
42                ' specified in PEAR_PackageFileManager setOptions to create a new package.xml',
43            PEAR_PACKAGEFILEMANAGER_WRONG_MROLE =>
44                'Maintainer role must be one of "%s", was "%s"',
45            PEAR_PACKAGEFILEMANAGER_ADD_MAINTAINERS =>
46                'Add maintainers to a package before generating the package.xml',
47            PEAR_PACKAGEFILEMANAGER_NO_FILES =>
48                'No files found, check the path "%s"',
49            PEAR_PACKAGEFILEMANAGER_IGNORED_EVERYTHING =>
50                'No files left, check the path "%s" and ignore option "%s"',
51            PEAR_PACKAGEFILEMANAGER_INVALID_PACKAGE =>
52                'Package validation failed:%s%s',
53            PEAR_PACKAGEFILEMANAGER_INVALID_REPLACETYPE =>
54                'Replacement Type must be one of "%s", was passed "%s"',
55            PEAR_PACKAGEFILEMANAGER_INVALID_ROLE =>
56                'Invalid file role passed to addRole, must be one of "%s", was passed "%s"',
57            PEAR_PACKAGEFILEMANAGER_PHP_NOT_PACKAGE =>
58                'addDependency had PHP as a package, use type="php"',
59            PEAR_PACKAGEFILEMANAGER_CVS_PACKAGED =>
60                'path "%path%" contains CVS directory',
61            ),)
63

前のページ | ホーム | 次のページ
PEAR_PackageFileManager パッケージの定数 | 上に戻る | PEAR_PackageUpdate

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFileManager_CVS クラスの概要

PEAR_PackageFileManager_CVS クラスの概要 -- CVS をチェックアウトしたものからファイル一覧を生成する

CVS をチェックアウトしたものからファイル一覧を生成する

これはリポジトリに対して動作するのではなく、 チェックアウト済みの CVS モジュールに対してのみ動作することに 注意しましょう。

PEAR_PackageFileManager_CVS のクラス階層

  • PEAR_PackageFileManager_File

    • PEAR_PackageFileManager_CVS

PEAR_PackageFileManager_CVS が継承するメソッド

表 51-1PEAR_PackageFileManager_File から継承するメソッド

メソッド名 | 概要
コンストラクタ PEAR_PackageFileManager_File::PEAR_PackageFileManager_File() | File のファイルリストを生成する
PEAR_PackageFileManager_File::dirList() | $directory およびそのサブディレクトリ内のすべてのファイルの 一覧を取得する
PEAR_PackageFileManager_File::getFileList() | パッケージファイルの Generate the <filelist></filelist> セクションを生成する

前のページ | ホーム | 次のページ
PEAR_PackageFileManager::writePackageFile() | 上に戻る | PEAR_PackageFileManager_CVS::dirList()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFileManager_CVS::dirList

PEAR マニュアル
前のページ 次のページ

PEAR_PackageFileManager_CVS::dirList()

PEAR_PackageFileManager_CVS::dirList() -- CVS リポジトリ内の全ファイルの一覧を返す

概要

require_once 'PEAR/PackageFileManager/Cvs.php';

array PEAR_PackageFileManager_CVS::dirList (string $directory)

説明

この関数は、parent::dirList() と似ていますが、通常のファイル一覧を取得するかわりに $directory および そのサブディレクトリからすべての CVS/Entries ファイルの一覧を取得します。 その後、取得したファイルを読み込んで CVS リポジトリに属している ファイルの一覧を作成します。ファイルが更新されているかどうかは チェックしません。また追加・削除されたファイルは無視されます。

パラメータ

string $directory

一覧を取得したいディレクトリへの完全パス。

返り値

ディレクトリ内のファイルの一覧を返します。

例外・エラー

例外はスローされません。

参照

_readCVSEntries() および

_recurDirList() も参照ください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_PackageFileManager_CVS クラスの概要 | 上に戻る | PEAR_PackageFileManager_File クラスの概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFileManager_File クラスの概要

PEAR_PackageFileManager_File クラスの概要 -- ディレクトリ内のファイル一覧を取得する

ディレクトリ内のファイル一覧を取得する

このクラスは、ディレクトリ内のファイルの一覧を取得するために使用されます。 package.xml を作成する際に cvs リポジトリに登録されているファイルのみを 対象にしたい場合には、 PEAR_PackageFileManager_CVS クラスを使用してください。

PEAR_PackageFileManager_File のクラス階層

  • PEAR_PackageFileManager_File

表 51-1PEAR_PackageFileManager_File を継承するクラス

クラス | 概要
PEAR_PackageFileManager_CVS | CVS をチェックアウトしたものからファイル一覧を生成する

前のページ | ホーム | 次のページ
PEAR_PackageFileManager_CVS::dirList() | 上に戻る | コンストラクタ PEAR_PackageFileManager_File::PEAR_PackageFileManager_File()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFileManager_File::dirList

PEAR マニュアル
前のページ 次のページ

PEAR_PackageFileManager_File::dirList()

PEAR_PackageFileManager_File::dirList() -- $directory およびそのサブディレクトリ内のすべてのファイルの一覧を取得する

概要

require_once 'PEAR/PackageFileManager/File.php';

array PEAR_PackageFileManager_File::dirList (string $directory)

説明

返り値は、ファイルへの完全パスを要素に持つ配列となります。

パラメータ

string $directory

一覧を取得したいディレクトリへの完全パス。

返り値

ディレクトリ内のファイルの一覧を返します。

例外・エラー

PEAR_PACKAGEFILEMANAGER_DIR_DOESNT_EXIST をスローします。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
コンストラクタ PEAR_PackageFileManager_File::PEAR_PackageFileManager_File() | 上に戻る | PEAR_PackageFileManager_File::getFileList()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFileManager_File::getFileList

PEAR マニュアル
前のページ 次のページ

PEAR_PackageFileManager_File::getFileList()

PEAR_PackageFileManager_File::getFileList() -- パッケージファイルの <filelist></filelist> の部分を 作成する

概要

require_once 'PEAR/PackageFileManager/File.php';

array PEAR_PackageFileManager_File::getFileList ()

説明

この関数は、パッケージに属するすべてのファイルを含む配列を 裏側で作成します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_PackageFileManager_File::dirList() | 上に戻る | PEAR_PackageFileManager_XMLOutput クラスの概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ PEAR_PackageFileManager_File::PEAR_PackageFileManager_File

PEAR マニュアル
前のページ 次のページ

コンストラクタ PEAR_PackageFileManager_File::PEAR_PackageFileManager_File()

コンストラクタ PEAR_PackageFileManager_File::PEAR_PackageFileManager_File() -- ファイル一覧ジェネレータを設定する

概要

require_once 'PEAR/PackageFileManager/File.php';

void constructor PEAR_PackageFileManager_File::PEAR_PackageFileManager_File (PEAR_PackageFileManager &$parent, array $options)

説明

このクラスが使用するオプションは 'ignore' および 'include' のみです。詳細な情報およびこのオプションの書式については PEAR_PackageFileManager::setOptions() を参照ください。

パラメータ

PEAR_PackageFileManager &$parent

array $options

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_PackageFileManager_File クラスの概要 | 上に戻る | PEAR_PackageFileManager_File::dirList()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFileManager クラスの概要

PEAR_PackageFileManager クラスの概要 -- PEAR :: PackageFileManager は、PEAR の package.xml ファイルの <filelist></filelist> セクションを更新して現在の状態を反映し、リリースの準備をする

PEAR :: PackageFileManager は、PEAR の package.xml ファイルの <filelist></filelist> セクションを更新して現在の状態を反映し、リリースの準備をします。

PEAR_PackageFileManager クラスは、プラグインシステムを使用して パッケージ内のファイル一覧を生成します。これにより、標準的な ディレクトリの再帰パース (file 型のプラグイン) だけでなく より高度な仕組みが使用可能となります。例えば CVS ブラウザである PEAR_PackageFileManager_Cvs は、CVS からローカルにチェックアウトした ファイルの一覧を取得し、その際にローカルにある他のファイルは 無視します。

その他のオプションとしては、ファイルの拡張子に応じたロールの指定 (たとえば、拡張子 .php のファイルには role="php" を指定するなど)・ディレクトリへのロールの指定 ("tests" という名前のディレクトリには、デフォルトで role="tests" が指定されます)・例外などがあります。 例外とは、* や ? のワイルドカードを用いて指定したパス名で、 これらに対してはデフォルトロールではなく別のものを指定します。 たとえば、debug.tpl というテンプレートは通常は data となるでしょう。 ですが、これは docs ロールに含まれるべきです。 ファイルをパッケージから取り除くには、これらのオプションとともに ignore オプションを使用します。

リリースの際に必要となるオプションは version、baseinstalldir、 state および packagedirectory (package.xml の作成対象となる パッケージが存在する場所へのフルパス) です。

使用例:
1      <?php
2      require_once('PEAR/PackageFileManager.php');
3      $packagexml = new PEAR_PackageFileManager;
4      $e = $packagexml->setOptions(
5      array('baseinstalldir' => 'PhpDocumentor',
6       'version' => '1.2.1',
7       'packagedirectory' => 'C:/Web Pages/chiara/phpdoc2/',
8       'state' => 'stable',
9       'filelistgenerator' => 'cvs', // cvs から作成します。ディレクトリから作成する場合は file を使用します。
10      'notes' => 'We\'ve implemented many new and exciting features',
11      'ignore' => array('TODO', 'tests/'), // TODO、そして tests/ 以下の全ファイルを無視します。
12      'installexceptions' => array('phpdoc' => '/*'), // baseinstalldir ="/" for phpdoc
13      'dir_roles' => array('tutorials' => 'doc'),
14      'exceptions' => array('README' => 'doc', // README は data になってしまいますが、これで doc となります。
15                            'PHPLICENSE.txt' => 'doc'))); // ライセンスファイルについても同様です。
16     if (PEAR::isError($e)) {
17         echo $e->getMessage();
18         die();
19     }
20     $e = $test->addPlatformException('pear-phpdoc.bat', 'windows');
21     if (PEAR::isError($e)) {
22         echo $e->getMessage();
23         exit;
24     }
25     $packagexml->addRole('pkg', 'doc'); // 新しいロールのマッピングを追加します。
26     if (PEAR::isError($e)) {
27         echo $e->getMessage();
28         exit;
29     }
30     // ファイル内の @PHP-BIN@ を PHP 実行ファイルへのパスに置き換えます! すばらしい。
31     $e = $test->addReplacement('pear-phpdoc', 'pear-config', '@PHP-BIN@', 'php_bin');
32     if (PEAR::isError($e)) {
33         echo $e->getMessage();
34         exit;
35     }
36     $e = $test->addReplacement('pear-phpdoc.bat', 'pear-config', '@PHP-BIN@', 'php_bin');
37     if (PEAR::isError($e)) {
38         echo $e->getMessage();
39         exit;
40     }
41     // debugPackageFile() を使用することに注意してください - 「非常に」重要です。
42     if (isset($_GET['make']) || $_SERVER['argv'][1] == 'make') {
43         $e = $packagexml->writePackageFile();
44     } else {
45         $e = $packagexml->debugPackageFile();
46     }
47     if (PEAR::isError($e)) {
48         echo $e->getMessage();
49         die();
50     }
51     ?>

さらに、package.xml ファイルを 1 から手で作成することも可能です。 新しいオプションである package、summary、description や addMaintainer() メソッドを使用することができます。

PEAR_PackageFileManager のクラス階層

  • PEAR_PackageFileManager

前のページ | ホーム | 次のページ
PEAR_PackageFileManager | 上に戻る | コンストラクタ PEAR_PackageFileManager::PEAR_PackageFileManager()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFileManager_XMLOutput クラスの概要

PEAR_PackageFileManager_XMLOutput クラスの概要 -- XML 出力のためのクラス

XML 出力のためのクラス

このパッケージに関する文書は、未作成です。

PEAR_PackageFileManager_XMLOutput のクラス階層

  • PEAR_Common

    • PEAR_PackageFileManager_XMLOutput

前のページ | ホーム | 次のページ
PEAR_PackageFileManager_File::getFileList() | 上に戻る | PEAR_PackageFileManager パッケージの定数

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFileManager::addConfigureOption

PEAR マニュアル
前のページ 次のページ

PEAR_PackageFileManager::addConfigureOption()

PEAR_PackageFileManager::addConfigureOption() -- インストール時にソースをビルドする際の設定オプションを追加する

概要

require_once 'PEAR/PackageFileManager.php';

void|PEAR_Error PEAR_PackageFileManager::addConfigureOption (string $name, string $prompt [, string $default = NULL])

説明

このオプションは、インストール時にビルド作業が発生する PECL プロジェクトにおいてのみ有用です。

パラメータ

string $name

オプションの名前

string $prompt

ユーザに表示するプロンプト

string $default

デフォルト値

例外・エラー

PEAR_PACKAGEFILEMANAGER_RUN_SETOPTIONS をスローします。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
コンストラクタ PEAR_PackageFileManager::PEAR_PackageFileManager() | 上に戻る | PEAR_PackageFileManager::addDependency()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFileManager::addDependency

PEAR マニュアル
前のページ 次のページ

PEAR_PackageFileManager::addDependency()

PEAR_PackageFileManager::addDependency() -- 他のパッケージや拡張モジュール/php への依存情報を追加する

概要

require_once 'PEAR/PackageFileManager.php';

void|PEAR_Error PEAR_PackageFileManager::addDependency (string $name [, string $version = FALSE [, string $operator = 'ge' [, string $type = 'pkg' [, boolean $optional = FALSE]]]])

説明

もし既存の依存情報がある場合、それを上書きします。言い換えると、 すでに PHP 4.1.0 に対する依存性が設定されている場合に addDependency('php', '4.3.0', 'ge', 'php') がコールされると、既存の PHP 4.1.0 に対する依存性が PHP 4.3.0 による 新しい依存性に置き換えられるということです。

パラメータ

string $name

依存性の要素名

string $version

依存するバージョン

string $operator

バージョンに対応する演算子で、 'has'・'not'・'lt'・'le'・ 'eq'・'ne'・'ge' あるいは 'gt' のうちのひとつ。

string $type

依存性の形式。'pkg'・'ext'・ 'php'・'prog'・'os'・'sapi' あるいは 'zend' のうちのひとつ。

boolean $optional

依存性がオプションの場合に TRUE

例外・エラー

PEAR_PACKAGEFILEMANAGER_RUN_SETOPTIONS あるいは

PEAR_PACKAGEFILEMANAGER_PHP_NOT_PACKAGE をスローします。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_PackageFileManager::addConfigureOption() | 上に戻る | PEAR_PackageFileManager::addMaintainer()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFileManager::addGlobalReplacement

PEAR マニュアル
前のページ 次のページ

PEAR_PackageFileManager::addGlobalReplacement()

PEAR_PackageFileManager::addGlobalReplacement() -- すべてのファイルに対して置換オプションを追加する

概要

require_once 'PEAR/PackageFileManager.php';

void PEAR_PackageFileManager::addglobalreplacement (string $type, string $from, string $to)

説明

インストール時に実行される複雑な置換関数を設定します。これは、 インストールするファイルに対してプラットフォーム固有の値を 設定するために使用することができます。

$type が php-const の場合は、$to には PHP の定数名を指定しなければ なりません。$type が pear-config の場合は、$to には PEAR_Config::get() メソッドでアクセス可能な PEAR 設定変数を 指定しなければなりません。 $type が package-info の場合は、$to には package.xml の セクション名を指定する必要があります。

パラメータ

string $type

変数の形式。php-const、pear-config あるいは package-info のいずれかです。

string $from

ソースファイル内の置換対象テキスト。

string $to

置換に使用する変数名。

例外・エラー

PEAR_PACKAGEFILEMANAGER_INVALID_REPLACETYPE をスローします。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_PackageFileManager::addPlatformException() | 上に戻る | PEAR_PackageFileManager::addReplacement()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFileManager::addMaintainer

PEAR マニュアル
前のページ 次のページ

PEAR_PackageFileManager::addMaintainer()

PEAR_PackageFileManager::addMaintainer() -- メンテナ一覧にメンテナを追加する

概要

require_once 'PEAR/PackageFileManager.php';

void PEAR_PackageFileManager::addMaintainer (string $handle, lead|developer|contributor|helper $role, string $name, string $email)

説明

メンテナは、pear.php.net のアカウントを保有している必要があります。 最初のパラメータがアカウント名 (例えば、pear.php.net における Greg Beaver のハンドルは cellog です) となります。すべてのメンテナは、以下の 4 つのうちのいずれかのロールを保持します。

  • lead: 主となるメンテナ

  • developer: プロジェクトにおける重要な開発者

  • contributor: 名前のとおり

  • helper: 同上

最後に、メンテナの名前およびメールアドレスを指定します。

パラメータ

string $handle

メンテナの pear.php.net 上のユーザ名。

lead|developer|contributor|helper $role

メンテナのロール。

string $name

メンテナのフルネーム。

string $email

メンテナのメールアドレス。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_PackageFileManager::addDependency() | 上に戻る | PEAR_PackageFileManager::addPlatformException()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFileManager::addPlatformException

PEAR マニュアル
前のページ 次のページ

PEAR_PackageFileManager::addPlatformException()

PEAR_PackageFileManager::addPlatformException() -- インストール時のプラットフォーム条件を追加する

概要

require_once 'PEAR/PackageFileManager.php';

void PEAR_PackageFileManager::addPlatformException (string $path, string $platform)

説明

特別な追加情報が必要ない場合、プラットフォームを指定する文字列の書式は OS-version-cpu-extra でなければなりません。また、OS は "windows." のように小文字で指定する必要があります。 条件に一致するかどうかは正規表現を使用して調べられますが、 ワイルドカード文字には .* や .? ではなく * および ? を使用します。 hpux/aix/irix/linux はすべて排他的であることに注意しましょう。 「Windows 以外」を選択するには、(*ix|*ux|darwin) のように指定します。 PEAR 1.3.2 以降なら、!windows のように指定できます。

この情報は、OS/Guess.php のソースを調べて得たものです。 もしここで説明している意味がよくわからない場合は、このファイルを 読みましょう。

パラメータ

string $path

ファイルへの相対パス (packagedirectory オプションの値を起点とする)。

string $platform

プラットフォームを示す文字列。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_PackageFileManager::addMaintainer() | 上に戻る | PEAR_PackageFileManager::addGlobalReplacement()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFileManager::addReplacement

PEAR マニュアル
前のページ 次のページ

PEAR_PackageFileManager::addReplacement()

PEAR_PackageFileManager::addReplacement() -- 特定のファイルに対して置換オプションを追加する

概要

require_once 'PEAR/PackageFileManager.php';

void PEAR_PackageFileManager::addReplacement (string $path, string $type, string $from, string $to)

説明

インストール時に実行される複雑な置換関数を設定します。これは、 インストールするファイルに対してプラットフォーム固有の値を 設定するために使用することができます。

$type が php-const の場合は、$to には PHP の定数名を指定しなければ なりません。$type が pear-config の場合は、$to には PEAR_Config::get() メソッドでアクセス可能な PEAR 設定変数を 指定しなければなりません。 $type が package-info の場合は、$to には package.xml の セクション名を指定する必要があります。

パラメータ

string $path

ファイルへの相対パス (packagedirectory オプションの値を起点とする)。

string $type

変数の形式。php-const、pear-config あるいは package-info のいずれかです。

string $from

ソースファイル内の置換対象テキスト。

string $to

置換に使用する変数名。

例外・エラー

PEAR_PACKAGEFILEMANAGER_INVALID_REPLACETYPE をスローします。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_PackageFileManager::addGlobalReplacement() | 上に戻る | PEAR_PackageFileManager::addRole()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFileManager::addRole

PEAR マニュアル
前のページ 次のページ

PEAR_PackageFileManager::addRole()

PEAR_PackageFileManager::addRole() -- ロールマッピングオプションに、拡張子とロールの対応を追加する

概要

require_once 'PEAR/PackageFileManager.php';

void PEAR_PackageFileManager::addRole (string $extension, string $role)

説明

ロールは、ファイルのインストール先およびインストール方法に 影響を及ぼします。role="data" が指定されたファイルは、 role="php" が指定されたプログラムファイルとは まったく別のディレクトリ階層に配置されます。

PEAR 1.3b2 では、以下のロールが使用可能です。

  • php (もっとも一般的です)

  • data

  • doc

  • test

  • script (ファイルに実行可能属性を与えます)

  • src

パラメータ

string $extension

ファイルの拡張子。

string $role

ロール。

例外・エラー

PEAR_PACKAGEFILEMANAGER_INVALID_ROLE をスローします。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_PackageFileManager::addReplacement() | 上に戻る | PEAR_PackageFileManager::detectDependencies()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFileManager::debugPackageFile

PEAR マニュアル
前のページ 次のページ

PEAR_PackageFileManager::debugPackageFile()

PEAR_PackageFileManager::debugPackageFile() -- package.xml を書き換える前に「常に」これで出力内容を確かめること!!

概要

require_once 'PEAR/PackageFileManager.php';

void PEAR_PackageFileManager::debugPackageFile ()

説明

このメソッドは、writePackageFile() に対して package.xml の内容を 単純に表示するように指示します。コマンドライン版および Web 版 ($_SERVER['PATH_TRANSLATED'] が存在すると 自動的に実行されます) の両方に対して働きます。

例外・エラー

throws no exceptions thrown

参照

PEAR_PackageFileManager::writePackageFile() も参照ください。コマンドライン版および Web 版のいずれの場合にも、 デバッグパラメータを指定してコールされます。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_PackageFileManager::detectDependencies() | 上に戻る | PEAR_PackageFileManager::getWarnings()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFileManager::detectDependencies

PEAR マニュアル
前のページ 次のページ

PEAR_PackageFileManager::detectDependencies()

PEAR_PackageFileManager::detectDependencies() -- PHP_CompatInfo を使用して、PHP および拡張モジュールの 依存性を自動検出する

概要

require_once 'PEAR/PackageFileManager.php';

void|PEAR_Error PEAR_PackageFileManager::detectDependencies ()

説明

パッケージ依存性を追加するために addDependency() を使用します。

例外・エラー

PEAR_PACKAGEFILEMANAGER_RUN_SETOPTIONS、

PEAR_PACKAGEFILEMANAGER_PHP_COMPAT_NOT_INSTALLED あるいは

PEAR_PACKAGEFILEMANAGER_NO_PHPCOMPATINFO をスローします。

参照

PEAR_PackageFileManager::addDependency() も参照ください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_PackageFileManager::addRole() | 上に戻る | PEAR_PackageFileManager::debugPackageFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFileManager::getWarnings

PEAR マニュアル
前のページ 次のページ

PEAR_PackageFileManager::getWarnings()

PEAR_PackageFileManager::getWarnings() -- 警告の一覧を取得する

概要

require_once 'PEAR/PackageFileManager.php';

array PEAR_PackageFileManager::getWarnings ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_PackageFileManager::debugPackageFile() | 上に戻る | PEAR_PackageFileManager::isIncludeable()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFileManager::isIncludeable

PEAR マニュアル
前のページ 次のページ

PEAR_PackageFileManager::isIncludeable()

PEAR_PackageFileManager::isIncludeable() -- include_path 内の個々の値について http://www.php.net/file_exists をコールする

概要

require_once 'PEAR/PackageFileManager.php';

boolean PEAR_PackageFileManager::isIncludeable (string $filename)

説明

ファイルが見つかった場合には http://www.php.net/is_readable をコールします。

パラメータ

string $filename

例外・エラー

例外はスローされません。

static

static

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_PackageFileManager::getWarnings() | 上に戻る | PEAR_PackageFileManager::pushWarning()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ PEAR_PackageFileManager::PEAR_PackageFileManager

PEAR マニュアル
前のページ 次のページ

コンストラクタ PEAR_PackageFileManager::PEAR_PackageFileManager()

コンストラクタ PEAR_PackageFileManager::PEAR_PackageFileManager() -- なにもせず、setOptions を使用する

概要

require_once 'PEAR/PackageFileManager.php';

void constructor PEAR_PackageFileManager::PEAR_PackageFileManager ()

説明

setOptions から PEAR_Error を返すことができるようにするため、 コンストラクタは使用されません。

例外・エラー

例外はスローされません。

参照

PEAR_PackageFileManager::setOptions() を参照ください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_PackageFileManager クラスの概要 | 上に戻る | PEAR_PackageFileManager::addConfigureOption()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFileManager::pushWarning

PEAR マニュアル
前のページ 次のページ

PEAR_PackageFileManager::pushWarning()

PEAR_PackageFileManager::pushWarning() -- 警告スタックに警告を保存する

概要

require_once 'PEAR/PackageFileManager.php';

void PEAR_PackageFileManager::pushWarning (mixed $code, mixed $info)

説明

このパッケージに関する文書は、未作成です。

パラメータ

mixed $code

mixed $info

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_PackageFileManager::isIncludeable() | 上に戻る | PEAR_PackageFileManager::raiseError()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFileManager::raiseError

PEAR マニュアル
前のページ 次のページ

PEAR_PackageFileManager::raiseError()

PEAR_PackageFileManager::raiseError() -- エラー生成コードを短縮するユーティリティ関数

概要

require_once 'PEAR/PackageFileManager.php';

PEAR_Error PEAR_PackageFileManager::raiseError (mixed $code [, mixed $i1 = '' [, mixed $i2 = '']])

説明

1     function raiseError($code, $i1 = '', $i2 = '')
2         {
3             return PEAR::raiseError('PEAR_PackageFileManager Error: ' .
4                         sprintf($GLOBALS['_PEAR_PACKAGEFILEMANAGER_ERRORS'][$this->_options['lang']][$code],
5                         $i1, $i2), $code);
6         }

パラメータ

mixed $code

mixed $i1

mixed $i2

例外・エラー

例外はスローされません。

static

static

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_PackageFileManager::pushWarning() | 上に戻る | PEAR_PackageFileManager::setOptions()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFileManager::setOptions

PEAR マニュアル
前のページ 次のページ

PEAR_PackageFileManager::setOptions()

PEAR_PackageFileManager::setOptions() -- package.xml の生成オプションを設定する

概要

require_once 'PEAR/PackageFileManager.php';

void|PEAR_Error PEAR_PackageFileManager::setOptions ([array $options = array()])

説明

オプションの配列は以下のような形式になります。
1      $options = array('オプション名' => <オプションの値>);

以下では、説明を簡略化するために オプション名のクォートを省略しています。

設定オプション

  • lang: lang は、表示されるエラーメッセージの言語を制御します。 現在は英語のエラーメッセージしか存在しませんが、 将来は他の言語が追加される可能性があります。 とりうる値: en (デフォルト)

  • packagefile: パッケージファイルの名前。デフォルトは package.xml です。

  • pathtopackagefile: 既存のパッケージファイルを読み込む際のパッケージファイルへのパス。 packagedirectory とは別の場所にある場合に指定します。

  • packagedirectory: パッケージのベースディレクトリへのパス。例えば PEAR_PackageFileManager の場合は、このパスは /path/to/pearcvs/pear/PEAR_PackageFileManager となります。 /path/to/pearcvs は、ハードディスク上のローカルパスです。

  • outputdirectory: 生成された package.xml を配置するパス。 デフォルトではこの値は無視され、package.xml は packagedirectory に作成されます。

  • filelistgenerator: <filelist> セクションで使用するプラグイン。 このリリースでは、file および cvs の 2 種類のジェネレータ プラグインが存在します。詳細は、それぞれのプラグインの ドキュメントを参照ください。

  • usergeneratordir: より高度な設定をしたい方向けです。自分でファイルリスト作成 プラグインを作成した場合に、このオプションで そのプラグインの場所を PEAR_PackageFileManager に教えます。 プラグインの名前が foo の場合、クラス名が PEAR_PackageFileManager_Foo である必要があります。このクラスの 存在する場所は問いません。デフォルトでは、Foo プラグインは PEAR/PackageFileManager/Foo.php に配置されます。 このオプションに /path/to/foo を指定した場合、setOptions は /path/to/foo/Foo.php から PEAR_PackageFileManager_Foo を探します。

  • doctype: package.xml ファイルの DTD。デフォルトは http://pear.php.net/dtd/package-1.0 です。

  • pearcommonclass: インスタンスを作成するクラス名を指定します。デフォルトは PEAR_Common ですが、PEAR_Common のメソッドインターフェースを 実装する独自クラスでこれを上書きすることが可能です。

  • changelogoldtonew: ChangeLog が古いエントリから順にならんでいる場合に true を設定します。 新しいエントリから順にならべたい場合は false を設定します。

  • simpleoutput: 可読性を考慮して、package.xml の出力から md5sum あるいは <provides /> を除く場合に true を設定します。

  • addhiddenfiles: .bashrc のような . で始まる隠しファイル/ディレクトリを追加する場合に true を設定します。これは File ジェネレータでのみ使用されます。 CVS ジェネレータは、その書式が何であるかにかかわらず CVS 内の全ファイルを使用します。

package.xml のシンプルなオプション

  • baseinstalldir: このパッケージをインストールするベースディレクトリ。 パッケージ PEAR_PackageFileManager の場合、これは "PEAR" となります。 パッケージ PEAR の場合、これは "/" となります。

  • license: このリリースのライセンス。何も指定しなかった場合は、デフォルトで PHP ライセンスが指定されます。

  • notes: このリリースに関するリリースノート。

  • changelognotes: Changelog に記録する内容。これはリリースノートより詳しく 記述しなければなりません。デフォルトでは、 PEAR_PackageFileManager は notes オプションの内容をそのまま changelog に適用します。

  • version: このリリースのバージョン番号。バージョン番号の規約を覚えておきましょう。 初期のアルファ版は 0 から 1 までの間を使用し、ベータ版になると 1.0b1 のように最後に b<ベータ番号> を追加します。 バージョン番号の整数部分は旧バージョンとの互換性を表し、 1.1 は 1.0 と互換性があることを意味します。しかし、2.0 には 1.10 との互換性はありません。また、1.10 は 1.1 より後の リリースであることに注意しましょう (それぞれ "いってんじゅう"、 "いってんいち" と考えればよいのです)。 バグ修正版のリリースには 3 つめの数字を使用して 1.0.1、1.0.2 のようにします。

  • package: [オプション] パッケージ名。これは、package.xml を新しく作成する場合や 別のパッケージで使用していた package.xml を雛形として使用する場合に 指定します。

  • summary: [オプション] パッケージの概要。

  • description: [オプション] パッケージの目的についての説明。これら 3 つの オプションは、新しい package.xml を最初から作成する場合には 必須となることに注意しましょう。

警告: オプションに指定するファイルパスは、大文字小文字を区別します。

package.xml の複雑なオプション

  • cleardependencies: バージョン 1.3.0 以降では、これを true に設定すると package.xml 内の既存の依存性をすべて消去します。

  • ignore: ファイル名、ディレクトリ名、あるいは複数ファイルを表す ワイルドカード表現の配列で、package.xml から完全に除外する ファイルを指定します。ワイルドカード文字には、OS の ワイルドカードである * および ? を使用します。 file*foo.php は filefoo.php、fileabrfoo.php および filewho_is_thisfoo.php を除外します。file?foo.php は fileafoo.php を 除外しますが、fileaafoo.php は除外しません。test/ は、 ディレクトリをたどっていく際に test という名前のディレクトリに 遭遇した場合、そのディレクトリおよびサブディレクトリ以下を すべて除外します。*test* は、名前に test が含まれる すべてのファイルおよびディレクトリを除外します。

  • include: ファイル名、ディレクトリ名、あるいは複数ファイルを表す ワイルドカード表現の配列で、一覧に含めるファイルを指定します。 それ以外のすべてのファイルは無視されます。 ワイルドカードの使用方法は ignore と同じです。

  • roles: これは、ファイルの拡張子とロールの関連付けを表す配列です。 ここでデフォルトの振る舞いを指定します。exception や dir_roles を使用することで、デフォルト設定を上書きすることも可能です。 既存の配列に新しいロールを追加するには addRole() を使用します。

  • dir_roles: これは、ディレクトリ名とロールの関連付けを表す配列です。 このオプションにマッチする名前のディレクトリ以下にある すべてのファイルには、指定されたロールが適用されます。 特定のファイルをこの対象から除外するには exceptions を 使用します。ディレクトリは、baseinstalldir からの相対パスである 必要があります。baseinstalldir を指定するには "/" を使用します。

  • exceptions: 特定のファイルに対するロールを指定します。この配列は、 ファイルの完全な名前とロールを "file.ext" => "ロール" のように関連付けます。

  • deps: 依存性の配列。既存の依存性をすべて消去するには、空の配列を渡します。そして addDependency() によって新しい依存性を追加したり既存の依存性を置き換えたりします。

  • maintainers: メンテナの配列。既存のメンテナをすべて消去するには、空の配列を渡します。そして addMaintainer() によって新しいメンテナを追加したり既存のメンテナを置き換えたりします。

  • installexceptions: ファイル名と baseinstalldir の値を関連付けた配列です。これは、 特定のファイルを強制的に別の場所にインストールさせたい場合に 使用します。例えば、特定のスクリプトをパスの通った場所に 配置したい場合などが考えられます。ファイル名は、 packagedirectory からの相対パスである必要があります。

  • platformexceptions: ファイル名とインストール対象プラットフォームを関連付けた配列です。 Unix 限定のファイルや Windows 限定のファイルを指定する場合に 使用します。特別な追加情報が必要ない場合、プラットフォームを 指定する文字列の書式は OS-version-cpu-extra でなければなりません。また、OS は "windows." のように小文字で指定する必要があります。 条件に一致するかどうかは正規表現を使用して調べられますが、 ワイルドカード文字には .* や .? ではなく * および ? を使用します。 hpux/aix/irix/linux はすべて排他的であることに注意しましょう。 「Windows 以外」を選択するには、(*ix|*ux) のように指定します。

  • scriptphaseexceptions: スクリプトとインストール段階を関連付けた配列です。 インストール段階として指定できるのは以下のいずれかです。 pre-install (インストール前)、post-install (インストール後)、 pre-uninstall (アンインストール前)、post-uninstall (アンインストール後)、 pre-build (ビルド前)、post-build (ビルド後)、 pre-setup (セットアップ前)、あるいは post-setup (セットアップ後)。

  • installas: ファイル名と、それが実際にインストールされる際のファイル名を 関連付けた配列です。インストールされるファイルの新しいファイル名を 指定するために、これを使用します。これは、たとえば OS に応じて 違う内容のファイルを同じ名前でインストールする必要がある場合などに platformexceptions と組み合わせて使用します。

  • replacements: インストール時に適用する複雑なテキスト置換と、その対象となるファイルを 関連付けた配列です。書式は以下のようになります。 filename => array('type' => php-const|pear-config|package-info 'from' => ファイル内のテキスト 'to' => 変数名) type が php-const の場合、'to' は PHP の定数名で なければなりません。type が pear-config の場合、'to' は PEAR_Config クラスの ->get() メソッドでアクセス可能な PEAR 設定変数でなければなりません。type が package-info の場合、'to' はこのファイルのインストール時に使用する package.xml のセクション名でなければなりません。

  • globalreplacements: すべてのファイルに対して適用される置換の一覧。 書式は replacements と同じです (1.4.0 以降で使用可能)。

  • configure_options: PECL パッケージのビルドオプションを指定する配列 (おそらく PECL_Gen を使用したほうがよいのでしょうが、このパッケージ単体でも 同じことができるように、ここで実装されています)。

パラメータ

array $options

例外・エラー

PEAR_PACKAGEFILEMANAGER_NOPKGDIR、

PEAR_PACKAGEFILEMANAGER_NOVERSION、

PEAR_PACKAGEFILEMANAGER_NOSTATE、

PEAR_PACKAGEFILEMANAGER_NOBASEDIR、

PEAR_PACKAGEFILEMANAGER_GENERATOR_NOTFOUND_ANYWHERE および

PEAR_PACKAGEFILEMANAGER_GENERATOR_NOTFOUND をスローします。

参照

PEAR_PackageFileManager_CVS および

PEAR_PackageFileManager_File も参照ください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_PackageFileManager::raiseError() | 上に戻る | PEAR_PackageFileManager::writePackageFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageFileManager::writePackageFile

PEAR マニュアル
前のページ 次のページ

PEAR_PackageFileManager::writePackageFile()

PEAR_PackageFileManager::writePackageFile() -- 新しく作成された <release></release> タグを使用して package.xml ファイルを書き出す

概要

require_once 'PEAR/PackageFileManager.php';

void|PEAR_Error PEAR_PackageFileManager::writePackageFile ([boolean $debuginterface = NULL])

説明

package.xml を書き換える前には、「常に」 debugPackageFile() を使用して内容が正しいかどうかを検証するようにしましょう。

パラメータ

boolean $debuginterface

デバッグを行わない場合は NULL、 Web インターフェースの場合は TRUE、 コマンドラインの場合は FALSE を指定します。

例外・エラー

PEAR_PACKAGEFILEMANAGER_RUN_SETOPTIONS、

PEAR_PACKAGEFILEMANAGER_ADD_MAINTAINERS、

PEAR_PACKAGEFILEMANAGER_CANTWRITE_PKGFILE、

PEAR_PACKAGEFILEMANAGER_CANTOPEN_TMPPKGFILE、

PEAR_PACKAGEFILEMANAGER_CANTCOPY_PKGFILE あるいは

PEAR_PACKAGEFILEMANAGER_DEST_UNWRITABLE をスローします。

参照

PEAR_PackageFileManager::debugPackageFile() も参照ください。コマンドライン版および Web 版のいずれの場合にも、 デバッグパラメータを指定してコールされます。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_PackageFileManager::setOptions() | 上に戻る | PEAR_PackageFileManager_CVS クラスの概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageUpdate

目次
PEAR_PackageUpdate の導入 -- 自己更新機能を、他のパッケージやアプリケーションに簡単に追加するためのパッケージ
PEAR_PackageUpdate::factory -- PEAR_PackageUpdate フロントエンドのインスタンスを作成するためのファクトリメソッド
PEAR_PackageUpdate::isIncludable -- ファイルがインクルード可能かどうかを調べる
PEAR_PackageUpdate::loadPreferences -- 設定ファイルから利用者の設定を読み込む
PEAR_PackageUpdate::determinePrefFile -- 設定ファイルへのパスを返す
PEAR_PackageUpdate::checkUpdate -- 更新があるかどうか、そして利用者が更新通知を受け取るようにしているかどうかを調べる
PEAR_PackageUpdate::getPackageInfo -- 最新のパッケージ情報をチャネルサーバから読み込む
PEAR_PackageUpdate::getPackagePreferences -- 現在のパッケージについての更新設定を返す
PEAR_PackageUpdate::savePreferences -- 利用者の設定を設定ファイルに保存する
PEAR_PackageUpdate::preferencesAllowUpdate -- 利用者の設定を調べ、パッケージの最新版への更新を許可しているかどうか確認する
PEAR_PackageUpdate::releaseType -- インストール済みのバージョンと比較して、もっとも最近のバージョンのリリースの型を返す
PEAR_PackageUpdate::setDontAskAgain -- 利用者による、このパッケージに対する "Don't Ask Again" を設定する
PEAR_PackageUpdate::setDontAskUntilNextRelease -- 利用者による、このパッケージに対する "Don't Ask Again Until Next Release" を設定する
前のページ | ホーム | 次のページ
PEAR_PackageFileManager パッケージのグローバル変数 | 上に戻る | PEAR_PackageUpdate の導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageUpdate の導入

PEAR_PackageUpdate の導入 -- 自己更新機能を、他のパッケージやアプリケーションに簡単に追加するためのパッケージ

PEAR::PackageUpdate について

PEAR::PackageUpdate を使用すると、他のパッケージやアプリケーションに対して、 自分自身を常に最新版に保つようにさせる機能を追加できます。 これは、チャネルサーバに最新のリリースを確認しにいき、 利用者の許可のもとで自己更新させる機能です。 自動更新機能を使用することによる開発者の利点は、 利用者が実際に使用しているバージョンのばらつきが少なくなることです。 これにより、大昔のバージョンに対するバグ報告を大量に受け取ることも減るでしょう。

このパッケージは更新処理を自動化しますが、 それでも最終的な決定権は利用者側に残しています。 PEAR::PackageUpdate は各利用者を尊重し、 そのパッケージを更新するかどうかだけでなく 新バージョンの公開をいつ通知するかも設定できるようにしています。 利用者は、特定の状態や形式のリリース (バグ修正、機能追加、メジャーバージョンアップなど) についてだけ通知を受け取るといったように設定することができます。 またこの更新機能を無効にすることもできます。 これらの設定は、パッケージ単位で管理されます。

PEAR::PackageUpdate は、さまざまな形式のインターフェイスに対応するように作られています。 たとえば、フロントエンドとしては PHP-GTK 2 や CLI、あるいは HTML を使用することが可能です。

使用例

<?php
class Foo {
    function __construct()
    {
        // 必要に応じてパッケージを更新させるようにします
        require_once 'PEAR/PackageUpdate.php';
        // PHP-GTK 2 ドライバを読み込み、pear://Foo の更新を確認します
        $ppu = PEAR_PackageUpdate::factory('Gtk2', 'Foo', 'pear');

        // ドライバがきちんと読み込めたかどうかを確認します
        if ($ppu !== false) {

            // 新バージョンが公開されているかを調べます (利用者の設定を尊重します)
            if ($ppu->checkUpdate()) {

                // 更新するかどうかをたずねます
                if ($ppu->presentUpdate()) {

                    if ($ppu->update()) {

                        // 更新に成功したので、
                        // アプリケーションを再起動させます
                        $ppu->forceRestart();
                    }
                }
            }
        }
        // ...
    }
    // ...
}
?>

前のページ | ホーム | 次のページ
PEAR_PackageUpdate | 上に戻る | PEAR_PackageUpdate::factory

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageUpdate::checkUpdate

PEAR_PackageUpdate::checkUpdate -- 更新があるかどうか、そして利用者が更新通知を受け取るようにしているかどうかを調べる

概要

public boolean PEAR_PackageUpdate::checkUpdate();

説明

更新があるかどうか、そして利用者が更新通知を受け取るようにしているかどうかを調べます。

このメソッドは、利用者の設定内容を考慮した上で更新があるかどうかを調べます。 もしバグフィックスリリースがあったとしても、 たとえば利用者側の設定が「次のメジャーリリースまでは通知しないでほしい」 となっていれば、このメソッドは FALSE を返します。

注意

この関数は、スタティックにコールする ことはできません。

返り値

boolean - 更新が存在し、その更新について利用者が 「通知しないでほしい」と設定していなければ TRUE、 それ以外の場合に FALSE を返します。

前のページ | ホーム | 次のページ
PEAR_PackageUpdate::determinePrefFile | 上に戻る | PEAR_PackageUpdate::getPackageInfo

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageUpdate::determinePrefFile

PEAR_PackageUpdate::determinePrefFile -- 設定ファイルへのパスを返す

概要

public string PEAR_PackageUpdate::determinePrefFile();

説明

設定ファイルへのパスを返します。

設定ファイルには、利用者が個々のパッケージについて通知を受け取るかどうかの設定を記録します。 Windows マシンを使用している利用者の場合、このファイルは PEAR_CONFIG_SYSCONFIG ディレクトリ内に ppurc.ini という名前で保存されます。 他のオペレーティングシステムを使用している利用者の場合は、 ホームディレクトリに .ppurc という名前で保存されます。

注意

この関数は、スタティックにコールする ことができます。

返り値

string - The full path to the preferences file.

前のページ | ホーム | 次のページ
PEAR_PackageUpdate::loadPreferences | 上に戻る | PEAR_PackageUpdate::checkUpdate

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageUpdate::factory

PEAR_PackageUpdate::factory -- PEAR_PackageUpdate フロントエンドのインスタンスを作成するためのファクトリメソッド

概要

public mixed PEAR_PackageUpdate::factory(string $driver, string $packageName, string $channel);

説明

PEAR_PackageUpdate フロントエンドのインスタンスを作成するためのファクトリメソッドです。

パラメータ

string $driver

フロントエンドドライバクラスの名前。 Gtk2、CLI あるいは Web のいずれかでなければなりません。

string $packageName

更新するパッケージの名前。たとえば PEAR_PackageFileManager_Web など。

string $driver

$packageName が公開されているチャネルの名前。 pear.php.net のような完全修飾形式の名前か、あるいは pear のような短縮名を指定します。

注意

この関数は、スタティックにコール されます。

返り値

mixed - 新しいオブジェクトへの参照、 あるいはオブジェクトが作成できなかった場合 (ドライバ名が無効の場合など) に FALSE を返します。

前のページ | ホーム | 次のページ
PEAR_PackageUpdate の導入 | 上に戻る | PEAR_PackageUpdate::isIncludable

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageUpdate::getPackageInfo

PEAR_PackageUpdate::getPackageInfo -- 最新のパッケージ情報をチャネルサーバから読み込む

概要

protected boolean PEAR_PackageUpdate::getPackageInfo();

説明

最新のパッケージ情報をチャネルサーバから読み込みます。

このメソッドは、PEAR_Remote インスタンスを使用してチャネルサーバにアクセスします。 エラーが発生した場合 (チャネルサーバがそのパッケージを公開していない場合、 パッケージ名を間違えている場合など) は、そのエラーをエラースタックに積みます。

注意

この関数は、スタティックにコールする ことはできません。

返り値

boolean - 情報の取得に成功した場合に TRUE、 それ以外の場合に FALSE を返します。 エラーはエラースタックに積まれます。

前のページ | ホーム | 次のページ
PEAR_PackageUpdate::checkUpdate | 上に戻る | PEAR_PackageUpdate::getPackagePreferences

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageUpdate::getPackagePreferences

PEAR_PackageUpdate::getPackagePreferences -- 現在のパッケージについての更新設定を返す

概要

public array PEAR_PackageUpdate::getPackagePreferences();

説明

現在のパッケージについての更新設定を配列で返します。 このメソッドを使用することにより、 利用者がこの更新を通知しないよう設定していないかどうかを確認します。

返される配列には最大で四つの要素が含まれます。

  • PEAR_PACKAGEUPDATE_PREF_NOUPDATES - TRUE の場合、利用者はこのパッケージについての更新通知を希望していません。

  • PEAR_PACKAGEUPDATE_PREF_NEXTRELEASE - 設定されている場合、その値より大きなバージョンがリリースされるまで、 利用者はこのパッケージの更新通知を希望していません。

  • PEAR_PACKAGEUPDATE_PREF_TYPE - 設定されている場合、その型のリリースが公開されるまで、 利用者はこのパッケージの更新通知を希望していません (PEAR_PACKAGEUPDATE_TYPE_BUG、PEAR_PACKAGEUPDATE_TYPE_MINOR あるいは PEAR_PACKAGEUPDATE_MAJOR のいずれか)。

  • PEAR_PACKAGEUPDATE_PREF_STATE - 設定されている場合、その状態のリリースが公開されるまで、 利用者はこのパッケージの更新通知を希望していません (PEAR_PACKAGEUPDATE_PREF_STATE_DEVEL、PEAR_PACKAGEUPDATE_PREF_STATE_ALPHA、 PEAR_PACKAGEUPDATE_PREF_STATE_BETA あるいは PEAR_PACKAGEUPDATE_PREF_STATE_STABLE のいずれか)。

注意

この関数は、スタティックにコールする ことはできません。

返り値

array - 設定内容の配列を返します。

前のページ | ホーム | 次のページ
PEAR_PackageUpdate::getPackageInfo | 上に戻る | PEAR_PackageUpdate::savePreferences

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageUpdate::isIncludable

PEAR_PackageUpdate::isIncludable -- ファイルがインクルード可能かどうかを調べる

概要

public boolean PEAR_PackageUpdate::isIncludable(string $path);

説明

ファイルがインクルード可能かどうかを調べます。このメソッドを使用することで、 ドライバクラスのファイルが存在してインクルード可能なことを確認します。

パラメータ

string $path

調べたいファイルへのパス。このパスは、 インクルードパス内のいずれかのディレクトリのサブディレクトリでなければなりません。

注意

この関数は、スタティックにコールする ことができます。

返り値

boolean - ファイルがインクルード可能な場合に TRUE を返します。

前のページ | ホーム | 次のページ
PEAR_PackageUpdate::factory | 上に戻る | PEAR_PackageUpdate::loadPreferences

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageUpdate::loadPreferences

PEAR_PackageUpdate::loadPreferences -- 設定ファイルから利用者の設定を読み込む

概要

public mixed PEAR_PackageUpdate::loadPreferences ();

説明

設定ファイルから利用者の設定を読み込みます。

設定内容は、ホームディレクトリ内のファイル .ppurc に保存されます。このファイルには設定内容の配列をシリアライズしたものが保存されており、 各パッケージについての更新確認の設定が含まれます。

注意

この関数は、スタティックにコールする ことはできません。

返り値

boolean - 設定の読み込みに成功した場合に TRUE、 それ以外の場合に FALSE を返します。

前のページ | ホーム | 次のページ
PEAR_PackageUpdate::isIncludable | 上に戻る | PEAR_PackageUpdate::determinePrefFile

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageUpdate::preferencesAllowUpdate

PEAR_PackageUpdate::preferencesAllowUpdate -- 利用者の設定を調べ、パッケージの最新版への更新を許可しているかどうか確認する

概要

public boolean PEAR_PackageUpdate::preferencesAllowUpdate();

説明

利用者の設定を調べ、パッケージの最新版への更新を許可しているかどうか確認します。 利用者の設定では、以下のような制限をすることができます。例えば 「更新しない」「新しいバージョンが出るまでは更新しない (最後に確認したバージョンを覚えておく)」「beta (ベータ版) や stable (安定版) など、 特定の状態になったときにのみ更新の確認を行う」 「マイナーバージョンやその上位のバージョンがあがったときにのみ更新の確認を行う (バグフィックスは無視する)」「メジャーバージョンがあがったときにのみ更新の確認を行う」 などです。

注意

この関数は、スタティックにコールする ことはできません。

返り値

boolean - 利用者が、パッケージの最新版の更新を許可している場合に TRUE を返します。

参照

PEAR_PackageUpdate::getPackagePreferences()

前のページ | ホーム | 次のページ
PEAR_PackageUpdate::savePreferences | 上に戻る | PEAR_PackageUpdate::releaseType

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageUpdate::releaseType

PEAR_PackageUpdate::releaseType -- インストール済みのバージョンと比較して、もっとも最近のバージョンのリリースの型を返す

概要

public string PEAR_PackageUpdate::releaseType();

説明

インストール済みのバージョンと比較して、もっとも最近のバージョンのリリースの型を返します。 結果は PEAR_PACKAGEUPDATE_TYPE_MAJOR、 PEAR_PACKAGEUPDATE_TYPE_MINOR あるいは PEAR_PACKAGEUPDATE_TYPE_BUG のいずれかとなります。

この値を使用して、利用者がこのリリースの更新を希望しているかどうかを確認します。

注意

この関数は、スタティックにコールする ことはできません。

返り値

string - リリースの型を返します。

前のページ | ホーム | 次のページ
PEAR_PackageUpdate::preferencesAllowUpdate | 上に戻る | PEAR_PackageUpdate::setDontAskAgain

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageUpdate::savePreferences

PEAR_PackageUpdate::savePreferences -- 利用者の設定を設定ファイルに保存する

概要

public boolean PEAR_PackageUpdate::savePreferences();

説明

利用者の設定を設定ファイルに保存します。

注意

この関数は、スタティックにコールする ことはできません。

返り値

boolean - 設定の保存に成功した場合に TRUE を返します。

参照

PEAR_PackageUpdate::determinePrefFile()

前のページ | ホーム | 次のページ
PEAR_PackageUpdate::getPackagePreferences | 上に戻る | PEAR_PackageUpdate::preferencesAllowUpdate

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageUpdate::setDontAskAgain

PEAR_PackageUpdate::setDontAskAgain -- 利用者による、このパッケージに対する "Don't Ask Again" を設定する

概要

public boolean PEAR_PackageUpdate::setDontAskAgain(boolean dontAsk);

説明

利用者による、このパッケージに対する "Don't Ask Again" の内容を dontAsk に設定します。 dontAsk が TRUE の場合、 このパッケージが更新されても利用者に通知されることはありません。

注意

この関数は、スタティックにコールする ことはできません。

返り値

boolean - 設定が正しく行われた場合に TRUE、そうでない場合に FALSE を返します。

前のページ | ホーム | 次のページ
PEAR_PackageUpdate::releaseType | 上に戻る | PEAR_PackageUpdate::setDontAskUntilNextRelease

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_PackageUpdate::setDontAskUntilNextRelease

PEAR_PackageUpdate::setDontAskUntilNextRelease -- 利用者による、このパッケージに対する "Don't Ask Again Until Next Release" を設定する

概要

public boolean PEAR_PackageUpdate::setDontAskUntilNextRelease(boolean dontAsk);

説明

利用者による、このパッケージに対する "Don't Ask Again Until Next Release" の内容を dontAsk に設定します。 dontAsk が TRUE の場合、 このパッケージの新しいバージョンがリリースされるまでは 利用者に通知されることはありません。

注意

この関数は、スタティックにコールする ことはできません。

返り値

boolean - 設定が正しく行われた場合に TRUE、そうでない場合に FALSE を返します。

前のページ | ホーム | 次のページ
PEAR_PackageUpdate::setDontAskAgain | 上に戻る | PHP

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_DependencyDB::getDependentPackages

PEAR マニュアル
前のページ 次のページ

PEAR_DependencyDB::getDependentPackages()

PEAR_DependencyDB::getDependentPackages() -- このパッケージに依存している、インストール済みパッケージの一覧を取得する

概要

require_once '/DependencyDB.php';

array|false PEAR_DependencyDB::getDependentPackages (PEAR_PackageFile_v1|PEAR_PackageFile_v2|array &$pkg)

説明

これは、アンインストールの際に最も有用です。 そのパッケージに依存しているインストール済みパッケージの一覧を取得することで、 アンインストールを中断させ、オプションの依存性についての警告を発することが可能となります。

パラメータ

PEAR_PackageFile_v1|PEAR_PackageFile_v2|array &$pkg

このパラメータに配列を指定する場合、その書式は次のようになります。

<?php
array(
  'package' => 'パッケージ名',
  'channel' => 'チャネル名'
);
?>

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_DependencyDB::getDependentPackageDependencies() | 上に戻る | PEAR_DependencyDB::hasWriteAccess()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Frontend::setConfig

PEAR マニュアル
前のページ 次のページ

PEAR_Frontend::setConfig()

PEAR_Frontend::setConfig() -- setConfig

概要

require_once '/Frontend.php';

void PEAR_Frontend::setConfig (PEAR_Config &$config)

説明

このフロントエンドで使用する configuration オブジェクトを設定します。

パラメータ

PEAR_Config &$config

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Frontend::log() | 上に戻る | PEAR_Frontend::setFrontendClass()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Frontend::setFrontendClass

PEAR マニュアル
前のページ 次のページ

PEAR_Frontend::setFrontendClass()

PEAR_Frontend::setFrontendClass() -- setFrontendClass

概要

require_once '/Frontend.php';

void& PEAR_Frontend::setFrontendClass (string $uiclass)

説明

singleton() メソッドから取得されるフロントエンドの種類を設定します。 そのクラスが存在しない場合、このメソッドはすべてのアンダースコア (_) をディレクトリ区切り文字に変換し (たとえば PEAR_Frontend_CLI なら PEAR/Frontend/CLI)、 最後に .php を追加した名前のファイルがインクルードできるかを調べます。 クラスが見つかった場合、そのクラスに userConfirm() メソッドが存在するかどうかを調べ、新しいフロントエンドオブジェクトを返します。 処理に失敗した場合は PEAR_Error が返されます。

パラメータ

string $uiclass

完全なクラス名 (例えば PEAR_Frontend_Web)。

例外・エラー

何らかの問題が発生した場合は PEAR_Error をスローします。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
PEAR_Frontend::setConfig() | 上に戻る | PEAR_Frontend::singleton()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR_Frontend::singleton

PEAR マニュアル
前のページ 次のページ

PEAR_Frontend::singleton()

PEAR_Frontend::singleton() -- フロントエンドオブジェクトを取得する

概要

require_once '/Frontend.php';

PEAR_Frontend_CLI|PEAR_Frontend_Web|PEAR_Frontend_Gtk& PEAR_Frontend::singleton (mixed [$type = null])

説明

現在の PEAR フロントエンドオブジェクトについての唯一のコピーを取得します。

パラメータ

string|NULL $type

最初にコールされた際には、返されるフロントエンドの種類を指定することができます。 それ以外の場合はこのパラメータは無視され、既存のフロントエンドのシングルトンが返されます。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
PEAR_Frontend::setFrontendClass() | 上に戻る | PEAR_Installer

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PHP_Compat

目次
導入 -- 目的と簡単な使用例
コンポーネント -- コンポーネントの一覧
高度な使用法 -- 高度な使用法のためのテクニックの説明
PHP_Compat::loadFunction() -- 関数をロードする
PHP_Compat::loadConstant() -- 定数をロードする
PHP_Compat::loadVersion() -- すべてのコンポーネント、あるいは指定したバージョンの PHP までのすべてのコンポーネントをロードする

PHP の古いバージョンに存在しない機能を提供します。

前のページ | ホーム | 次のページ
導入 | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンポーネント

コンポーネント -- コンポーネントの一覧

関数

以下の関数が提供されています。

表 52-1関数

関数 | 使用可能になったバージョン
array_change_key_case | PHP 4.2.0
array_chunk | PHP 4.2.0
array_combine | PHP 5.0.0
array_diff_assoc | PHP 4.3.0
array_diff_key | PHP 5.0.2
array_diff_ukey | PHP 5.0.2
array_intersect_assoc | PHP 5.0.0
array_intersect_key | PHP 5.0.2
array_intersect_uassoc | PHP 5.0.0
array_intersect_ukey | PHP 5.0.2
array_key_exists | PHP 4.1.0
array_product | PHP 5.1.0
array_search | PHP 4.0.5
array_udiff | PHP 5.0.0
array_udiff_assoc | PHP 5.0.0
array_udiff_uassoc | PHP 5.0.0
array_uintersect | PHP 5.0.0
array_uintersect_assoc | PHP 5.0.0
array_uintersect_uassoc | PHP 5.0.0
array_walk_recursive | PHP 5.0.0
call_user_func_array | PHP 4.0.4
bcinvert | PHP 5.2.0
bcpowmod | PHP 5.0.0
clone | PHP 5.0.0
constant | PHP 4.0.4
convert_uudecode | PHP 5.0.0
convert_uuencode | PHP 5.0.0
debug_print_backtrace | PHP 5.0.0
file_get_contents | PHP 4.3.0
file_put_contents | PHP 5.0.0
floatval | PHP 4.2.0
fprintf | PHP 5.0.0
fputcsv | PHP 5.0.0
get_headers | PHP 5.0.0
get_include_path | PHP 4.3.0
html_entity_decode | PHP 4.3.0
htmlspecialchars_decode | PHP 5.1.0
http_build_query | PHP 5.0.0
ibase_timefmt | PHP 5.0.0
idate | PHP 5.1.0
image_type_to_mime_type | PHP 4.3.0
inet_ntop | PHP 5.1.0
inet_pton | PHP 5.1.0
ini_get_all | PHP 4.2.0
is_a | PHP 4.2.0
is_scalar | PHP 4.0.5
md5_file | PHP 4.2.0
mhash | PHP 4.1.0
mime_content_type | PHP 4.3.0
ob_clean | PHP 4.2.0
ob_flush | PHP 4.2.0
ob_get_clean | PHP 4.3.0
ob_get_flush | PHP 4.3.0
php_strip_whitespace | PHP 5.0.0
property_exists | PHP 5.1.0
pg_affected_rows | PHP 4.2.0
pg_escape_bytea | PHP 4.2.0
pg_unescape_bytea | PHP 4.2.0
restore_include_path | PHP 4.3.0
scandir | PHP 5.0.0
set_include_path | PHP 4.3.0
str_ireplace | PHP 5.0.0
str_rot13 | PHP 4.2.0
str_shuffle | PHP 4.3.0
str_split | PHP 5.0.0
str_word_count | PHP 4.3.0
stripos | PHP 5.0.0
strpbrk | PHP 5.0.0
strripos | PHP 5.0.0
substr_compare | PHP 5.0.0
time_sleep_until | PHP 5.1.0
var_export | PHP 4.2.0
version_compare | PHP 4.1.0
vprintf | PHP 4.1.0
vsprintf | PHP 4.1.0

定数

以下の定数が提供されています。

表 52-2定数

ファイル | 定数 | 使用可能になったバージョン
DIRECTORY_SEPARATOR | DIRECTORY_SEPARATOR | PHP 4.0.6
E_STRICT

E_STRICT

PHP 5
FILE

FILE_USE_INCLUDE_PATH
FILE_IGNORE_NEW_LINES
FILE_SKIP_EMPTY_LINES
FILE_APPEND
FILE_NO_DEFAULT_CONTEXT

PHP 5
PATH_SEPARATOR

PATH_SEPARATOR

PHP 4.3.0
PHP_EOL

PHP_EOL

PHP 5
STD

STDIN
STDOUT
STDERR

PHP 4.3.0
T

T_ML_COMMENT
T_DOC_COMMENT
T_OLD_FUNCTION
T_ABSTRACT
T_CATCH
T_FINAL
T_INSTANCEOF
T_PRIVATE
T_PROTECTED
T_PUBLIC
T_THROW
T_TRY
T_CLONE

PHP 5
UPLOAD_ERR

UPLOAD_ERR_OK
UPLOAD_ERR_INI_SIZE
UPLOAD_ERR_FORM_SIZE
UPLOAD_ERR_PARTIAL
UPLOAD_ERR_NO_FILE

PHP 4.3.0
前のページ | ホーム | 次のページ
導入 | 上に戻る | 高度な使用法

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- 目的と簡単な使用例

概要

PHP_Compat により、古いバージョンの PHP には存在しない機能（関数や定数） が得られます。

PHP_Compat が提供する関数は、対応する PHP ネイティブの関数と互換性があるように 設計されています。つまり、ネイティブの関数と同じシグネチャを持ち、同じ値を返し、同じエラーを返します。 すべての関数は、正確性の保障のため、ユニットテストが行われています。

例

例 52-1PHP_Compat のコンポーネントをロードする

require_once 'PHP/Compat.php';

PHP_Compat::loadFunction('file_get_contents');

もし、クラスを使いたくなければ、手動でロードすることも可能です。

例 52-2手動でコンポーネントをロードする

require_once 'PHP/Compat/Function/file_put_contents.php';

ロード後、関数は通常通りに使用することが可能になります。

PHP_Compat は、簡単に使えることを目標にデザインされています。 他のパッケージ等への依存性はなく、 （エラー処理機能などの） PEAR のインフラストラクチャとは別に使用されることとなります。

前のページ | ホーム | 次のページ
PHP_Compat | 上に戻る | コンポーネント

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PHP_Compat::loadConstant

PEAR マニュアル
前のページ 次のページ

PHP_Compat::loadConstant()

PHP_Compat::loadConstant() -- 定数をロードする

概要

require_once 'PHP/Compat.php';

mixed PHP_Compat::loadConstant (mixed $constant)

説明

定数をロードします。

パラメータ

mixed $constant

ロードしたい定数の名前、もしくは名前の配列

返り値

mixed

定数がロードされた場合は TRUE を返す。
定義済みであるか定義ファイルを読み込むことができず、 定数がロードされない場合、FALSE を返す。
ロードする定数の配列を渡した場合は、TRUE/FALSE の配列が返されます。

例

例 52-1クラスを使って定数をロードする

<?php
require_once 'PHP/Compat.php';

// load E_STRICT
PHP_Compat::loadConstant('E_STRICT');

// load E_STRICT, and PATH_SEPATATOR
PHP_Compat::loadConstant(array('E_STRICT', 'PATH_SEPARATOR'));

// load the STD group of constants (STDIN, STDOUT, STDERR)
PHP_Compat::loadConstant('STD');
?>

クラスを使わずに定数をロードすることもできます。

例 52-2手動で定数をロードする

<?php
require_once 'PHP/Compat/Constant/E_STRICT.php';
?>

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
PHP_Compat::loadFunction() | 上に戻る | PHP_Compat::loadVersion()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PHP_Compat::loadFunction

PEAR マニュアル
前のページ 次のページ

PHP_Compat::loadFunction()

PHP_Compat::loadFunction() -- 関数をロードする

概要

require_once 'PHP/Compat.php';

mixed PHP_Compat::loadFunction (mixed $function)

説明

関数をロードします。

パラメータ

mixed $function

ロードしたい関数の名前、もしくは関数の配列

返り値

mixed

関数がロードされた場合は、TRUE を返します。
定義済みであるか定義ファイルをロードできず、関数がロードされない場合、 FALSE を返します。
ロードする関数の配列を渡した場合は、TRUE/FALSE の配列が返されます。

例

例 52-1クラスを使って関数をロードする

<?php
require_once 'PHP/Compat.php';

// load file_put_contents
PHP_Compat::loadFunction('file_put_contents');

// load str_split, array_chunk and file_get_contents
PHP_Compat::loadFunction(array('str_split', 'array_chunk', 'file_get_contents'));
?>

クラスを使わずに関数をロードすることもできます。

例 52-2手動で関数をロードする

<?php
require_once 'PHP/Compat/Function/file_put_contents.php';
?>

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
高度な使用法 | 上に戻る | PHP_Compat::loadConstant()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PHP_Compat::loadVersion

PEAR マニュアル
前のページ 次のページ

PHP_Compat::loadVersion()

PHP_Compat::loadVersion() -- すべてのコンポーネント、あるいは指定したバージョンの PHP までのすべてのコンポーネントをロードする

概要

require_once 'PHP/Compat.php';

array PHP_Compat::loadVersion (string $version)

説明

すべてのコンポーネント、あるいは指定したバージョンの PHP までのすべてのコンポーネントをロードします。

パラメータ

string $version

PHP のバージョン。このバージョンまでのコンポーネントをロードします。

返り値

array

boolean 値の連想配列を返します。ロードされたコンポーネントの名前が連想配列のキー、 そしてそのコンポーネントが正常にロードできたかどうかが連想配列の値となります。

例

例 52-1すべてのコンポーネントをロードする

<?php
require_once 'PHP/Compat.php';
$components = PHP_Compat::loadVersion();

// どんなコンポーネントがロードされたのかを確認します
print_r($components);
?>

この例は、ロードされたコンポーネントについての長いリストを出力します。

例 52-2特定のバージョンまでのロード

指定したバージョンと同じかそれより古く、かつ現在の PHP のバージョンより新しいコンポーネントを読み込みます。

<?php
require_once 'PHP/Compat.php';
$components = PHP_Compat::loadVersion('4.3.0');

// どんなコンポーネントがロードされたのかを確認します
print_r($components);
?>

これは、ロードされたコンポーネントの配列を出力します。 例えばこのようになります。

Array
(
    [array_diff_assoc] => 1
    [file_get_contents] => 1
    [get_include_path] => 1
    [html_entity_decode] => 1
    [image_type_to_mime_type] => 1
    [ob_get_clean] => 1
    [ob_get_flush] => 1
    [restore_include_path] => 1
    [set_include_path] => 1
    [str_shuffle] => 1
    [str_word_count] => 1
    [FILE] => 1
    [STD] => 1
    [UPLOAD_ERR] => 1
)

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
PHP_Compat::loadConstant() | 上に戻る | PHPUnit

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


高度な使用法

高度な使用法 -- 高度な使用法のためのテクニックの説明

高度な使用法

可搬性の高いコードを作成するには、 ネイティブ関数がすべて存在する状態を保証するのが一番です。 スクリプト内に PHP_Compat の記述を埋め込んでいくとコードがめちゃくちゃになってしまい、 コードの移植作業がたいへんになってしまいます。

この問題を解決するにはいくつかの方法があります。 まず最初の方法は、すべてのドキュメントの先頭でインクルードされるファイルに load 文を追加してしまうこと。もうひとつの方法 (こちらのほうがお勧めです) は、php.ini の項目 php_auto_append を使用することです。 これは .htaccess ファイルで設定できますし、 実際のコードには何も手を入れる必要がありません。

仮にファイルの名前が phpcompat.php であるとすると、.htaccess に記述する内容は php_value php_auto_append phpcompat.php となります。この phpcompat.php ファイルには、 次のページで説明する loadVersion あるいは loadFunction/loadConstant メソッドを記述します。

前のページ | ホーム | 次のページ
コンポーネント | 上に戻る | PHP_Compat::loadFunction()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


phpDocumentor

目次
導入 -- phpDocumentor パッケージは、ソースから直接 PHP コード API を自動的にドキュメント化する機能を提供する

phpDocumentor パッケージは、ソースから直接 PHP API を自動的にドキュメント化する機能を提供します。

前のページ | ホーム | 次のページ
PHP | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- phpDocumentor パッケージは、ソースから直接 PHP コード API を自動的にドキュメント化する機能を提供する

説明

phpDocumentor は、JavaDoc に似た PHP で書かれたスタンドアロンな自動ドキュメント生成ツールです。 PHPDoc との違いは、 非常に高速で、PHP ファイルの非常に幅広い範囲をパースするという点です。 また、11 の HTML テンプレートや Windows ヘルプファイル CHM での出力、 PDF 出力、このマニュアルで使用されているマークアップと互換性がある XML DocBook 形式での出力などを含む多くのカスタマイズ機能を持っています。 加えて、PHPXref によるソースコードのハイライト化やリンクも可能です。

外部のドキュメント

生成概要のドキュメント
チュートリアル
マニュアル
上記ドキュメントの他のフォーマット

前のページ | ホーム | 次のページ
phpDocumentor | 上に戻る | PHP_Compat

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PHPUnit

目次
チュートリアル -- PHPUnit 簡易チュートリアル
PHPUnit::run() -- テストスイートを実行し、TestResult オブジェクトを返す
PHPUnit::TestCase -- TestCase: 複数のテストを実行するための試験装置の抽象化

関数およびクラスを自動的にテストするテスト用アプリケーションを作成す るための簡単なフレームワークを提供します。

前のページ | ホーム | 次のページ
PHP_Compat::loadVersion() | 上に戻る | チュートリアル

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PHPUnit2

目次
概要 -- 概要

PHPUnit は PEAR パッケージの集まり (PHP 5 用には PHPUnit2、 そして PHP 4 用には PHPUnit) で、オブジェクト指向での PHP アプリケーションの開発を支援するものです。 アジャイルなソフトウェア開発、エクストリームプログラミング、 テスト駆動開発、規約による設計 (Design-by-Contract) を用いた開発などのために、 単体テストを作成・実行・解析する エレガントで堅牢なフレームワークを提供します。

前のページ | ホーム | 次のページ
PHPUnit::TestCase | 上に戻る | 概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


概要

概要 -- 概要

より詳細な情報はどこ?

このパッケージについての詳細な情報は、 PHPUnit wiki を参照ください。

前のページ | ホーム | 次のページ
PHPUnit2 | 上に戻る | QA (品質保証) ツール

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


チュートリアル

チュートリアル -- PHPUnit 簡易チュートリアル

テストフレームワークの紹介

PHPUnit は、関数やクラスを自動的にテストする "テストスイート" を作成するためのシンプルなフレームワークを提供します。 PHPUnit は、JUnit からヒントを得ています。 JUnit は、Kent Beck と Erich Gamma が、 eXtreme Programming (XP) 用のツールとして作成したソフトウエアです。XP においては、 小さなソフトウエアコンポーネントを可能な限り早期に頻繁に試験すること、 というルールが定められています。こうすることで、 アプリケーション全体を設定し試験する際になってまで、コンポーネント内部のバグやエラーを 修正する破目にならなくてすみます。ユニットテストと呼ばれるこういったコンポーネント毎の テストは XP の基本原則のひとつですが、だからといって PHPUnit を利用するために XP を実行しないといけない訳ではありません。 PHPUnitは、単体として、クラスや関数をテストする有効なツールであり、 際限のないデバッグ作業を避けるのに有用です。

実行手順

これまでに行われている良くあるテスト手順は、何らかのクラスを作成した後、 echo() や var_dump() を用いて非体系的にテストを行い、不具合が発生しないことを願う、という流れでしょう。 PHPUnit を使って利益を得るためには、この流れを再考する必要があります。 最善の手順は、以下の通り行うことです。

  • 1. クラス/ API を設計

  • 2. テスト用ツールを作成

  • 3. クラス/ API を実装

  • 4. テスト用ツールを実行

  • 5. 失敗またはエラーを修正し、再度 #4 へ進む

この手順を踏むと時間が多く必要となるように見えますが、その印象は誤りです。 PHPUnit を使ってテストスイートを作成するには数分しかかからず、 テストスイートの実行にも、数秒しかかかりません。

クラスの設計

簡単な例として、文字列を処理するクラスを取り上げます。 まず、文字列処理を行う一連の関数の宣言を以下のように作成します。
//---- string.php ----

class String
{
    // 内部データを保持
    var $data;

    // コンストラクタ
    function String($data) {
        $this->data = $data;
    }

    // 文字列オブジェクトのコピーを生成
    function copy() {
    }

    // 文字列をこのオブジェクトに付加
    function add($string) {
    }

    // フォーマット済み文字列を返す
    function toString($format) {
    }
}

テストスイートの作成

次に、この文字列処理クラスの各関数をテストするテストスイートを作成します。 テストスイートは、 PHPUnit_TestCase を継承した通常の PHP クラスで、このクラス中に 名称が 'test' で始まる "テスト関数" を定義していきます。 テスト関数においては、テスト対象の関数の帰り値と ありうべき正しい値との比較を行います。 この比較は、assert*() 系の関数を使って行い、 テストに合格したかどうかの判断が行われます。
//---- testcase.php ----

require_once 'string.php';
require_once 'PHPUnit.php';

class StringTest extends PHPUnit_TestCase
{
    // 文字列処理クラスのオブジェクト
    var $abc;

    // このテストスイートのコンストラクタ
    function StringTest($name) {
       $this->PHPUnit_TestCase($name);
    }

    // テスト関数が実行される前にコールされる
    // この関数は PHPUnit_TestCase にて定義されており、
    // ここでオーバーライドしている
    function setUp() {
        // 新しいインスタンスを文字列'abc'を設定して作成
        $this->abc = new String("abc");
    }

    // テスト関数が実行された後にコールされる
    // この関数は PHPUnit_TestCase にて定義されており、
    // ここでオーバーライドしている
    function tearDown() {
        // インスタンスの削除
        unset($this->abc);
    }

    // toString 関数のテスト
    function testToString() {
        $result = $this->abc->toString('contains %s');
        $expected = 'contains abc';
        $this->assertTrue($result == $expected);
    }

    // copy 関数のテスト
    function testCopy() {
      $abc2 = $this->abc->copy();
      $this->assertEquals($abc2, $this->abc);
    }

    // add 関数のテスト
    function testAdd() {
        $abc2 = new String('123');
        $this->abc->add($abc2);
        $result = $this->abc->toString("%s");
        $expected = "abc123";
        $this->assertTrue($result == $expected);
    }
  }

テストの実行

それでは、テストを実行してみましょう。 パスが正しいか確認し、この PHP プログラムを実行してください。
//---- stringtest.php ----

require_once 'testcase.php';
require_once 'PHPUnit.php';

$suite  = new PHPUnit_TestSuite("StringTest");
$result = PHPUnit::run($suite);

echo $result -> toString();

コマンドラインで実行すると、以下の出力が得られます。
TestCase stringtest->testtostring() failed: expected true, actual false
TestCase stringtest->testcopy() failed: expected , actual Object
TestCase stringtest->testadd() failed: expected true, actual false
まだ実装が行われておらず、各文字列処理関数は正しい値を返しませんので、 すべての関数がテストに不合格となります。

ブラウザから実行したい場合は、 $result->toString() を $result->toHTML () へ変更してください。HTML ページが出力されます。

実装

文字列処理クラスの実装を行いましょう。
//---- string.php ----

class String
{
    // 内部データを保持
    var $data;

    // コンストラクタ
    function String($data) {
        $this->data = $data;
    }

    // 文字列オブジェクトのコピーを生成
    function copy() {
        $ret = new String($this->data);
        return $ret;
    }

    // 文字列をこのオブジェクトに付加
    function add($string) {
        $this->data = $this->data.$string->toString("%ss");
    }

    // フォーマット済み文字列を返す
    function toString($format) {
        $ret = sprintf($format, $this->data);
        return $ret;
    }
}

実装が終了したら、テストを実行します。
~> php -f stringtest.php
TestCase stringtest->testtostring() passed
TestCase stringtest->testcopy() passed
TestCase stringtest->testadd() failed: expected true, actual false
あれ、最後のテストが不合格です。タイプミスをしたようです。 string.php の 16 行目を以下の様に修正します。
$this->data = $this->data.$string->toString("%s");
そして、テストを再実行します。
~> php -f stringtest.php
TestCase stringtest->testtostring() passed
TestCase stringtest->testcopy() passed
TestCase stringtest->testadd() passed
すべて合格しました。

まとめ

たった３つの単純な関数しかないクラスに対しては、大袈裟な手順かも知れません。 しかし、上記は短い例に過ぎないのであって、オンラインショップの ショッピングカートやデータベース抽象化クラスなどの、 大きくて複雑な API を持つクラスを考えて見てください。 PHPUnit は、実装中に潜むバグを見つけるのに非常に有用なツールなのです。

また、以前に使ったクラスの再実装をするような場合を考えると、 テストスイート無しでは、そのクラスに依存するアプリケーションに 不具合を発生させる可能性が高くなります。 まずテストスイートを作成し、新しいクラスがテストにすべて合格するように保ったまま 再実装を行っていけば、アプリケーションに不具合が起きる事はないでしょう。

前のページ | ホーム | 次のページ
PHPUnit | 上に戻る | PHPUnit::run()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PHPUnit::run()

PHPUnit::run() -- テストスイートを実行し、TestResult オブジェクトを返す

概要

require_once 'PHPUnit.php';

object PHPUnit::run (object $suite)

説明

指定したテストスイートを実行します。

パラメータ

  • object $suite - PHPUnit_TestSuite のオブジェクト

返り値

&PHPUnit_Result - PHPUnit_Result へのリファレンス。

例

例 52-1Using PHPUnit::run()

require_once "PHPUnit.php";
$suite  = New PHPUnit_TestSuite('Mathtest');
$result = PHPUnit::run($suite);
echo $result->toHtml();
前のページ | ホーム | 次のページ
チュートリアル | 上に戻る | PHPUnit::TestCase

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


QA_Peardoc_Coverage

目次
導入 -- QA_Peardoc_Coverage の利点
動作原理 -- 全般的な解説
網羅状況の生成 -- 順を追って説明します

PEAR パッケージのドキュメントがどの程度網羅されているかを調べます。

前のページ | ホーム | 次のページ
QA (品質保証) ツール | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


網羅状況の生成

網羅状況の生成 -- 順を追って説明します

網羅状況の解析データの生成

  1. cvs.php.net からチェックアウトした pear ディレクトリおよび peardoc ディレクトリが存在することを確認します。

  2. peardoc の configure を行い、 manual.xml を作成します (autoconf, ./configure)。

  3. genData.php をコールします。最初の引数に peardoc の manual.xml へのパス、 二番目の引数にはチェックアウトした pear ディレクトリへのパスを指定します。

  4. doc.dat という名前のファイルが、 作業ディレクトリに出来上がります。

HTML レポートの生成

データの作成とシリアライズがすんだら、HTML のレポートを作成することができます。 レポート作成用に、このパッケージでは四種類の Renderer クラスを提供しています。これらはすべて QA_Peardoc_Coverage_Renderer インターフェイスを実装したものです。

  • QA_Peardoc_Coverage_Renderer_DeveloperList は、開発者別に「パッケージの数」「ドキュメントが存在しないパッケージの数」 「ドキュメントが存在しないパッケージの一覧」をまとめます。 ドキュメントが作成されているパッケージの割合が大きい順に並べ替えられます。

  • QA_Peardoc_Coverage_Renderer_SimplePackageList は、PEAR のカテゴリごとにすべてのパッケージを並べ、 どのパッケージにドキュメントが存在してどのパッケージにドキュメントが存在しないかを示します。 最後に「パッケージの総数」「ドキュメントが存在するパッケージの数」 「ドキュメントの網羅率」がまとめられます。

  • QA_Peardoc_Coverage_Renderer_ExtendetPackageList は上の単純なリストと似ていますが、パッケージだけでなく パッケージ内のクラス、クラスのメソッド単位でのドキュメントの状況を表示します。 これを使用すると、あなたが書いたドキュメントで まだ網羅されていないメソッドがどれかがわかります。

  • QA_Peardoc_Coverage_Renderer_MissingDocsPerDeveloper は、developer email => array(package names) 形式の配列を作成します。 開発者に対して確認のメールを送るための元データとして使用します。

すべてのレンダラには examples/gen*.php ファイルが存在します。これらは、examples/genData.php が書き出す doc.dat ファイルを使用します。 結果は html 形式でコンソールに出力されるので、 それをリダイレクトしてファイルに保存します。

前のページ | ホーム | 次のページ
動作原理 | 上に戻る | 科学 (Science)

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


動作原理

動作原理 -- 全般的な解説

動作原理

ドキュメントの解析情報の生成は、二段階に分けて行われます。

  1. データを収集し、保存する

  2. 保存されたデータをもとに、さまざまなレポートを生成する

なぜこのようにしたかというと、データの収集には長い時間 (約一分) がかかり、しかもこれはレポートの種類ごとに必要だったからです。 つまり、シンプルなドキュメント網羅状況のほかに拡張版のレポートがほしければ、 共通のデータをそれぞれに用意し、それを単に異なる切り口で見せるだけとなります。

QA_Peardoc_Coverage にある generateCoverage() は、網羅状況のデータを算出してそれを配列で返します。 これはシリアライズして保存することができ、すべての Renderer クラスで、それを入力として使用することができます。

QA_Peardoc_Coverage_Renderer インターフェイスを実装したクラスは render() メソッドを提供します。 これは generateCoverage() が返すデータを受け取り、 解析結果を返します。この結果は、たいていの場合は HTML を含む文字列となります。

前のページ | ホーム | 次のページ
導入 | 上に戻る | 網羅状況の生成

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- QA_Peardoc_Coverage の利点

QA_Peardoc_Coverage について

どんなにすばらしいライブラリでも、ドキュメントがなければ使いようがありません。 PEAR には 300 を超えるパッケージがあり、自動生成される API ドキュメントとマニュアルが存在します。PEAR マニュアル (今あなたがご覧になっているものです) には、 それらのパッケージの概要や使用法、 そしてパッケージを構成するクラスや そのメソッドについて理解を深めるための情報が掲載されています。 さらなる情報が必要な場合は API ドキュメントを調べます。

PEAR パッケージの量は膨大なので、 それぞれのドキュメントの状態を管理するのは大変です。 何らかのツールが必要でしょう。 QA_Peardoc_Coverage こそがそれを実際に形にしたものなのです。

QA_Peardoc_Coverage は CVS から PEAR と PEARDOC をチェックアウトします。それをもとにして、 「どのパッケージのドキュメントが存在するのか」 「どのクラスのどのメソッドのドキュメントが存在するのか」 「きちんとドキュメントを作成している立派な開発者は誰なのか」 といったことを調べます。

前のページ | ホーム | 次のページ
QA_Peardoc_Coverage | 上に戻る | 動作原理

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Stream_Var

目次
導入 -- Stream_Var入門
例 -- Stream_Varの利用例

ストリームによる変数へのアクセスを可能にします。

前のページ | ホーム | 次のページ
ストリーム | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


例

例 -- Stream_Varの利用例

Stream_Varの登録

以下の例は、ストリーム関数のラッパーとしてのStream_Varの登録方法を示して います。

例 55-1Stream_Varの登録

require_once "Stream/Var.php";
stream_wrapper_register( "var", "Stream_Var" );

スカラー変数へのアクセス

以下の例は、fopen(),
fread(), frwite()
and fclose()を使ったスカラー変数のアクセス方法を示して
います。

例 55-2スカラー変数へのアクセス

require_once "Stream/Var.php";
stream_wrapper_register( "var", "Stream_Var" );
$foo = "I really like tomatoes.";

echo "Content of foo: $foo<br />";

$fp = fopen('var://GLOBALS/foo','r+');

$data = fread($fp, 9);
echo "Read from stream: $data<br />";

fwrite($fp,"hate");

fclose($fp);

echo "Content of foo: $foo<br />";

配列へのアクセス

以下の例は、opendir()を使った配列へのアクセス方法を 示しています。

例 55-3配列へのアクセス

require_once "Stream/Var.php";
stream_wrapper_register( "var", "Stream_Var" );
$dirname = 'var://_SERVER';
$dir = opendir($dirname);
echo    "<strong>opening directory '$dirname'</strong><br><br>";

while ($entry = readdir($dir)) {
    echo "opening file $dirname/$entry<br />";
    if (!$fp = @fopen($dirname."/".$entry,"r")) {
        echo "seems to be a directory<br /><br />";
        continue;
    }

    echo "reading from $entry<br />";
    while (!feof($fp)) {
        echo fread($fp, 16);
    }
    fclose($fp);
    echo    "<br /><br />";
}
closedir($dir);

その他の例

もし、その他の例を参照したいのであれば、パッケージをインストールしてください。そうすれば、docsディレクトリにインストールされます。

前のページ | ホーム | 次のページ
導入 | 上に戻る | 構造 (Structures)

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- Stream_Var入門

Stream_Var入門

Stream_Varは、PHPのストリーム関数のラッパーとして使用できるクラスを 提供します。 これにより、fopen(), fclose(), fwrite(), fread(), opendir()や他の全てのファイルシステム関数を用いて 変数にアクセスすることが可能になります。

stream_wrapper_register()関数を利用することで、 Stream_Varをラッパーとして登録することができます。

スカラー変数(string, integer, float)は、ファイルとして処理されると同時に、 配列はディレクトリを意味します。

ストリームの登録方法の詳細は、PHPマニュアル、 または、exampleを 参照してください。

利用のシナリオ

Stream_Varは、様々なシナリオで利用できます。処理が完了するまでデータを 保存せずにオン ザ フライでデータを生成しながらファイルからデータを読み 込む、というクラスを想像してみてください。

これは、Stream_Varが利用できる局面です。fopen()を利用するためにラッパーとして登録し、var://GLOBAL/yourVarを指定するだけです。

これで、あたかもファイルのように変数から値を読み込みます。

前のページ | ホーム | 次のページ
Stream_Var | 上に戻る | 例

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Games_Chess

目次
導入 -- Games_Chess の基本的な使用法

Games_Chess は、チェスというゲームがどんなものかを知るのに必要なあらゆるものを兼ね備えています。 ただ、ひとつだけできないことがあります。それはあなたの対戦相手になることです。 Games_Chess は、チェスエンジンではないのです。 Games_Chess はチェス盤のロジックを処理し、 標準的な FEN (Forsyth-Edwards Notation) による駒の位置や SAN (Standard Algebraic Notation) による駒の動きをパースします。 このパッケージを使用すると、チェスをプレイするためのバックエンドドライバを作成することができます。 また、File_ChessPGN パッケージ (まだ完成していません) を使用して PGN ファイルの検証や作成を行うことができます。

前のページ | ホーム | 次のページ
Structures_DataGrid | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- Games_Chess の基本的な使用法

Games_Chess とは?

Games_Chess は、チェスを検証したり プレイしたりするための基本的なインターフェイスを提供します。 Games_Chess は、チェスの主要なルールをすべて扱うことができます。 チェック・チェックメイト・ステイルメイト・基本的な引き分けパターン (ビショップ+キング 対 キングなど)・50 手ルール・アンパッサン・ キャスリング・ポーンが最初だけ 2 マス進めること などをサポートしています。 さらに、Games_Chess は Forsyth-Edwards Notation (FEN) を使用して盤を準備したり Standard Algebraic Notation (SAN) 形式で棋譜を出力することができます。 また、妥当な SAN 形式をパースすることができます (たとえば Qa3xf3 のようなあいまいな形式でも可能です) し、単純な "move the piece on a3 to h3" 形式のコマンドもサポートします。

Games_Chess の使い方は?

The Games_Chess パッケージにはデモ用のファイルが含まれています。 構文をハイライトさせたソースが ここ で見られます。

Games_Chess パッケージには三種類のドライバが含まれます。 ひとつは標準的なチェスをプレイするためのもので、他のふたつは Internet Chess Club (ICC) で人気の変則版をプレイするためのものです。

  1. Crazyhouse。 Crazyhouse は、 敵から取った駒を自分の駒として使用することができます。 これは、激しいやり取りが行われる非常に戦術的なゲームです。

  2. Loser's Chess。 Loser's chess はチェッカーと似ています。駒が取れる場合は必ず取らなければなりません。 このため、動きがある程度限定されてしまうため、 結果としてゲームが高速に進みます。

Games_Chess の基本的な使い方は単純です。 三種類のドライバを初期化するサンプルスクリプトを示します。

<?php
require_once 'Games/Chess/Standard.php';
require_once 'Games/Chess/Crazyhouse.php';
require_once 'Games/Chess/Losers.php';
$standard = new Games_Chess_Standard;
$crazyhouse = new Games_Chess_Crazyhouse;
$losers = new Games_Chess_Losers;
?>
デフォルトでは、Games_Chess ドライバは何もない盤を作成します。 駒を初期位置に並べるには、このコードを使用します。
<?php
require_once 'Games/Chess/Standard.php';
$standard = new Games_Chess_Standard;
$standard->resetGame();
?>
FEN 記法で指定した配置で駒を置きたい場合は、FEN 文字列を resetGame() に渡します。
<?php
require_once 'Games/Chess/Standard.php';
$standard = new Games_Chess_Standard;
$standard->resetGame('rnbqkbnr/pp1ppppp/8/2p5/4P3/8/PPPP1PPP/RNBQKBNR w KQkq c6 0 2');
?>

Games_Chess で駒を動かす方法

Games_Chess で駒を動かすための基本的なメソッドは moveSAN と moveSquare です。これらのメソッドは、どちらも TRUE あるいはエラー時に PEAR_Error クラスを返します。 そこで、返り値の扱いかたは次のようになります。
<?php
require_once 'Games/Chess/Standard.php';
$standard = new Games_Chess_Standard;
$err = $standard->moveSAN('Nf9');
if ($standard->isError($err)) {
    echo $err->getMessage();
    die;
}
?>
Games_Chess->isError() を使用していることに注意しましょう。 これにより、必要なときにのみ PEAR_Error を読み込むことになり、効率がよくなります。効率が大した問題ではない場合は (問題になるのは、一秒間に数千ページを処理するようなサイトくらいでしょう)、 PEAR_Error コールバックを使うほうが簡単です。 これについては次の例で説明します。

以下の例では、Games_Chess で盤上の駒を動かす方法、 Crazyhouse で新たな駒を配置する方法を示します。
<?php
require_once 'PEAR.php'; // PEAR_Error クラス用
function showerror($err)
{
    echo $err->getMessage();
    exit;
}
require_once 'Games/Chess/Standard.php';
require_once 'Games/Chess/Crazyhouse.php';
PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'showerror');
$standard = new Games_Chess_Standard;
$crazyhouse = new Games_Chess_Crazyhouse;
$standard->resetGame();
$crazyhouse->resetGame();

$standard->moveSAN('e4'); // moveSquare を使用するのなら 'e2' to 'e4'
$standard->moveSquare('d7', 'd5'); // moveSAN を使用するのなら 'd5'
$standard->moveSAN('exd5');

$crazyhouse->moveSquare('e2', 'e4'); // 上の moveSAN() と同じ
$crazyhouse->moveSAN('d5'); // 上の moveSquare と同じ
$crazyhouse->moveSAN('exd5');
$crazyhouse->moveSAN('Qxd5');
$crazyhouse->moveSAN('P@d7'); // 駒を配置します
?>
ポーンが成る場合は、moveSquare() で駒の型を指定しなければなりません。 Q はクイーン、 R はルーク、B はビショップ、 そして N はナイトを表します。
<?php
require_once 'PEAR.php'; // PEAR_Error クラス用
function showerror($err)
{
    echo $err->getMessage();
    exit;
}
require_once 'Games/Chess/Crazyhouse.php';
PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'showerror');
$crazyhouse = new Games_Chess_Crazyhouse;
$crazyhouse->resetGame();
$crazyhouse->moveSAN('e4');
$crazyhouse->moveSAN('d5');
$crazyhouse->moveSAN('exd5');
$crazyhouse->moveSAN('Qxd5');
$crazyhouse->moveSAN('d3');
$crazyhouse->moveSAN('Kd7');
$crazyhouse->moveSAN('d4');
$crazyhouse->moveSAN('Ke6');
$crazyhouse->moveSAN('P@d7');
$crazyhouse->moveSAN('Qd6');
// $crazyhouse->moveSAN('d8=Q'); // 通常の方法
$crazyhouse->moveSquare('d7', 'd8', 'Q'); // moveSquare を使用する方法
// ポーンをクイーンに成らせます
?>

進行中のゲームの情報の取得

現在までの駒の動きや現在の FEN、持ち駒の一覧 (Crazyhouse のみ) などの必要な情報を取得したり、 ゲームが終了したかどうかを調べたりといったことを行うには、 以下のいずれかのメソッドを使用します。

  • gameOver()。 このメソッドを使用して、ゲームが終了したかどうかを調べます。 白が勝った (チェックメイト) 場合に W、 黒が勝った (チェックメイト) 場合に B、 引き分けの場合に D、 そしてゲームがまだ進行中の場合に false を返します。

  • renderFen()。

    このメソッドは、Forsyth-Edwards Notation (FEN) 形式で現在のゲームの状態を返します。FEN では、 持ち駒を表す方法がないことに注意しましょう。そのため、 現在進行中の Crazyhouse のゲームを完全に再現することはできません。

  • toArray()。

    Standard ドライバおよび Loser's chess ドライバでは、 これは代数的なマスの位置 (a1 から h8) にその内容を対応させた連想配列を返します。その位置に何も駒がない場合は、 礼装配列の値はそのマスの名前になり (たとえば a1 に対応する値は a1 となります)、 それ以外の場合は駒の名前が値となります。駒の名前は P、R、 N、B、Q あるいは K のいずれかです。 駒の色が白の場合は P のように大文字で表し、 黒の場合は p のように小文字で表します。

    Crazyhouse ドライバでは、これは 2 つのキー board および captured を持つ連想配列を返します。board の値は、先の段落で説明した Standard/Loser's chess ドライバの場合の返り値と同じ内容です。 captured の中には、このような形式の配列が含まれます。
    <?php
$captured =
    array(
        'W' =>
            array(
                'P' => 6, // 白は、黒のポーンを 6 個取っています
                'R' => 0,
                'N' => 0,
                'B' => 0,
                'Q' => 0,
            ),
        'B' =>
            array(
                'P' => 4, // 黒は、白のポーンを 4 個取っています
                'R' => 0,
                'N' => 0,
                'B' => 0,
                'Q' => 0,
            ),
    );
?>
    最初の要素が白か黒か (W および B) を表し、 その配下の要素が各種類の持ち駒の数を表します。 上の例では、白はあと 6 回ポーンを打つことができます。 また、黒はあと 4 回ポーンを打つことができます。

  • toMove()。

    このメソッドは、次がどちらの番なのかを返します。 W の場合は白番、B の場合は黒番です。

前のページ | ホーム | 次のページ
Games_Chess | 上に戻る | Structures_Graph

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_BibTex

目次
導入 -- Structures_BibTex について
警告 -- Structures_BibTex での警告の使用法
エクスポート -- Structures_BibTex を使用したデータのエクスポート
その他 -- Structures_BibTex クラスのその他のメソッド

BibTex データをパースして配列に変換します。 また、それを BibTex および RTF でエクスポートします。

前のページ | ホーム | 次のページ
構造 (Structures) | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


エクスポート

エクスポート -- Structures_BibTex を使用したデータのエクスポート

概要

Structures_BibTex クラスが提供するメソッドを使用すると、 クラスに保存されたデータをエクスポートすることができます。 現在は、次のフォーマットに対応しています。

  • BibTeX - 全データを BibTeX でエクスポートします

  • RTF - 条件にマッチするデータを RTF フォーマットのリストでエクスポートします

  • HTML - 条件にマッチするデータを HTML のリストでエクスポートします

BibTeX

基本的な機能として、当然 BibTeX フォーマットでのエクスポートが可能です。 これは、単に bibTex() メソッドを起動するだけです。

例 56-1BibTeX フォーマットでのエクスポート

require_once 'Structures/BibTex.php';
$bibtex = new Structures_BibTex();
$ret    = $bibtex->loadFile('foo.bib');
if (PEAR::isError($ret)) {
    die($ret->getMessage());
}
$bibtex->parse();
echo 'BibTeX フォーマットにしたデータ:<br />';
echo $bibtex->bibTex();

RTF

この機能は、データを Word にインポートするために作成されました。 Word は (もちろん Open Office や kword も)、 RTF フォーマットを読み込むことができます。 そのためには、出力データを 'somefile.rtf' という名前で保存して それを Word で開くだけです。Windows ユーザもこれで満足でしょう。 この機能を使用するには、rtf() メソッドをコールします。

例 56-2RTF フォーマットでのエクスポート

require_once 'Structures/BibTex.php';
$bibtex = new Structures_BibTex();
$ret    = $bibtex->loadFile('foo.bib');
if (PEAR::isError($ret)) {
    die($ret->getMessage());
}
$bibtex->parse();
echo 'RTF フォーマットにしたデータ:<br />';
echo $bibtex->rtf();

各エントリのデフォルトの書式は、まず最初に著者名がきて、 次に (ダブルクォートで囲まれた太字の) タイトル、 それから (斜体の) 学会誌名、そして最後に年となります。 デフォルトの書式を変更するには、クラス変数 rtfstring をオーバーライドします。デフォルトの rtfstring は 'AUTHORS, "{\b TITLE}", {\i JOURNAL}, YEAR' となっています。文字列 AUTHORS、TITLE、JOURNAL および YEAR は、対応する値に置き換えられます。

例 56-3異なる RTF 文字列による RTF フォーマットでのエクスポート

require_once 'Structures/BibTex.php';
$bibtex = new Structures_BibTex();
$ret    = $bibtex->loadFile('foo.bib');
if (PEAR::isError($ret)) {
    die($ret->getMessage());
}
$bibtex->parse();
$bibtex->rtfstring  = 'AUTHORS, "TITLE", JOURNAL, YEAR';
echo 'RTF フォーマットにしたデータ (しかし今回は文字装飾はしない):<br />';
echo $bibtex->rtf();

HTML

この機能は、単にシンプルな HTML を作成します。 デフォルトの書式は rtf の場合と同じです。これを使用するには html() メソッドをコールします。

例 56-4HTML フォーマットでのエクスポート

require_once 'Structures/BibTex.php';
$bibtex = new Structures_BibTex();
$ret    = $bibtex->loadFile('foo.bib');
if (PEAR::isError($ret)) {
    die($ret->getMessage());
}
$bibtex->parse();
echo 'HTML フォーマットにしたデータ:<br />';
echo $bibtex->html();

RTF エクスポートの場合と同様、デフォルトの HTML 文字列は オーバーライドすることが可能です。デフォルトの文字列はクラス変数 htmlstring に保存されており、 AUTHORS, "<strong>TITLE</strong>", <em>JOURNAL</em>, YEAR<br /> のようになっています。

例 56-5異なる HTML 文字列による HTML フォーマットでのエクスポート

require_once 'Structures/BibTex.php';
$bibtex = new Structures_BibTex();
$ret    = $bibtex->loadFile('foo.bib');
if (PEAR::isError($ret)) {
    die($ret->getMessage());
}
$bibtex->parse();
$bibtex->htmlstring  = 'AUTHORS, "TITLE", JOURNAL, YEAR';
echo 'HTML フォーマットにしたデータ (しかし今回は文字装飾はしない):<br />';
echo $bibtex->html();

前のページ | ホーム | 次のページ
警告 | 上に戻る | その他

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- Structures_BibTex について

概要

このパッケージは、BibTex ファイルに保存された情報にアクセスするための メソッドを提供します。パース時に、データの検証を行うこともできます。 さらに、BibTex 文字列を作成したり RTF 文字列を作成したりすることもサポートしています。

例

例 56-1BibTex ファイルを読み込み、パース結果を配列で表示する

require_once 'Structures/BibTex.php';
$bibtex = new Structures_BibTex();
$ret    = $bibtex->loadFile('foo.bib');
if (PEAR::isError($ret)) {
    die($ret->getMessage());
}
$bibtex->parse();
echo '<pre>';
print_r($foo->data);
echo '</pre>';

オプション

オプションは、コンストラクタで設定するか、あるいは setOption() メソッドで設定します。 コンストラクタで設定する場合は、連想配列形式で指定します。 以下のようなオプションがあります。

  • stripDelimiter (デフォルト: true) エントリの前後の区切り文字を取り除きます。

  • validate (デフォルト: true) パース時に内容を検証します。

  • unwrap (デフォルト: false) パース時に、ワードラップを解除します。

  • wordWrapWidth (デフォルト: false) 1 より大きい数値を指定すると、その文字数でエントリをワードラップします。

  • wordWrapBreak (デフォルト: \n) 改行に使用する (行に追加される) 文字。

  • wordWrapCut (デフォルト: 0) 0 を指定すると、条件を満たすように空白の位置で改行されます。 1 を指定すると、指定した文字数ちょうどの位置で改行されます。

コンストラクタでオプションを設定する例です。

例 56-2コンストラクタでのオプションの設定

$bibtex = new Structures_BibTex(array('validate'=>false, 'unwrap'=>true));
setOption() メソッドでオプションを設定する例です。

例 56-3setOption を使用したオプションの設定

$bibtex = new Structures_BibTex();
                $bibtex->setOption('validate', false);
                $bibtex->setOption('unwrap', true);

保存されたデータ

データは、クラス変数 data に保存されます。 この変数はリストになっており、各エントリが、ひとつの bibtex エントリを表すハッシュテーブルとなっています。 ハッシュテーブルのキーが bibtex のキーを表し、 それに対応する値がハッシュテーブルの値となります。 次のようなキーがあります。

  • cite - LaTeX のソースで引用する際に使用されるキー。

  • type - エントリの種類。例えば techreport、book など。

  • author - 著者。 このエントリの値自体がハッシュテーブルのリストとなり、 各ハッシュテーブルが著者を表します。ハッシュテーブルの内容については後で説明します。

  • title - エントリのタイトル。

著者

先ほど説明したように、著者の情報はリストに保存されます。 各エントリがそれぞれひとりの著者を表し、それぞれがハッシュテーブルを持っています。 ハッシュテーブルは first、von、last そして jr の 4 つのキーで構成されます。 それぞれのキーについて説明します。

  • first - 著者のファーストネーム。

  • von - 中には、名前に 'von' のような部分が含まれる人もいます。これは、通常は貴族の印です。

  • last - 著者の姓。

  • jr - 中には、父と同じ名前の著者もいます。 その場合、この値が jr となります。逆に、 息子と同じ名前の著者の場合は、この値が sen となります。

エントリの追加

エントリを追加するには、必要なキーおよび値を指定したハッシュテーブルを作成して addEntry() メソッドをコールします。

例 56-4エントリの追加

$bibtex                         = new Structures_BibTex();
$addarray                       = array();
$addarray['type']               = 'Article';
$addarray['cite']               = 'art2';
$addarray['title']              = 'Titel of the Article';
$addarray['author'][0]['first'] = 'John';
$addarray['author'][0]['last']  = 'Doe';
$addarray['author'][1]['first'] = 'Jane';
$addarray['author'][1]['last']  = 'Doe';
$bibtex->addEntry($addarray);

前のページ | ホーム | 次のページ
Structures_BibTex | 上に戻る | 警告

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


その他

その他 -- Structures_BibTex クラスのその他のメソッド

概要

このページでは、Structures_BibTex クラスのその他のメソッドについて説明します。以下のメソッドを取り上げます。

  • amount - BibTex エントリの件数

  • getStatistic - BibTex に関する統計情報

amount

このメソッドは、現在このクラスに保存されている BibTex エントリの件数を返します。返り値は整数型となります。

getStatistic

このメソッドは、すべてのエラー型とその件数についての統計情報を配列で返します。 エラーの型がキー、そして件数を表す整数値が値となります。

前のページ | ホーム | 次のページ
エクスポート | 上に戻る | Structures_DataGrid

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


警告

警告 -- Structures_BibTex での警告の使用法

概要

Structures_BibTex クラスには、 パース中に発生した警告を収集する仕組みがあります。 「警告」とは、BibTex ソース中にある、 間違ってはいるが処理を中断させるほどでもないもののことです、 例えば、cite エントリが重複している場合などがあてはまります。 これらの警告を参考にすると、BibTex コードの品質を より向上させることができます。警告を発生させるかどうかは、 validate オプションで制御します。デフォルトでは警告を発生させます。 警告を発生させたくない場合は、setOption() メソッドをこのように使用します。

例 56-1警告を発生させないようにする

require_once 'Structures/BibTex.php';
$bibtex = new Structures_BibTex();
$bibtex->setOption('validate', false);

使用法

警告の内容は warnings という名前の配列に保存されます。 この配列は外部からもアクセス可能です。警告が存在するかどうかを調べるには hasWarning() メソッドを使用します。 このメソッドは、警告が存在する場合に true、 存在しない場合に false を返します。

例 56-2警告を調べる

require_once 'Structures/BibTex.php';
$bibtex = new Structures_BibTex();
$ret    = $bibtex->loadFile('foo.bib');
if (PEAR::isError($ret)) {
    die($ret->getMessage());
}
$bibtex->parse();
if ($bibtex->hasWarning()) {
    print '警告があります!<br />';
}
個々の警告自体はハッシュテーブルで、次のようなキーが存在します。

  • warning - 警告の型。

  • entry - 警告が発生した行。

  • wholeentry - 警告が発生したエントリ全体。

すべての警告の型、そして発生した行を表示するには、 このようにします。

例 56-3警告を調べる

require_once 'Structures/BibTex.php';
$bibtex = new Structures_BibTex();
$ret    = $bibtex->loadFile('foo.bib');
if (PEAR::isError($ret)) {
    die($ret->getMessage());
}
$bibtex->parse();
if ($bibtex->hasWarning()) {
    foreach ($bibtex->warnings as $warning) {
        echo '警告: '.$warning['warning'].'<br />';
        echo '行: '.$warning['entry'].'<hr />';
    }
}
また、すべての警告を消去するには clearWarnings() メソッドを使用します。

警告の型

以下のような型の警告があります。

  • WARNING_AT_IN_BRACES - 波括弧で囲まれた内部では、@ を使用することができません。

  • WARNING_ESCAPED_DOUBLE_QUOTE_INSIDE_DOUBLE_QUOTES - ダブルクォートで囲まれた内部では、 エスケープされたダブルクォートを使用することができません。

  • WARNING_UNBALANCED_AMOUNT_OF_BRACES - 値の中での波括弧の数 (開始括弧と終了括弧) が対応していません。 エントリ全体でこの数が間違っている場合、パースに失敗します。 しかし、ある特定のエントリだけで間違っている場合は単に警告を発生するだけです。 結果としてはパースは失敗しませんが、 波括弧の開始・終了が対応していないためにこの警告が発生します。

  • WARNING_MULTIPLE_ENTRIES - 各エントリは、それぞれ一意の文字列で識別されます。 この警告が発生するのは、同じ識別子のエントリが 2 つ以上存在するときです。

  • WARNING_LINE_WAS_NOT_CONVERTED - この警告が発生するのは、エクスポート中に (例えば RTF や HTML などで)、マッチするデータがないために エントリが無視されたときです。変換を行うためには、 title、journal、year あるいは authors のうち、 最低ひとつのエントリが存在する必要があります。

前のページ | ホーム | 次のページ
導入 | 上に戻る | エクスポート

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid

Structures_DataGrid は、テーブル構造のデータを 作成、操作、表示するためのクラスです。 データグリッドを HTML 形式で表示するだけでなく、XML ドキュメントや Excel スプレッドシート、そして XUL ドキュメントなどのさまざまな形式にすることができます。

ページ操作やソートの機能により、表示されるデータを絞り込むこともできます。 この考え方は、.NET Framework の DataGrid コントロール にヒントを得たもので、データベースの結果セットや XML 形式のデータセットと組み合わせると非常にうまく動作します。

導入および機能紹介

目次
導入 -- Structures_DataGrid で何ができるのか?
FAQ -- よくある質問への答え
インストール -- コアパッケージおよびドライバパッケージのインストール方法
データソース -- データソースドライバとは?
出力のレンダリング -- どのような書式で出力できるのか?
ストリーミング -- 大規模なレコードセットのストリーミング方法
カラムフォーマッタ -- カラムフォーマッタで何ができるのか?
サンプル - お手軽版 -- データベースのテーブルから、手っ取り早くデータを取得する
サンプル - 複雑版 -- さまざまな機能を使用してデータグリッドを作成する
独自のデータソース -- 独自のデータソースドライバを作成する方法
独自のレンダラ -- 独自のレンダリングドライバを作成する方法

Structures_DataGrid クラス

目次
constructor Structures_DataGrid::Structures_DataGrid() -- コンストラクタ
Structures_DataGrid::addColumn() -- カラムを追加する。オプションでその位置を指定する
Structures_DataGrid::attachRenderer() -- 初期化済みのレンダリングドライバをアタッチする
Structures_DataGrid::bind() -- シンプルな方法で、レコードセットをデータグリッドにバインドする
Structures_DataGrid::bindDataSource() -- データソースドライバのインスタンスをバインドする
Structures_DataGrid::build() -- データグリッドを組み立てる
Structures_DataGrid::dataSourceFactory() -- データソースドライバのファクトリ
Structures_DataGrid::dump() -- デバッグ用にのみ使用するメソッド。 データグリッドオブジェクトの内容をダンプする
Structures_DataGrid::enableStreaming() -- データソースからの読み込み、レンダラへの書き出しの際のストリーミング機能を有効にし、 バッファの大きさ (レコード数) を設定する
Structures_DataGrid::fill() -- レンダリングコンテナにデータを投入する
Structures_DataGrid::getColumnByField() -- フィールド名からカラムを探す
Structures_DataGrid::getColumnByName() -- 名前 (ラベル) からカラムを探す
Structures_DataGrid::getColumnCount() -- カラムの数を返す
Structures_DataGrid::getCurrentPage() -- ページ処理が実装されている場合に、現在のページ番号を取得する
Structures_DataGrid::getCurrentRecordNumberEnd() -- 現在のページの最後のレコードの番号を返す
Structures_DataGrid::getCurrentRecordNumberStart() -- 現在のページの最初のレコードの番号を返す
Structures_DataGrid::getDataSource() -- 現在読み込まれているデータソースドライバを取得する
Structures_DataGrid::getOutput() -- データグリッドの出力を返す
Structures_DataGrid::getPageCount() -- 総ページ数を返す
Structures_DataGrid::getRecordCount() -- レコードの総数を返す
Structures_DataGrid::getRenderer() -- 現在使用中の、あるいはデフォルトのレンダリングドライバを取得する
Structures_DataGrid::removeColumn() -- カラムを削除する
Structures_DataGrid::render() -- データグリッドをレンダリングする
Structures_DataGrid::setCurrentPage() -- 現在のページ番号を定義する
Structures_DataGrid::setDataSourceOption() -- データソースのオプションを設定する
Structures_DataGrid::setDataSourceOptions() -- データソースの複数のオプションを設定する
Structures_DataGrid::setDefaultSort() -- デフォルトの並べ替え条件を設定する
Structures_DataGrid::setRenderer() -- レンダラを設定する
Structures_DataGrid::setRendererOption() -- レンダラのオプションを設定する
Structures_DataGrid::setRendererOptions() -- レンダラの複数のオプションを設定する
Structures_DataGrid::setRequestPrefix() -- グローバル変数 GET/POST のプレフィックスを設定する
Structures_DataGrid::sortRecordSet() -- 定義したフィールドで、レコードを並べ替える

Structures_DataGrid_Column クラス

目次
Structures_DataGrid_Column クラス概要 -- Structures_DataGrid_Column クラス
constructor Structures_DataGrid_Column::Structures_DataGrid_Column() -- コンストラクタ
Structures_DataGrid_Column::formatter() -- フォーマッタ
Structures_DataGrid_Column::getAttributes() -- カラムの XML/HTML 属性を取得する
Structures_DataGrid_Column::getAutoFillValue() -- オートフィルの値を取得する
Structures_DataGrid_Column::getField() -- カラムに対応させるフィールドの名前を取得する
Structures_DataGrid_Column::getLabel() -- カラムのラベルを取得する
Structures_DataGrid_Column::getOrderBy() -- データの並べ替えの基準となるフィールド名あるいは式を取得する
Structures_DataGrid_Column::setAttributes() -- カラムの XML/HTML 属性を設定する
Structures_DataGrid_Column::setAutoFillValue() -- オートフィルの値を設定する
Structures_DataGrid_Column::setField() -- カラムに対応させるフィールドの名前を設定する
Structures_DataGrid_Column::setFormatter() -- フォーマッタを設定する
Structures_DataGrid_Column::setLabel() -- カラムのラベルを設定する
Structures_DataGrid_Column::setOrderBy() -- データの並べ替えの基準となるフィールド名あるいは式を設定する

データソースドライバ

目次
Structures_DataGrid_DataSource_Array -- Array データソースドライバ
Structures_DataGrid_DataSource_CSV -- カンマ区切り値 (CSV) データソースドライバ
Structures_DataGrid_DataSource_DataObject -- PEAR::DB_DataObject データソースドライバ
Structures_DataGrid_DataSource_DB -- PEAR::DB データソースドライバ
Structures_DataGrid_DataSource_DBQuery -- PEAR::DB SQL クエリ データソースドライバ
Structures_DataGrid_DataSource_DBTable -- PEAR::DB_Table データソースドライバ
Structures_DataGrid_DataSource_Excel -- Excel スプレッドシート データソースドライバ
Structures_DataGrid_DataSource_MDB2 -- PEAR::MDB2 SQL クエリ データソースドライバ
Structures_DataGrid_DataSource_RSS -- RSS データソースドライバ
Structures_DataGrid_DataSource_XML -- XML データソースドライバ

レンダラドライバ

目次
Structures_DataGrid_Renderer_Console -- コンソールテーブル レンダリングドライバ
Structures_DataGrid_Renderer_CSV -- CSV レンダリングドライバ
Structures_DataGrid_Renderer_HTMLSortForm -- 複数フィールドによる並べ替えを行うレンダリングドライバ
Structures_DataGrid_Renderer_HTMLTable -- HTML テーブル レンダリングドライバ
Structures_DataGrid_Renderer_Pager -- Pager レンダリングドライバ
Structures_DataGrid_Renderer_Smarty -- Smarty レンダリングドライバ
Structures_DataGrid_Renderer_XLS -- Excel スプレッドシート レンダリングドライバ
Structures_DataGrid_Renderer_XML -- XML レンダリングドライバ
Structures_DataGrid_Renderer_XUL -- XUL レンダリングドライバ
前のページ | ホーム | 次のページ
その他 | 上に戻る | Games_Chess

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


独自のデータソース

独自のデータソース -- 独自のデータソースドライバを作成する方法

導入

既存のドライバの中に要件を満たすものがない場合は、 独自のデータソースドライバを書くことになります。 これはとても簡単に行うことができ、非常に柔軟性が高くなります。

風変わりなソースからデータを取得する場合に 独自のドライバを書く必要があるのは当然ですが、 それ以外にも、特にデータベースなど (それに限りませんが) へのアクセスを最適化するといった目的でも独自のドライバを書くことがあります。

このドキュメントでは、データソースのインターフェイスとその実装方法を説明します。

用語定義

データソースドライバ は、 Structures_DataGrid_DataSource クラスを継承したものです。 これは データソースインターフェイス を実装しています。

データソース は、 データソースドライバ と同じ意味で使用します。

データソースインターフェイス には、 ドライバがオーバーロードするメソッド群が含まれます。また、 ドライバが使用できる protected なプロパティや推奨する実装が含まれます。

データソースコンテナ は定数あるいは任意の型 (string, array, object など) の変数で、データ自身あるいはデータの取得方法が含まれます。

すべての データソースドライバ は、 指定した データソースコンテナ に固有のもので、 そのコンテナを処理する方法を知っています。

データソースのインターフェイス

ドライバのプロパティ

array $_options - データをバインドした際のオプションが 連想配列で含まれます。このプロパティの内容を読み込むことはできますが、 直接書き換えてはいけません。

ドライバで実装しなければならない (あるいはすることのできる) メソッド

constructor (void)

コンストラクタでは、もしデフォルトのオプションがあればそれを設定する必要があります。 その後で親クラスのコンストラクタをコールします。このメソッドは必須ではありません。

object bind (mixed container, array options)

bind() は、データソースの container をドライバに読み込みます。その際に options を適用します。このメソッドは必須ではありません。 失敗した場合には PEAR_Error オブジェクトを返す必要があります。

object count (void)

count() は、コンテナ内のレコード総数を返します。 このメソッドは必須で、fetch() の前に常にコールされます。 失敗した場合には PEAR_Error オブジェクトを返す必要があります。

object sort (mixed sortSpec, array sortDir)

sort() は、 sortSpec およびオプションの sortDir にしたがってデータを並べ替えます。 このメソッドは必須で、fetch() の前に常にコールされます。 失敗した場合には PEAR_Error オブジェクトを返す必要があります。

mixed fetch (integer offset, integer len)

fetch() は二次元の配列でデータを返さなければなりません。 返されるデータは offset で指定した場所のレコードから始まり、 len で指定した件数を含みます。このメソッドは必須です。 失敗した場合には PEAR_Error オブジェクトを返す必要があります。

ドライバが使用できる protected メソッド群

void _addDefaultOptions (array options)

_addDefaultOptions() は、 もしドライバ固有のオプションがある場合に、そのオプションとデフォルト値を指定します。 これはコンストラクタからコールされなければなりません。

void setOptions (array options)

setOptions() は、オプションを設定するために使用する public メソッドです。オプションを変更したい場合に、 ドライバはこのメソッドを使用します。

シンプルなドライバ

まずはシンプルなドライバからはじめてみましょう。そのほうが、読んで理解しやすいでしょう。 こんな SQL クエリのために独自のドライバを書くのは実用的ではありませんが、 はじめの一歩としてはお勧めです。

例 56-1シンプルな SQL アダプタ

<?php
require 'Structures/DataGrid/DataSource.php';
require_once 'DB.php';

class MyDataSource extends Structures_DataGrid_DataSource {

    var $db;
    var $orderBy = '';

    function MyDataSource() {
        $dsn = 'mysql://someuser:apasswd@localhost/thedb';
        $this->db =& DB::connect($dsn);
    }

    function count() {
        $query = "SELECT * FROM animals WHERE species='cat'";
        return $this->db->getOne($query);
    }

    function sort($sortSpec, $sortDir = 'ASC') {
        $this->orderBy = "ORDER BY $sortSpec $sortDir";
    }

    function fetch($offset = 0, $len = null) {

        $limit = is_null($len) ? "LIMIT $offset,18446744073709551615"
                               : "LIMIT $offset,$len";

        $query  = "SELECT * FROM animals WHERE species='cat' ";
        $query .= $this->_orderBy . " $limit";

        return $this->db->getAll($query);
    }
}

?>

ドライバのテスト

実際に使用する前に dump() メソッドでドライバをテストしてみることをお勧めします。

例 56-2dump() によるテスト

<?php
$datasource = new MyDataSource();

$count = $datasource->count();
echo "農場には $count 匹の猫がいます\n\n";

$datasource->sort('weight');

echo "一番軽いほうから 5 匹を表示します。\n";

// dump() は $offset および $len を fetch() と同じように受け付けます
$datasource->dump(0,5);
?>

このメソッドは、次のようにきれいに整形されたテキストのテーブルを出力します。

農場には 23 匹の猫がいます

一番軽いほうから 5 匹を表示します。
+---------+---------+-----------+--------+
| name    | species | birthDate | weight |
+---------+---------+-----------+--------+
| sarge   | cat     | 20021220  | 1.8    |
| etch    | cat     | 20000509  | 2.5    |
| potato  | cat     | 19980128  | 3.8    |
| sid     | cat     | 20011101  | 4.1    |
| woody   | cat     | 19970712  | 6.0    |
+---------+---------+-----------+--------+

新しいドライバの使用法

さあ、これであなた専用のドライバができあがり、テストも完了しました。 そろそろ Structures_DataGrid で使用してみましょう。

そのためには、 bindDataSource() メソッドを使用します。

例 56-3独自のデータソースのバインド

<?php

$datagrid =& new Structures_DataGrid();

$datasource = new MyDataSource();

$datagrid->bindDataSource($datasource);

$datagrid->render();
?>

これは、並べ替えのできる HTML テーブルを出力します。

もちろん、それ以外の Structures_DataGrid の機能も使用可能です。 例えばページ処理をしたり、XML や MS-Excel などの別のフォーマットで出力したりなどができます。

前のページ | ホーム | 次のページ
サンプル - 複雑版 | 上に戻る | 独自のレンダラ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


独自のレンダラ

独自のレンダラ -- 独自のレンダリングドライバを作成する方法

導入

独自のレンダラを書くことで、Structures_DataGrid の出力をあらゆる面で改良することができます。

データグリッドの内容を、サポートされていない書式で出力することになったとしましょう。 その場合は独自のレンダラを書かなければなりません。

そうではなく、既存のレンダラをちょっと変化させたものが必要となる場合もあるでしょう。 例えば、独特な形式の HTML などです。この場合は二通りの選択肢があります。 新しいドライバを最初から書き上げるか、あるいは既存のドライバを改造する (サブクラスを作成する) のいずれかです。

このドキュメントでは、レンダリングドライバのインターフェイスとその実装方法を説明します。 独自のレンダラによって Structures_DataGrid がいかに柔軟に拡張できるか、 そしてそれがいかに簡単にできるのかがわかるでしょう。

用語定義

レンダリングドライバ は、 Structures_DataGrid_Renderer クラスを継承したものです。 これは レンダラインターフェイス を実装しています。

レンダラ は、 レンダリングドライバ と同じ意味で使用します。

レンダラインターフェイス には、 ドライバがオーバーロードするメソッド群が含まれます。また、 ドライバが使用できる protected なプロパティや推奨する実装が含まれます。

レンダリングコンテナ はレンダリングエンジンを含むオブジェクトあるいは任意の型 (string, array, object など) の変数で、レンダラ の出力内容が含まれます。

コンテナをサポート している レンダラ のドライバは、指定した レンダリングコンテナ に固有のもので、 そのコンテナを処理する方法を知っています。

ドライバが コンテナをサポート しているとは、 指定された型の レンダリングコンテナ をドライバが処理できるということを意味します。 コンテナをサポート しているドライバは、public メソッド setContainer() および getContainer() を実装していなければなりません。 これらのメソッドは、ユーザが setContainer() で指定した レンダリングコンテナ を使用できなければなりません。 また、ユーザが何も指定しなかった場合には、自分で レンダリングコンテナ を作成して初期化しなければなりません。

ドライバが 出力バッファリング 機能を提供しているとは、 そのドライバが出力内容を溜め込めること、そして flatten() メソッドを実装しており、溜め込んだ内容を flatten() で出力できることを意味します。

ダイレクトレンダリング ドライバは、 最も単純な形式のレンダラです。これはすべての出力を標準出力に直接送ります。 これまでの定義により、このようなドライバは コンテナをサポート しませんし、また 出力バッファリング もサポートしません。

レンダラのインターフェイス

ドライバのプロパティ

これらのプロパティはすべて 読み込み専用 です。 ドライバからその値にアクセスすることはできますが、それを直接変更してはいけません。

array $_options - 共通のオプションおよびドライバ固有のオプション。

array $_columns - カラムのフィールド名およびラベル。

int $_columnsNum - カラム数。

array $_records - レコードの内容。

int $_recordsNum - 現在のページのレコード件数。

int $_totalRecordsNum - データソースから取得した、 レコードの総数。

int $_firstRecord - 現在のページの最初のレコードのレコード番号 (1 から数えます)。

int $_lastRecord - 現在のページの最後のレコードのレコード番号 (1 から数えます)。

int $_page - 現在のページ番号 (1 から数えます)。

int $_pageLimit - 1 ページあたりのレコード件数。

int $_pagesNum - ページの数。

string $_requestPrefix - GET/POST/Cookie パラメータのプレフィックス。

array $_currentSort - 現在並べ替えの基準になっているフィールドと 並べ替えの方向。

array $_sortableFields - データグリッドで並べ替えの対象となるフィールド。

ドライバで実装しなければならない (あるいはすることのできる) メソッド

以下のすべてのメソッドは、必須 ではありません。

constructor (void)

コンストラクタでは、もしデフォルトのオプションがあればそれを _addDefaultOptions() 設定する必要があります。 その後で親クラスのコンストラクタをコールします。

object setContainer (mixed container)

setContainer() は、渡されたレンダリングコンテナ container をアタッチします。 失敗した場合には PEAR_Error オブジェクトを返す必要があります。

object getContainer (void)

getContainer() は、ドライバが使用しているコンテナへの参照を返します。 失敗した場合には PEAR_Error オブジェクトを返す必要があります。

void init (void)

init() はレンダリング処理の初期化を行います。 また、コンテナが setContainer()で指定されていない場合は コンテナを作成する必要があります。

void buildHeader (array columns)

buildHeader() は見出しを作成します。 $columns は、 $_columns プロパティへの便利な参照です。

ドライバが使用できる protected メソッド群

void _addDefaultOptions (array options)

_addDefaultOptions() は、 もしドライバ固有のオプションがある場合に、そのオプションとデフォルト値を指定します。 これはコンストラクタからコールされなければなりません。

void setOptions (array options)

setOptions() は、オプションを設定するために使用する public メソッドです。オプションを変更したい場合に、 ドライバはこのメソッドを使用します。

シンプルなドライバ

近日公開予定

ドライバのテスト

近日公開予定

新しいドライバの使用法

近日公開予定

前のページ | ホーム | 次のページ
独自のデータソース | 上に戻る | Games_Chess

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


データソース

データソース -- データソースドライバとは?

説明

データソースとは、その名が示すとおりのものです。しかし、DataGrid におけるデータソースドライバは、あなたのソフトウェアにとって欠かせないものでもあります。 データソースドライバは、DB_DataObject や MDB2 クエリといった データソースと直接やりとりし、ページ処理や並べ替えの操作を行ってくれます。 そのため、あなたが実際に書かなければならないコードはほんの数行のみとなります。

ドライバの使用法

ふたつのメソッド bind() および bindDataSource() で、データベースドライバをバインドすることができます。

bind() メソッドは、自動的に適切なドライバを検出することができます。 たとえば、DB_Table や DB_DataObject のインスタンスをメソッドに渡すことができます。 文字列を渡した場合は自動検出を行うことができません。なぜなら、 文字列に、たとえば CSV や XML などのどのデータが含まれているのかがわからないからです。 このような場合は、bind() のコール時に三番目のパラメータで型を指定します (例: 'CSV' あるいは 'XML')。

独自のデータソースドライバを作成している場合には、 bindDataSource() を使用します。 独自のデータソースクラスのインスタンスを作成し、そのインスタンスを bindDataSource() メソッドに渡します。

現在使用可能なデータソースドライバ

現在使用可能なデータソースの一覧は、 概要のページ にあります。

また、FAQ の どのデータソースドライバがお勧めですか? も参照ください。

前のページ | ホーム | 次のページ
インストール | 上に戻る | 出力のレンダリング

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


サンプル - 複雑版

サンプル - 複雑版 -- さまざまな機能を使用してデータグリッドを作成する

説明

ユーザ管理システムのインターフェイス

この例では、ユーザ管理システムのインターフェイスを作成する方法を示します。 データベースへのアクセスの処理には DB_DataObject パッケージを使用します。

警告: この例では、Structures_DataGrid 0.7 で使用可能となる新機能を利用しています。今のところは CVS 版を使用してください。

例 56-1ユーザ管理システムの例

<?php
require_once 'Structures/DataGrid.php';
require_once 'HTML/Table.php';
require_once 'myclasses/User.php';

// DataObject のインスタンスを作成します。これがデータソースのコンテナとなります
$user = new User_DataObject();

// データグリッドを作成し、データソースコンテナをバインドします
$datagrid =& new Structures_DataGrid(20); // 1 ページあたりのレコード数を 20 件とします
$test = $datagrid->bind($user);
if (PEAR::isError($test)) {
    echo $test->getMessage();
}

// データグリッドの、デフォルトのソート方法を指定します
$datagrid->setDefaultSort(array('lname' => 'ASC'));

// カラムを定義します
$datagrid->addColumn(new Structures_DataGrid_Column(null, null, null, array('width' => '10'), null, 'printCheckbox()'));
$datagrid->addColumn(new Structures_DataGrid_Column('Name', null, 'lname', array('width' => '40%'), null, 'printFullName()'));
$datagrid->addColumn(new Structures_DataGrid_Column('Username', 'username', 'username', array('width' => '20%')));
$datagrid->addColumn(new Structures_DataGrid_Column('Role', null, null, array('width' => '20%'), null, 'printRoleSelector()'));
$datagrid->addColumn(new Structures_DataGrid_Column('Edit', null, null, array('width' => '20%'), null, 'printEditLink()'));

// 見た目を定義します
$tableAttribs = array(
    'width' => '100%',
    'cellspacing' => '0',
    'cellpadding' => '4',
    'class' => 'datagrid'
);
$headerAttribs = array(
    'bgcolor' => '#CCCCCC'
);
$evenRowAttribs = array(
    'bgcolor' => '#FFFFFF'
);
$oddRowAttribs = array(
    'bgcolor' => '#EEEEEE'
);
$rendererOptions = array(
    'sortIconASC' => '&uArr;',
    'sortIconDESC' => '&dArr;'
);

// HTML_Table を作成します
$table = new HTML_Table($tableAttribs);
$tableHeader =& $table->getHeader();
$tableBody =& $table->getBody();

// 指定したレンダリングオプションで、HTML_Table にデータを投入します
$test = $datagrid->fill($table, $rendererOptions);
if (PEAR::isError($test)) {
    echo $test->getMessage();
}

// 見出し行の属性を設定します
$tableHeader->setRowAttributes(0, $headerAttribs);

// 一行ごとに行属性を切り替えます
$tableBody->altRowAttributes(0, $evenRowAttribs, $oddRowAttribs, true);

// テーブルおよびページ処理リンクを出力します
echo $table->toHtml();

// ページ処理リンクを表示します
$test = $datagrid->render(DATAGRID_RENDER_PAGER);
if (PEAR::isError($test)) {
    echo $test->getMessage();
}

function printCheckbox($params)
{
    extract($params);
    return '<input type="checkbox" name="idList[]" value="' . $record['id'] . '">';
}
function printFullName($params)
{
    extract($params);
    return $record['fname'] . ' ' . $record['lname'];
}
function printRoleSelector($params)
{
    global $roleList;

    extract($params);

    $html = '<select name="role_id">';
    foreach ($roleList as $roleId => $roleName) {
        $html .= "<option value=\"$roleId\">$roleName</option>\n";
    }
    $html .= '</select>';

    return $html;
}
function printEditLink($params)
{
    extract($params);
    return '<a href="edit.php?id=' . $record['id'] . '">Edit</a>';
}
?>
前のページ | ホーム | 次のページ
サンプル - お手軽版 | 上に戻る | 独自のデータソース

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


サンプル - お手軽版

サンプル - お手軽版 -- データベースのテーブルから、手っ取り早くデータを取得する

説明

SQL クエリのバインド

データグリッドに表示させるデータを取得するには、SQL 文を bind() メソッドに渡します。

例 56-1SQL クエリをデータソースとして使用する

<?php
require 'Structures/DataGrid.php';

// DataGrid のインスタンスを作成します
$datagrid =& new Structures_DataGrid();

// データベース接続を設定します
$options = array('dsn' => 'mysql://user:password@host/db_name');

// 基本的な SQL 文をデータソースとしてバインドします
$test = $datagrid->bind('SELECT * FROM my_table', $options);

// バインド時に発生したエラーを表示します
if (PEAR::isError($test)) {
    echo $test->getMessage();
}

// DataGrid の内容を、デフォルトのレンダラ (HTML テーブル) で表示します
$test = $datagrid->render();

// レンダリング時のエラーを表示します
if (PEAR::isError($test)) {
    echo $test->getMessage();
}

?>

SQL 言語になじみのある方なら、上の例を改良し、 より複雑なクエリを使用して自分の必要なデータを表示させることができるでしょう。

以下に示すように、データセットに対して自動的にページ処理機能を追加することもできます。 この機能は、SQL 文に透過的に LIMIT 句を追加し、 データベースへのアクセスを最適化します。

例 56-2自動ページ処理

<?php
require 'Structures/DataGrid.php';

// 1 ページあたりのレコード数を 10 件にします
$datagrid =& new Structures_DataGrid(10);

// データソースを設定します
$options = array('dsn' => 'mysql://user:password@host/db_name');
$test = $datagrid->bind("SELECT * FROM my_table", $options);
if (PEAR::isError($test)) {
    echo $test->getMessage();
}

// DataGrid の内容を、デフォルトのレンダラ (HTML テーブル) で表示します
$test = $datagrid->render();
if (PEAR::isError($test)) {
    echo $test->getMessage();
}

// ページ処理用の HTML リンクを表示します
$test = $datagrid->render(DATAGRID_RENDER_PAGER);
if (PEAR::isError($test)) {
    echo $test->getMessage();
}

?>
前のページ | ホーム | 次のページ
カラムフォーマッタ | 上に戻る | サンプル - 複雑版

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


FAQ

FAQ -- よくある質問への答え

説明

これは、PEAR general mailing list およびその他のメーリングリストや掲示板での質問をもとにして作られたものです。

Structures_DataGrid FAQ

1. HTML_Table レンダラを使用しています。 同じページ内で複数のグリッドを使用するにはどうしたらいいですか?
2. どのデータソースドライバがお勧めですか?
3. データグリッドに行番号を追加したいのですが、どのようにすればいいですか?
4. Excel レンダラを使用しています。Excel ファイルでユーロ記号 (?) を使用したいのですが、単なる四角形や変な文字になってしまいます。 正しい ? を使用するにはどうすればいいですか?
5. ストリーミング機能ってイケてますよね。なぜデフォルトで有効にしないんですか?

1. HTML_Table レンダラを使用しています。 同じページ内で複数のグリッドを使用するにはどうしたらいいですか?

setRequestPrefix() メソッドを使用しましょう。ページ内の各 DataGrid は、 並べ替えやページ処理用の GET パラメータを処理する際に、 内部的にこのプレフィックスを使用します。例えばこのようにして使用します。
require_once 'Structures/DataGrid.php';

$datagrid1 = new Structures_DataGrid();
$datagrid2 = new Structures_DataGrid();

$datagrid1->bind('SELECT * FROM trade', array('dsn' => DSN));
$datagrid2->bind('SELECT * FROM stock', array('dsn' => DSN));

$datagrid1->setRequestPrefix('trade_');
$datagrid2->setRequestPrefix('stock_');

$datagrid1->render();
$datagrid2->render();

注意 setRequestPrefix() は、 bind() の前にコールする必要があります。

2. どのデータソースドライバがお勧めですか?

現時点では、効率を考慮すると次の 4 つのデータソースドライバがお勧めです。

  • DB_DataObject

  • DB_Table

  • DBQuery

  • MDB2

これら 4 つのドライバは、必要なレコードだけをデータベースから取得します。 例えば、ページあたりの行数を 15 レコードに制限している場合は、 (最大で) 15 レコードまでしか読み込みません。

その他のデータソースドライバも、もちろん使用可能です。 しかしそれらのドライバには、このように不必要なレコードの読み込み (あるいはメモリ内に保持し続ける) のを防ぐ機能は実装されていません (って言うか実装できません)。

3. データグリッドに行番号を追加したいのですが、どのようにすればいいですか?

新しいカラム用の フォーマッタ が必要です。これが行番号を保持します。このフォーマッタ関数への最初のパラメータには、 各ページ内での行番号を表す currRow という値が含まれます。 テーブル全体の中での現在の行番号を計算するには、 getCurrentRecordNumberStart() メソッドを使用するとよいでしょう。

次のコードは、フォーマッタ関数を定義してカラムを追加する方法を示したものです (# をカラムのラベルに指定し、値を右詰めにしています)。
function formatRowNumber($params, $recordNumberStart)
{
    return $params['currRow'] + $recordNumberStart;
}

$datagrid->addColumn(
    new Structures_DataGrid_Column(
        '#',
        null,
        null,
        array('style' => 'text-align: right;'),
        null,
        'formatRowNumber',
        $datagrid->getCurrentRecordNumberStart()
    ));

4. Excel レンダラを使用しています。Excel ファイルでユーロ記号 (?) を使用したいのですが、単なる四角形や変な文字になってしまいます。 正しい ? を使用するにはどうすればいいですか?

使用するエンコーディングを、例えば ISO-8859-15 などではなく Windows-1252 にする必要があります。

5. ストリーミング機能ってイケてますよね。なぜデフォルトで有効にしないんですか?

Structures_DataGrid におけるストリーミングのサポートは、 大規模なデータセットで使用することを想定したものです。 しかし、小規模なデータセットでも、効率を悪化させることなく使用可能です。

とはいえ、物事には常に例外がつきものです。 データベースから値を取得するデータソースドライバを使用している場合に、 結果の取得に長い時間のかかるクエリを実行しているのなら、 ストリーミングを使用すべきではありません。 だって、そんな複雑なクエリを何度も繰り返すことになったら、 さらに時間がかかってしまいますよね。

前のページ | ホーム | 次のページ
導入 | 上に戻る | インストール

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


カラムフォーマッタ

カラムフォーマッタ -- カラムフォーマッタで何ができるのか?

説明

カラムフォーマッタメソッドを使用すると、よくある要望にうまく対応することができます。 グリッドのセルの出力方法をカスタマイズして、例えばフォーム要素へのリンクにすることなどが可能です。 これを行うには、単に "コールバック" 関数を指定するだけです。 この関数は、表示される文字列を返します。

例 56-1カラムフォーマッタの使用法

<?php
require_once 'Structures/DataGrid.php';

$dg =& new Structures_DataGrid();
$result = $dg->bind('http://pear.php.net/feeds/pkg_structures_datagrid.rss');
if (PEAR::isError($result)) {
    die('RSS 情報の取得中にエラーが発生しました。');
}

$dg->addColumn(
    new Structures_DataGrid_Column('Release', 'title', 'title',
                                   null, null, 'printLink')
);
$dg->addColumn(
    new Structures_DataGrid_Column('Description', 'description',
                                   'description', null, null,
                                   'printDesc', array('length' => 15))
);
$dg->addColumn(
    new Structures_DataGrid_Column('Date', 'dc:date', 'dc:date')
);
$dg->render();

function printLink($params, $args)
{
    extract($params);
    extract($args);

    return '<a href="' . $record['link'] . '">' . $record['title'] . '</a>';
}

function printDesc($params, $args)
{
    extract($params);
    extract($args);

    if (strlen($record[$fieldName]) > $length) {
        return nl2br(substr($record[$fieldName], 0, $length)) . '...';
    } else {
        return nl2br($record[$fieldName]);
    }
}
?>
前のページ | ホーム | 次のページ
ストリーミング | 上に戻る | サンプル - お手軽版

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


インストール

インストール -- コアパッケージおよびドライバパッケージのインストール方法

導入

PEAR についてあまりなじみがない方は、まず最初に PEAR の一般的なインストール方法 を読むことをお勧めします。

Structures_DataGrid は、別途提供されるドライバ を使用しています。つまり、コアパッケージ Structures_DataGrid をインストールしただけでは動作しないということです。

インストール手順

入力を処理するための データソースドライバ、そして出力を処理するための レンダリングドライバ (あるいはレンダラ) が、少なくともそれぞれひとつ以上必要です。

次のコマンドは、コアパッケージのほかに MDB2 データソース (SQL クエリをバインドするため)、HTML_Table レンダラおよび Pager レンダラ (ページ処理リンクのため) をインストールします。これで、大半の要件を満たすでしょう。

$ pear install -o Structures_DataGrid
$ pear install -o Structures_DataGrid_DataSource_MDB2
$ pear install -o Structures_DataGrid_Renderer_HTMLTable
$ pear install -o Structures_DataGrid_Renderer_Pager

注意 Failed to download pear/Structures_DataGrid within preferred state "stable", latest release is [...] のようなエラーメッセージが出た場合は、パッケージ名に -beta を追加して、次のようにします。

$ pear install -o Structures_DataGrid-beta

もちろんその他の入出力書式、例えば XML、MS Excel、DB_DataObject、XUL などを使用したいこともあるでしょう。 その場合は、対応するドライバをインストールします。

高度なインストール方法

データソースドライバやレンダラドライバを、すべて一括でインストールすることもできます。 次のふたつのコマンドを使用すると、Structures_DataGrid のほかにすべてのデータソースドライバとレンダラドライバを一括インストールします。

$ pear install Structures_DataGrid#datasources
$ pear install Structures_DataGrid#renderers

ただし、各ドライバは、その前提条件が満たされる場合にのみインストールされることに注意しましょう。 つまり、たとえば MDB2 がインストールされていなければ MDB2 データソースはインストールされません。同様に、Spreadsheet_Excel_Writer がインストールされていなければ Excel レンダラはインストールされません。

もちろん、アンインストールも同じようにできます。例えばこのようになります。

$ pear uninstall Structures_DataGrid#datasources
$ pear uninstall Structures_DataGrid#renderers

注意 バージョン 1.4.11 までの PEAR インストーラではインストーラにバグがあり、 上のコマンドを使用したアンインストールに失敗することがあります。 この場合は、失敗したドライバを手動でアンインストールする必要があります。

前のページ | ホーム | 次のページ
FAQ | 上に戻る | データソース

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- Structures_DataGrid で何ができるのか?

説明

Structures_DataGrid は、 データセットをテーブル構造の出力フォーマットで表現するためのパッケージです。 対応しているフォーマットとしては、(X)HTML や XML、XUL、Excel の .xls 形式のスプレッドシート、CSV あるいはコンソールのテーブルなどがあります。

入力データの書式は、データストレージ層が何であるかに依存しません。つまり データベースから抽出したデータであろうとプレーンテキストから取得したデータであろうと、 あるいはウェブサービスのコールによって取得したデータであろうと同じように扱えます。 データのソートやページ処理が可能で、HTML 出力時には テーブルの各セルの見栄えを変えることもできます。これには CSS を使用します。

はじめの一歩

まず最初に、データソースを用意しなければなりません。一般的には、 MySQL のようなデータベース、あるいは XML ドキュメントを使用することになるでしょう。 このデータソースをデータグリッドにバインドするのは簡単で、三通りの方法があります。 まず最初の方法は、データを二次元の配列形式で取得し、それを bind メソッドに渡すことです。 二番目の方法は、配列に変換されていないレコードセットをバインドする方法です。 DB_DataObject オブジェクトや DB_Result オブジェクトが使用できます。 この方法を使用するには、DataSource オブジェクトを作成して bindDataSource メソッドを使用します。三番めの方法は、 レコードセットをループしつつ各レコードを個別に追加していくものです。 これは、最も非効率的な方法です。

注意 データグリッドを DB_DataObject のような オブジェクト形式のデータソースにバインドした場合は、 オブジェクトからデータを取得する必要はありません。DataGrid が自動的にデータ取得の処理を行います。

結果の表示

データグリッドにレコードの内容を投入したら、 さまざまな方法でそれを表示させることができます。 データを並べ替えたり、1 ページに表示されるデータ件数を制限したり、 データの表示フォーマットを選択したりすることが可能です。 データグリッドの内容は、HTML 以外にも多くのフォーマットで表示することができます。

前のページ | ホーム | 次のページ
Structures_DataGrid | 上に戻る | FAQ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


出力のレンダリング

出力のレンダリング -- どのような書式で出力できるのか?

説明

DataGrid は、データをグリッド形式の HTML テーブルにする機能を提供しています。 PHP の性質上、おそらくこれが最もよく使用される形式でしょう。 しかし、DataGrid はこれ以外にもさまざまな出力形式に対応しており、例えば Excel のスプレッドシートや XML ドキュメントとして出力することができます。

レンダラを変更する方法は?

HTML テーブル以外のレンダラを使用するには、コンストラクタあるいは setRenderer() メソッドでレンダラを変更します。レンダラを定義するパラメータは、 レンダラ定数のいずれかで指定します。 HTML_Table レンダラ以外のレンダラを使用するには、その名前 (例: 'CSV'、 'Pager' あるいは 'XML') を fill()、 getOutput() および render() メソッドの最初のパラメータとして指定します。また、setRenderer() メソッドを使用する方法もあります。かつてはコンストラクタの三番目の引数でレンダラを指定していましたが、 この方法はバージョン 0.7.0 以降では非推奨となっています。

現在使用可能なレンダラ

現在使用可能なレンダラの一覧は、 概要のページ にあります。

前のページ | ホーム | 次のページ
データソース | 上に戻る | ストリーミング

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


ストリーミング

ストリーミング -- 大規模なレコードセットのストリーミング方法

説明

レコードセットが大きすぎると、PHP のメモリ制限をオーバーしていしまうこともありえます。 Structures_DataGrid では、このような場合のためのストリーミングのサポートを、 大半のデータソースと一部のレンダラで提供しています。 これを使用することで、メモリ制限による問題を回避することができます。

どうやってストリーミング機能を使うの?

ストリーミング機能を有効にするには、Structures_DataGrid オブジェクトの enableStreaming() メソッドをコールします。 オプションのパラメータで、読み書き時にストリームの各単位で処理するレコード数を指定することができます。 デフォルトの大きさは 500 レコードです。

ストリーミングを有効にすると、バッファサイズで指定した件数までしか読み込みやレンダリングを行いません。 レコードを全件処理するためには、この処理を繰り返します。

例 56-1バッファサイズを 1000 レコードにしてストリーミング機能を有効にする

<?php
require 'Structures/DataGrid.php';

// DataGrid のインスタンスを作成します
$datagrid =& new Structures_DataGrid();

// ストリーミングを有効にし、バッファサイズを 1,000 レコードにします
$datagrid->enableStreaming(1000);

// ... ここで、いつもどおり bind() や render() をコールします
?>

ストリーミングをサポートするドライバ

すべてのデータソースドライバでストリーミングを使用することができますが、 実際に意味のある動作をするのは DataObject、DBQuery、 DB_Table および MDB2 ドライバのみです。CSV や XML データソースについても、 ストリーミング機能の追加が検討されています。

同じくすべてのレンダラについてストリーミングを使用することができますが、 現時点では、意味のある動作をするのは CSV および XML レンダラのみです。 他のレンダラについても、将来的にはストリーミングをサポートするよう書き直す予定です。

前のページ | ホーム | 次のページ
出力のレンダリング | 上に戻る | カラムフォーマッタ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_Column クラス概要

Structures_DataGrid_Column クラス概要 -- Structures_DataGrid_Column クラス

Structures_DataGrid_Column クラス

このクラスは、データグリッドのカラムを表します。

Structures_DataGrid_Column のクラス階層

  • Structures_DataGrid_Column

前のページ | ホーム | 次のページ
Structures_DataGrid | 上に戻る | constructor Structures_DataGrid_Column::Structures_DataGrid_Column()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_Column::formatter

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid_Column::formatter()

Structures_DataGrid_Column::formatter() -- フォーマッタ

概要

require_once 'Structures/DataGrid/Column.php';

void Structures_DataGrid_Column::formatter ($record, $row, $col)

説明

このメソッドは、ユーザが使用することを意図したものではありません。

事前に定義済みの関数をコールし、カラムの出力をカスタマイズします。 定義済み関数は、カラム内の各セルのデータに応じて処理するため、 パラメータを受け取ることができます。この関数は、 レコードの配列をパラメータとして自動的に受け取ります。 関数に渡されるすべてのパラメータはひとつの配列になります。

パラメータ

$record

$row

$col

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor Structures_DataGrid_Column::Structures_DataGrid_Column() | 上に戻る | Structures_DataGrid_Column::getAttributes()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_Column::getAttributes

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid_Column::getAttributes()

Structures_DataGrid_Column::getAttributes() -- カラムの XML/HTML 属性を取得する

概要

require_once 'Structures/DataGrid/Column.php';

array Structures_DataGrid_Column::getAttributes ()

説明

このカラムのすべてのセルに適用される属性を取得します。 これは、HTML あるいは XML 形式でレンダリングする際にのみ使用されます。

返り値

array(name => value, ...) 形式で属性を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid_Column::formatter() | 上に戻る | Structures_DataGrid_Column::getAutoFillValue()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_Column::getAutoFillValue

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid_Column::getAutoFillValue()

Structures_DataGrid_Column::getAutoFillValue() -- オートフィルの値を取得する

概要

require_once 'Structures/DataGrid/Column.php';

string Structures_DataGrid_Column::getAutoFillValue ()

説明

カラム内のセルが null だった場合に表示される値を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid_Column::getAttributes() | 上に戻る | Structures_DataGrid_Column::getField()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_Column::getField

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid_Column::getField()

Structures_DataGrid_Column::getField() -- カラムに対応させるフィールドの名前を取得する

概要

require_once 'Structures/DataGrid/Column.php';

string Structures_DataGrid_Column::getField ()

説明

カラムに対応させるフィールドの名前を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid_Column::getAutoFillValue() | 上に戻る | Structures_DataGrid_Column::getLabel()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_Column::getLabel

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid_Column::getLabel()

Structures_DataGrid_Column::getLabel() -- カラムのラベルを取得する

概要

require_once 'Structures/DataGrid/Column.php';

string Structures_DataGrid_Column::getLabel ()

説明

ラベルとは、カラムの見出しに用いられるテキストのことです。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid_Column::getField() | 上に戻る | Structures_DataGrid_Column::getOrderBy()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_Column::getOrderBy

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid_Column::getOrderBy()

Structures_DataGrid_Column::getOrderBy() -- データの並べ替えの基準となるフィールド名あるいは式を取得する

概要

require_once 'Structures/DataGrid/Column.php';

string Structures_DataGrid_Column::getOrderBy ()

説明

データの並べ替えの基準となるフィールドの名前を返します。 SQL ベースのデータソースでは、これは SQL の式 (関数など...) になることもあります。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid_Column::getLabel() | 上に戻る | Structures_DataGrid_Column::setAttributes()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_Column::setAttributes

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid_Column::setAttributes()

Structures_DataGrid_Column::setAttributes() -- カラムの XML/HTML 属性を設定する

概要

require_once 'Structures/DataGrid/Column.php';

void Structures_DataGrid_Column::setAttributes (array $attributes)

説明

このカラムのセルに適用される属性を設定します。 これは、HTML あるいは XML 形式でレンダリングする際にのみ使用されます。

パラメータ

array $attributes

array(name => value, ...) 形式の属性。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid_Column::getOrderBy() | 上に戻る | Structures_DataGrid_Column::setAutoFillValue()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_Column::setAutoFillValue

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid_Column::setAutoFillValue()

Structures_DataGrid_Column::setAutoFillValue() -- オートフィルの値を設定する

概要

require_once 'Structures/DataGrid/Column.php';

void Structures_DataGrid_Column::setAutoFillValue (string $str)

説明

カラム内のセルが null だった場合に表示される値を定義します。

パラメータ

string $str

オートフィルに使用する値。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid_Column::setAttributes() | 上に戻る | Structures_DataGrid_Column::setField()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_Column::setField

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid_Column::setField()

Structures_DataGrid_Column::setField() -- カラムに対応させるフィールドの名前を設定する

概要

require_once 'Structures/DataGrid/Column.php';

void Structures_DataGrid_Column::setField (string $str)

説明

カラムに対応させるフィールドの名前を定義します。

パラメータ

string $str

カラムに対応させるフィールドの名前。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid_Column::setAutoFillValue() | 上に戻る | Structures_DataGrid_Column::setFormatter()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_Column::setFormatter

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid_Column::setFormatter()

Structures_DataGrid_Column::setFormatter() -- フォーマッタを設定する

概要

require_once 'Structures/DataGrid/Column.php';

mixed Structures_DataGrid_Column::setFormatter (mixed $formatter, array [$arguments = array()])

説明

このカラムに適用する書式設定用のコールバックを、引数とともに定義します。

パラメータ

mixed $formatter

PHP の擬似型であるコールバック型 (配列あるいは文字列)。

array $arguments

コールバック関数の 2 番目の引数として渡すパラメータの連想配列。

返り値

失敗した場合に PEAR_Error を返します。

例外・エラー

例外はスローされません。

参照

http://www.php.net/manual/ja/language.pseudo-types.php も参照ください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid_Column::setField() | 上に戻る | Structures_DataGrid_Column::setLabel()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_Column::setLabel

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid_Column::setLabel()

Structures_DataGrid_Column::setLabel() -- カラムのラベルを設定する

概要

require_once 'Structures/DataGrid/Column.php';

void Structures_DataGrid_Column::setLabel (string $str)

説明

ラベルとは、カラムの見出しに用いられるテキストのことです。

パラメータ

string $str

カラムのラベル。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid_Column::setFormatter() | 上に戻る | Structures_DataGrid_Column::setOrderBy()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_Column::setOrderBy

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid_Column::setOrderBy()

Structures_DataGrid_Column::setOrderBy() -- データの並べ替えの基準となるフィールド名あるいは式を設定する

概要

require_once 'Structures/DataGrid/Column.php';

void Structures_DataGrid_Column::setOrderBy (string $str)

説明

データの並べ替えの基準となるフィールドの名前を設定します。 SQL ベースのデータソースでは、これは SQL の式 (関数など...) になることもあります。

パラメータ

string $str

フィールド名あるいは式。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid_Column::setLabel() | 上に戻る | Games_Chess

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor Structures_DataGrid_Column::Structures_DataGrid_Column

PEAR マニュアル
前のページ 次のページ

constructor Structures_DataGrid_Column::Structures_DataGrid_Column()

constructor Structures_DataGrid_Column::Structures_DataGrid_Column() -- コンストラクタ

概要

require_once 'Structures/DataGrid/Column.php';

void constructor Structures_DataGrid_Column::Structures_DataGrid_Column (string $label, string [$field = NULL], string [$orderBy = NULL], string [$attributes = array()], string [$autoFillValue = NULL], mixed [$formatter = NULL], array [$formatterArgs = array()])

説明

デフォルトのテーブル形式の設定を作成します。

パラメータ

string $label

カラムのラベルとして表示される文字列。

string $field

カラムに対応させるフィールドの名前。

string $orderBy

データの並べ替えを行うフィールドあるいは式。

string $attributes

HTML の TD タグの属性。

string $autoFillValue

autoFill で使用する値。

mixed $formatter

フォーマッタ用のコールバック。setFormatter() を参照ください。

array $formatterArgs

フォーマッタ用のコールバックの二番目の引数として渡す連想配列。

例外・エラー

例外はスローされません。

参照

Structures_DataGrid_Column::setFormatter()

Structures_DataGrid::addColumn()

http://www.php.net/manual/en/language.pseudo-types.php も参照ください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid_Column クラス概要 | 上に戻る | Structures_DataGrid_Column::formatter()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_DataSource_Array

Structures_DataGrid_DataSource_Array -- Array データソースドライバ

説明

このクラスは、二次元配列用のデータソースドライバです。

サポートする操作モード

このドライバは次の操作モードをサポートしています。

表 56-1このドライバがサポートする操作モード

モード | サポートしている?
複数フィールドによる並べ替え | no
レコードの追加、更新および削除 | no

オプション

このドライバは、以下のオプションを受け付けます。

表 56-2このドライバのオプション

オプション | 型 | 説明 | デフォルト値
fields | array | データソースからどのフィールドを取得するか。空の配列を指定すると、 すべてのフィールドを取得します。 array(field1, field2, ...) 形式となります。 | array()
generate_columns | bool | ラベルつきの Structures_DataGrid_Column オブジェクトを作成します。 'labels' オプションを参照ください。 | false
labels | array | データフィールドとラベルの対応。 'generate_columns' が true の場合にのみ使用します。 array(field => label, ...) 形式となります。 | array()
primary_key | array | レコードを一意に決定する識別子を含むフィールドの名前、 あるいは数値インデックス (複数のフィールドを指定するのは、 複合主キーの場合のみです)。 | null
前のページ | ホーム | 次のページ
Structures_DataGrid | 上に戻る | Structures_DataGrid_DataSource_CSV

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_DataSource_CSV

Structures_DataGrid_DataSource_CSV -- カンマ区切り値 (CSV) データソースドライバ

説明

このクラスは、CSV ファイル用のデータソースドライバです。 カンマ以外の区切り文字もサポートしています。

サポートする操作モード

このドライバは次の操作モードをサポートしています。

表 56-1このドライバがサポートする操作モード

モード | サポートしている?
複数フィールドによる並べ替え | no
レコードの追加、更新および削除 | no

オプション

このドライバは、以下のオプションを受け付けます。

表 56-2このドライバのオプション

オプション | 型 | 説明 | デフォルト値
delimiter | string | フィールドの区切り文字。 | ','
fields | array | データソースからどのフィールドを取得するか。空の配列を指定すると、 すべてのフィールドを取得します。 array(field1, field2, ...) 形式となります。 | array()
generate_columns | bool | ラベルつきの Structures_DataGrid_Column オブジェクトを作成します。 'labels' オプションを参照ください。 | false
header | bool | CSV ファイル (あるいは文字列) がヘッダ行を含むかどうか。 | false
labels | array | データフィールドとラベルの対応。 'generate_columns' が true の場合にのみ使用します。 array(field => label, ...) 形式となります。 | array()
primary_key | array | レコードを一意に決定する識別子を含むフィールドの名前、 あるいは数値インデックス (複数のフィールドを指定するのは、 複合主キーの場合のみです)。 | null
前のページ | ホーム | 次のページ
Structures_DataGrid_DataSource_Array | 上に戻る | Structures_DataGrid_DataSource_DataObject

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_DataSource_DataObject

Structures_DataGrid_DataSource_DataObject -- PEAR::DB_DataObject データソースドライバ

Description

このクラスは、PEAR::DB::DB_DataObject オブジェクト用のデータソースドライバです。

サポートする操作モード

このドライバは次の操作モードをサポートしています。

表 56-1このドライバがサポートする操作モード

モード | サポートしている?
複数フィールドによる並べ替え | yes
レコードの追加、更新および削除 | no

オプション

このドライバは、以下のオプションを受け付けます。

表 56-2このドライバのオプション

オプション | 型 | 説明 | デフォルト値
fields | array | データソースからどのフィールドを取得するか。空の配列を指定すると、 すべてのフィールドを取得します。 array(field1, field2, ...) 形式となります。 | array()
fields_property | string | DataObject 内に設定するプロパティの名前。このプロパティは、 'fields' オプションと同じような情報が含まれていることを想定しています。 'fields' オプションが設定されている場合は、これは使用されません。 | 'fb_fieldsToRender'
generate_columns | bool | ラベルつきの Structures_DataGrid_Column オブジェクトを作成します。 'labels' オプションを参照ください。 | false
labels | array | データフィールドとラベルの対応。 'generate_columns' が true の場合にのみ使用します。 array(field => label, ...) 形式となります。 | array()
labels_property | string | DataObject 内に設定するプロパティの名前。このプロパティは、 'labels' オプションと同じような情報が含まれていることを想定しています。 'labels' オプションが設定されている場合は、これは使用されません。 | 'fb_fieldLabels'
primary_key | array | レコードを一意に決定する識別子を含むフィールドの名前、 あるいは数値インデックス (複数のフィールドを指定するのは、 複合主キーの場合のみです)。 | null
前のページ | ホーム | 次のページ
Structures_DataGrid_DataSource_CSV | 上に戻る | Structures_DataGrid_DataSource_DB

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_DataSource_DB

Structures_DataGrid_DataSource_DB -- PEAR::DB データソースドライバ

説明

このクラスは、PEAR::DB::DB_Result オブジェクト用のデータソースドライバです。

サポートする操作モード

このドライバは次の操作モードをサポートしています。

表 56-1このドライバがサポートする操作モード

モード | サポートしている?
複数フィールドによる並べ替え | no
レコードの追加、更新および削除 | no

オプション

このドライバは、以下のオプションを受け付けます。

表 56-2このドライバのオプション

オプション | 型 | 説明 | デフォルト値
fields | array | データソースからどのフィールドを取得するか。空の配列を指定すると、 すべてのフィールドを取得します。 array(field1, field2, ...) 形式となります。 | array()
generate_columns | bool | ラベルつきの Structures_DataGrid_Column オブジェクトを作成します。 'labels' オプションを参照ください。 | false
labels | array | データフィールドとラベルの対応。 'generate_columns' が true の場合にのみ使用します。 array(field => label, ...) 形式となります。 | array()
primary_key | array | レコードを一意に決定する識別子を含むフィールドの名前、 あるいは数値インデックス (複数のフィールドを指定するのは、 複合主キーの場合のみです)。 | null
前のページ | ホーム | 次のページ
Structures_DataGrid_DataSource_DataObject | 上に戻る | Structures_DataGrid_DataSource_DBQuery

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_DataSource_DBQuery

Structures_DataGrid_DataSource_DBQuery -- PEAR::DB SQL クエリ データソースドライバ

説明

このクラスは、PEAR::DB オブジェクト用のデータソースドライバです。

サポートする操作モード

このドライバは次の操作モードをサポートしています。

表 56-1このドライバがサポートする操作モード

モード | サポートしている?
複数フィールドによる並べ替え | yes
レコードの追加、更新および削除 | no

オプション

このドライバは、以下のオプションを受け付けます。

表 56-2このドライバのオプション

オプション | 型 | 説明 | デフォルト値
dbc | object | このドライバが使用する PEAR::DB インスタンス。 このオプションか 'dsn' のいずれかが必須となります。 | null
dsn | string | PEAR::DB の dsn 文字列。このドライバが DB 接続を確立するために使用します。 このオプションか 'dbc' のいずれかが必須となります。 | null
fields | array | データソースからどのフィールドを取得するか。空の配列を指定すると、 すべてのフィールドを取得します。 array(field1, field2, ...) 形式となります。 | array()
generate_columns | bool | ラベルつきの Structures_DataGrid_Column オブジェクトを作成します。 'labels' オプションを参照ください。 | false
labels | array | データフィールドとラベルの対応。 'generate_columns' が true の場合にのみ使用します。 array(field => label, ...) 形式となります。 | array()
primary_key | array | レコードを一意に決定する識別子を含むフィールドの名前、 あるいは数値インデックス (複数のフィールドを指定するのは、 複合主キーの場合のみです)。 | null

全般的な注意

このドライバを使用するには、DB インスタンスか DB で使用できる dsn 文字列のいずれかを指定しなければなりません。

複雑なクエリ (例えば複雑な join やエイリアスなど) を使用すると、$datagrid->getRecordCount() が間違った結果を返すことがあります。 クエリ内で GROUP BY や UNION、DISTINCT が使用されている場合については ドライバで特別な対応をしています。しかし、もしレコード件数がおかしな値になるようなら、 レコード数だけを返すような特別なクエリ (例えば 'SELECT COUNT(*) FROM ...') を作成してください。をしてそれを bind() のコール時の追加オプション 'count_query' に指定します。

クエリ内で ORDER BY 文を指定することができます。この並べ替え処理は、 「すべての」クエリについて、レンダラからの並べ替え指定 (例えば、HTML_Table レンダラを使用している場合に カラムの見出しをクリックした際に HTTP リクエストとして送られます) がくる前に使用されることに注意しましょう。 HTTP リクエストで何も指定されなかった場合のデフォルトの並べ替え方法を指定したいのなら、 $datagrid->setDefaultSort() を使用してください。

前のページ | ホーム | 次のページ
Structures_DataGrid_DataSource_DB | 上に戻る | Structures_DataGrid_DataSource_DBTable

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_DataSource_DBTable

Structures_DataGrid_DataSource_DBTable -- PEAR::DB_Table データソースドライバ

説明

このクラスは、PEAR::DB_Table オブジェクト用のデータソースドライバです。

サポートする操作モード

このドライバは次の操作モードをサポートしています。

表 56-1このドライバがサポートする操作モード

モード | サポートしている?
複数フィールドによる並べ替え | yes
レコードの追加、更新および削除 | yes

オプション

このドライバは、以下のオプションを受け付けます。

表 56-2このドライバのオプション

オプション | 型 | 説明 | デフォルト値
fields | array | データソースからどのフィールドを取得するか。空の配列を指定すると、 すべてのフィールドを取得します。 array(field1, field2, ...) 形式となります。 | array()
generate_columns | bool | ラベルつきの Structures_DataGrid_Column オブジェクトを作成します。 'labels' オプションを参照ください。 | false
labels | array | データフィールドとラベルの対応。 'generate_columns' が true の場合にのみ使用します。 array(field => label, ...) 形式となります。 | array()
params | array | prepare/execute 用のプレースホルダのパラメータ。 | array()
primary_key | array | レコードを一意に決定する識別子を含むフィールドの名前、 あるいは数値インデックス (複数のフィールドを指定するのは、 複合主キーの場合のみです)。 | null
view | string | DB_Table オブジェクト内の $sql 配列からのビュー。このオプションは必須です。 | null
where | string | SQL クエリの where 句。 | null

全般的な注意

ビューの select 部でエイリアスを使用する場合、DB_Table の count() メソッドが間違った結果を返すことがあります。そのため、 $datagrid->getRecordCount() も間違った結果を返すことがあります。 これを避けるため、DB_Table では件数取得用の特別なクエリを使用します。 これは、件数を取得したいビューの名前の前に '__count_' をつけた名前となります (例えば、'all' というビューがある場合、件数取得用のビューは '__count_all' という名前でなければなりません)。

update() メソッドおよび delete() メソッドを使用するには、 DB_Table のサブクラスで配列 $idx が適切に定義されていなければなりません。 たとえばデータベースのテーブルを自分で作成した場合などで $idx を設定していない場合は、オプション 'primary_key' を使用して主キーフィールドを定義することができます。

前のページ | ホーム | 次のページ
Structures_DataGrid_DataSource_DBQuery | 上に戻る | Structures_DataGrid_DataSource_Excel

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_DataSource_Excel

Structures_DataGrid_DataSource_Excel -- Excel スプレッドシート データソースドライバ

説明

このクラスは、Excel スプレッドシート用のデータソースドライバです。

サポートする操作モード

このドライバは次の操作モードをサポートしています。

表 56-1このドライバがサポートする操作モード

モード | サポートしている?
複数フィールドによる並べ替え | no
レコードの追加、更新および削除 | no

オプション

このドライバは、以下のオプションを受け付けます。

表 56-2このドライバのオプション

オプション | 型 | 説明 | デフォルト値
fields | array | データソースからどのフィールドを取得するか。空の配列を指定すると、 すべてのフィールドを取得します。 array(field1, field2, ...) 形式となります。 | array()
generate_columns | bool | ラベルつきの Structures_DataGrid_Column オブジェクトを作成します。 'labels' オプションを参照ください。 | false
header | bool | Excel ファイルに見出し行を含めるかどうかを指定します。 | false
labels | array | データフィールドとラベルの対応。 'generate_columns' が true の場合にのみ使用します。 array(field => label, ...) 形式となります。 | array()
primary_key | array | レコードを一意に決定する識別子を含むフィールドの名前、 あるいは数値インデックス (複数のフィールドを指定するのは、 複合主キーの場合のみです)。 | null

全般的な注意

このクラスは、reader.php というファイルが Spreadsheet/Excel/ ディレクトリに存在するものとして作成されています。

注意してほしいのは、Spreadsheet_Excel_Reader の現在のバージョン (2i) では、read() メソッドの中で die() 文が用いられているということです。 die() 文は、reader.php の 171 行目にあります。そのせいで、 "file not found" エラーを PEAR で処理することができなくなっています。

そこで、この die() 文を例えば次のように書き換えることを推奨します。
return PEAR::raiseError('The filename ' . $sFileName . ' is not readable');
このクラスは、このように書き換えたコードにあわせて作成されており (とは言え、もちろん die() を用いたままのコードでも動作します)、 それによって正当なエラー処理ができるようになっています。

前のページ | ホーム | 次のページ
Structures_DataGrid_DataSource_DBTable | 上に戻る | Structures_DataGrid_DataSource_MDB2

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_DataSource_MDB2

Structures_DataGrid_DataSource_MDB2 -- PEAR::MDB2 SQL クエリ データソースドライバ

説明

このクラスは、PEAR::MDB2 オブジェクト用のデータソースドライバです。

サポートする操作モード

このドライバは次の操作モードをサポートしています。

表 56-1このドライバがサポートする操作モード

モード | サポートしている?
複数フィールドによる並べ替え | yes
レコードの追加、更新および削除 | no

オプション

このドライバは、以下のオプションを受け付けます。

表 56-2このドライバのオプション

オプション | 型 | 説明 | デフォルト値
dbc | object | このドライバが使用する PEAR::MDB2 インスタンス。 このオプションか 'dsn' のいずれかが必須となります。 | null
dsn | string | PEAR::MDB2 の dsn 文字列。このドライバが MDB2 接続を確立するために使用します。 このオプションか 'dbc' のいずれかが必須となります。 | null
fields | array | データソースからどのフィールドを取得するか。空の配列を指定すると、 すべてのフィールドを取得します。 array(field1, field2, ...) 形式となります。 | array()
generate_columns | bool | ラベルつきの Structures_DataGrid_Column オブジェクトを作成します。 'labels' オプションを参照ください。 | false
labels | array | データフィールドとラベルの対応。 'generate_columns' が true の場合にのみ使用します。 array(field => label, ...) 形式となります。 | array()
primary_key | array | レコードを一意に決定する識別子を含むフィールドの名前、 あるいは数値インデックス (複数のフィールドを指定するのは、 複合主キーの場合のみです)。 | null

全般的な注意

このドライバを使用するには、MDB2 インスタンスか MDB2 で使用できる dsn 文字列のいずれかを指定しなければなりません。

複雑なクエリ (例えば複雑な join やエイリアスなど) を使用すると、$datagrid->getRecordCount() が間違った結果を返すことがあります。 クエリ内で GROUP BY や UNION、DISTINCT が使用されている場合については ドライバで特別な対応をしています。しかし、もしレコード件数がおかしな値になるようなら、 レコード数だけを返すような特別なクエリ (例えば 'SELECT COUNT(*) FROM ...') を作成してください。をしてそれを bind() のコール時の追加オプション 'count_query' に指定します。

クエリ内で ORDER BY 文を指定することができます。この並べ替え処理は、 「すべての」クエリについて、レンダラからの並べ替え指定 (例えば、HTML_Table レンダラを使用している場合に カラムの見出しをクリックした際に HTTP リクエストとして送られます) がくる前に使用されることに注意しましょう。 HTTP リクエストで何も指定されなかった場合のデフォルトの並べ替え方法を指定したいのなら、 $datagrid->setDefaultSort() を使用してください。

前のページ | ホーム | 次のページ
Structures_DataGrid_DataSource_Excel | 上に戻る | Structures_DataGrid_DataSource_RSS

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_DataSource_RSS

Structures_DataGrid_DataSource_RSS -- RSS データソースドライバ

サポートする操作モード

このドライバは次の操作モードをサポートしています。

表 56-1このドライバがサポートする操作モード

モード | サポートしている?
複数フィールドによる並べ替え | no
レコードの追加、更新および削除 | no

オプション

このドライバは、以下のオプションを受け付けます。

表 56-2このドライバのオプション

オプション | 型 | 説明 | デフォルト値
fields | array | データソースからどのフィールドを取得するか。空の配列を指定すると、 すべてのフィールドを取得します。 array(field1, field2, ...) 形式となります。 | array()
generate_columns | bool | ラベルつきの Structures_DataGrid_Column オブジェクトを作成します。 'labels' オプションを参照ください。 | false
labels | array | データフィールドとラベルの対応。 'generate_columns' が true の場合にのみ使用します。 array(field => label, ...) 形式となります。 | array()
primary_key | array | レコードを一意に決定する識別子を含むフィールドの名前、 あるいは数値インデックス (複数のフィールドを指定するのは、 複合主キーの場合のみです)。 | null
前のページ | ホーム | 次のページ
Structures_DataGrid_DataSource_MDB2 | 上に戻る | Structures_DataGrid_DataSource_XML

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_DataSource_XML

Structures_DataGrid_DataSource_XML -- XML データソースドライバ

説明

このドライバは、以下のオプションを受け付けます。

サポートする操作モード

このドライバは次の操作モードをサポートしています。

表 56-1このドライバがサポートする操作モード

モード | サポートしている?
複数フィールドによる並べ替え | no
レコードの追加、更新および削除 | no

オプション

このドライバは、以下のオプションを受け付けます。

表 56-2このドライバのオプション

オプション | 型 | 説明 | デフォルト値
fieldAttribute | string | XML ソースのどの属性をカラムのフィールド名として使用するか (XML ソースが属性をもっている場合にのみ使用します)。 | null
fields | array | データソースからどのフィールドを取得するか。空の配列を指定すると、 すべてのフィールドを取得します。 array(field1, field2, ...) 形式となります。 | array()
generate_columns | bool | ラベルつきの Structures_DataGrid_Column オブジェクトを作成します。 'labels' オプションを参照ください。 | false
labelAttribute | string | XML ソースのどの属性をカラムのラベルとして使用するか ('generate_columns' が true で、 XML ソースが属性をもっている場合にのみ使用します)。 | null
labels | array | データフィールドとラベルの対応。 'generate_columns' が true の場合にのみ使用します。 array(field => label, ...) 形式となります。 | array()
primary_key | array | レコードを一意に決定する識別子を含むフィールドの名前、 あるいは数値インデックス (複数のフィールドを指定するのは、 複合主キーの場合のみです)。 | null
xpath | string | XML データのサブセットへの XPath。 | ''
前のページ | ホーム | 次のページ
Structures_DataGrid_DataSource_RSS | 上に戻る | Games_Chess

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_Renderer_Console

Structures_DataGrid_Renderer_Console -- コンソールテーブル レンダリングドライバ

説明

このレンダラは、きれいに整形された ASCII テーブルを作成します。

サポートする操作モード

このドライバは次の操作モードをサポートしています。

表 56-1このドライバがサポートする操作モード

モード | サポートしている?
コンテナのサポート | yes
出力バッファリング | yes
ダイレクトレンダリング | no
ストリーミング | no

オプション

このドライバは、以下のオプションを受け付けます。

表 56-2このドライバのオプション

オプション | 型 | 説明 | デフォルト値
buildFooter | bool | フッタを作成するかどうか。 | true
buildHeader | bool | ヘッダを作成するかどうか。 | true
defaultCellValue | string | 空のセルに表示するデフォルトの値。 | null
defaultColumnValues | array | カラムごとに指定するセルのデフォルト値。 array(fieldName => value, ...) 形式の配列となります。 | array()
encoding | string | 内容のエンコーディング。mbstring 拡張モジュールが使用可能な場合、 デフォルト値は mb_internal_encoding() から取得します。 それ以外の場合のデフォルト値は ISO-8859-1 となります。 | 'ISO-8859-1'
excludeVars | array | 作成される HTTP クエリから取り除く変数。 | array()
extraVars | array | 作成される HTTP クエリに追加される変数。 | array()
fillWithEmptyRows | bool | すべてのページで行数が同じになるようにするかどうか。 | false
hideColumnLinks | array | デフォルトでは、すべてのカラムで並べ替えリンクが有効になります。 このオプションを使用すると、指定したカラムの並べ替えリンクを無効にできます。 array(fieldName, ...) 形式の配列で指定します。 このオプションは、並べ替えをサポートしているドライバでのみ有効です。 | array()
numberAlign | bool | 数値を右詰めにするかどうか。 | true
前のページ | ホーム | 次のページ
Structures_DataGrid | 上に戻る | Structures_DataGrid_Renderer_CSV

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_Renderer_CSV

Structures_DataGrid_Renderer_CSV -- CSV レンダリングドライバ

サポートする操作モード

このドライバは次の操作モードをサポートしています。

表 56-1このドライバがサポートする操作モード

モード | サポートしている?
コンテナのサポート | no
出力バッファリング | yes
ダイレクトレンダリング | no
ストリーミング | yes

オプション

このドライバは、以下のオプションを受け付けます。

表 56-2このドライバのオプション

オプション | 型 | 説明 | デフォルト値
buildFooter | bool | フッタを作成するかどうか。 | true
buildHeader | bool | ヘッダを作成するかどうか。 | true
defaultCellValue | string | 空のセルに表示するデフォルトの値。 | null
defaultColumnValues | array | カラムごとに指定するセルのデフォルト値。 array(fieldName => value, ...) 形式の配列となります。 | array()
delimiter | string | フィールドの区切り文字。 | ','
enclosure | string | フィールドを囲む文字。 | '"'
encoding | string | 内容のエンコーディング。mbstring 拡張モジュールが使用可能な場合、 デフォルト値は mb_internal_encoding() から取得します。 それ以外の場合のデフォルト値は ISO-8859-1 となります。 | 'ISO-8859-1'
excludeVars | array | 作成される HTTP クエリから取り除く変数。 | array()
extraVars | array | 作成される HTTP クエリに追加される変数。 | array()
filename | string | 作成される CSV ファイルのファイル名。false を指定すると、 ファイル名は送信されません。 | false
fillWithEmptyRows | bool | すべてのページで行数が同じになるようにするかどうか。 | false
hideColumnLinks | array | デフォルトでは、すべてのカラムで並べ替えリンクが有効になります。 このオプションを使用すると、指定したカラムの並べ替えリンクを無効にできます。 array(fieldName, ...) 形式の配列で指定します。 このオプションは、並べ替えをサポートしているドライバでのみ有効です。 | array()
lineBreak | string | 改行に使用する文字。 | '\n'
numberAlign | bool | 数値を右詰めにするかどうか。 | true
saveToFile | boolean | 出力をローカルのファイルシステム上に保存するかどうか。 このオプションを true に設定する場合は、'filename' も必ず指定しなければならないことに注意しましょう。 | false
useQuotes | mixed | enclosure で指定した文字で値を囲むかどうか。 true: 常に囲む、false: 決して囲まない、'auto': 必要に応じて囲む | 'auto'
前のページ | ホーム | 次のページ
Structures_DataGrid_Renderer_Console | 上に戻る | Structures_DataGrid_Renderer_HTMLSortForm

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_Renderer_HTMLSortForm

Structures_DataGrid_Renderer_HTMLSortForm -- 複数フィールドによる並べ替えを行うレンダリングドライバ

説明

このドライバは、(HTML_QuickForm を使用して) フォームを作成します。 これにより、複数のフィールドや並べ替え方向を指定して データグリッドを並べ替えることができるようになります。

サポートする操作モード

このドライバは次の操作モードをサポートしています。

表 56-1このドライバがサポートする操作モード

モード | サポートしている?
コンテナのサポート | yes
出力バッファリング | yes
ダイレクトレンダリング | no
ストリーミング | no

オプション

このドライバは、以下のオプションを受け付けます。

表 56-2このドライバのオプション

オプション | 型 | 説明 | デフォルト値
buildFooter | bool | フッタを作成するかどうか。 | true
buildHeader | bool | ヘッダを作成するかどうか。 | true
defaultCellValue | string | 空のセルに表示するデフォルトの値。 | null
defaultColumnValues | array | カラムごとに指定するセルのデフォルト値。 array(fieldName => value, ...) 形式の配列となります。 | array()
directionStyle | string | 並べ替え方法を指定を 'select' 要素あるいは 'radio' 要素のどちらで行うか。 | 'select'
encoding | string | 内容のエンコーディング。mbstring 拡張モジュールが使用可能な場合、 デフォルト値は mb_internal_encoding() から取得します。 それ以外の場合のデフォルト値は ISO-8859-1 となります。 | 'ISO-8859-1'
excludeVars | array | 作成される HTTP クエリから取り除く変数。 | array()
extraVars | array | 作成される HTTP クエリに追加される変数。 | array()
fillWithEmptyRows | bool | すべてのページで行数が同じになるようにするかどうか。 | false
hideColumnLinks | array | デフォルトでは、すべてのカラムで並べ替えリンクが有効になります。 このオプションを使用すると、指定したカラムの並べ替えリンクを無効にできます。 array(fieldName, ...) 形式の配列で指定します。 このオプションは、並べ替えをサポートしているドライバでのみ有効です。 | array()
numberAlign | bool | 数値を右詰めにするかどうか。 | true
sortFieldsNum | int | 並べ替えに指定できるフィールドの数。 バックエンドが複数フィールドによる並べ替えに対応していない場合、 これは何の意味ももちません。 | 3
textAscending | string | 昇順を表すラベル。 | 'Ascending'
textChoose | string | select ボックスで何も選択されていない場合に表示する文字列。 | 'Choose...'
textDescending | string | 降順を表すラベル。 | 'Descending'
textSortBy | string | 最初のフィールドのラベル。 | 'Sort by:'
textSubmit | string | 送信ボタンのラベル。 | 'Submit'
textThenBy | string | 2 番目以降のフィールドのラベル。 | 'Then by:'
前のページ | ホーム | 次のページ
Structures_DataGrid_Renderer_CSV | 上に戻る | Structures_DataGrid_Renderer_HTMLTable

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_Renderer_HTMLTable

Structures_DataGrid_Renderer_HTMLTable -- HTML テーブル レンダリングドライバ

説明

DataGrid を HTML Table としてレンダリングするドライバです。

サポートする操作モード

このドライバは次の操作モードをサポートしています。

表 56-1このドライバがサポートする操作モード

モード | サポートしている?
コンテナのサポート | yes
出力バッファリング | yes
ダイレクトレンダリング | no
ストリーミング | no

オプション

このドライバは、以下のオプションを受け付けます。

表 56-2このドライバのオプション

オプション | 型 | 説明 | デフォルト値
buildFooter | bool | フッタを作成するかどうか。 | true
buildHeader | bool | ヘッダを作成するかどうか。 | true
columnAttributes | array | カラムのセルの属性。 array(fieldName => array(attribute => value, ...) ...) 形式の配列となります。 | array()
convertEntities | bool | html エンティティを変換するかどうか。 htmlspecialchars() をコールします。 | true
defaultCellValue | string | 空のセルに表示するデフォルトの値。 | null
defaultColumnValues | array | カラムごとに指定するセルのデフォルト値。 array(fieldName => value, ...) 形式の配列となります。 | array()
emptyRowAttributes | array | 空の行についての属性を含む連想配列。 | array()
encoding | string | 内容のエンコーディング。mbstring 拡張モジュールが使用可能な場合、 デフォルト値は mb_internal_encoding() から取得します。 それ以外の場合のデフォルト値は ISO-8859-1 となります。 | 'ISO-8859-1'
evenRowAttributes | array | 偶数行の属性を含む連想配列。 | array()
excludeVars | array | 作成される HTTP クエリから取り除く変数。 | array()
extraVars | array | 作成される HTTP クエリに追加される変数。 | array()
fillWithEmptyRows | bool | すべてのページで行数が同じになるようにするかどうか。 | false
headerAttributes | array | 見出し行の属性。array(attribute => value, ...) 形式の配列となります。 | array()
hideColumnLinks | array | デフォルトでは、すべてのカラムで並べ替えリンクが有効になります。 このオプションを使用すると、指定したカラムの並べ替えリンクを無効にできます。 array(fieldName, ...) 形式の配列で指定します。 このオプションは、並べ替えをサポートしているドライバでのみ有効です。 | array()
numberAlign | bool | 数値を右詰めにするかどうか。 | true
oddRowAttributes | array | 奇数行の属性を含む連想配列。 | array()
selfPath | string | 並べ替えおよびページ処理に使用するパス。 | $_SERVER['PHP_SELF']
sortIconASC | string | 現在の並び順が昇順であることを示すアイコン。テキストか、 あるいは画像を表す HTML となります。 | ''
sortIconDESC | string | 現在の並び順が降順であることを示すアイコン。テキストか、 あるいは画像を表す HTML となります。 | ''
sortingResetsPaging | bool | 並べ替えの HTTP クエリで、ページをリセットするかどうか。 | true
前のページ | ホーム | 次のページ
Structures_DataGrid_Renderer_HTMLSortForm | 上に戻る | Structures_DataGrid_Renderer_Pager

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_Renderer_Pager

Structures_DataGrid_Renderer_Pager -- Pager レンダリングドライバ

説明

このドライバは、一般的なページング機能を提供します。 このドライバは完全にコンテナをサポートしており、 Structures_DataGrid::fill() メソッドを使用することができます。 出力のバッファリングを行うので、Structures_DataGrid::getOutput() を使用することができます。

サポートする操作モード

このドライバは次の操作モードをサポートしています。

表 56-1このドライバがサポートする操作モード

モード | サポートしている?
コンテナのサポート | yes
出力バッファリング | yes
ダイレクトレンダリング | no
ストリーミング | no

オプション

このドライバは、以下のオプションを受け付けます。

表 56-2このドライバのオプション

オプション | 型 | 説明 | デフォルト値
buildFooter | bool | フッタを作成するかどうか。 | true
buildHeader | bool | ヘッダを作成するかどうか。 | true
defaultCellValue | string | 空のセルに表示するデフォルトの値。 | null
defaultColumnValues | array | カラムごとに指定するセルのデフォルト値。 array(fieldName => value, ...) 形式の配列となります。 | array()
encoding | string | 内容のエンコーディング。mbstring 拡張モジュールが使用可能な場合、 デフォルト値は mb_internal_encoding() から取得します。 それ以外の場合のデフォルト値は ISO-8859-1 となります。 | 'ISO-8859-1'
excludeVars | array | 作成される HTTP クエリから取り除く変数。 | array()
extraVars | array | 作成される HTTP クエリに追加される変数。 | array()
fillWithEmptyRows | bool | すべてのページで行数が同じになるようにするかどうか。 | false
hideColumnLinks | array | デフォルトでは、すべてのカラムで並べ替えリンクが有効になります。 このオプションを使用すると、指定したカラムの並べ替えリンクを無効にできます。 array(fieldName, ...) 形式の配列で指定します。 このオプションは、並べ替えをサポートしているドライバでのみ有効です。 | array()
numberAlign | bool | 数値を右詰めにするかどうか。 | true
pagerOptions | array | Pager::factory() に渡すオプション。基本的なデフォルト値は mode: Sliding、delta: 5、separator: "|"、prevImg: "<<"、nextImg: ">>" です。 extraVars および excludeVars は、レンダラの同名のオプションの内容が設定されます。 追加したり除外したい変数は、ここで指定することが可能です。 totalItems、perPage、urlVar および currentPage は、DataGrid およびデータソースから受け取ったデータの状態に応じて設定されます。 それによって何がどうなるかを把握しているのなら、 これらの値を上書きすることも可能です。 |
前のページ | ホーム | 次のページ
Structures_DataGrid_Renderer_HTMLTable | 上に戻る | Structures_DataGrid_Renderer_Smarty

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_Renderer_Smarty

Structures_DataGrid_Renderer_Smarty -- Smarty レンダリングドライバ

サポートする操作モード

このドライバは次の操作モードをサポートしています。

表 56-1このドライバがサポートする操作モード

モード | サポートしている?
コンテナのサポート | yes
出力バッファリング | no
ダイレクトレンダリング | no
ストリーミング | no

オプション

このドライバは、以下のオプションを受け付けます。

表 56-2このドライバのオプション

オプション | 型 | 説明 | デフォルト値
buildFooter | bool | フッタを作成するかどうか。 | true
buildHeader | bool | ヘッダを作成するかどうか。 | true
columnAttributes | array | カラムのセルの属性。 array(fieldName => array(attribute => value, ...) ...) 形式の配列となります。 | array()
convertEntities | bool | html エンティティを変換するかどうか。 htmlspecialchars() をコールします。 | true
defaultCellValue | string | 空のセルに表示するデフォルトの値。 | null
defaultColumnValues | array | カラムごとに指定するセルのデフォルト値。 array(fieldName => value, ...) 形式の配列となります。 | array()
encoding | string | 内容のエンコーディング。mbstring 拡張モジュールが使用可能な場合、 デフォルト値は mb_internal_encoding() から取得します。 それ以外の場合のデフォルト値は ISO-8859-1 となります。 | 'ISO-8859-1'
excludeVars | array | 作成される HTTP クエリから取り除く変数。 | array()
extraVars | array | 作成される HTTP クエリに追加される変数。 | array()
fillWithEmptyRows | bool | すべてのページで行数が同じになるようにするかどうか。 | false
hideColumnLinks | array | デフォルトでは、すべてのカラムで並べ替えリンクが有効になります。 このオプションを使用すると、指定したカラムの並べ替えリンクを無効にできます。 array(fieldName, ...) 形式の配列で指定します。 このオプションは、並べ替えをサポートしているドライバでのみ有効です。 | array()
numberAlign | bool | 数値を右詰めにするかどうか。 | true
selfPath | string | 並べ替えおよびページ処理に使用するパス。 | $_SERVER['PHP_SELF']
sortingResetsPaging | bool | 並べ替えの HTTP クエリで、ページをリセットするかどうか。 | true

全般的な注意

このドライバは render() メソッドをサポートしていません。Smarty オブジェクトを "fill" することだけが可能で、これは Smarty::assign() および Smarty::register_function() によって行われます。

Smarty オブジェクトを設定したあとに、あなたが自分で Smarty::display() をコールします。

このドライバは、次の Smarty 変数を代入します。 - $columnSet: カラム設定の配列。 構造は次のとおり。 array ( 0 => array ( 'name' => フィールド名, 'label' => カラムのラベル, 'link' => 並べ替え用のリンク, 'attributes' => 属性文字列, ), ... ) - $recordSet: レコードの値の配列。 - $currentPage: 現在のページ (最初のページは 1)。 - $recordLimit: ページ単位の行数。 - $pagesNum: ページ数。 - $columnsNum: カラム数。 - $recordsNum: 現在のページのレコード数。 - $totalRecordsNum: 総レコード数。 - $firstRecord: 最初のレコード番号 (1 から数え始める)。 - $lastRecord: 最後のレコード番号 (1 から数え始める)。 - $currentSort: カラム名および並べ替えの方向の配列。

このドライバは、getPaging という名前の Smarty カスタム関数も登録します。 これは Smarty テンプレート内で {getPaging} としてコール可能で、 ページ処理用のリンクを表示します。この関数は、Pager::factory() と同じ形式のオプションをパラメータとして受け付けます。

並べ替えおよびページ処理を含むテンプレートの例です。

<!-- カスタム関数 getPaging でページ移動リンクを表示します -->
{getPaging prevImg="<<" nextImg=">>" separator=" | " delta="5"}

<p>Showing records {$firstRecord} to {$lastRecord}
from {$totalRecordsNum}, page {$currentPage} of {$pagesNum}</p>

<table cellspacing="0">
    <!-- ヘッダを作成します -->
    <tr>
        {section name=col loop=$columnSet}
            <th {$columnSet[col].attributes}>
                <!-- カラムが並べ替え可能かどうかを調べます -->
                {if $columnSet[col].link != ""}
                    <a href="{$columnSet[col].link}">{$columnSet[col].label}</a>
                {else}
                    {$columnSet[col].label}
                {/if}
            </th>
        {/section}
    </tr>

    <!-- 本体を作成します -->
    {section name=row loop=$recordSet}
        <tr {if $smarty.section.row.iteration is even}bgcolor="#EEEEEE"{/if}>
            {section name=col loop=$recordSet[row]}
                <td {$columnSet[col].attributes}>{$recordSet[row][col]}</td>
            {/section}
        </tr>
    {/section}
</table>

このテンプレートを、次のようなコードとともに使用します。

$smarty = new Smarty(...);
$datagrid =& new Structures_DataGrid(...);
$datagrid->bind(...);
$datagrid->fill($smarty);
$smarty->display(PATH TO YOUR TEMPLATE);

前のページ | ホーム | 次のページ
Structures_DataGrid_Renderer_Pager | 上に戻る | Structures_DataGrid_Renderer_XLS

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_Renderer_XLS

Structures_DataGrid_Renderer_XLS -- Excel スプレッドシート レンダリングドライバ

サポートする操作モード

このドライバは次の操作モードをサポートしています。

表 56-1このドライバがサポートする操作モード

モード | サポートしている?
コンテナのサポート | yes
出力バッファリング | no
ダイレクトレンダリング | 真の意味ではサポートしていません。以下を参照ください。
ストリーミング | no

オプション

このドライバは、以下のオプションを受け付けます。

表 56-2このドライバのオプション

オプション | 型 | 説明 | デフォルト値
bodyFormat | mixed | 本体部分のセルの書式 (0 [= "書式指定なし"] あるいは Spreadsheet_Excel_Writer_Format オブジェクト)。 以下の書式についての注意を参照ください。 | 0
border | int | データグリッドの外枠の描画方法。0 => 描画しない、1 => 細い線、2 => 太い線 (未実装) | 0
buildFooter | bool | フッタを作成するかどうか。 | true
buildHeader | bool | ヘッダを作成するかどうか。 | true
defaultCellValue | string | 空のセルに表示するデフォルトの値。 | null
defaultColumnValues | array | カラムごとに指定するセルのデフォルト値。 array(fieldName => value, ...) 形式の配列となります。 | array()
encoding | string | 内容のエンコーディング。mbstring 拡張モジュールが使用可能な場合、 デフォルト値は mb_internal_encoding() から取得します。 それ以外の場合のデフォルト値は ISO-8859-1 となります。 | 'ISO-8859-1'
excludeVars | array | 作成される HTTP クエリから取り除く変数。 | array()
extraVars | array | 作成される HTTP クエリに追加される変数。 | array()
filename | string | スプレッドシートのファイル名。 | 'spreadsheet.xls'
fillWithEmptyRows | bool | すべてのページで行数が同じになるようにするかどうか。 | false
headerBorder | int | 見出しと本体の間の区切りの描画方法。0 => 描画しない、1 => 細い線、2 => 太い線 (未実装) | 0
headerFormat | mixed | 見出し部分のセルの書式 (0 [= "書式指定なし"] あるいは Spreadsheet_Excel_Writer_Format オブジェクト)。 以下の書式についての注意を参照ください。 | 0
hideColumnLinks | array | デフォルトでは、すべてのカラムで並べ替えリンクが有効になります。 このオプションを使用すると、指定したカラムの並べ替えリンクを無効にできます。 array(fieldName, ...) 形式の配列で指定します。 このオプションは、並べ替えをサポートしているドライバでのみ有効です。 | array()
numberAlign | bool | 数値を右詰めにするかどうか。 | true
sendToBrowser | bool | スプレッドシートをブラウザに送信するかどうか (true = ブラウザに送信する、false = ファイルに書き込む)。 | true
startCol | int | ワークシート内で表示を開始するカラム番号。 | 0
startRow | int | ワークシート内で表示を開始する行番号。 | 0
worksheet | object | オプションで指定する、Spreadsheet_Excel_Writer_Worksheet オブジェクトへの参照。 null のままにしておくこともできますが、 複数のシートからなるワークブックの特定のシートに表示したい場合に指定します。 | null

全般的な注意

このドライバは flatten() メソッドをサポートしていません。 出力内容を DataGrid::getOutput() で取得することはできません。 出力内容は、ブラウザに直接送るほかにファイルに保存することができます。 オプション "sendToBrowser" および "filename" を参照ください。

このドライバはコンテナをサポートしています。Structures_DataGrid::fill() を使用することができます。この方法を推奨します。

書式についての注意

書式設定は、オプション 'headerFormat' および 'bodyFormat'、 あるいは setBodyFormat() および setHeaderFormat() で行います。

しかし、Spreadsheet_Excel_Writer マニュアルの以下の説明には注意しましょう。 "書式を直接 new で作成することはできません。書式を作成するには、 ワークブックの addFormat() メソッドを使用する必要があります。 このメソッドは、ワークブックに書式を関連付けます (関連づけた書式を別のワークブックで使用することはできません)。"

どういう意味かというと、つまり、もしこのドライバに書式を設定したいのなら、 Format オブジェクトをドライバで使用するワークブックから作成しなければなりません。

一番簡単な方法は次のようになります。

// ワークブックを作成します
$workbook = new Spreadsheet_Excel_Writer();

// スプレッドシートをブラウザに送信するように指定します
$workbook->send('test.xls');

// 書式を作成します
$format_bold =& $workbook->addFormat();
$format_bold->setBold();

// ワークブックに内容を投入します。オプションとして書式を渡します
$options = array('headerFormat' => &$format_bold);
$datagrid->fill($workbook, $options);

前のページ | ホーム | 次のページ
Structures_DataGrid_Renderer_Smarty | 上に戻る | Structures_DataGrid_Renderer_XML

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_Renderer_XML

Structures_DataGrid_Renderer_XML -- XML レンダリングドライバ

サポートする操作モード

このドライバは次の操作モードをサポートしています。

表 56-1このドライバがサポートする操作モード

モード | サポートしている?
コンテナのサポート | no
出力バッファリング | yes
ダイレクトレンダリング | no
ストリーミング | no

オプション

このドライバは、以下のオプションを受け付けます。

表 56-2このドライバのオプション

オプション | 型 | 説明 | デフォルト値
buildFooter | bool | フッタを作成するかどうか。 | true
buildHeader | bool | ヘッダを作成するかどうか。 | true
defaultCellValue | string | 空のセルに表示するデフォルトの値。 | null
defaultColumnValues | array | カラムごとに指定するセルのデフォルト値。 array(fieldName => value, ...) 形式の配列となります。 | array()
encoding | string | 内容のエンコーディング。mbstring 拡張モジュールが使用可能な場合、 デフォルト値は mb_internal_encoding() から取得します。 それ以外の場合のデフォルト値は ISO-8859-1 となります。 | 'ISO-8859-1'
excludeVars | array | 作成される HTTP クエリから取り除く変数。 | array()
extraVars | array | 作成される HTTP クエリに追加される変数。 | array()
fieldAttribute | string | フィールド名に使用する属性の名前。null は属性がないことを表します。 | null
fieldTag | string | 行の中の各フィールドのタグの名前を括弧なしで指定します。 特別な値として '{field}' はフィールド名で置き換えられます。 | '{field}'
fillWithEmptyRows | bool | すべてのページで行数が同じになるようにするかどうか。 | false
hideColumnLinks | array | デフォルトでは、すべてのカラムで並べ替えリンクが有効になります。 このオプションを使用すると、指定したカラムの並べ替えリンクを無効にできます。 array(fieldName, ...) 形式の配列で指定します。 このオプションは、並べ替えをサポートしているドライバでのみ有効です。 | array()
labelAttribute | string | カラムのラベルに使用する属性の名前。null は属性がないことを表します。 | null
numberAlign | bool | 数値を右詰めにするかどうか。 | true
outerTag | string | データグリッドを表すタグの名前を括弧なしで指定します。 | 'DataGrid'
rowTag | string | 各行を表すタグの名前を括弧なしで指定します。 | 'Row'
useXMLDecl | bool | XML 宣言を出力に追加するかどうか。encoding 属性の値は "encoding" オプションから取得して設定します。 XML 宣言をさらに変更したい (version など) 場合は "useXMLDecl" を false とし、独自の宣言文字列を追加します。 | true
前のページ | ホーム | 次のページ
Structures_DataGrid_Renderer_XLS | 上に戻る | Structures_DataGrid_Renderer_XUL

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid_Renderer_XUL

Structures_DataGrid_Renderer_XUL -- XUL レンダリングドライバ

サポートする操作モード

このドライバは次の操作モードをサポートしています。

表 56-1このドライバがサポートする操作モード

モード | サポートしている?
コンテナのサポート | no
出力バッファリング | yes
ダイレクトレンダリング | no
ストリーミング | no

オプション

このドライバは、以下のオプションを受け付けます。

表 56-2このドライバのオプション

オプション | 型 | 説明 | デフォルト値
buildFooter | bool | フッタを作成するかどうか。 | true
buildHeader | bool | ヘッダを作成するかどうか。 | true
defaultCellValue | string | 空のセルに表示するデフォルトの値。 | null
defaultColumnValues | array | カラムごとに指定するセルのデフォルト値。 array(fieldName => value, ...) 形式の配列となります。 | array()
encoding | string | 内容のエンコーディング。mbstring 拡張モジュールが使用可能な場合、 デフォルト値は mb_internal_encoding() から取得します。 それ以外の場合のデフォルト値は ISO-8859-1 となります。 | 'ISO-8859-1'
excludeVars | array | 作成される HTTP クエリから取り除く変数。 | array()
extraVars | array | 作成される HTTP クエリに追加される変数。 | array()
fillWithEmptyRows | bool | すべてのページで行数が同じになるようにするかどうか。 | false
hideColumnLinks | array | デフォルトでは、すべてのカラムで並べ替えリンクが有効になります。 このオプションを使用すると、指定したカラムの並べ替えリンクを無効にできます。 array(fieldName, ...) 形式の配列で指定します。 このオプションは、並べ替えをサポートしているドライバでのみ有効です。 | array()
numberAlign | bool | 数値を右詰めにするかどうか。 | true
selfPath | string | 並べ替えやページ処理のリンクようの完全パス。 | $_SERVER['PHP_SELF']

全般的な注意

このクラスは、XUL リストボックスをレンダリングします。 XUL リストボックスについてのより詳しい情報は、 http://www.xulplanet.com/references/elemref/ref_listbox.html を参照ください。

まず XUL ドキュメントを作成する必要があります。これは HTML ドキュメントを作成するのと同様に行います。このドライバは、 <listbox> 要素とその内容のみを処理します。

基本的な使用例はこのようになります。
<?php
header('Content-type: application/vnd.mozilla.xul+xml');

echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n";
echo "<?xml-stylesheet href=\"myStyle.css\" type=\"text/css\"?>\n";

echo "<window title=\"MyDataGrid\"
       xmlns=\"http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul\">\n";

// データグリッドのインスタンスを作成してデータソースを設定し、そしてコールします
$datagrid->setRenderer('XUL');
$datagrid->render();

echo "</window>\n";
?>

前のページ | ホーム | 次のページ
Structures_DataGrid_Renderer_XML | 上に戻る | Games_Chess

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::addColumn

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::addColumn()

Structures_DataGrid::addColumn() -- カラムを追加する。オプションでその位置を指定する

概要

require_once 'Structures/DataGrid.php';

mixed Structures_DataGrid::addColumn (&$column, string [$position = 'last'], string [$relativeTo = NULL], object $column)

説明

このパッケージに関する文書は、未作成です。

パラメータ

&$column

string $position

"last"、"first"、"after" あるいは "before" のいずれか (デフォルト: "last")。

string $relativeTo

基準となるカラムの名前 (ラベル) あるいはフィールド名。 $position が "after" あるいは "before" の場合に使用します。

object $column

Structures_DataGrid_Column オブジェクトへの参照。

返り値

失敗した場合に PEAR_Error を返します。それ以外の場合は値を返しません。

例外・エラー

例外はスローされません。

例

例 56-1シンプルなカラムの追加

<?php
$datagrid =& new Structures_DataGrid();
$column = new Structures_DataGrid_Column('Title', 'title', 'title', array('align' => 'center'), 'N/A', null);
$datagrid->addColumn($column);
?>

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
constructor Structures_DataGrid::Structures_DataGrid() | 上に戻る | Structures_DataGrid::attachRenderer()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::attachRenderer

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::attachRenderer()

Structures_DataGrid::attachRenderer() -- 初期化済みのレンダリングドライバをアタッチする

概要

require_once 'Structures/DataGrid.php';

mixed& Structures_DataGrid::attachRenderer (&$renderer, object $renderer)

説明

このパッケージに関する文書は、未作成です。

パラメータ

&$renderer

object $renderer

Structures_DataGrid_Renderer を継承したドライバオブジェクト。

返り値

レンダラのインスタンス、あるいは PEAR_Error オブジェクトを返します。

例外・エラー

例外はスローされません。

参照

Structures_DataGrid::setRenderer も参照ください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::addColumn() | 上に戻る | Structures_DataGrid::bind()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::bind

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::bind()

Structures_DataGrid::bind() -- シンプルな方法で、レコードセットをデータグリッドにバインドする

概要

require_once 'Structures/DataGrid.php';

bool Structures_DataGrid::bind (mixed $container, array [$options = array()], string [$type = NULL])

説明

このパッケージに関する文書は、未作成です。

パラメータ

mixed $container

サポートされる任意のデータソース型のレコードセット。

array $options

オプションです。データソースのオプションとして使用されます。

string $type

オプションです。データソースの型です。

返り値

成功した場合に True、それ以外の場合に PEAR_Error を返します。

例外・エラー

例外はスローされません。

例

例 56-1SQL クエリのバインド

<?php
// データベース接続を設定します
$options = array('dsn' => 'mysql://user:password@host/db_name');

// 基本的な SQL 文をデータソースとしてバインドします
// 注意: ORDER BY 句や LIMIT 句は自動的に追加されます
$test = $datagrid->bind('SELECT * FROM my_table', $options);

// バインド時のエラーを表示します
if (PEAR::isError($test)) {
    echo $test->getMessage();
}
?>

例 56-2DB_DataObject のバインド

<?php
$person = new DataObjects_Person;

$person->hair = 'red';
$person->has_glasses = 1;

$datagrid->bind($person);
?>

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::attachRenderer() | 上に戻る | Structures_DataGrid::bindDataSource()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::bindDataSource

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::bindDataSource()

Structures_DataGrid::bindDataSource() -- データソースドライバのインスタンスをバインドする

概要

require_once 'Structures/DataGrid.php';

mixed Structures_DataGrid::bindDataSource (&$source, mixed $source)

説明

このパッケージに関する文書は、未作成です。

パラメータ

&$source

mixed $source

データソースドライバオブジェクト。

返り値

成功した場合に True、それ以外の場合に PEAR_Error を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::bind() | 上に戻る | Structures_DataGrid::build()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::build

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::build()

Structures_DataGrid::build() -- データグリッドを組み立てる

概要

require_once 'Structures/DataGrid.php';

mixed Structures_DataGrid::build ()

説明

このパッケージに関する文書は、未作成です。

返り値

true あるいは PEAR_Error オブジェクトを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::bindDataSource() | 上に戻る | Structures_DataGrid::dataSourceFactory()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::dataSourceFactory

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::dataSourceFactory()

Structures_DataGrid::dataSourceFactory() -- データソースドライバのファクトリ

概要

require_once 'Structures/DataGrid.php';

Structures_DataGrid_DataSource|PEAR_Error& Structures_DataGrid::dataSourceFactory (mixed $source, array [$options = array()], string [$type = NULL])

説明

データソースドライバの読み込みとインスタンス作成を行う、賢いメソッドです。

さまざまな方法でコールすることができます。

ソースの型を検出し、適切なドライバをデフォルトのオプションで読み込む:
$driver =& Structures_DataGrid::dataSourceFactory($source);

ソースの型を検出し、適切なドライバを指定したオプションで読み込む:
$driver =& Structures_DataGrid::dataSourceFactory($source, $options);

型を明示的に指定してドライバを読み込む (検出ルーチンを飛ばすため、高速です):
$driver =& Structures_DataGrid::dataSourceFactory($source, $options, $type);

パラメータ

mixed $source

ドライバに対応するデータソース。

array $options

array(optionName => optionValue, ...) 形式の連想配列。

string $type

データソースの型を表す定数 (DATAGRID_SOURCE_* 形式)。

返り値

ドライバオブジェクト、あるいは失敗した場合に PEAR_Error を返します。

例外・エラー

例外はスローされません。

参照

Structures_DataGrid::_detectSourceType() も参照ください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::build() | 上に戻る | Structures_DataGrid::dump()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::dump

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::dump()

Structures_DataGrid::dump() -- デバッグ用にのみ使用するメソッド。 データグリッドオブジェクトの内容をダンプする

概要

require_once 'Structures/DataGrid.php';

void Structures_DataGrid::dump ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::dataSourceFactory() | 上に戻る | Structures_DataGrid::enableStreaming()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::enableStreaming

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::enableStreaming()

Structures_DataGrid::enableStreaming() -- データソースからの読み込み、レンダラへの書き出しの際のストリーミング機能を有効にし、 バッファの大きさ (レコード数) を設定する

概要

require_once 'Structures/DataGrid.php';

void Structures_DataGrid::enableStreaming (integer [$bufferSize = 500])

説明

このパッケージに関する文書は、未作成です。

パラメータ

integer $bufferSize

バッファリングするレコードの数。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::dump() | 上に戻る | Structures_DataGrid::fill()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::fill

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::fill()

Structures_DataGrid::fill() -- レンダリングコンテナにデータを投入する

概要

require_once 'Structures/DataGrid.php';

mixed Structures_DataGrid::fill (object &$container, array [$options = array()], string [$type = NULL])

説明

このパッケージに関する文書は、未作成です。

パラメータ

object &$container

サポートしている型 (例: HTML_Table オブジェクトや Spreadsheet_Excel_Writer オブジェクトなど) のコンテナ。

array $options

対応するレンダリングドライバへのオプション。

string $type

コンテナの型を検出できない場合に明示的に指定する型。

返り値

true あるいは PEAR_Error オブジェクトを返します。

例外・エラー

例外はスローされません。

例

例 56-1Pager オブジェクトの投入

<?php

require_once 'Pager/Pager.php';

// オプションを指定して Pager オブジェクトを作成します
$pager =& Pager::factory($options);

// データおよび設定にもとづいて fill() が $pager オブジェクトを設定します
$datagrid->fill($pager);

// ページ指定のリンクを作成します
echo $pager->links;

// あるいはお好みに応じて select フィールドを作成します
echo $pager->getpageselectbox();

?>

例 56-2並べ替え機能つきのフォーム

<?php
require_once 'HTML/QuickForm.php';

// 設定情報をもとに空のフォームを作成します
$form = new HTML_QuickForm('myForm', 'POST');

// それをカスタマイズします。見出しを追加したり、テキストフィールドを追加したり……
$form->addElement('header', null, 'Search & Sort Form Example');
$form->addElement('text', 'my_search', 'Search for:');

// データグリッドに並べ替え用のフィールドを追加します。ラジオボタン型です
$options = array('directionStyle' => 'radio');
$datagrid->fill($form, $options);

// 送信ボタンを追加する必要があります。fill() はこれを追加しません
$form->addElement('submit', null, 'Submit');

// HTML_QuickForm::display() を使用してフォームを表示します
$form->display();

?>

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::enableStreaming() | 上に戻る | Structures_DataGrid::getColumnByField()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::getColumnByField

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::getColumnByField()

Structures_DataGrid::getColumnByField() -- フィールド名からカラムを探す

概要

require_once 'Structures/DataGrid.php';

object Either& Structures_DataGrid::getColumnByField (string $fieldName)

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $fieldName

探すカラムのフィールド名。

返り値

カラムオブジェクトへの参照、あるいはカラムがない場合に false を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::fill() | 上に戻る | Structures_DataGrid::getColumnByName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::getColumnByName

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::getColumnByName()

Structures_DataGrid::getColumnByName() -- 名前 (ラベル) からカラムを探す

概要

require_once 'Structures/DataGrid.php';

object Either& Structures_DataGrid::getColumnByName (string $name)

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $name

探すカラムの名前 (ラベル)。

返り値

カラムオブジェクトへの参照、あるいはカラムがない場合に false を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::getColumnByField() | 上に戻る | Structures_DataGrid::getColumnCount()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::getColumnCount

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::getColumnCount()

Structures_DataGrid::getColumnCount() -- カラムの数を返す

概要

require_once 'Structures/DataGrid.php';

int Structures_DataGrid::getColumnCount ()

説明

このパッケージに関する文書は、未作成です。

返り値

カラムの数を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::getColumnByName() | 上に戻る | Structures_DataGrid::getCurrentPage()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::getCurrentPage

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::getCurrentPage()

Structures_DataGrid::getCurrentPage() -- ページ処理が実装されている場合に、現在のページ番号を取得する

概要

require_once 'Structures/DataGrid.php';

int Structures_DataGrid::getCurrentPage ()

説明

このパッケージに関する文書は、未作成です。

返り値

現在のページ番号を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::getColumnCount() | 上に戻る | Structures_DataGrid::getCurrentRecordNumberEnd()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::getCurrentRecordNumberEnd

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::getCurrentRecordNumberEnd()

Structures_DataGrid::getCurrentRecordNumberEnd() -- 現在のページの最後のレコードの番号を返す

概要

require_once 'Structures/DataGrid.php';

int Structures_DataGrid::getCurrentRecordNumberEnd ()

説明

このパッケージに関する文書は、未作成です。

返り値

現在表示されている最後のレコードの番号を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::getCurrentPage() | 上に戻る | Structures_DataGrid::getCurrentRecordNumberStart()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::getCurrentRecordNumberStart

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::getCurrentRecordNumberStart()

Structures_DataGrid::getCurrentRecordNumberStart() -- 現在のページの最初のレコードの番号を返す

概要

require_once 'Structures/DataGrid.php';

int Structures_DataGrid::getCurrentRecordNumberStart ()

説明

このパッケージに関する文書は、未作成です。

返り値

現在表示されている最初のレコードの番号を返します。 レコードが存在しない場合は 0、レコード数の制限がない場合は 1 を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::getCurrentRecordNumberEnd() | 上に戻る | Structures_DataGrid::getDataSource()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::getDataSource

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::getDataSource()

Structures_DataGrid::getDataSource() -- 現在読み込まれているデータソースドライバを取得する

概要

require_once 'Structures/DataGrid.php';

object DataSource& Structures_DataGrid::getDataSource ()

説明

データソースオブジェクトへの参照を取得します。

返り値

オブジェクトへの参照、あるいはドライバが読み込まれていない場合に null を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::getCurrentRecordNumberStart() | 上に戻る | Structures_DataGrid::getOutput()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::getOutput

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::getOutput()

Structures_DataGrid::getOutput() -- データグリッドの出力を返す

概要

require_once 'Structures/DataGrid.php';

mixed Structures_DataGrid::getOutput (int [$type = NULL], array [$options = array()])

説明

このパッケージに関する文書は、未作成です。

パラメータ

integer $type

レンダラの型 (オプション)。

array $options

array(optionName => optionValue, ...) 形式の連想配列。

返り値

データグリッドの出力 (通常は文字列です。HTML や CSV など……) あるいは PEAR_Error を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::getDataSource() | 上に戻る | Structures_DataGrid::getPageCount()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::getPageCount

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::getPageCount()

Structures_DataGrid::getPageCount() -- 総ページ数を返す

概要

require_once 'Structures/DataGrid.php';

int Structures_DataGrid::getPageCount ()

説明

このパッケージに関する文書は、未作成です。

返り値

総ページ数を返します。 レコードが存在しない場合やレコード数の制限がない場合には 1 を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::getOutput() | 上に戻る | Structures_DataGrid::getRecordCount()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::getRecordCount

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::getRecordCount()

Structures_DataGrid::getRecordCount() -- レコードの総数を返す

概要

require_once 'Structures/DataGrid.php';

int Structures_DataGrid::getRecordCount ()

説明

このパッケージに関する文書は、未作成です。

返り値

レコードの総数を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::getPageCount() | 上に戻る | Structures_DataGrid::getRenderer()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::getRenderer

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::getRenderer()

Structures_DataGrid::getRenderer() -- 現在使用中の、あるいはデフォルトのレンダリングドライバを取得する

概要

require_once 'Structures/DataGrid.php';

object Renderer& Structures_DataGrid::getRenderer ()

説明

レンダラオブジェクトへの参照を取得します。

返り値

オブジェクトへの参照を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::getRecordCount() | 上に戻る | Structures_DataGrid::removeColumn()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::removeColumn

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::removeColumn()

Structures_DataGrid::removeColumn() -- カラムを削除する

概要

require_once 'Structures/DataGrid.php';

void Structures_DataGrid::removeColumn (&$column, object $column)

説明

このパッケージに関する文書は、未作成です。

パラメータ

&$column

object $column

Structures_DataGrid_Column オブジェクトへの参照。

例外・エラー

例外はスローされません。

例

例 56-1不要なカラムの削除

<?php
$datagrid =& new Structures_DataGrid();

// これは、あなたのデータベース環境に応じて書き換えます
$bindOptions['dsn'] = "mysql://foo:bar@host/world";

// City テーブルのフィールドは ID、Name、CountryCode、District および Population の 5 つです
$datagrid->bind("SELECT * FROM City ORDER BY Population", $bindOptions);

// ID フィールドを削除したいので、そのカラムへの参照を取得します
$column =& $datagrid->getColumnByField('ID');

// そしてそのカラムを削除します
$datagrid->removeColumn($column);

// これで Name、CountryCode、District および Population の 4 つだけをレンダリングします
$datagrid->render();
?>

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::getRenderer() | 上に戻る | Structures_DataGrid::render()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::render

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::render()

Structures_DataGrid::render() -- データグリッドをレンダリングする

概要

require_once 'Structures/DataGrid.php';

mixed Structures_DataGrid::render (mixed [$renderer = NULL], array [$options = array()])

説明

このメソッドを複数回コールし、異なる設定でレンダリングすることができます。

パラメータ

mixed $renderer

レンダラの型あるいはインスタンス (オプション)。

array $options

array(optionName => optionValue, ...) 形式の連想配列。

返り値

True あるいは PEAR_Error を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::removeColumn() | 上に戻る | Structures_DataGrid::setCurrentPage()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::setCurrentPage

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::setCurrentPage()

Structures_DataGrid::setCurrentPage() -- 現在のページ番号を定義する

概要

require_once 'Structures/DataGrid.php';

void Structures_DataGrid::setCurrentPage (mixed $page)

説明

このメソッドは、ページ処理機能が実装されている場合に使用します。

パラメータ

mixed $page

現在のページ番号 (文字列あるいは整数値)。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::render() | 上に戻る | Structures_DataGrid::setDataSourceOption()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::setDataSourceOption

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::setDataSourceOption()

Structures_DataGrid::setDataSourceOption() -- データソースのオプションを設定する

概要

require_once 'Structures/DataGrid.php';

void Structures_DataGrid::setDataSourceOption (string $name, mixed $value)

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $name

オプションの名前。

mixed $value

オプションの値。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::setCurrentPage() | 上に戻る | Structures_DataGrid::setDataSourceOptions()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::setDataSourceOptions

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::setDataSourceOptions()

Structures_DataGrid::setDataSourceOptions() -- データソースの複数のオプションを設定する

概要

require_once 'Structures/DataGrid.php';

void Structures_DataGrid::setDataSourceOptions (array $options)

説明

このパッケージに関する文書は、未作成です。

パラメータ

array $options

array("option_name" => "option_value",...) 形式の連想配列。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::setDataSourceOption() | 上に戻る | Structures_DataGrid::setDefaultSort()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::setDefaultSort

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::setDefaultSort()

Structures_DataGrid::setDefaultSort() -- デフォルトの並べ替え条件を設定する

概要

require_once 'Structures/DataGrid.php';

mixed Structures_DataGrid::setDefaultSort (array $sortSpec)

説明

並べ替え条件が HTTP リクエストで指定されておらず、かつ sortRecordSet() メソッドもコールされていない場合、setDefaultSort() に渡した設定が用いられます。

これは、ユーザが最初にデータグリッドを見るときに すでに並べ替え済みであってほしい場合に有用です。

パラメータ

array $sortSpec

array(fieldName => direction, ...) で表した、並べ替えの設定。

返り値

true あるいは PEAR_Error オブジェクトを返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::setDataSourceOptions() | 上に戻る | Structures_DataGrid::setRenderer()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::setRenderer

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::setRenderer()

Structures_DataGrid::setRenderer() -- レンダラを設定する

概要

require_once 'Structures/DataGrid.php';

mixed& Structures_DataGrid::setRenderer (string $type, array [$options = array()])

説明

データグリッドがどのレンダラを使用するかを、 $type および $options に基づいて決定します。 既存のレンダラインスタンスをアタッチするには、かわりに attachRenderer() を使用します。

パラメータ

string $type

定義済みのレンダラ文字列。

array $options

レンダリングのオプション。

返り値

レンダラのインスタンスあるいは PEAR_Error を返します。

例外・エラー

例外はスローされません。

参照

Structures_DataGrid::attachRenderer も参照ください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::setDefaultSort() | 上に戻る | Structures_DataGrid::setRendererOption()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::setRendererOption

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::setRendererOption()

Structures_DataGrid::setRendererOption() -- レンダラのオプションを設定する

概要

require_once 'Structures/DataGrid.php';

void Structures_DataGrid::setRendererOption (string $name, mixed $value)

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $name

オプションの名前。

mixed $value

オプションの値。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::setRenderer() | 上に戻る | Structures_DataGrid::setRendererOptions()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::setRendererOptions

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::setRendererOptions()

Structures_DataGrid::setRendererOptions() -- レンダラの複数のオプションを設定する

概要

require_once 'Structures/DataGrid.php';

void Structures_DataGrid::setRendererOptions (array $options)

説明

このパッケージに関する文書は、未作成です。

パラメータ

array $options

array("option_name" => "option_value",...) 形式の連想配列。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::setRendererOption() | 上に戻る | Structures_DataGrid::setRequestPrefix()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::setRequestPrefix

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::setRequestPrefix()

Structures_DataGrid::setRequestPrefix() -- グローバル変数 GET/POST のプレフィックスを設定する

概要

require_once 'Structures/DataGrid.php';

void Structures_DataGrid::setRequestPrefix (string $prefix)

説明

リクエスト変数を変更したい場合は、プレフィックスを定義することが可能です。 これは、複数のデータグリッドを使用する際に非常に便利です。

パラメータ

string $prefix

リクエスト変数の先頭につけるプレフィックス。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::setRendererOptions() | 上に戻る | Structures_DataGrid::sortRecordSet()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_DataGrid::sortRecordSet

PEAR マニュアル
前のページ 次のページ

Structures_DataGrid::sortRecordSet()

Structures_DataGrid::sortRecordSet() -- 定義したフィールドで、レコードを並べ替える

概要

require_once 'Structures/DataGrid.php';

void Structures_DataGrid::sortRecordSet (array $sortSpec, string [$direction = 'ASC'])

説明

データベースからデータを取得する場合は、このメソッドを使用しないでください。 その場合は、データベース側で並べ替えさせるほうがずっと高速です。

パラメータ

array $sortSpec

array(fieldName => direction, ...) 形式の並べ替え設定。

string $direction

非推奨です。並べ替えの方向は $sortSpec で指定します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid::setRequestPrefix() | 上に戻る | Games_Chess

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


constructor Structures_DataGrid::Structures_DataGrid

PEAR マニュアル
前のページ 次のページ

constructor Structures_DataGrid::Structures_DataGrid()

constructor Structures_DataGrid::Structures_DataGrid() -- コンストラクタ

概要

require_once 'Structures/DataGrid.php';

void constructor Structures_DataGrid::Structures_DataGrid (string [$limit = NULL], int [$page = NULL], string [$rendererType = NULL])

説明

DataGrid クラスを作成します。コア機能とレンダラは分割されており、 それによって保守性と高い結合性が保たれています。

パラメータ

string $limit

1 ページあたりに表示するレコード数。

integer $page

現在表示しているページ。たいていの場合は、これは無意味です。 注意: これを指定すると、GET 変数 "page" は無視されます。

string $rendererType

使用するレンダラの型。これを使用するかわりに render()、 fill() あるいは getOutput() の引数 $type を使用することを推奨します。

例外・エラー

例外はスローされません。

例

例 56-1インスタンスの作成

<?php
// アンパサンドを忘れないでください。
$datagrid =& new Structures_DataGrid();
?>

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Structures_DataGrid | 上に戻る | Structures_DataGrid::addColumn()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_Graph

目次
Introduction -- Graph datastructure manipulation library

Graph datastructure manipulation library

前のページ | ホーム | 次のページ
導入 | 上に戻る | Introduction

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction

Introduction -- Graph datastructure manipulation library

Structures_Graph Description

Structures_Graph is a package for creating and manipulating graph datastructures. It allows building of directed and undirected graphs, with data and metadata stored in nodes. The library provides functions for graph traversing as well as for characteristic extraction from the graph topology.

The full online documentation is available here

前のページ | ホーム | 次のページ
Structures_Graph | 上に戻る | Structures_Tree

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Structures_Tree

目次
Introduction -- Generic tree management, currently supports DB and XML as data sources

Generic tree management, currently supports DB and XML as data sources

前のページ | ホーム | 次のページ
Introduction | 上に戻る | Introduction

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction

Introduction -- Generic tree management, currently supports DB and XML as data sources

Structures_Tree Description

Provides methods to read and manipulate trees, which are stored in the DB or an XML file. The trees can be stored in the DB either as nested trees. Or as simple trees ('brain dead method'), which use parentId-like structure. Currently XML data can only be read from a file and accessed. The package offers a big number of methods to access and manipulate trees. For example methods like: getRoot, getChild[ren[Ids]], getParent[s[Ids]], getPath[ById] and many more.

Unfortunately, complete documentation is not available at the moment.

前のページ | ホーム | 次のページ
Structures_Tree | 上に戻る | システム

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_Folders

目次
導入 -- システムフォルダの位置の取得
例 -- System_Folders の使用法

ホーム、デスクトップ、ドキュメントなどのシステムフォルダの場所を返します。

前のページ | ホーム | 次のページ
システム | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


例

例 -- System_Folders の使用法

System_Folders の使用法

例 57-1一般的な使用法

<?php
require_once 'System/Folders.php';

$sf = new System_Folders();

$arData = array(
'Username'         => $sf->getUserName(),
'Home'             => $sf->getHome(),
'Documents'        => $sf->getDocuments(),
'Shared documents' => $sf->getSharedDocuments(),
'Temp'             => $sf->getTemp(),
'Desktop'          => $sf->getDesktop(),
'AppData'          => $sf->getAppData(),
'Programs'         => $sf->getPrograms(),
'Windows'          => $sf->getWindows()
);

echo 'System: ' . $sf->getSys() . "\r\n";
var_dump($arData);
?>

まず最初に、新しい System_Folders オブジェクトのインスタンスを作成します。この中で OS が何であるかが判定され、その後のメソッドのコール時に使用されます。

そのため、後は単に getXXX() メソッドを使用するだけでフォルダの場所を取得できます。 場所が取得できなかった場合は NULL が返されることを覚えておきましょう。

System_Folders_Cached の使用法

例 57-2一般的な使用法

<?php
require_once 'System/Folders/Cached.php';
$sf = new System_Folders_Cached();

// 設定ファイルのパスを表示します
echo '設定ファイル: ' . $sf->getDefaultConfigFile() . "\r\n";

// 前回保存された設定を読み込みます
$err = $sf->loadFromFile();

echo 'Home:      ' . $sf->getHome() . "\r\n";
echo 'Documents: ' . $sf->getDocuments() . "\r\n";

echo "\r\n";

$doc = $sf->getDocuments();
if (file_exists($doc)) {
    echo "新しいドキュメントディレクトリを設定します\r\n";
    // 独自のドキュメントディレクトリを設定し、
    // 次に使用するときのためにそれを保存します
    $sf->setDocuments('/strange/path/to/MyDocuments/');
    $sf->saveToFile();
    echo '新しいドキュメントディレクトリ: ' . $sf->getDocuments() . "\r\n";
    echo "このプログラムを再実行すると、パスがデフォルトに戻されます\r\n";
} else {
    // パスをクリアします
    echo "ドキュメントディレクトリの設定を解除します\r\n";
    $sf->setDocuments(null);
    $sf->saveToFile();
    echo '新しいドキュメントディレクトリ: ' . $sf->getDocuments() . "\r\n";
}
?>

この例は、まず (フォルダの設定が保存されている) 設定ファイルの場所を表示します。それからいくつかのフォルダの場所を示し、 ドキュメントディレクトリを別の場所 (おそらく存在しないであろう場所) に設定してそれを保存します。

このプログラムをもう一度実行すると、ドキュメントディレクトリが 通常の場所にもどされ、もう一度保存されます。

前のページ | ホーム | 次のページ
導入 | 上に戻る | System_ProcWatch

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- システムフォルダの位置の取得

貢献者

  • Christian Weiske

説明

System_Folders は ホームディレクトリやデスクトップ、そして "マイ ドキュメント" などのさまざまなシステムフォルダの位置を取得するメソッドを提供します。 ほぼすべてのオペレーティングシステム上で使用することができます (Linux、Windows および Mac OS で動作します)。また、 OS 固有のプログラムを書くことも可能です。

このクラスのメソッドは、ディレクトリの位置を表す文字列を (最後のスラッシュも含めて) 返します。ディレクトリが定義されていなかったり 存在しない場合は NULL を返します。例えば、 "共有ドキュメント" フォルダは Windows にしか存在しません。 getSharedDocuments() を Mac や Linux で実行すると、NULL を返します。

このクラスは、環境変数を多用します。つまり、PHP を (Apache などの) サーバモジュールとして実行した場合は、 ユーザ情報が取得できずにメソッドがうまく動作しない可能性もあります。 コマンドライン (cli) のスクリプトとして実行すると、うまくいきます。 このクラスは、そのような使用法を想定しています。

表 57-1取得できるフォルダと、そのメソッド

フォルダ | 使用するメソッド | 備考
All users ディレクトリ | getAllUsers() | Windows 限定
Application data | getAppData() |
デスクトップ | getDesktop() |
Documents / マイ ドキュメント | getDocuments() |
ホームディレクトリ | getHome() |
Programs フォルダ (プログラムがインストールされているところ) | getPrograms() |
テンポラリフォルダ | getTemp() |
共有ドキュメント | getSharedDocuments() | Windows 限定
Windows ディレクトリ | getWindows() | Windows 限定

System_Folders_Cached

環境変数を一通り調べてフォルダが存在するかどうか調べたり 一般的なフォルダの位置を調べたりといった一連の処理が、 getXXX() をコールするたびに行われます。 つまり、同じメソッドを何度もコールしたとすると そのたびに CPU に同程度の負荷がかかり、 アプリケーションの動作も遅くなってしまうでしょう。

また、別の問題としては、 (例えばユーザがあまり一般的でない設定を行っている場合などに) 何かのメソッドが失敗したり正しい値を返さなかったりすることが考えられます。

これらの問題を解決するのが System_Folders_Cached です。これは、キャッシュに対応した getXXX() メソッドを提供します。 つまり、そのメソッドを最初にコールしたときの結果がローカルに保存され、 その後に同じメソッドがコールされるたびに保存された結果を返します。 これにより、同じメソッドを続けて大量にコールする際の速度が上がります。

さらに、このクラスを使用すると、フォルダの場所を設定して その内容を ini ファイルに保存することができます。保存するには saveToFile() を、そしてそれを読み込むには loadFromFile() を使用します。 これを使用すると、フォルダの場所をカスタマイズし、 それを複数セッションで共用することができます。

前のページ | ホーム | 次のページ
System_Folders | 上に戻る | 例

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_ProcWatch

目次
導入 -- System::ProcWatch の導入
定数 -- System_ProcWatch で定義され、使用されている定数
System_ProcWatch -- System_ProcWatch
System_ProcWatch::System_ProcWatch() -- コンストラクタ
System_ProcWatch::run() -- 一度実行する
System_ProcWatch::daemon() -- デーモンとして実行する
System_ProcWatch::setConfig() -- 設定を適用する
System_ProcWatch_Config -- System_ProcWatch_Config
System_ProcWatch_Config::fromXml() -- XML 文字列から設定配列を取得する
System_ProcWatch_Config::fromXmlFile() -- XML ファイルから設定配列を取得する
System_ProcWatch_Config::fromIniFile() -- INI ファイルから設定配列を取得する
System_ProcWatch_Config::fromArray() -- 配列から設定配列を取得する
System_ProcWatch_Parser -- System_ProcWatch_Parser
System_ProcWatch_Parser::System_ProcWatch_Parser() -- コンストラクタ
System_ProcWatch_Parser::getParsedData() -- パース済みのデータを取得する
System_ProcWatch_Parser::fetch() -- ps のデータを取得する
System_ProcWatch_Parser::parse() -- パースする
System_ProcWatch_Parser::getProcByPid() -- PID を指定して、プロセスの情報を取得する
System_ProcWatch_Parser::getProcInfo() -- プロセスについての情報を取得する

このパッケージは、 Unix 系のシステム上でシステムプロセスを監視するメソッドを提供します。

前のページ | ホーム | 次のページ
例 | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


定数

定数 -- System_ProcWatch で定義され、使用されている定数

すべての定数

ProcWatch.php で定義されている定数

この例数は、System_ProcWatch が内部的に使用しています。

表 57-1ProcWatch.php で定義されている定数

名前
SYSTEM_PROCWATCH_IS
SYSTEM_PROCWATCH_ISNOT
SYSTEM_PROCWATCH_MAX
SYSTEM_PROCWATCH_MIN
SYSTEM_PROCWATCH_PRESENCE
SYSTEM_PROCWATCH_PRESENCE_MAX
SYSTEM_PROCWATCH_PRESENCE_MIN
SYSTEM_PROCWATCH_SUM

前のページ | ホーム | 次のページ
導入 | 上に戻る | System_ProcWatch

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- System::ProcWatch の導入

System::ProcWatch とは?

System::ProcWatch はちょっとしたクラスを集めたもので、 システムのプロセスを容易に監視できるようにします。これは、 Unix のプログラム procps (ps) に基づいています。

System::ProcWatch を使用するには、System::ProcWatch の操作に基づいたルールセットを定義しなければなりません。 ルール (あるいはジョブ、ウォッチ) とは、ある条件が true と評価された際にどんなアクションが起こるのかを決めるものです。

これ以降は後で書きます……。

シェルスクリプト

System::ProcWatch を、PHP スクリプト以外から使用することもでき、 そのために利用するシェルスクリプト procwatch および procwatch-lint が同梱されています。

procwatch

procwatch コマンドは、システムの調査のために使用します。 デーモンとして実行するか、あるいは cron で実行します。

使用法は procwatch -h の出力を参照ください。
USAGE:
$ procwatch (-x|-i) <file> [-d [-s <sec>]] [-a <args>] [-p <file>]

OPTIONS:
    -x | --xml=         path to XML configuration file
    -i | --ini=         path to INI configuration file

    -d | --daemon       run procwatch in daemon mode
    -s | --sleep=       seconds to sleep in daemon mode (default=1800)

    -a | --args=        arguments that should be passed to ps (default=aux)
    -p | --php=         php file that should be included

    -h | --help         this help message

EXAMPLE:
    $ procwatch -x /etc/procwatch.xml -d -s 3600

    This command will run procwatch in daemon mode with an interval
    of an hour using the configuration file '/etc/procwatch.xml'

procwatch-lint

procwatch-lint は、XML で書かれた procwatch の設定ファイルの妥当性を検証するためのものです。 XML::DTD::XmlValidator を利用しています。

こちらも同様に、使用法については procwatch-lint -h の出力を参照ください。
USAGE:
$ procwatch-lint -c <file> [-d <dtd>] [-v]

OPTIONS:
    -c | --conf=        path to XML configuration file
    -d | --dtd=         path to DTD

    -v | --verbose      verbose output on errors

    -h | --help         this help message

EXAMPLE:
    procwatch-lint -c /etc/procwatch.xml

    This command will validate the configuration file '/etc/procwatch.xml'
    using the DTD at '/usr/share/pear/data/System_ProcWatch/procwatch-1.0.dtd'

設定

System::ProcWatch アプリケーションの設定は、以下の三通りの方法で行えます。

  • XML 形式の文字列/ファイル

  • INI ファイル

  • PHP の配列

Xml 形式の文字列/ファイル

System::ProcWatch の設定は、XML で行うことを推奨します。 この方式は、シンプルであると同時に高機能でもあります。

ルールセット: ルート要素

XML 設定ファイル/設定文字列のルート要素となるのが procwatch 要素です。この要素には省略可能な属性 version があり、暗黙的に "1.0" と設定されます。

procwatch 要素は、ルールセットを表すものです。 その子要素がルール群を表します。

ルール群: ルートの子要素

ルート要素 procwatch の直接の子要素となるのが watch 要素です。これは一回あるいは複数回登場します。

watch 要素には必須属性がひとつあります。それが name 属性で、ウォッチ (あるいはジョブ、ルール) の名前を "httpd-count" のように指定します。

個々の watch 要素が、それぞれひとつのルールを表します。 検索に使用する正規表現や評価条件、そして実行するアクションといった内容が その中に含まれます。

ルール

ルールは、以下の三種類の子要素から構成されています。

  • pattern

  • condition

  • execute

ルールの要素: pattern

pattern 要素の内容は perl 互換の正規表現で、 ps の出力の特定のカラムを評価するために使用します。

必須属性は match です。 ps の出力のカラム名を小文字にしたもの、例えば "command" や "vsz" を指定します。

このおかげで、System::ProcWatch は非常に多目的に使用できるようになっています。 また、procps プログラムが存在するあらゆるプラットフォームで使用できます。

pattern 要素の内容は perl 互換の正規表現で、 match 属性で定義したカラムに対して マッチを行います。正規表現には、開始と終了のデリミタを 必ず含めなければなりません。また、中では任意の PCRE 修飾子を使用することができます。

例: <pattern match="command">/sbin\/httpd/</pattern>

ルールの要素: condition

condition 要素は、条件を指定します。 これが TRUE と評価されたときに、後で定義するアクションが実行されます。

condition 要素には、必須属性と任意属性がひとつずつあります。 必須属性は type でこれは "presence" あるいは "attr" のいずれかでなければなりません。 任意属性は attr です。しかし、 type 属性の値が "attr" である場合は attr 属性も必須となります。

attr 属性は、 "user" や "%mem" など procps の出力のカラムを表します。

条件

type 属性の内容によって、 condition 要素の構文や振る舞いは異なります。

condition の type が "presence" の場合、中身は空となることもあります。 この場合、常に true と評価されます。

condition の子要素として、以下の要素が存在します。

  • min

    見つかった値がこの値以上でなければなりません。

  • max

    見つかった値がこの値以下でなければなりません。

  • is

    見つかった値がこの値と等しくなければなりません。

  • isnot

    見つかった値がこの値と違っていなければなりません。

  • sum

    見つかった値の総和がこの値を超えてはなりません。

これらを組み合わせ、例えば min と max で範囲を指定することなどができます。

ルールの要素: execute

execute 要素では、 condition にあてはまった場合に行われるアクションを定義します。

必須属性は type で、これは "shell" あるいは "php" のいずれかでなければなりません。

一目瞭然でしょうが、execute 要素の中身が シェル (shell_exec() を用いて) あるいは PHP (eval() を用いて) のいずれかで実行されるわけです。

execute 要素は、複数指定することができます。

execute の文の中では、以下のような特殊変数が使用可能です。

  • $msg

    ここには、何が起こったのかなどの一般的なメッセージが含まれます。 シングルクォートで囲まれた形式で、シェルや PHP の実行結果が得られます。

  • $pids

    ここには、見つかったすべてのプロセスの PID が含まれます。 シングルクォートと括弧で囲まれた形式となります。

    例: '(433, 444, 455, 466)'

  • $procs

    これは PHP の配列を文字列形式にシリアライズしたもので、 ps から得られるすべての情報を含んでいます。 array(array('pid' => 344, 'command' => '/usr/sbin/httpd' ...)) のような形式になります。

    これは PHP で実行した場合にのみ使用可能で、 関数コールバックに使用できます。

    <execute type="php">get_procs($procs);</execute>

XML 設定ファイルの例

例 57-1XML 設定ファイル

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE procwatch SYSTEM "/usr/share/pear/data/System_ProcWatch/procwatch-1_0.dtd">
<procwatch>
<!--

    いくつかの設定の例
    ==================

    このジョブは、実行中の httpd プロセスの数を調べます。
    ps の COMMAND カラムに対して、正規表現 "/httpd/"
    でマッチングを行います。

    見つかったプロセス数が 10 より少なかったり 30 より多かったりした場合は
    指定した文字列がシェルで実行されます。
-->
  <watch name="httpd-count">
    <pattern match="command">/httpd/</pattern>
    <condition type="presence">
      <min>10</min>
      <max>30</max>
    </condition>
    <execute type="shell">echo $msg $pids &gt;&gt; /var/log/procwatch</execute>
  </watch>

<!--
  このジョブは、すべての httpd プロセスが使用している物理メモリの合計を調べます。
  ps の COMMAND カラムに対して、正規表現 "/httpd/"
  でマッチングを行います。

  これは、パターンにマッチした ps の %MEM カラムの値を合計し、その値を
  指定した sum と比較します。もし結果が sum を超えていた場合に、
  指定した文字列がシェルで実行されます。
-->
  <watch name="httpd-usage">
    <pattern match="command">/httpd/</pattern>
    <condition type="attr" attr="%mem">
      <sum>5</sum>
    </condition>
    <execute type="shell">echo $msg $pids &gt;&gt; /var/log/procwatch</execute>
  </watch>

<!--
  このジョブは、ゾンビプロセスを探します。

  ps の STAT カラムに対して正規表現 "/Z/" でマッチングを行い、
  0 個より多くのゾンビが見つかった場合に、指定した文字列がシェルで実行されます。
-->
  <watch name="ZOMBIES">
    <pattern match="stat">/Z/</pattern>
    <condition type="presence">
      <max>0</max>
    </condition>
    <execute type="shell">echo $msg $pids &gt;&gt; /var/log/procwatch</execute>
  </watch>

<!--
  このジョブは、実行中のプロセスを探します。

  ps の STAT カラムに対して正規表現 "/R/" でマッチングを行い、
  実行中のプロセスが見つかった場合に、指定した文字列がシェルで実行されます。
-->
  <watch name="running">
    <pattern match="stat">/R/</pattern>
    <condition type="presence" />
    <execute type="shell">echo $msg $pids &gt;&gt; /var/log/procwatch</execute>
  </watch>

</procwatch>

INI ファイル

INI ファイルによる設定も事実上同じようなものですが、例外として execute の type には "shell" しか使用できません。

INI 設定ファイルの例

例 57-2INI 設定ファイル

;
; System::ProcWatch の設定用 INI ファイルの例
;
; execute にはシェルコマンドしか指定できないことに注意!
; より柔軟な設定をしたい場合は XML 設定ファイルを使用します。
;
[httpd]
pattern=/httpd/
match=command
condition=presence
min=10
max=50
execute="echo $msg >> /var/log/procwatch"

[zombies]
pattern=/Z/
match=stat
condition=presence
max=0
execute="kill -9 `echo $pids | sed s/[,\(\)]//g`"

[mysqld-mem]
pattern=/mysqld/
match=command
condition=attr
attr=%mem
sum=10
execute="echo $msg >> /var/log/procwatch"

PHP 配列

配列で System::ProcWatch を設定する方法は、次の例のようになります。

PHP 設定配列の例

例 57-3PHP 設定配列

$watches = array();

$watches['job1'] = array();
$watches['job1']['pattern'] = array();
$watches['job1']['condition'] = array();
$watches['job1']['execute'] = array();

$watches['job1']['pattern']['command'] = '/httpd/';
$watches['job1']['condition']['presence'] = array('min' => 10, 'max' => 100);
$watches['job1']['execute']['shell'] = array('/usr/bin/mail2admin $msg');

$watches['job2'] = array();
// ...
前のページ | ホーム | 次のページ
System_ProcWatch | 上に戻る | 定数

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_ProcWatch

System_ProcWatch -- System_ProcWatch

System_ProcWatch

プロセスを監視します。

使用例:
1  require_once 'System/ProcWatch.php';
2  require_once 'System/ProcWatch/Config.php';
3
4  $cf = System_ProcWatch_Config::fromXmlFile('/etc/procwatch.xml');
5  $pw = &new System_ProcWatch($cf);
6  $pw->run();

前のページ | ホーム | 次のページ
定数 | 上に戻る | System_ProcWatch::System_ProcWatch()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_ProcWatch_Config

System_ProcWatch_Config -- System_ProcWatch_Config

System_ProcWatch_Config

System_ProcWatch 用の設定配列を作成します。

使用例:
1  $cf = System_ProcWatch_Config::fromXmlFile('/etc/procwatch.xml');
2  $pw = &new System_ProcWatch($cf);

前のページ | ホーム | 次のページ
System_ProcWatch::setConfig() | 上に戻る | System_ProcWatch_Config::fromXml()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_ProcWatch_Config::fromArray

PEAR マニュアル
前のページ 次のページ

System_ProcWatch_Config::fromArray()

System_ProcWatch_Config::fromArray() -- 配列から設定配列を取得する

概要

require_once 'System/ProcWatch/Config.php';

mixed System_ProcWatch_Config::fromArray (mixed $array)

説明

このメソッドは、単に設定配列の形式が正しいかどうかを調べるだけのものです。 テスト目的でのみ使用するようにしてください。

パラメータ

array $array

チェックする設定配列。

返り値

成功した場合にもとの配列、失敗した場合に PEAR_Error を返します。

例外・エラー

無効な形式の配列が渡された場合に PEAR_Error をスローします。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
System_ProcWatch_Config::fromIniFile() | 上に戻る | System_ProcWatch_Parser

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_ProcWatch_Config::fromIniFile

PEAR マニュアル
前のページ 次のページ

System_ProcWatch_Config::fromIniFile()

System_ProcWatch_Config::fromIniFile() -- INI ファイルから設定配列を取得する

概要

require_once 'System/ProcWatch/Config.php';

mixed System_ProcWatch_Config::fromIniFile (string $file)

説明

INI ファイルをパースし、System_ProcWatch の設定用の配列に変換します。

例 57-1INI configuration file

パラメータ

string
      $file

       INI ファイルへのパス。

返り値

   成功した場合に設定配列、失敗した場合に PEAR_Error を返します。

例外・エラー

   INI ファイルが存在しない場合に PEAR_Error をスローします。

参照

   INI ファイルによる設定

注意
この関数は、スタティックにコール
されます。
前のページ | ホーム | 次のページ
System_ProcWatch_Config::fromXmlFile() | 上に戻る | System_ProcWatch_Config::fromArray()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_ProcWatch_Config::fromXml

PEAR マニュアル
前のページ 次のページ

System_ProcWatch_Config::fromXml()

System_ProcWatch_Config::fromXml() -- XML 文字列から設定配列を取得する

概要

require_once 'System/ProcWatch/Config.php';

mixed System_ProcWatch_Config::fromXml (string $xml)

説明

XML 文字列をパースし、System_ProcWatch の設定用の配列に変換します。

パラメータ

string $xml

XML 文字列。

返り値

成功した場合に設定配列、失敗した場合に PEAR_Error を返します。

例外・エラー

XML ファイルが存在しない場合や XML 文字列のパース中に問題が発生した場合は PEAR_Error をスローします。

参照

XML ファイルによる設定

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
System_ProcWatch_Config | 上に戻る | System_ProcWatch_Config::fromXmlFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_ProcWatch_Config::fromXmlFile

PEAR マニュアル
前のページ 次のページ

System_ProcWatch_Config::fromXmlFile()

System_ProcWatch_Config::fromXmlFile() -- XML ファイルから設定配列を取得する

概要

require_once 'System/ProcWatch/Config.php';

mixed System_ProcWatch_Config::fromXmlFile (string $file)

説明

XML ファイルをパースし、System_ProcWatch の設定用の配列に変換します。

パラメータ

string $file

XML ファイルへのパス。

返り値

成功した場合に設定配列、失敗した場合に PEAR_Error を返します。

例外・エラー

XML ファイルが存在しない場合や XML ファイルのパース中に問題が発生した場合は PEAR_Error をスローします。

参照

XML ファイルによる設定

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
System_ProcWatch_Config::fromXml() | 上に戻る | System_ProcWatch_Config::fromIniFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_ProcWatch_Parser

System_ProcWatch_Parser -- System_ProcWatch_Parser

System_ProcWatch_Parser

`ps` の出力を取得し、連想配列に展開します。

使用例:
1   $ps = &new System_ProcWatch_Parser();
2   $pd = &$ps->getParsedData();

前のページ | ホーム | 次のページ
System_ProcWatch_Config::fromArray() | 上に戻る | System_ProcWatch_Parser::System_ProcWatch_Parser()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_ProcWatch_Parser::fetch

PEAR マニュアル
前のページ 次のページ

System_ProcWatch_Parser::fetch()

System_ProcWatch_Parser::fetch() -- ps のデータを取得する

概要

string System_ProcWatch_Parser::fetch ([string $ps_args = ''])

説明

シェル上で実行した ps の結果を取得します。

パラメータ

string $ps_args

ps の引数

返り値

ps の出力を文字列で返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
System_ProcWatch_Parser::getParsedData() | 上に戻る | System_ProcWatch_Parser::parse()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_ProcWatch_Parser::getParsedData

PEAR マニュアル
前のページ 次のページ

System_ProcWatch_Parser::getParsedData()

System_ProcWatch_Parser::getParsedData() -- パース済みのデータを取得する

概要

array &System_ProcWatch_Parser::getParsedData ([string $ps_args = 'aux' [, bool $refresh = FALSE]])

説明

このクラスの中心となるメソッドです。シェル上で実行した ps の結果を取得し、パースした結果を二次元の数値添字配列あるいは連想配列で返します。

パラメータ

string $ps_args

ps の引数。

boolean $refresh

データをリフレッシュするかどうか。

返り値

ps の出力をパースした結果を配列で返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
System_ProcWatch_Parser::System_ProcWatch_Parser() | 上に戻る | System_ProcWatch_Parser::fetch()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_ProcWatch_Parser::getProcByPid

PEAR マニュアル
前のページ 次のページ

System_ProcWatch_Parser::getProcByPid()

System_ProcWatch_Parser::getProcByPid() -- PID を指定して、プロセスの情報を取得する

概要

array System_ProcWatch_Parser::getProcByPid (int $pid)

説明

PID を指定し、そのプロセスに関する情報を取得します。

パラメータ

integer $pid

プロセスの PID。

返り値

指定した PID のプロセスに関する情報を配列で返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
System_ProcWatch_Parser::parse() | 上に戻る | System_ProcWatch_Parser::getProcInfo()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_ProcWatch_Parser::getProcInfo

PEAR マニュアル
前のページ 次のページ

System_ProcWatch_Parser::getProcInfo()

System_ProcWatch_Parser::getProcInfo() -- プロセスについての情報を取得する

概要

array System_ProcWatch_Parser::getProcInfo (string $pattern, string $search)

説明

指定した条件にマッチするプロセスについての情報を取得します。

パラメータ

string $pattern

プロセスにマッチする (Perl 互換の) 正規表現パターン。

string $search

検索対象となる ps のフィールド/カラム。

返り値

条件にマッチするプロセスを配列で返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
System_ProcWatch_Parser::getProcByPid() | 上に戻る | System_WinDrives

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_ProcWatch_Parser::parse

PEAR マニュアル
前のページ 次のページ

System_ProcWatch_Parser::parse()

System_ProcWatch_Parser::parse() -- パースする

概要

array System_ProcWatch_Parser::parse (string $data)

説明

ps の出力をパースします。

パラメータ

string $data

ps の出力。

返り値

プロセスの配列を返します。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
System_ProcWatch_Parser::fetch() | 上に戻る | System_ProcWatch_Parser::getProcByPid()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_ProcWatch_Parser::System_ProcWatch_Parser

PEAR マニュアル
前のページ 次のページ

System_ProcWatch_Parser::System_ProcWatch_Parser()

System_ProcWatch_Parser::System_ProcWatch_Parser() -- コンストラクタ

概要

require_once 'System/ProcWatch/Parser.php';

object &new System_ProcWatch_Parser ([string $ps_args = 'aux'])

説明

指定した引数を ps に私、新しい System_ProcWatch パーサオブジェクトのインスタンスを作成します。

パラメータ

string $ps_args

ps の引数

例外・エラー

例外はスローされません。

前のページ | ホーム | 次のページ
System_ProcWatch_Parser | 上に戻る | System_ProcWatch_Parser::getParsedData()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_ProcWatch::daemon

PEAR マニュアル
前のページ 次のページ

System_ProcWatch::daemon()

System_ProcWatch::daemon() -- デーモンとして実行する

概要

void System_ProcWatch::daemon (int $interval [, string $ps_args = 'aux'])

説明

System_ProcWatch をデーモンモードで実行します。 指定した間隔でスリープします。

パラメータ

integer $interval

スリープする秒数。

string $ps_args

ps の引数。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
System_ProcWatch::run() | 上に戻る | System_ProcWatch::setConfig()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_ProcWatch::run

PEAR マニュアル
前のページ 次のページ

System_ProcWatch::run()

System_ProcWatch::run() -- 一度実行する

概要

void System_ProcWatch::run ([string $ps_args = 'aux'])

説明

一度実行します。

パラメータ

string $ps_args

ps に渡す引数。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
System_ProcWatch::System_ProcWatch() | 上に戻る | System_ProcWatch::daemon()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_ProcWatch::setConfig

PEAR マニュアル
前のページ 次のページ

System_ProcWatch::setConfig()

System_ProcWatch::setConfig() -- 設定を適用する

概要

void System_ProcWatch::setConfig (array $config)

説明

System_ProcWatch に、 System_ProcWatch_Config の設定配列の内容を適用します。

パラメータ

array $config

System_ProcWatch_Config から取得した設定配列。

例外・エラー

例外はスローされません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
System_ProcWatch::daemon() | 上に戻る | System_ProcWatch_Config

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_ProcWatch::System_ProcWatch

PEAR マニュアル
前のページ 次のページ

System_ProcWatch::System_ProcWatch()

System_ProcWatch::System_ProcWatch() -- コンストラクタ

概要

require_once 'System/ProcWatch.php';

object &new System_ProcWatch (array $config)

説明

指定した設定配列をもとに設定した、新しい System_ProcWatch オブジェクトのインスタンスを作成します。

パラメータ

array $config

System_ProcWatch_Config から取得した設定配列。

前のページ | ホーム | 次のページ
System_ProcWatch | 上に戻る | System_ProcWatch::run()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_WinDrives

目次
導入 -- Windows システム上のドライブの列挙
例 -- System_WinDrives の使用法
定数 -- System_WinDrives で定義され、使用されている定数
System_WinDrives() -- メソッドの簡単な説明を出力する
System_WinDrives::getDriveList() -- すべてのドライブのパスを配列で取得する
System_WinDrives::getDriveName() -- ユーザが定義したドライブ名を返す
System_WinDrives::getDrivesInformation() -- すべてのドライブの情報を取得する
System_WinDrives::getDriveType() -- ドライブの型を取得する
System_WinDrives::getReadName() -- ドライブ名を読み込むかどうかを返す
System_WinDrives::getTypeTitle() -- ドライブの型を表す名前を取得する
System_WinDrives::guessDriveList() -- ドライブ一覧を推測する
System_WinDrives::isApiAvailable() -- API が使用可能かどうかを調べる
System_WinDrives::setReadName() -- readName を設定する

Win32 API のコールにより、Windows システムのルートディレクトリ ("ドライブ") を列挙する機能を提供します。

前のページ | ホーム | 次のページ
System_ProcWatch_Parser::getProcInfo() | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


定数

定数 -- System_WinDrives で定義され、使用されている定数

すべての定数

表 57-1System/WinDrives.php で定義されている定数

名前 | 値 | 説明
SYSTEM_WINDRIVE_ERROR | 1 | ドライブの型が判別できません
SYSTEM_WINDRIVE_REMOVABLE | 2 | リムーバルディスク (フロッピーや ZIP)
SYSTEM_WINDRIVE_FIXED | 3 | ハードディスク
SYSTEM_WINDRIVE_REMOTE | 4 | ネットワークドライブ
SYSTEM_WINDRIVE_CDROM | 5 | CD/DVD ドライブ
SYSTEM_WINDRIVE_RAMDISK | 6 | 仮想 RAM ディスク

前のページ | ホーム | 次のページ
例 | 上に戻る | System_WinDrives()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


例

例 -- System_WinDrives の使用法

System_WinDrives の使用法

例 57-1一般的な使用法

<?php
require_once 'System/WinDrives.php';

// ドライブ名を取得したい場合は、最初のパラメータに "true" を渡します。
// これは php.exe をクラッシュさせる可能性があるので、デフォルトでは無効になっています。
$wd = new System_WinDrives(false);

echo 'API が使用可能かどうか: ';
echo $wd->isApiAvailable() ? 'yes' : 'no';
echo "\r\n";

$arInfo = $wd->getDrivesInformation();
foreach ($arInfo as $strDrive => $objInfo) {
echo $strDrive . "\r\n";
echo '   型: ' . $objInfo->type . "\r\n";
echo '   型のタイトル: ' .  $objInfo->typetitle . "\r\n";
echo '   名前: ' . $objInfo->name . "\r\n";
?>

まず最初に System_WinDrives オブジェクトのインスタンスを作成します。パラメータに "true" を指定することでハードディスク名を取得できるようになりますが、 PHP をクラッシュさせる可能性があるのでデフォルトでは無効になっています。

次に行っているのが、このクラスが使用可能かどうかの確認です。 これは、拡張モジュール (PHP 4 なら win32api、 PHP 5 なら php_ffi) が存在するかどうかに依存します。 isApiAvailable メソッドが true を返せば使用可能です。

次に、ドライバの情報を getDrivesInformation で読み込んで それを出力します。

API が使用できない場合は、このメソッドは、 ルートディレクトリが存在するかどうかを調べることでドライブ一覧を推測します。

前のページ | ホーム | 次のページ
導入 | 上に戻る | 定数

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- Windows システム上のドライブの列挙

貢献者

  • Christian Weiske

説明

System_WinDrives は、Win32 API コールを使用して Windows OS のルート ("ドライブ") の一覧 (フォルダは "A:\" から "Z:\" までです) を取得します。

ドライブの一覧に加えて、その名前やドライブの型 (ネットワーク、ハードディスク、リムーバブルディスクなど) のような詳細情報も取得できます。

Windows アプリケーションプログラミングインターフェイスにアクセスするため、 (PHP の) win32 api 関数を使用します。つまり、すべての関数を使用するためには PHP 4 なら php_w32api.dll、 PHP 5 なら php_ffi.dll が必要となります。これらの dll が存在しない場合は、 ドライブの一覧は取得できますが名前や型は取得できません。

前のページ | ホーム | 次のページ
System_WinDrives | 上に戻る | 例

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_WinDrives::getDriveList()

System_WinDrives::getDriveList() -- すべてのドライブのパスを配列で取得する

概要

require_once 'System/WinDrives.php';

array System_WinDrives::getDriveList (void)

説明

すべてのドライブのパス (例えば A:\ や C:\) を配列で返します。

API が使用できない場合は、ドライブ一覧を推測して返します。詳細なデータ (ドライブの型や名前など) を取得するには getDrivesInformation() を使用します。

返り値

array - 全てのドライブを含む配列

例

例 57-1myFunction() の使用法

<?php
require_once 'System/WinDrives.php';

$swd = new System_WinDrives();
$arPaths = $swd->getDriveList();
foreach ($arPaths as $strPath) {
    echo $strPath . "\r\n"; // 結果は "A:\" や "C:\" のようになります
}
?>

出力:

A:\
C:\

参照

isApiAvailable()

guessDriveList()

getDrivesInformation()

前のページ | ホーム | 次のページ
System_WinDrives() | 上に戻る | System_WinDrives::getDriveName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_WinDrives::getDriveName()

System_WinDrives::getDriveName() -- ユーザが定義したドライブ名を返す

概要

require_once 'System/WinDrives.php';

string System_WinDrives::getDriveName (string $strDrive)

説明

そのドライブに対してユーザが設定した名前を返します。 この関数は PHP5 では動作せず、空の文字列 '' を返します。

パラメータ

string $strDrive

名前を取得したいドライブのパス。

返り値

string - ドライブのラベルを返します。

例

例 57-1myFunction() の使用法

<?php
require_once 'System/WinDrives.php';

$swd = new System_WinDrives();
echo $swd->getDriveName('C:\\');
?>

出力:

Windrive
前のページ | ホーム | 次のページ
System_WinDrives::getDriveList() | 上に戻る | System_WinDrives::getDrivesInformation()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_WinDrives::getDrivesInformation()

System_WinDrives::getDrivesInformation() -- すべてのドライブの情報を取得する

概要

require_once 'System/WinDrives.php';

array System_WinDrives::getDrivesInformation (void)

説明

すべてのドライブから取得できる情報を、配列で返します。

返り値

array - 小さなオブジェクトの配列を返します。 配列のキーがドライブのパス、その値がオブジェクトで、 オブジェクトには type、 name および typetitle の値が含まれます。

例

例 57-1myFunction() の使用法

<?php
require_once 'System/WinDrives.php';

$swd = new System_WinDrives();
$arInfo = $swd->getDrivesInformation();
foreach ($arInfo as $strPath => $objInfo) {
    echo 'ドライブ ' . $strPath . "\r\n";
    echo '    型: ' . $objInfo->type . '(' . $objInfo->typetitle . ")\r\n";
    echo '    名前: ' . $objInfo->name . "\r\n";
}
?>

出力:

ドライブ A:\
    2 (Removable)
    diskette
ドライブ C:\
    3 Harddisk
    Windisk
前のページ | ホーム | 次のページ
System_WinDrives::getDriveName() | 上に戻る | System_WinDrives::getDriveType()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_WinDrives::getDriveType()

System_WinDrives::getDriveType() -- ドライブの型を取得する

概要

require_once 'System/WinDrives.php';

int System_WinDrives::getDriveType (string $strDrive)

説明

ドライブの型を返します。

表 57-1返り値

値 | 定数 | 意味
1 | SYSTEM_WINDRIVE_ERROR | ドライブが存在しないか、その他のエラー
2 | SYSTEM_WINDRIVE_REMOVABLE | リムーバルディスク (例えばフロッピー)
3 | SYSTEM_WINDRIVE_FIXED | ハードディスク
4 | SYSTEM_WINDRIVE_REMOTE | ネットワーク共有
5 | SYSTEM_WINDRIVE_CDROM | CD-Rom あるいは DVD
6 | SYSTEM_WINDRIVE_RAMDISK | RAM ディスク

パラメータ

string $strDrive

型を返すドライブ。

返り値

integer - 型を返します (定数と比較します)。

参照

getTypeTitle()

前のページ | ホーム | 次のページ
System_WinDrives::getDrivesInformation() | 上に戻る | System_WinDrives::getReadName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_WinDrives::getReadName()

System_WinDrives::getReadName() -- ドライブ名を読み込むかどうかを返す

概要

require_once 'System/WinDrives.php';

boolean System_WinDrives::getReadName (void)

説明

ドライブ名を読み込むかどうかを返します。

返り値

boolean - 読み込む場合に true、そうでない場合に false を返します。

参照

setReadName()

前のページ | ホーム | 次のページ
System_WinDrives::getDriveType() | 上に戻る | System_WinDrives::getTypeTitle()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_WinDrives::getTypeTitle()

System_WinDrives::getTypeTitle() -- ドライブの型を表す名前を取得する

概要

require_once 'System/WinDrives.php';

string System_WinDrives::getTypeTitle (int $nType)

説明

ドライブの型を表す名前を取得します。例えば、型番号 3 (SYSTEM_WINDRIVE_FIXED) の場合は "Harddisk" となります。

パラメータ

string $nType

名前を取得したい型の番号。

返り値

string - 型の名前を返します。

前のページ | ホーム | 次のページ
System_WinDrives::getReadName() | 上に戻る | System_WinDrives::guessDriveList()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_WinDrives::guessDriveList()

System_WinDrives::guessDriveList() -- ドライブ一覧を推測する

概要

require_once 'System/WinDrives.php';

array System_WinDrives::guessDriveList (void)

説明

すべてのドライブレターをしらみつぶしに調べることによって、 ドライブ一覧を推測します。

返り値

array - 見つかった全てのドライブのパスを含む配列を返します。

前のページ | ホーム | 次のページ
System_WinDrives::getTypeTitle() | 上に戻る | System_WinDrives::isApiAvailable()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_WinDrives::isApiAvailable()

System_WinDrives::isApiAvailable() -- API が使用可能かどうかを調べる

概要

require_once 'System/WinDrives.php';

boolean System_WinDrives::isApiAvailable (void)

説明

ドライブ一覧を読み込むための API メソッドが使用可能かどうかを調べ、 結果を返します。

必要な拡張モジュール (PHP 4 では win32api、PHP 5 では php_ffi) がインストールされていない場合は、API は使用できないでしょう。

API が使用できない場合は、しらみつぶしに調べることでドライブ一覧を取得します。 この場合、ドライブの型は取得できません。

返り値

boolean - API が使える場合に true、そうでない場合に false を返します。

前のページ | ホーム | 次のページ
System_WinDrives::guessDriveList() | 上に戻る | System_WinDrives::setReadName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_WinDrives::setReadName()

System_WinDrives::setReadName() -- readName を設定する

概要

require_once 'System/WinDrives.php';

System_WinDrives::setReadName (boolean $bReadName)

説明

ドライブ名を読み込むかどうかを設定します。ドライブ名の読み込み処理は PHP をクラッシュさせる可能性があるので、デフォルトでは無効になっています。 このメソッドにより、ラベルの読み込みを有効にすることができます。

パラメータ

boolean $bReadName

名前を読み込むかどうか。

前のページ | ホーム | 次のページ
System_WinDrives::isApiAvailable() | 上に戻る | テキスト

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


System_WinDrives()

System_WinDrives() -- メソッドの簡単な説明を出力する

概要

require_once 'System/WinDrives.php';

System_WinDrives System_WinDrives ([boolean $bReadName = false])

説明

コンストラクタです。新しい System_WinDrives のインスタンスを作成します。

パラメータ

boolean $bReadName

ドライブのタイトル/名前を読み込むかどうか。 デフォルトでは無効になっています。これは、 PHP をクラッシュさせる可能性があるからです。

参照

setReadName()

前のページ | ホーム | 次のページ
定数 | 上に戻る | System_WinDrives::getDriveList()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Text_CAPTCHA

CAPTCHA (Completely Automated Public Turing tests to tell Computers and Humans Apart : コンピュータと人間を 区別するための、完全に自動化された公開チューリングテスト) を実装したものです。

導入

このパッケージは、CAPTCHA (Completely Automated Public Turing tests to tell Computers and Humans Apart : コンピュータと人間を 区別するための、完全に自動化された公開チューリングテスト) を作成する機能を提供します。以下のような機能が含まれます。

  • GD2 を使用した、グラフィカルな CAPTCHA の作成

  • ファクトリパターンを使用した、プラグイン機構

  • CAPTCHA についての一般的な情報

このパッケージは CAPTCHAs を作成します。 HTTP はステートレスなプロトコルなので、Web ページの安全性を 確保するために、このパッケージを使用してきちんと実装する 必要があります。 詳細な情報は 使用例を参照ください。

現時点では、グラフィカル CAPTCHA ドライバは Image_Text に依存しており、 これを使用するには PHP のコンパイル時に TTF サポートを組み込んでおく 必要があります。

例

以下の例では CAPTCHA の一般的な使用法を説明します。 CAPTCHA が正しく解決された場合にのみ、フォームから送信された内容を 処理します。

例 58-1CAPTCHA を作成する

以下のコードは CAPTCHA を作成し、必要な情報を提供し、 その CAPTCHA を PNG 画像として取得します。

require_once 'Text/CAPTCHA.php';

// CAPTCHA のオプションを設定します (フォントが存在する必要があります!)
$options = array(
    'font_size' => 24,
    'font_path' => './',
    'font_file' => 'COUR.TTF'
);

// 新しい Text_CAPTCHA オブジェクトを Image ドライバで作成します
$c = Text_CAPTCHA::factory('Image');
$retval = $c->init(200, 80, null, $options);
if (PEAR::isError($retval)) {
    echo 'CAPTCHA 作成時にエラー!';
    exit;
}

// CAPTCHA のパスフレーズを取得します
$_SESSION['phrase'] = $c->getPhrase();

// CAPTCHA 画像を (PNG 形式で) 取得します
$png = $c->getCAPTCHAAsPNG();
if (PEAR::isError($png)) {
    echo 'CAPTCHA 作成時にエラー!';
    exit;
}
file_put_contents(md5(session_id()) . '.png', $png);

例 58-2CAPTCHA を使用してフォームのセキュリティを確保する

以下の例では、CAPTCHA が正しく解決されたかどうかを確認する機能を 実装しています。リクエスト間で情報を保持し続けるため、ここでは CAPTCHA の文字列をセッション変数に格納しています。いったん CAPTCHA が解決された後は、セッション ID の再利用を避けるために このセッション変数を消去しておくことが大切です。

session_start();
$ok = false;
$msg = '下の画像の中の文字列を入力してください!';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if (isset($_POST['phrase']) && isset($_SESSION['phrase']) &&
        strlen($_POST['phrase']) > 0 && strlen($_SESSION['phrase']) > 0 &&
        $_POST['phrase'] == $_SESSION['phrase']) {
        $msg = 'OK!';
        $ok = true;
        unset($_SESSION['phrase']);
    } else {
        $msg = 'もう一度入力してください!';
    }
    unlink(md5(session_id()) . '.png');
}
print "<p>$msg</p>";

if (!$ok) {
    // 上の例で見たようにして CAPTCHA を作成し、
    // クライアントに送信します
}

ひととおり完全に動作するサンプルは、配布パッケージ内の CAPTCHA_test.php を参照ください (GD および TTF のサポートが必要です)。

CAPTCHA およびその内部動作についての情報

Text_CAPTCHA は CAPTCHA に関する情報を提供し、 基底クラスで定義されているいくつかの関数によって、その内部機能への アクセスが可能となります。それらの関数の実装内容は、ドライバに依存します。

  • init() は、CAPTCHA を初期化したうえで 必要な情報を指定します。この情報は Image_Text のパラメータと似た形式です。

  • _createCAPTCHA() は CAPTCHA を作成します。 これは init() の内部でコールされます。

    getPhrase() は CAPTCHA の文字列を返します。

  • _createPhrase() は CAPTCHA の文字列を作成します。 これは内部で使用されます。

  • getCAPTCHA() は CAPTCHA を返します。 使用されるフォーマットは、ドライバの実装に依存します。

前のページ | ホーム | 次のページ
テキスト | 上に戻る | Text_CAPTCHA_Numeral

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Text_CAPTCHA_Numeral

算数の計算による CAPTCHA (Completely Automated Public Turing tests to tell Computers and Humans Apart : コンピュータと人間を 区別するための、完全に自動化された公開チューリングテスト) を実装したものです。

導入

このパッケージは、数字の CAPTCHA (Completely Automated Public Turing tests to tell Computers and Humans Apart : コンピュータと人間を 区別するための、完全に自動化された公開チューリングテスト) を作成する機能を提供します。以下のような機能が含まれます。

  • 数字の Captcha の作成

  • Text_CAPTCHA_Numeral についての一般的な情報

このパッケージは、数字の CAPTCHA を作成します。 HTTP はステートレスなプロトコルなので、Web ページの安全性を 確保するために、このパッケージを使用してきちんと実装する 必要があります。 詳細な情報は 使用例を参照ください。

Currently

例

以下の例では CAPTCHA の一般的な使用法を説明します。 CAPTCHA が正しく解決された場合にのみ、フォームから送信された内容を 処理します。

例 58-3数字の CAPTCHA の作成

この例は、単純な算数の計算を Text_CAPTCHA_Numeral で作成する方法を示すものです。

require_once 'Text/CAPTCHA/Numeral.php';
$num       = new Text_CAPTCHA_Numeral;
$operation = $num->getOperation();

/**
 * これは、パッケージが作成した計算式を表示します。
 */
print $operation;

例 58-4数字の CAPTCHA を使用してフォームのセキュリティを確保する

この例では、数字の CAPTCHA を使用してフォームのセキュリティを確保する方法を示します。 作成した計算式を、セッション変数に格納しています。

require_once 'Text/CAPTCHA/Numeral.php';
$numcap = new Text_CAPTCHA_Numeral;

if (isset($_POST['captcha']) && isset($_SESSION['answer'])) {
    if ($_POST['captcha'] == $_SESSION['answer']) {
        $errors[] = 'Ok.. おそらくあなたは人間ですね..';
    } else {
        $errors[] = 'あなたは人間じゃないか間抜けかのどちらかですね';
    }
}
    if (!empty($errors)) {
        foreach ($errors as $error) {
            print "<h1><font color='red'>$error</font></h1><br />";
        }
    }

    print '
        <form name="capter" action="index.php?page=liveExample" method="post">
         <table>
          <tr>
           <th>お客さん、この答えは何ですか?: '.$numcap->getOperation().'</th>
           <td><input type="text" value="" name="captcha" /></td>
          </tr>
          <tr>
           <th/>
           <td><input type="submit" value="私が人間であることを証明します!" /></td>
          </tr>
        </form>
    ';
    $_SESSION['answer'] = $numcap->getAnswer();

Text_CAPTCHA_Numeral およびその内部動作についての情報

Text_CAPTCHA_Numeral は、 算数の計算の CAPTCHA を作成する機能を提供します。

  • getOperation() は、 ユーザに提示する計算を生成します。

    getAnswer() は、生成された計算の答えを取得します。

前のページ | ホーム | 次のページ
Text_CAPTCHA | 上に戻る | Text_Highlighter

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Text_Highlighter

さまざまな形式のファイルに対する、 シンタックスハイライティング機能を提供します。

Introduction

Text_Highlighter を使用すると、 さまざまな形式のファイルに対して シンタックスハイライティングを行うことができます。

現在は、以下のフォーマットがサポートされています。

  • C++

  • CSS

  • diff(1) の出力

  • DTD

  • HTML

  • Java

  • Javascript

  • MySQL

  • Perl

  • PHP

  • Python

  • Ruby

  • SQL

  • XML

使用法

Text_Highlighter クラスには シンタックスハイライティングを行うために必要な機能がすべて含まれています。 ただし、各種フォーマットに対する強調ルールは除きます。 これらのルールは Text_Highlighter のサブクラスで定義されていますが、 このサブクラスのインスタンスを直接作成する必要はありません。 オブジェクト指向なファクトリパターンを用いて、 フォーマットに応じたオブジェクトを作成します。

例 58-5SQL クエリのハイライティング

require_once "Text/Highlighter.php";

$hlSQL =& Text_Highlighter::factory("SQL");
echo $hlSQL->highlight("SELECT * FROM some_table WHERE id = 12");

このコードは、Text_Highlighter::highlight に渡された SQL の SELECT クエリの構文を強調した HTML を作成します。出力をカスタマイズし、 例えばコンソール用に適した形式とすることも可能です。この方法については 出力のカスタマイズ で説明します。

その他のフォーマットについてのシンタックスハイライティングを行うには Text_Highlighter::factory の引数の値 SQL を以下のいずれかに変更する必要があります。 CPP、CSS、DIFF、 DTD、HTML、JAVA、 JAVASCRIPT、MYSQL、 PERL、PHP、 PYTHON、RUBY、SQL、 あるいは XML。

出力のカスタマイズ

デフォルトでは、Text_Highlighter は、入力内容の構文を強調した HTML を作成します。

作成される出力結果を変更し、 xterm のようなカラー対応端末や less(1) に適した形式とすることも可能です。 そのためには、Text_Highlighter に対して別のレンダラを使用するように指示します。

例 58-6コンソールレンダラの使用法

require_once "Text/Highlighter.php";
require_once "Text/Highlighter/Renderer/Console.php";

$hlSQL =& Text_Highlighter::factory("SQL");
$hlSQL->setRenderer(new Text_Highlighter_Renderer_Console);
echo $hlSQL->highlight("SELECT * FROM some_table WHERE id = 12");

HTML レンダラやコンソールレンダラの出力結果をさらにカスタマイズすることも可能です。 その場合は、コンストラクタにオプションの連想配列を渡します。

例 58-7HTML レンダラのオプション

require_once "Text/Highlighter.php";
require_once "Text/Highlighter/Renderer/Html.php";

$renderer = new Text_Highlighter_Renderer_Html(array("numbers" => HL_NUMBERS_LI, "tabsize" => 4));

$hlJava =& Text_Highlighter::factory("JAVA");
$hlJava->setRenderer($renderer);

echo $hlJava->highlight('class JavaProgram {
    public static void main(String args[]) {
        System.out.println("Hello World!");
    }
}');

上の例は、HTML レンダラに対してふたつのオプションを指定しています。 まず <ol /> HTML タグを使用して行番号を表示させるようにし、 次に字下げをスペース 4 文字に指定しています。

以下のオプションが使用可能です。

表 58-1レンダラクラスで使用可能なオプション

名前 | 説明 | HTML レンダラで使用可能? | コンソールレンダラで使用可能? | ヒント
numbers | 行番号の形式 | yes | yes | コンソールレンダラの場合、このオプションは単に TRUE あるいは FALSE を指定します。これらはそれぞれ 出力する/出力しない という意味です。HTML レンダラでは、 次の三種類のうちのいずれかを指定します。 HL_NUMBERS_LI は、HTML の <ol /> タグを使用して行番号を出力します。 HL_NUMBERS_TABLE は、 カラム数が 2 のテーブルを作成します。そして最初のカラムに行番号、 次のカラムにソースコードを出力します。 FALSE を指定すると、HTML レンダラで行番号を出力しなくなります。
tabsize | タブの幅 | yes | yes |
colors | 追加の色 | no | yes | 連想配列形式で、 カラー対応のコンソールにおける追加の色を指定します。 連想配列のキーが色の名前となり、対応するエスケープシーケンス (例えば \033[1;31mRed) を連想配列の値として指定します。
前のページ | ホーム | 次のページ
Text_CAPTCHA_Numeral | 上に戻る | Text_Password

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Text_Password

目次
導入 -- Text_Password の導入
サポートされたパスワードの種類 -- このドキュメントパートはサポートされた異なる種類のパスワードと、 それらの使用法のために例を提示します。

PHPでパスワードの生成をする。

前のページ | ホーム | 次のページ
Text_Highlighter | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- Text_Password の導入

はじめに

ウェブアプリケーションにおいて、パスワードの作成は非常にありがちな作業です。 このパッケージは、簡単で直感的に使えるパスワード作成用 API を提供します。

  • 発音可能なパスワード

  • 発音できないパスワード

  • 与えられた文字列に基づいたパスワード

最後のポイントについては、多重で単純な "混乱"アルゴリズムをサポートします。

前のページ | ホーム | 次のページ
Text_Password | 上に戻る | サポートされたパスワードの種類

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


サポートされたパスワードの種類

サポートされたパスワードの種類 -- このドキュメントパートはサポートされた異なる種類のパスワードと、 それらの使用法のために例を提示します。

発音可能なパスワード

パッケージの特徴のひとつは発音可能なパスワードを作成する能力です。

例 58-1発音可能なパスワードの作成:

require_once "Text/Password.php";

echo "Creating pronounceable password of 10 chars....: ";
echo Text_Password::create() . "\n\n";

echo "Creating 3 different pronounceable passwords...: ";
print_r(Text_Password::createMultiple(3));

発音不可能なパスワード

発音可能なパスワードに加えて、 Text_Passwordは、 さらに発音不可能なパスワードを扱うことができます。

例 58-2発音不可能なパスワードの作成:

require_once "Text/Password.php";

echo "\nCreating unpronounceable password of 8 chars with a,b,c as possible chars....:\t";
echo Text_Password::create(8, 'unpronounceable', 'a,b,c') . "\n\n";

echo "\nCreating 4 different unpronounceable passwords...:\n";
print_r(Text_Password::createMultiple(4, 10, 'unpronounceable'));

echo "\nCreating unpronounceable password of 8 chars with numeric chars:\t";
echo Text_Password::create(8, 'unpronounceable', 'numeric') . "\n\n";

echo "\nCreating unpronounceable password of 8 chars with alphanumeric chars:\t";
echo Text_Password::create(8, 'unpronounceable', 'alphanumeric') . "\n\n";

与えられた文字列に基づいたパスワード

Text_Passwordは、 与えられた文字列に基づくパスワードを作成する機能を提供します。 多くの場合でこの文字列は、 認証システム用の 既存のユーザー名です。

例 58-3与えられた文字列に基づいたパスワードの作成:

require_once "Text/Password.php";

echo "\nCreating password from login 'olivier', type is 'reverse':\t";
echo Text_Password::createFromLogin('olivier', 'reverse') . "\n\n";

echo "\nCreating password from login 'olivier', type is 'rot13':\t";
echo Text_Password::createFromLogin('olivier', 'rot13') . "\n\n";

echo "\nCreating password from login 'olivier', type is 'rotx':\t";
echo Text_Password::createFromLogin('olivier', 'rotx', 13) . "\n\n";

echo "\nCreating password from login 'olivier', type is 'rotx++':\t";
echo Text_Password::createFromLogin('olivier', 'rotx++', 13) . "\n\n";

echo "\nCreating password from login 'olivier', type is 'rotx--':\t";
echo Text_Password::createFromLogin('olivier', 'rotx--', 13) . "\n\n";

echo "\nCreating password from login 'olivier', type is 'xor':\t";
echo Text_Password::createFromLogin('olivier', 'xor', 5) . "\n\n";

echo "\nCreating password from login 'olivier', type is 'ascii_rotx':\t";
echo Text_Password::createFromLogin('olivier', 'ascii_rotx', 5) . "\n\n";

echo "\nCreating password from login 'olivier', type is 'ascii_rotx++':\t";
echo Text_Password::createFromLogin('olivier', 'ascii_rotx++', 5) . "\n\n";

echo "\nCreating password from login 'olivier', type is 'ascii_rotx--':\t";
echo Text_Password::createFromLogin('olivier', 'ascii_rotx--', 5) . "\n\n";

echo "\nCreating password from login 'olivier', type is 'shuffle':\t";
echo Text_Password::createFromLogin('olivier', 'shuffle', 1) . "\n\n";

echo "\nCreating password from an array of login 'olivier', 'martin', 'vanhoucke', 'jansen', type is 'reverse':\n";
$logins = array('olivier', 'martin', 'vanhoucke', 'jansen');
print_r(Text_Password::createMultipleFromLogin($logins, 'reverse'));

現在、次の混乱アルゴリズムをサポートする:

  • xor

  • rotx

  • rotx++

  • rotx--

  • ascii_rotx

  • ascii_rotx++

  • ascii_rotx--

  • shuffle

  • reverse

前のページ | ホーム | 次のページ
導入 | 上に戻る | Text_Statistics

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Text_Statistics

目次
導入 -- テキスト文書の可読性を計算する

テキスト文書の可読性を計算します。

前のページ | ホーム | 次のページ
サポートされたパスワードの種類 | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- テキスト文書の可読性を計算する

Text_Statistics の説明

Text_Statistics は、テキスト文書の可読性を計算します。

Text_Statistics は、テキストブロックに対して基本的な可読性を算出します。 単語の数・文の数・音節の数が数えられます。 これらの数値は、文の Flesch スコアを計算するために使用されます。 これは、テキストの可読性を数値 (通常は 0 から 100 までの間) で表すものです。このスコアは、基本的に以下のように分類されます。

90 から 100 | 5 年生
80 から 90 | 6 年生
70 から 80 | 7 年生
60 から 70 | 8 年生および 9 年生
50 から 60 | 10 年生から 12 年生 (高校生)
30 から 50 | 大学生
0 から 30 | 大学卒

より詳細な情報は、 WikiPedia の記事 を参照ください。

例 58-1Text_Statistics の例

<?php
  require 'Text/Statistics.php';
  $block = new Text_Statistics($sometext);
  $block->flesch; // $sometext の flesch スコアを返します
?>

これ以外の例は、ユニットテストを参照ください。

Text_Word は、単語の音節数を計算します。これは単語内の連続する母音の グループ数に基づいたもので、また特殊なケースにマッチする場合も考慮されます。

例 58-2numSyllables() の例

<?php
 require_once 'Text/Word.php'
 $word = new Text_Word('word');
 $word->numSyllables();  // 1 を返します
?>

前のページ | ホーム | 次のページ
Text_Statistics | 上に戻る | Text_Wiki

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Text_Wiki

目次
概要 -- 構造化されたプレーンテキスト内の Wiki マークアップの解析および レンダリングを抽象化する

構造化されたプレーンテキスト内の Wiki マークアップの解析および レンダリングを抽象化します。

前のページ | ホーム | 次のページ
導入 | 上に戻る | 概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


概要

概要 -- 構造化されたプレーンテキスト内の Wiki マークアップの解析および レンダリングを抽象化する

Text_Wiki の説明

Text_Wiki パッケージは、Wiki の規則で構造化されたテキストを XHTML・RTF・LaTeX などのその他の出力形式に変換します。

完全なオンラインドキュメントはこちらです

前のページ | ホーム | 次のページ
Text_Wiki | 上に戻る | ツール・ユーティリティ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


VersionControl_SVN

VersionControl_SVN は、svn コマンドライン アプリケーションのシンプルなオブジェクト指向インターフェースです。 svn は、フリー/オープンソースのバージョン管理システムである Subversion の中核となるものです。

導入

Subversion は、ソースコードのツリー・テキストファイル・画像ファイル -- およそ考えうるあらゆる形式のファイルを 管理するために使用可能です。

VersionControl_SVN の機能には以下のようなものがあります。

  • svn サブコマンドの完全なサポート。

  • PEAR_ErrorStack による柔軟なエラー報告。

  • 複数オブジェクトによるファクトリデザイン。

  • 完全にドキュメント化されたソースコード。

VersionControl_SVN を通じてアクセスすることにより、Subversion のような バージョン管理システムは、ありきたりな"ソースコード" リポジトリをはるかにこえた威力を発揮します。

たとえば、バージョン管理機能の恩恵をうけないコンテンツ管理システム (CMS)がどこにあるというのでしょうか? プログラマでない多くの人々に とっても、バージョン管理は頭を悩ませる問題です。 VersionControl_SVN を使用することで、特定のユーザを念頭において 彼らが使いやすいように Subversion のインターフェースをカスタマイズ することが可能となるのです。VersionControl_SVN により、エンドユーザに 変更管理の概念を覚えさせるという負担を強いずに、強力なバージョン管理機能を 使用させることができます。

単純な例

まずどこかに Subversion リポジトリを作成してください。PHP スクリプトで どのように書けばよいのかを知りたいことでしょう。数行後に、 VersionControl_SVN::VersionControl_SVN_List() コマンドを使用する例を 示します。

例 59-1 Subversion リポジトリの内容を読み込む

require_once 'VersionControl/SVN.php';

// エラー処理を設定します -- 常にこのようにしておきましょう!
$svnstack = &PEAR_ErrorStack::singleton('VersionControl_SVN');

// 実行時オプションを設定します
$options = array('fetchmode' => VERSIONCONTROL_SVN_FETCHMODE_ARRAY);

// list クラスをファクトリに要求します
$svn = VersionControl_SVN::factory('list', $options);

// 必要なスイッチや引数を定義します
$switches = array('username' => 'user', 'password' => 'pass');
$args = array('svn://svn.example.com/repos/TestProject');

// コマンドを実行します
if ($output = $svn->run($args, $switches)) {
    print_r($output);
} else {
    if (count($errs = $svnstack->getErrors())) {
        foreach ($errs as $err) {
            echo '<br />'.$err['message']."<br />\n";
            echo "Command used: " . $err['params']['cmd'];
        }
    }
}

上で使用したリポジトリにもし VersionControl_SVN のソースが 格納されていれば、この例の出力は以下のようになります。

Array
(
    [0] => Array
        (
            [name] => docs
            [type] => D
        )

    [1] => Array
        (
            [name] => package.xml
            [type] => F
        )

    [2] => Array
        (
            [name] => SVN.php
            [type] => F
        )

    [3] => Array
        (
            [name] => SVN
            [type] => D
        )

    [4] => Array
        (
            [name] => tests
            [type] => D
        )

)

上の出力例で、ディレクトリには D、ファイルには F というフラグが立っていることに注意しましょう。

注意 出力に関する詳細情報はを得るには、配列 $options で verbose に TRUE を設定します。

ひとつのファクトリですべてを支配する

VersionControl_SVN のサブクラスを利用する必要のあるスクリプトは ありませんか? ほんの少しのオーバーヘッドという犠牲を払うことで、 $svn オブジェクトに全機能を読み込むことが できます。VersionControl_SVN::factory() コマンドを使用し、 キーワード __ALL__ を指定すればよいのです。

たとえば、リポジトリ内の現在のファイルの一覧を取得したいなら、 必要なのはサブクラス VersionControl_SVN::VersionControl_SVN_List() だけです。

例 59-2リポジトリ内の現在のファイル一覧を取得する

require_once 'VersionControl/SVN.php';

// エラー処理を設定します -- 常にこのようにしておきましょう!
$svnstack = &PEAR_ErrorStack::singleton('VersionControl_SVN');

// 実行時オプションを設定します
$options = array('fetchmode' => VERSIONCONTROL_SVN_FETCHMODE_ARRAY);

// list クラスをファクトリに要求します
$svn = VersionControl_SVN::factory('list', $options);

// 必要なスイッチや引数を定義します
$switches = array('username' => 'user', 'password' => 'pass');
$args = array('svn://svn.example.com/repos/TestProject');

// コマンドを実行します
if ($output = $svn->run($args, $switches)) {
    print_r($output);
} else {
    if (count($errs = $svnstack->getErrors())) {
        foreach ($errs as $err) {
            echo '<br />'.$err['message']."<br />\n";
            echo "Command used: " . $err['params']['cmd'];
        }
    }
}

しかし、もしリポジトリ内のファイル一覧を再帰的に取得し、 それらのファイルの更新ログを検索し、注記つきのソースを表示したいと なると、二通りの方法があります。

例 59-3リポジトリ内の現在のファイル一覧を再帰的に取得する

require_once 'VersionControl/SVN.php';

// エラー処理を設定します -- 常にこのようにしておきましょう!
$svnstack = &PEAR_ErrorStack::singleton('VersionControl_SVN');

// 実行時オプションを設定します
$options = array('fetchmode' => VERSIONCONTROL_SVN_FETCHMODE_RAW);

// 方法その 1: オーバーヘッドを最小にする
// 必要なサブコマンドを個別に指定して svn オブジェクトを作成します
$svn = VersionControl_SVN::factory(array('list', 'log', 'blame'), $options);

// 必要なスイッチや引数を定義します
$switches = array('username' => 'user', 'password' => 'pass');
$args = array('svn://svn.example.com/repos/TestProject');

print_r($svn->list->run($args, $switches));

// 上の出力からファイルを取り出し、だれが何をしたのかを調べます
$args = array('svn://svn.example.com/repos/TestProject/trunk/index.php');

echo "<pre>" . $svn->blame->run($args) . "</pre>";

// 方法その 2: 使用できるすべてのコマンドを支配する
// 全サブコマンドを読み込む - オーバーヘッドが大きくなりますが、これが便利な場合もあるでしょう。
$svn = VersionControl_SVN::factory('__ALL__', $options);

// さあ、必要なコマンドはなんでも実行できます ...
$svn->cat->run($args, $switches);
$svn->info->run($args, $switches);
// ... などなど。

更なる情報

Subversion についてもっと知りたくなったなら、以下を参照ください。

  • Version Control with Subversion - 一般的な使用法からリポジトリの管理まで、 Subversion に関するあらゆる事項を扱っているリファレンスマニュアルです。

  • Subversion Web サイト - Subversion の公式 Web サイトでは、FAQ やメーリングリスト、 そしてもちろん Subversion のソースコードを扱っています。 また、GUI の Subversion アプリケーションへのリンクもあります。

前のページ | ホーム | 次のページ
ツール・ユーティリティ | 上に戻る | Validate

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_AR

注意

This package is in alpha state

Package contains locale validation for Argentina such as:

  1. Postal code CPA (C?digo Postal Argentino)

  2. Regions - provinces of Argentina

See also :

  • the api documentation

  • The page on pear.php.net

前のページ | ホーム | 次のページ
Validate features | 上に戻る | Validate_AT

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_AT

注意

This package is in alpha state

Package contains locale validation for Austria such as:

  1. SSN

  2. Postal Code

See also :

  • the api documentation

  • The page on pear.php.net

前のページ | ホーム | 次のページ
Validate_AR | 上に戻る | Validate_AU

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_AU

目次
Introduction -- introduction to Validate_AU
List of available validations -- available validation in Validate_AU
Package Validate_AU Constants -- Constants defined in and used by Validate_AU
Validate_AU::abn() -- Australian Business Number (ABN).
Validate_AU::acn() -- Validate an Australian Company Number (ACN)
Validate_AU::phoneNumber() -- Validate a telephone number.
Validate_AU::postalCode() -- Validate Austrialian postal codes.
Validate_AU::region() -- Validates Australian Regional Codes
Validate_AU::ssn() -- Social Security Number.
Validate_AU::tfn() -- Tax File Number (TFN)

注意

This package is in alpha state

Package contains locale validation for Australia such as:

  1. Tax File Number

  2. Postal Code

  3. Phone Number

  4. Australian Business Number

  5. Australian Company Number

  6. Regions (States)

See also :

  • The API documentation

  • The page on pear.php.net

前のページ | ホーム | 次のページ
Validate_AT | 上に戻る | Introduction

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Package Validate_AU Constants

Package Validate_AU Constants -- Constants defined in and used by Validate_AU

All Constants

Constants defined in Validate_AU.php

表 60-1Constants defined in Validate_AU.php

Name | Value | Line Number
VALIDATE_AU_PHONENUMBER_INDIAL | 4 | 37
VALIDATE_AU_PHONENUMBER_INTERNATIONAL | 8 | 38
VALIDATE_AU_PHONENUMBER_NATIONAL | 2 | 36
VALIDATE_AU_PHONENUMBER_STRICT | 1 | 35

前のページ | ホーム | 次のページ
List of available validations | 上に戻る | Validate_AU::abn()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction

Introduction -- introduction to Validate_AU

説明

The package offers some methods to validate specific data for Australia

Usage

General usage

Every module of Validate follows the same philosophy. Propose some validation method which returns a boolean result. Some methods have some optional parameters to set stronger checks.

sample

<?php

// Include the package
require_once 'Validate/AU.php';
?>

前のページ | ホーム | 次のページ
Validate_AU | 上に戻る | List of available validations

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_AU::abn

PEAR マニュアル
前のページ 次のページ

Validate_AU::abn()

Validate_AU::abn() -- Australian Business Number (ABN).

概要

require_once '/Validate/AU.php';

bool Validate_AU::abn (string $abn)

説明

Validates an ABN using a modulus calculation

パラメータ

string $abn

ABN to validate

返り値

returns Returns true on success, otherwise false

例外・エラー

throws no exceptions thrown

author

author Byron Adams <byron.adams54@gmail.com>

参照

see http://www.ato.gov.au/businesses/content.asp?doc=/content/13187.htm

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Package Validate_AU Constants | 上に戻る | Validate_AU::acn()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_AU::acn

PEAR マニュアル
前のページ 次のページ

Validate_AU::acn()

Validate_AU::acn() -- Validate an Australian Company Number (ACN)

概要

require_once '/Validate/AU.php';

bool Validate_AU::acn (string $acn)

説明

The ACN is a nine digit number with the last digit being a check digit calculated using a modified modulus 10 calculation.

パラメータ

string $acn

ACN number to validate

返り値

returns Returns true on success, false otherwise

例外・エラー

throws no exceptions thrown

author

author Byron Adams <byron.adams54@gmail.com>

author Daniel O'Connor <daniel.oconnor@gmail.com>

参照

see http://www.asic.gov.au/asic/asic_infoco.nsf/byheadline/Australian+Company+Number+(ACN)+Check+Digit

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Validate_AU::abn() | 上に戻る | Validate_AU::phoneNumber()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_AU::phoneNumber

PEAR マニュアル
前のページ 次のページ

Validate_AU::phoneNumber()

Validate_AU::phoneNumber() -- Validate a telephone number.

概要

require_once '/Validate/AU.php';

bool Validate_AU::phoneNumber (string $number [, int $flags = VALIDATE_AU_PHONENUMBER_NATIONAL])

説明

Note that this function supports the following notations:

  • Landline: 03 9999 9999

  • Mobile: 0400 000 000 (as above, but usually notated differently)

  • Indial: 131 812 / 1300 000 000 / 1800 000 000 / 1900 000 000

  • International: +61.3 9999 9999

For International numbers, only +61 will be valid, as this is Australia's dial code, and the format MUST be +61.3, where 3 represents the state dial code, in this case, Victoria.

Note: If the VALIDATE_AU_PHONENUMBER_STRICT flag is not supplied, then all spaces, dashes and parenthesis are removed before validation. You will have to strip these yourself if your data storage does not allow these characters.

パラメータ

string $number

The telephone number

integer $flags

Can be a combination of the following flags:

  • VALIDATE_AU_PHONENUMBER_STRICT: if supplied then no spaces, parenthesis or dashes (-) will be removed.

  • VALIDATE_AU_PHONENUMBER_NATIONAL: when supplied valid national numbers (eg. 03 9999 9999) will return TRUE.

  • VALIDATE_AU_PHONENUMBER_INDIAL: when supplied valid indial numbers (eg. 13/1300/1800/1900) will return TRUE.

  • VALIDATE_AU_PHONENUMBER_INTERNATIONAL: when supplied valid international notation of Australian numbers (eg. +61.3 9999 9999) will return TRUE.

ToDo

todo Check that $flags contains a valid flag.

例外・エラー

throws no exceptions thrown

author

author Alex Hayes <ahayes@wcg.net.au>

author Daniel O'Connor <daniel.oconnor@gmail.com>

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Validate_AU::acn() | 上に戻る | Validate_AU::postalCode()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_AU::postalCode

PEAR マニュアル
前のページ 次のページ

Validate_AU::postalCode()

Validate_AU::postalCode() -- Validate Austrialian postal codes.

概要

require_once '/Validate/AU.php';

bool Validate_AU::postalCode (string $postcode [, bool $strong = FALSE])

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $postcode

postcode to validate

boolean $strong

strong checks against a list of postcodes

返り値

returns true if postcode is ok, false otherwise

例外・エラー

throws no exceptions thrown

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Validate_AU::phoneNumber() | 上に戻る | Validate_AU::region()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_AU::region

PEAR マニュアル
前のページ 次のページ

Validate_AU::region()

Validate_AU::region() -- Validates Australian Regional Codes

概要

require_once '/Validate/AU.php';

bool Validate_AU::region (string $region)

説明

このパッケージに関する文書は、未作成です。

パラメータ

string $region

region code to validate

返り値

returns returns true on success, false otherwise

例外・エラー

throws no exceptions thrown

参照

see http://www.google.com/apis/adwords/developer/adwords_api_regions.html#Australia

author

author Byron Adams <byron.adams54@gmail.com>

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Validate_AU::postalCode() | 上に戻る | Validate_AU::ssn()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_AU::ssn

PEAR マニュアル
前のページ 次のページ

Validate_AU::ssn()

Validate_AU::ssn() -- Social Security Number.

概要

require_once '/Validate/AU.php';

bool Validate_AU::ssn (string $ssn)

説明

Australia does not have a social security number system, the closest equivalent is a Tax File Number

パラメータ

string $ssn

ssn number to validate

返り値

returns Returns true on success, false otherwise

例外・エラー

throws no exceptions thrown

参照

see Validate_AU::tfn()

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Validate_AU::region() | 上に戻る | Validate_AU::tfn()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_AU::tfn

PEAR マニュアル
前のページ 次のページ

Validate_AU::tfn()

Validate_AU::tfn() -- Tax File Number (TFN)

概要

require_once '/Validate/AU.php';

bool Validate_AU::tfn (string $tfn)

説明

Australia does not have a social security number system, the closest equivalent is a Tax File Number.

パラメータ

string $tfn

Tax File Number

返り値

returns Returns true on success, false otherwise

例外・エラー

throws no exceptions thrown

author

author Byron Adams <byron.adams54@gmail.com>

参照

see http://en.wikipedia.org/wiki/Tax_File_Number

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Validate_AU::ssn() | 上に戻る | Validate_BE

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_BE

目次
Introduction -- Introduction to validate_BE
List of aivailable validations -- aivailable validation in validate_be

注意

This package is in beta state

This package offers methods to validate specific values from Belgium

See also :

  • The API documentation

  • The page on pear.php.net

前のページ | ホーム | 次のページ
Validate_AU::tfn() | 上に戻る | Introduction

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_CA

目次
Introduction -- Introduction to validate_CA
List of aivailable validations -- aivailable validation in validate_ca

注意

This package is in alpha state

Package contains locale validation for Canada such as:

  1. Social Inurance Numbers (SIN)

  2. Regions (Provinces)

  3. Postal Codes

  4. Phone Numbers

See also :

  • the api documentation

  • The page on pear.php.net

前のページ | ホーム | 次のページ
List of aivailable validations | 上に戻る | Introduction

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_CH

注意

This package is in alpha state

Package contains locale validation for Switzerland such as:

  1. Social insurance number (aka SSN)

  2. Postal Codes

  3. Swiss university's immatriculation number

See also :

  • the api documentation

  • The page on pear.php.net

前のページ | ホーム | 次のページ
List of aivailable validations | 上に戻る | Validate_DE

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_DE

注意

This package is in alpha state

Package contains locale validation for Germany such as:

  1. Postal Code

  2. Bank Code

See also :

  • the api documentation

  • The page on pear.php.net

前のページ | ホーム | 次のページ
Validate_CH | 上に戻る | Validate_DK

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_DK

注意

This package is in alpha state

Package contains locale validation for Denmark such as:

  1. Social Security Number (CPR Nummer)

  2. Car Registration number

  3. Postal Codes

  4. Phone Numbers

See also :

  • the api documentation

  • The page on pear.php.net

前のページ | ホーム | 次のページ
Validate_DE | 上に戻る | Validate_ES

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_ES

注意

This package is in alpha state

Package contains locale validation for Spain such as:

  1. DNI (El Documento Nacional de Indentidad a chequear)

See also :

  • the api documentation

  • The page on pear.php.net

前のページ | ホーム | 次のページ
Validate_DK | 上に戻る | Validate_esMX

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_esMX

注意

This package never released

Package contains locale validation for Mexico such as:

  1. DNI (El Documento Nacional de Indentidad a chequear)

  2. Postal code

  3. Region (states)

  4. Phone numbers

See also :

  • the api documentation

  • The page on pear.php.net

前のページ | ホーム | 次のページ
Validate_ES | 上に戻る | Validate_FR

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_Finance

Validation class for Finance data

Package to validate Finance data.

  1. IBAN

See also :

  • The API documentation

  • The page on pear.php.net

前のページ | ホーム | 次のページ
Validate_ZA | 上に戻る | Validate_Finance_CreditCard

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_Finance_CreditCard

Validation class for Credit Card

Package to validate Credit card.

  1. Credit card number

  2. Card security code

  3. Card type (i.e. Visa, Mastercard...)

Theses methods only check the format of the data. For instance the package does NOT check if a card is a legitimate card registered with a card issuer, or if the card is reported stolen, etc...

See also :

  • The API documentation

  • The page on pear.php.net

前のページ | ホーム | 次のページ
Validate_Finance | 上に戻る | Validate_ISPN

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_FR

Package contains locale validation for France such as:

  1. SSN

  2. Postal Code

  3. RIB

  4. SIREN

  5. SIRET

  6. Region (Departements)

See also :

  • the api documentation

  • The page on pear.php.net

前のページ | ホーム | 次のページ
Validate_esMX | 上に戻る | Validate_IN

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_IN

注意

This package is in alpha state

Package contains locale validation for Indian such as:

  1. Permanent Account Number (PAN and TAN)

  2. State and Union Territory codes

  3. Telephone Numbers

  4. Postal (Zip) Codes

  5. Vehicle License Plate Numbers

See also :

  • the api documentation

  • The page on pear.php.net

前のページ | ホーム | 次のページ
Validate_FR | 上に戻る | Validate_IS

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_IS

注意

This package is in alpha state

Package contains locale validation for Iceland such as:

  1. SSN (Social Security Number (Icelandic: kennitala))

  2. Postal code (Icelandic: post numer)

  3. Address (Icelandic: heimilisfang)

  4. Telephone number (Icelandic: simanumer)

See also :

  • the api documentation

  • The page on pear.php.net

前のページ | ホーム | 次のページ
Validate_IN | 上に戻る | Validate_NL

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_ISPN

Validation class for ISPN (International Standard Product Numbers)

Package contains ISPN (International Standard Product Numbers) validations such as:

  1. ISSN (International Standard Book Number)

  2. ISBN (International Standard Serial Number)

  3. ISMN (International Standard Music Number)

  4. EAN/UCC-8 number

  5. EAN/UCC-13 number

  6. EAN/UCC-14 number

  7. UCC-12 (U.P.C.) ID number

  8. SSCC (Serial Shipping Container Code)

See also :

  • The API documentation

  • The page on pear.php.net

前のページ | ホーム | 次のページ
Validate_Finance_CreditCard | 上に戻る | Web サービス

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_NL

注意

This package is in alpha state

Package contains locale validation for Netherlands such as:

  1. Social insurance number (aka SIN)

  2. Postal Code

  3. Phone Number

  4. Bank Account Number (based on 11proef)

See also :

  • the api documentation

  • The page on pear.php.net

前のページ | ホーム | 次のページ
Validate_IS | 上に戻る | Validate_NZ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_NZ

注意

This package is in alpha state

Package contains locale validation for New Zealand such as:

  1. Postal Codes

  2. IRD numbers

  3. Regional codes

  4. Telephone number

  5. Bank AC

See also :

  • the api documentation

  • The page on pear.php.net

  • Developper's blog

前のページ | ホーム | 次のページ
Validate_NL | 上に戻る | Validate_PL

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_PL

注意

This package is in alpha state

Package contains locale validation for Poland such as: This class provides methods to validate:

  1. NIP (Polish tax identification number)

  2. Bank account numbers

  3. PESEL (Polish human identification number)

  4. REGON (Polish statistical national economy register)

See also :

  • the api documentation

  • The page on pear.php.net

  • The page about NIP and REGON

  • The page about PESEL

前のページ | ホーム | 次のページ
Validate_NZ | 上に戻る | Validate_ptBR

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_ptBR

注意

This package is in alpha state

Package contains locale validation for Brazil such as:

  1. Social Inurance Numbers (SIN)

  2. Region (brazilian states)

  3. Postal Codes

  4. Phone Numbers

  5. CNPJ

  6. CPF

  7. Vehicle's plate

See also :

  • the api documentation

  • The page on pear.php.net

  • Validate_ptBR on developper's blog

前のページ | ホーム | 次のページ
Validate_PL | 上に戻る | Validate_UK

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate features

表 60-1control per country

Country

Package

PostCode

SIN

Car registration

SSN

Phone

Region

bankCode

Others

Argentina

AR

Yes

Yes

Austria

AT

Yes

Yes

Australia

AU

Yes

Yes

  1. Tax file Number

  2. Australian Business Number

  3. Australian Company Number

Belgium

BE

Yes

Yes

Yes

Yes

  1. Account number

  2. TransfertMessage

Brasil

PTBR

Yes

Yes

Yes

Yes

Yes

  1. CNPJ

  2. CPF

Canada

CA

Yes

Yes

n

y

y

n

Denmark

DK

Yes

Yes

Yes

Yes

France

FR

Yes

Yes

Departements

RIB

  1. Siret

  2. Siren

Germany

DE

Yes

Yes

Iceland

IS

Yes

Yes

Yes

address

Mexico

esMX

Yes

Yes (DNI)

Yes

Yes

Netherlands

NL

Yes

Yes

Yes

Account Number

New Zealand

NZ

Yes

Yes

Region number

Account Number

IRD Number

Polands

PL

Account number

  1. NIP

  2. Pesel

  3. Regon

Republic of India

IN

Yes

Yes

Yes

State and union territory

Pan and TAN

South Africa

ZA

Yes

Yes

Yes

Spain

ES

Yes (DNI)

Switzerland

CH

Yes

Yes

  1. Swiss university's immatriculation number

United Kingdom

UK

Yes

Yes

Yes

Yes

Account Number

  1. Sort code

  2. driver licence

  3. passport

United States

US

Yes

Yes

Yes

Yes

前のページ | ホーム | 次のページ
Validate | 上に戻る | Validate_AR

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_UK

注意

This package is in alpha state

Package contains locale validation for United Kingdom such as:

  1. SSN (National Insurance/IN)

  2. Postal Code

  3. Phone Number

  4. Bank Account Number

  5. Sort Code

  6. Car registration numbers

  7. Passports

  8. Driver license

See also :

  • the api documentation

  • The page on pear.php.net

前のページ | ホーム | 次のページ
Validate_ptBR | 上に戻る | Validate_US

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_US

注意

This package is in beta state

Package contains locale validation for United States such as:

  1. Social insurance number (aka SSN)

  2. Region (state code)

  3. Postal Codes

  4. Phone Numbers

See also :

  • the api documentation

  • The page on pear.php.net

前のページ | ホーム | 次のページ
Validate_UK | 上に戻る | Validate_ZA

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Validate_ZA

注意

This package is in alpha state.

The PEAR Validate_ZA package provides users with various locale validation routines currently for , Postal Codes and Provinces.

  1. South African Identity Number

  2. Regions (Provinces)

  3. Postal Codes

See also :

  • The API documentation

  • The page on pear.php.net

前のページ | ホーム | 次のページ
Validate_US | 上に戻る | Validate_Finance

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


List of available validations

List of available validations -- available validation in Validate_AU

Validate a Australian TFN / SSN

Most Australian's will have a TFN (Tax File Number) however not all, it is the closet equivalent we have to a Social Security Number. Note that this validation routine can be accessed through both Validate_AU::tfn() and Valdiate::ssn() methods.

sample

<?php

// Include the package
require_once('Validate/AU.php');

$badTFN = '23 456 782';
$result = Validate_AU::tfn($badTFN);
echo 'Test ' . $badTFN .' : <br />';
var_export($result);

echo '<br /><br />';
$goodTFN = '123 456 782';
$result = Validate_AU::tfn($goodTFN);
echo 'Test ' . $goodNationalId .' : <br />';
var_export($result);
?>

Output :

Test 23 456 782 :
false

Test 123 456 782 :
true

Validate a Australian postcode

Australian post code are 4 digit formed.

First parameter is the post code to validate.

An optional parameter for activate strong checks using a list of postcodes.

sample

<?php

// Include the package
require_once('Validate/AU.php');

$badPostCode = 'ABCD';
$result = Validate_AU::postalCode($badPostCode);
echo 'Test ' . $badPostCode .' : <br />';
var_export($result);

echo '<br /><br />';
$goodPostCode = '3000';
$result = Validate_AU::postalCode($goodPostCode);
echo 'Test ' . $goodPostCode .' : <br />';
var_export($result);
?>

Output :

Test ABCD :
false

Test 3000 :
true

sample using strong parameter

1234 appears to be a valid 4 digit postcode, however it does not appear in the official list.
<?php

// Include the package
require_once('Validate/AU.php');

$badPostCode = '1234';
$goodPostCode = '7930';

$result = Validate_AU::postalCode($badPostCode);
echo 'Test ' . $badPostCode .' : <br />';
var_export($result);

$result = Validate_AU::postalCode($badPostCode, false);
echo '<br /><br />Test ' . $badPostCode .' : <br />';
var_export($result);

$result = Validate_AU::postalCode($badPostCode, true);
echo '<br /><br />Test ' . $badPostCode .' : <br />';
var_export($result);

$result = Validate_AU::postalCode($goodPostCode, true);
echo '<br /><br />Test ' . $goodPostCode .' : <br />';
var_export($result);
?>

Output :

Test 1234 :
true

Test 1234 :
true

Test 1234 :
false

Test 7930 :
true

Validate an ABN

Validate an Australian Business Number.

sample

<?php

// Include the package
require_once('Validate/AU.php');

$badABN = '00 043 145 470';
$result = Validate_AU::abn($badABN);
echo 'Test ' . $badRegion .' : <br />';
var_export($result);

echo '<br /><br />';
$goodABN = '28 043 145 470';
$result = Validate_AU::abn($goodABN);
echo 'Test ' . $goodRegion .' : <br />';
var_export($result);
?>

Output :

Test 00 043 145 470 :
false

Test 28 043 145 470 :
true

Validate a Region / State

Validates a 2/3 region (state) code.

sample

<?php

// Include the package
require_once('Validate/AU.php');

$badRegion = 'asdf';
$result = Validate_AU::region($badVAT);
echo 'Test ' . $badRegion .' : <br />';
var_export($result);

echo '<br /><br />';
$goodRegion = 'VIC';
$result = Validate_AU::region($goodRegion);
echo 'Test ' . $goodRegion .' : <br />';
var_export($result);
?>

Output :

Test asdf :
false

Test VIC :
true

Validate a phonenumber

Validate an Australian phone number passed as first param. Second parameter can be used to specify flags that signify the type of number to be validated.

Flags can be any combination of the bitwise constants VALIDATE_AU_PHONENUMBER_* as follows:

表 60-1Validate_AU Phone Number Flags

Flag | Description
"VALIDATE_AU_PHONENUMBER_STRICT" | If supplied then no spaces, parenthesis or dashes (-) will be removed.
"VALIDATE_AU_PHONENUMBER_NATIONAL" | If supplied, then valid national numbers, both landline and mobile will pass validation.
"VALIDATE_AU_PHONENUMBER_INDIAL" | If supplied, then valid indial (13/1300/1800/1900) numbers will pass validation.
"VALIDATE_AU_PHONENUMBER_INTERNATIONAL" | If supplied, then valid international syntax will pass validation. EG. +61.3 9999 9999

sample

<?php

// Include the package
require_once('Validate/AU.php');

$nationalPhone       = '03 9999 9999';
$nationalStrictPhone = '0399999999';
$indialPhone         = '1300 131 121';
$internationalSyntax = '+61.3 8779 7212';

echo 'Test ' . $goodPhone .' : <br />';
$result = Validate_AU::phoneNumber($nationalPhone); // the flag VALIDATE_AU_PHONENUMBER_NATIONAL is default
var_export($result) . '-';
$result = Validate_AU::phoneNumber($nationalPhone, VALIDATE_AU_PHONENUMBER_NATIONAL | VALIDATE_AU_PHONENUMBER_STRICT);
var_export($result) . '-';
$result = Validate_AU::phoneNumber($nationalPhone, VALIDATE_AU_PHONENUMBER_INDIAL);
var_export($result) . '-';
$result = Validate_AU::phoneNumber($nationalPhone, VALIDATE_AU_PHONENUMBER_INTERNATIONAL);
var_export($result) . '-';
$result = Validate_AU::phoneNumber($nationalPhone, VALIDATE_AU_PHONENUMBER_NATIONAL | VALIDATE_AU_PHONENUMBER_INDIAL | VALIDATE_AU_PHONENUMBER_INTERNATIONAL);
var_export($result);

echo '<br /><br />';
echo 'Test ' . $nationalStrictPhone .' : <br />';
$result = Validate_AU::phoneNumber($nationalStrictPhone);
var_export($result) . '-';
$result = Validate_AU::phoneNumber($nationalStrictPhone, VALIDATE_AU_PHONENUMBER_NATIONAL | VALIDATE_AU_PHONENUMBER_STRICT);
var_export($result) . '-';
$result = Validate_AU::phoneNumber($nationalStrictPhone, VALIDATE_AU_PHONENUMBER_INDIAL);
var_export($result) . '-';
$result = Validate_AU::phoneNumber($nationalStrictPhone, VALIDATE_AU_PHONENUMBER_INTERNATIONAL);
var_export($result) . '-';
$result = Validate_AU::phoneNumber($nationalStrictPhone, VALIDATE_AU_PHONENUMBER_NATIONAL | VALIDATE_AU_PHONENUMBER_INDIAL | VALIDATE_AU_PHONENUMBER_INTERNATIONAL);
var_export($result) . '-';

echo '<br /><br />';
echo 'Test ' . $indialPhone .' : <br />';
$result = Validate_AU::phoneNumber($indialPhone);
var_export($result) . '-';
$result = Validate_AU::phoneNumber($indialPhone, VALIDATE_AU_PHONENUMBER_INDIAL | VALIDATE_AU_PHONENUMBER_STRICT);
var_export($result) . '-';
$result = Validate_AU::phoneNumber($indialPhone, VALIDATE_AU_PHONENUMBER_INDIAL);
var_export($result) . '-';
$result = Validate_AU::phoneNumber($indialPhone, VALIDATE_AU_PHONENUMBER_INTERNATIONAL);
var_export($result) . '-';
$result = Validate_AU::phoneNumber($indialPhone, VALIDATE_AU_PHONENUMBER_NATIONAL | VALIDATE_AU_PHONENUMBER_INDIAL | VALIDATE_AU_PHONENUMBER_INTERNATIONAL);
var_export($result) . '-';
echo '<br /><br />';

echo 'Test ' . $internationalSyntax .' : <br />';
$result = Validate_AU::phoneNumber($internationalSyntax);
var_export($result) . '-';
$result = Validate_AU::phoneNumber($internationalSyntax, VALIDATE_AU_PHONENUMBER_INTERNATIONAL | VALIDATE_AU_PHONENUMBER_STRICT);
var_export($result) . '-';
$result = Validate_AU::phoneNumber($internationalSyntax, VALIDATE_AU_PHONENUMBER_INDIAL);
var_export($result) . '-';
$result = Validate_AU::phoneNumber($internationalSyntax, VALIDATE_AU_PHONENUMBER_INTERNATIONAL);
var_export($result) . '-';
$result = Validate_AU::phoneNumber($internationalSyntax, VALIDATE_AU_PHONENUMBER_NATIONAL | VALIDATE_AU_PHONENUMBER_INDIAL | VALIDATE_AU_PHONENUMBER_INTERNATIONAL);
var_export($result) . '-';

?>

Output :

Test 03 9999 9999 :
true - false - false - false - true

Test 0399999999 :
true - true - false - false - true

Test 1300 131 121 :
false - false - true - false - true

Test +61.3 8779 7212 :
false - false - true - true - true

前のページ | ホーム | 次のページ
Introduction | 上に戻る | Package Validate_AU Constants

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction

Introduction -- Introduction to validate_BE

説明

The package offers some methods to validate specific data for Belgium

Usage

General usage

Every module of Validate follows the same philosophy. Propose some validation method retuning boolean result. Some methods have some optional parameters to set a stronger check.

sample

<?php

// Include the package
require_once 'Validate/BE.php';
?>

前のページ | ホーム | 次のページ
Validate_BE | 上に戻る | List of aivailable validations

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


List of aivailable validations

List of aivailable validations -- aivailable validation in validate_be

Validate a Belgian nationalId

The belgian nationalId on the identity card of all belgian.

A check digit is the last one, computed the standard _get_control_number function.

sample

<?php

// Include the package
require_once('Validate/BE.php');

$badNationalId = '730111-361-99';
$result = Validate_BE::nationalId($badNationalId);
echo 'Test ' . $badNationalId .' : <br />';
var_export($result);

echo '<br /><br />';
$goodNationalId = '730111 361 73';
$result = Validate_BE::nationalId($goodNationalId);
echo 'Test ' . $goodNationalId .' : <br />';
var_export($result);
?>

Output :

Test 730111-361-99 :
false

Test 730111 361 73 :
true

Validate a Belgian social security number

The belgian social security number is on the SIS card of all belgian.

A check digit is the last one, computed the standard _get_control_number function.

sample

<?php

// Include the package
require_once('Validate/BE.php');

$badSsn = '72011136173';
$result = Validate_BE::ssn($badSsn);
echo 'Test ' . $badSsn .' : <br />';
var_export($result);

echo '<br /><br />';
$goodSsn = '73011136173';
$result = Validate_BE::ssn($goodSsn);
echo 'Test ' . $goodSsn .' : <br />';
var_export($result);
?>

Output :

Test 72011136173 :
false

Test 73011136173 :
true

Validate a Belgian postcode

Belgian post code are 4 digit formed.

First parameter is the post code to validate.

An optional parameter for activate strong checks using a list of postcodes.

sample

<?php

// Include the package
require_once('Validate/BE.php');

$badPostCode = 'ABCD';
$result = Validate_BE::postalCode($badPostCode);
echo 'Test ' . $badPostCode .' : <br />';
var_export($result);

echo '<br /><br />';
$goodPostCode = '7930';
$result = Validate_BE::postalCode($goodPostCode);
echo 'Test ' . $goodPostCode .' : <br />';
var_export($result);
?>

Output :

Test ABCD :
false

Test 7930 :
true

sample unsing strong parameter

1234 like a good post code, but dont exit in the official list.
<?php

// Include the package
require_once('Validate/BE.php');

$badPostCode = '1234';
$goodPostCode = '7930';

$result = Validate_BE::postalCode($badPostCode);
echo 'Test ' . $badPostCode .' : <br />';
var_export($result);

$result = Validate_BE::postalCode($badPostCode,false);
echo '<br /><br />Test ' . $badPostCode .' : <br />';
var_export($result);

$result = Validate_BE::postalCode($badPostCode,true);
echo '<br /><br />Test ' . $badPostCode .' : <br />';
var_export($result);

$result = Validate_BE::postalCode($goodPostCode);
echo '<br /><br />Test ' . $goodPostCode .' : <br />';
var_export($result);
?>

Output :

Test 1234 :
true

Test 1234 :
true

Test 1234 :
false

Test 7930 :
true

Validate a Belgian bank account number

Belgian bankcodes consist of

  • 3 figure number for the bank society

  • 7-figure number for the account number

  • 2-figure number for mod 97

sample

<?php

// Include the package
require_once('Validate/BE.php');
$badBankCode = '310164533227';
$result = Validate_BE::bankCode($badBankCode);
echo 'Test ' . $badBankCode .' : <br />';
var_export($result);

echo '<br /><br />';
$goodBankCode = '310164533207';
$result = Validate_BE::bankCode($goodBankCode);
echo 'Test ' . $goodBankCode .' : <br />';
var_export($result);
?>

Output :

Test 310164533227 :
false

Test 310164533207 :
true

Validate a Belgian transfert message

Belgian transfert (virement) can be done with a structured message 12 figures

  • 10-figure number for the message

  • 2-figure number for mod 97

sample

<?php

// Include the package
require_once('Validate/BE.php');

$badBankTransferMessage = '053/3140/16211';
$result = Validate_BE::bankTransferMessage($badBankTransferMessage);
echo 'Test ' . $badBankTransferMessage .' : <br />';
var_export($result);

echo '<br /><br />';
$goodBankTransferMessage = '054/3140/16211';
$result = Validate_BE::bankTransferMessage($goodBankTransferMessage);
echo 'Test ' . $goodBankTransferMessage .' : <br />';
var_export($result);
?>

Output :

Test 053/3140/16211 :
false

Test 054/3140/16211 :
true

Validate a VAT account number

Belgian VAT consist of 3-figure number.

Actually no doc was found about a checksum.

sample

<?php

// Include the package
require_once('Validate/BE.php');

$badVAT = '102.239.951';
$result = Validate_BE::vat($badVAT);
echo 'Test ' . $badVAT .' : <br />';
var_export($result);

echo '<br /><br />';
$goodVAT = '202-239-951';
$result = Validate_BE::vat($goodVAT);
echo 'Test ' . $goodVAT .' : <br />';
var_export($result);
?>

Output :

Test 102.239.951 :
false

Test 202-239-951 :
true

Validate a phonenumber

Validate a belgian phone number passed as first param second specify if it's would be a mobile or a traditional line or both. "/" (slash), "-" (dash), "." (dot), and white spaces are ignored. "+" are use a exit code : 0 in Belgium.

NOTE : this validate want a BELGIAN phonenumber to return true, not a valid number to call FROM belgium

sample

<?php

// Include the package
require_once('Validate/BE.php');

$badPhone = '00 32 12 123 45 67';
$result = Validate_BE::phoneNumber($badPhone);
echo 'Test ' . $badPhone .' : <br />';
var_export($result);

echo '<br /><br />';
$goodPhone = '00 32 45 12 34 56';
$result = Validate_BE::phoneNumber($goodPhone);
echo 'Test ' . $goodPhone .' : <br />';
var_export($result);
?>

Output :

Test '00 32 12 123 45 67' :
false

Test '00 32 45 12 34 56' :
true

sample

See now with the parameter

<?php

// Include the package
require_once('Validate/BE.php');

$goodPhone = '00 32 45 12 34 56';
$mobilePhone = '00 32 485 34 56';

echo 'Test ' . $goodPhone .' : <br />';
$result = Validate_BE::phoneNumber($goodPhone);
var_export($result) . '-';
$result = Validate_BE::phoneNumber($goodPhone,VALIDATE_BE_PHONENUMBER_TYPE_ANY);
var_export($result) . '-';
$result = Validate_BE::phoneNumber($goodPhone,VALIDATE_BE_PHONENUMBER_TYPE_NORMAL);
var_export($result) . '-';
$result = Validate_BE::phoneNumber($goodPhone,VALIDATE_BE_PHONENUMBER_TYPE_MOBILE);
var_export($result) . '-';

echo '<br /><br />';
$result = Validate_BE::phoneNumber($mobilePhone);
var_export($result) . '-';
$result = Validate_BE::phoneNumber($mobilePhone,VALIDATE_BE_PHONENUMBER_TYPE_ANY);
var_export($result) . '-';
$result = Validate_BE::phoneNumber($mobilePhone,VALIDATE_BE_PHONENUMBER_TYPE_NORMAL);
var_export($result) . '-';
$result = Validate_BE::phoneNumber($mobilePhone,VALIDATE_BE_PHONENUMBER_TYPE_MOBILE);
var_export($result);

?>

Output :

Test 00 32 45 12 34 56 :
true - true - true - false

Test 00 32 485 34 56 :
false - false - false - false

前のページ | ホーム | 次のページ
Introduction | 上に戻る | Validate_CA

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction

Introduction -- Introduction to validate_CA

説明

The package offers some methods to validate specific data for Canada

Usage

General usage

Every module of Validate follows the same philosophy. Propose some validation method retuning boolean result. Some methods have some optional parameters to set a stronger check.

sample

<?php

// Include the package
require_once 'Validate/CA.php';
?>

前のページ | ホーム | 次のページ
Validate_CA | 上に戻る | List of aivailable validations

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


List of aivailable validations

List of aivailable validations -- aivailable validation in validate_ca

Validate a canadian social security number

The canadian social security number is on the SIS card of all canadian.

A check digit is the last one, computed the standard _get_control_number function.

sample

<?php

// Include the package
require_once('Validate/CA.php');

$badSsn = '012345674';
$result = Validate_CA::ssn($badSsn);
echo 'Test ' . $badSsn .' : <br />';
var_export($result);

echo '<br /><br />';
$goodSsn = '123456782';
$result = Validate_CA::ssn($goodSsn);
echo 'Test ' . $goodSsn .' : <br />';
var_export($result);
?>

Output :

Test 012345674 :
false

Test 123456782 :
true

Validate a canadian postcode

The postal code is a six-character, uniformly structured alphanumeric code in the form of ANA NAN where "A" represents an alphabetic character and "N" represents a numeric character.

The postal code is made up of two segments:

The first, the Forward Sortation Area (FSA), is a combination of three characters (alpha - numeric - alpha).

It identifies a major geographic area in an urban or a rural location.

The third character of the FSA segment (M4B), in conjunction with the first two characters, describes an exact area of a city or town or other geographic area.

The second segment, Local Delivery Unit (LDU), is a combination of three characters (numeric - alpha - numeric).

It identifies the smallest delivery unit within a forward sortation area.

The LDU, identified by the last three characters of the postal code, allows for a final sort within an FSA.

In Urban Areas, the last three digits may indicate a specific city block (one side of a street between two intersecting streets), a single building or, in some cases, a large volume mail receiver.

In Rural Areas, the last three digits (LDU), together with the FSA, identify a specific Rural community.

First parameter of the method is the post code to validate.

An optional parameter for limite the request to a province.

sample

<?php

// Include the package
require_once('Validate/CA.php');

$badPostCode = '48103';
$result = Validate_CA::postalCode($badPostCode);
echo 'Test ' . $badPostCode .' : <br />';
var_export($result);

echo '<br /><br />';
$goodPostCode = 'H2M 2J1';
$result = Validate_CA::postalCode($goodPostCode);
echo 'Test ' . $goodPostCode .' : <br />';
var_export($result);
?>

Output :

Test 48103 :
false

Test H2M 2J1 :
true

sample using province parameter

H2M 2J1 like a good post code, but province don't exit.
<?php

// Include the package
require_once('Validate/CA.php');

$postalCode = 'H2M 2J1'; // in Montreal area

$result = Validate_CA::postalCode($postalCode);
echo 'Test ' . $postalCode .' : <br />';
var_export($result);

echo '<br /><br />';
$result = Validate_CA::postalCode($postalCode,'QC');
// QC for Montreal
echo 'Test ' . $postalCode .' in QC: <br />';
var_export($result);

echo '<br /><br />';
$result = Validate_CA::postalCode($postalCode,'AB');
// AB for Toronto
echo 'Test ' . $postalCode .' in AB: <br />';
var_export($result);

?>

Output :

Test H2M 2J1 :
true

Test H2M 2J1 in QC:
true

Test H2M 2J1 in AB:
false

Validate a phonenumber

Canada and the United States share the same numbering plan, hence you can also call Validate_US::phoneNumber()

Can allow only seven digit numbers.

Also allows the formats, (xxx) xxx-xxxx, xxx xxx-xxxx, and now x (xxx) xxx-xxxx or various combination without spaces or dashes.

sample

<?php
// Include the package
require_once('Validate/CA.php');

$phoneNumber = '467875098x';
$result = Validate_CA::phoneNumber($phoneNumber);
echo 'Test ' . $phoneNumber .' : <br />';
var_export($result);
echo '<br />';

$phoneNumber = '4678750987';
$result = Validate_CA::phoneNumber($phoneNumber);
echo 'Test ' . $phoneNumber .' : <br />';
var_export($result);

?>

Output :

Test 467875098x :
false
Test 4678750987 :
true

sample

See now with the parameter

<?php
// Include the package
require_once('Validate/CA.php');

$phoneNumber = '8750987';
$result = Validate_CA::phoneNumber($phoneNumber,false);
echo 'Test ' . $phoneNumber .' : <br />';
var_export($result);

echo '<br /><br />';
$phoneNumber = '8750987';
echo 'Test ' . $phoneNumber .' : <br />';
echo 'With $requireAreaCode false <br />';
$result = Validate_CA::phoneNumber($phoneNumber,false);
var_export($result);
echo '<br />';
echo 'With $requireAreaCode true<br />';
$result = Validate_CA::phoneNumber($phoneNumber,true);
var_export($result);

echo '<br /><br />';
$phoneNumber = '(467)8750987';
echo 'Test ' . $phoneNumber .' : <br />';
echo 'With $requireAreaCode false <br />';
$result = Validate_CA::phoneNumber($phoneNumber,false);
var_export($result);
echo '<br />';
echo 'With $requireAreaCode true<br />';
$result = Validate_CA::phoneNumber($phoneNumber,true);
var_export($result);

?>

Output :

Test 8750987 :
true

Test 8750987 :
With $requireAreaCode false
true
With $requireAreaCode true
false

Test (467)8750987 :
With $requireAreaCode false
false
With $requireAreaCode true
true

前のページ | ホーム | 次のページ
Introduction | 上に戻る | Validate_CH

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Services_Delicious

目次
導入 -- Services_Delicious の導入
例 -- Services_Delicious の基本的な例

del.icio.us XML APIのオブジェクト指向抽象化

前のページ | ホーム | 次のページ
Web サービス | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


例

例 -- Services_Delicious の基本的な例

Services_Delicious の基本的な例

Services_Delicious の基本的な特徴をどうのように使用するか、その例を以下に示します。

例 61-1Fetching your recent posts

require_once 'Services/Delicious.php';

$dlc = &new Services_Delicious($username, $password);

$posts = $dlc->getRecentPosts();
echo '<pre>';
print_r($posts);
echo '</pre>';

例 61-2あなたの使用するブックマークから全てのタグを取得します。

require_once 'Services/Delicious.php';

$dlc = &new Services_Delicious($username, $password);

$tags = $dlc->getTags();
echo '<pre>';
print_r($tags);
echo '</pre>';

例 61-3新しいブックマークを加えます。

require_once 'Services/Delicious.php';

$dlc = &new Services_Delicious($username, $password);

$result = $dlc->addPost('http://pear.php.net', 'PEAR', 'The PHP Extension and Application Repository', 'php');
if (PEAR::isError($result)) {
  die($result->getMessage());
} else {
  echo 'Success';
}
前のページ | ホーム | 次のページ
導入 | 上に戻る | Services_Ebay

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- Services_Delicious の導入

Services_Delicious の導入

Services_Delicious はソーシャルブックマークサイトである del.icio.us を抽象化したものです。 del.icio.us はあなたの個人的なコレクションへ好きにサイトのリンクを容易に加えることができ、 それらのサイトはキーワードによって分類され、そしてあなたのコレクションはあなたの ブラウザとマシンだけでなく、他者にも共有されます。

del.icio.us は "タグ" をあなたのブックマークを分類するために使用したり、 他のユーザのブックマークを拾い読みするためのトピックとして利用したりします。

Services_Delicious はあなたが、あなたのソーシャルブックマークに追加、削除する機能を Services_Delicious クラスが提供する getAllPosts(), addPost() や deletePost() 使用することでアクセスすることを可能にします。

前のページ | ホーム | 次のページ
Services_Delicious | 上に戻る | 例

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Services_Ebay

目次
導入 -- Services_Ebay の導入
さあはじめましょう -- eBay ウェブサービスの利用の手引き
XML エンコーディング -- Services_Ebay の XML エンコーディング
エラー処理 -- Services_Ebay のエラー処理
構造 -- Services_Ebay の構造
例 -- Services_Ebay の基本的な例

eBay の XML API をオブジェクト指向で抽象化したものです。

前のページ | ホーム | 次のページ
例 | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


構造

構造 -- Services_Ebay の構造

Services_Ebay の構造についての概要

Services_Ebay は多くの小さなクラスで構成されています。これにより、 使用するコードの量を少なくすることができます。 あなたのアプリケーションで実際に使用する機能のコードのみが読み込まれ、 パースされます。

ここでは、提供されているさまざまな型のオブジェクトについて、 どのような場合にそれを使用するのかを簡単に説明します。

Services_Ebay

Services_Ebay クラスは次の目的で使用します。

  1. ファクトリメソッドの提供

    Services_Ebay は、Services_Ebay に含まれるその他すべてのクラスの 読み込みとインスタンス化のためのメソッドを提供します。 つまり、あなた自身がインクルードして インスタンスを作成すべきクラスはこれだけだということです。 ファクトリメソッドに該当するのは loadApiCall()、getSession() および loadModel() です。

  2. 定数の提供

    このクラスではまた、定数をいくつか定義しています。 たとえばアプリケーションで必要となる eBay サイト ID などです。 定数に含まれるのは Services_Ebay::SITEID_ID、 Services_Ebay::AUTH_TYPE_TOKEN あるいは Services_Ebay::FEEDBACK_BRIEF です。 eBay ウェブサービスが XML タグに整数値を期待している場面ではいつも、 Services_Ebay は該当する定数を提供しようとします。

  3. 静的なヘルパメソッド群の提供

    このクラスでは、いくつかのヘルパメソッドが定義されています。 これは、getAvailableApiCalls() のように静的にコールすることができます。

  4. プロキシクラスとしての動作

    最も重要な使用法は、Services_Ebay は API コールのプロキシクラスとして動作することです。 つまり、このクラスのメソッドをコールすると、 それが適切なコールオブジェクトにリダイレクトされるということです。

Services_Ebay_Session

Services_Ebay_Session クラスは、 通信する XML ストリームのシリアライズ/アンシリアライズを処理するために使用します。 さらに、必要となる HTTP ヘッダを作成し、ユーザ認証の処理も行います。

おそらく、あなたはセッションを常に間接的に使用することになるでしょう。 つまり、まず最初にセッションを Services_Ebay オブジェクトにわたし、Services_Ebay オブジェクトがそれを使用して API をコールするということです。

例 61-1セッションクラスの使用

require_once 'Services/Ebay.php';

// 認証データを渡します
$session = Services_Ebay::getSession($devId, $appId, $certId);
$session->setToken($token);

// 作成したセッションを用いて、新しいプロキシオブジェクトを作成します
$ebay = new Services_Ebay($session);

Services_Ebay_Transport

Services_Ebay_Transport クラスの使用目的は、 eBay ウェブサービスへの接続を確立すること、 および Services_Ebay_Session が作成した生データの送受信を行うことです。

理屈上はさまざまなトランスポートクラスが存在してしかるべきです。 しかし、PHP のストリーム関数やいくつかの SSL ライブラリのバグのせいで、 実際に動作するトランスポートクラスは Services_Ebay_Transport_Curl のみとなっています。これは PHP の curl 拡張モジュールを使用します。

Services_Ebay_Call

Services_Ebay_Call クラスは eBay ウェブサービスが提供する API コールに関する情報を含みます。 各 API コールはオブジェクトにカプセル化され、 そのオブジェクトには API コールに関する情報が含まれます。 例えば、使用する XML タグや期待する返り値などです。

このオブジェクトには二通りの使用法があります。

  1. インスタンスを直接作成し (Services_Ebay のファクトリメソッドを使用するのがベストです)、すべてのパラメータを渡して Services_Ebay_Call::call() を起動します。このメソッドにセッションオブジェクトを渡します。

  2. Services_Ebay をプロキシオブジェクトとして使用します。 PHP5 の新しい機能であるオブジェクトのオーバーロードを使用して、 すべての操作が可能です。

Call オブジェクトを直接操作するより、Services_Ebay をプロキシとして使用する方法を推奨します。 Services_Ebay はクラスのインスタンスを作成し、 パラメータを渡して Call オブジェクトの call メソッドを起動します。

Services_Ebay_Model

Services_Ebay_Model クラスは、eBay のサーバに保存されたリモートデータをローカルで保持するコンテナとして動作します。 例えば、Services_Ebay::getItem() をコールすると、 このメソッドは Services_Ebay_Model_Item のインスタンスを返します。ここには、商品についての情報のほかに Services_Ebay_Model_Item::addToDescription() のようなヘルパメソッドが含まれ、新しい API コールをカプセル化します。

現在 Services_Ebay が提供しているモデルクラスは accounts, disputes (single dispute and a list of disputes), user feedback (summary and a single feedback entry), items and list of items, MyeBay, orders, preferences, search results, shipments, eBay stores, transactions および users です。

Services_Ebay_Cache

Services_Ebay_Cache クラスは、eBay ウェブサービスから取得した情報をローカルにキャッシュします。 あなたのスクリプトには一切手を入れる必要はありません。 任意のモデル型についてキャッシュのインスタンスを登録すると、 Services_Ebay は、時間のかかる API コールの前にキャッシュを検索するようになります。

キャッシュクラスは非常に高いレベルでの抽象化を行っており、 新しいキャッシュコンテナを作成することが可能です。そのため、 データベースでも共有メモリでも、お望みの場所にデータを保存することができます。 現在は、使用できるコンテナは一種類だけです。 これはデータをローカルのファイルシステムに保存します。

キャッシュがまだ有効かどうかを調べるには Services_Ebay_Cache_ExpiryCheck のインスタンスを使用します。これを使用すると、 オークションの終了時刻の少し前に期限切れとなるような "かしこい" キャッシュを作成することができます。

前のページ | ホーム | 次のページ
エラー処理 | 上に戻る | 例

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML エンコーディング

XML エンコーディング -- Services_Ebay の XML エンコーディング

Services_Ebay の XML エンコーディング

2005 年の中ごろ以降、eBay API は UTF-8 エンコードされた XML 文書しか受け付けなくなります。すべてのデータを UTF-8 に変換するのは退屈な作業です。Services_Ebay が、 あなたのためにこれを代わりに行います。あなたがすべきことは、 セッションオブジェクトを作成する際に スクリプトのエンコーディングを指定することだけです。

例 61-1スクリプトで ISO-8859-1 を使用する場合

require_once 'Services/Ebay.php';

// 認証データを渡します
$session = Services_Ebay::getSession($devId, $appId, $certId, 'ISO-8859-1');
$session->setToken($token);

// 新しいプロキシオブジェクトを作成します
$ebay = new Services_Ebay($session);

$item = Services_Ebay::loadModel('Item', null, $session);
$item->Category = 57882;
$item->Title = 'International Item';
$item->Description = 'This description contains Umlaut characters like ?, ? and ?';
$item->Location = 'At my home';
$item->MinimumBid = '532.0'; $item->VisaMaster = 1;
$item->ShippingType = 1;
$item->CheckoutDetailsSpecified = 1;
$item->Country = 'US';
$item->SetShipToLocations(array('US', 'DE', 'GB'));
$item->addShippingServiceOption(1, 1, 3, 1, array('US'));

$result = $ebay->AddItem($item);

商品の説明文に含まれているウムラウト文字は、XML ドキュメントを作成する際に 自動的に UTF-8 に変換されます。さらに、eBay API が返す結果のドキュメントは ISO-8859-1 にデコードされます。そのため、あなたは UTF-8 については何も考慮する必要はありません。

もちろん、UTF-8 エンコードされたデータを Services_Ebay に渡すこともできます。 セッションオブジェクトを作成する際のエンコーディング指定を変更するだけです。

例 61-2スクリプトで UTF-8 を使用する場合

require_once 'Services/Ebay.php';

// 認証データを渡します
$session = Services_Ebay::getSession($devId, $appId, $certId, 'UTF-8');
$session->setToken($token);

// 新しいプロキシオブジェクトを作成します
$ebay = new Services_Ebay($session);

$item = Services_Ebay::loadModel('Item', null, $session);
$item->Category = 57882;
$item->Title = 'International Item';
$item->Description = utf8_encode('This description contains Umlaut characters like ?, ? and ?');
$item->Location = 'At my home';
$item->MinimumBid = '532.0'; $item->VisaMaster = 1;
$item->ShippingType = 1;
$item->CheckoutDetailsSpecified = 1;
$item->Country = 'US';
$item->SetShipToLocations(array('US', 'DE', 'GB'));
$item->addShippingServiceOption(1, 1, 3, 1, array('US'));

$result = $ebay->AddItem($item);

この例では、utf8_encode() を使用して、 データを事前にエンコードしてから Services_Ebay に渡しています。二重にエンコードしてしまうことを避けるために、 エンコーディングを UTF-8 と指定する必要があります。

前のページ | ホーム | 次のページ
さあはじめましょう | 上に戻る | エラー処理

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


エラー処理

エラー処理 -- Services_Ebay のエラー処理

Services_Ebay の例外

Services_Ebay は PHP 5 以降でのみ使用できるパッケージなので、 例外処理を行います。また、すべての例外の基底クラスは PEAR_Exception クラスとなっています。Services_Ebay が提供するあらゆる API コールで例外がスローされる可能性があります。 つまり、それらはすべて try/catch ブロックで囲んでおく必要があるということです。

例 61-1例外の処理

require_once 'Services/Ebay.php';

// 認証データを渡します
$session = Services_Ebay::getSession($devId, $appId, $certId);
$session->setToken($token);

// 新しいプロキシオブジェクトを作成します
$ebay = new Services_Ebay($session);
try {
    // メソッドをコールします
    echo $ebay->GeteBayOfficialTime();
} catch (Exception $e) {
    echo "問題が発生しました。";
    echo $e;
}

存在しない API をコールしたり、API に渡すパラメータを間違えたりした場合は、 eBay は API コールを中断し、エラー情報を含む XML ドキュメントを返します。 Services_Ebay は自動的にこれを例外に変換し、 PHP アプリケーションで簡単に処理できるようにします。

Services_Ebay の警告

時には、無効なパラメータが渡されたとしても eBay API がリクエストの処理を続行する場合もあります。そのような場合は、 結果の XML ドキュメントの中にはリクエストに対する応答と エラー情報が両方含まれます。

このような場合、そのエラーは警告として扱われます。 これらは深刻なエラーではないからです。Services_Ebay は、 これらのエラーを例外ではなく Services_Ebay_Error のインスタンスに変換します。このオブジェクトは Services_Ebay_Session に保存され、 アプリケーション側で後から取得できるようになります。

例 61-2警告の処理

require_once 'Services/Ebay.php';

// 認証データを渡します
$session = Services_Ebay::getSession($devId, $appId, $certId);
$session->setToken($token);

// 新しいプロキシオブジェクトを作成します
$ebay = new Services_Ebay($session);
try {
    // メソッドをコールします
    echo $ebay->GeteBayOfficialTime();
} catch (Exception $e) {
    // 例外を無視し、警告を処理します。
}

$errors = $session->getErrors();
if (count($errors) == 0) {
    echo "エラーや警告はありません。\n";
} else {
    foreach ($errors as $error) {
        printf("%s: %s (%d))\n", $error->getSeverity(), $error->getLongMessage(), $error->getCode());
    }
}
前のページ | ホーム | 次のページ
XML エンコーディング | 上に戻る | 構造

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


例

例 -- Services_Ebay の基本的な例

Services_Ebay の基本的な例

以下の例で、Services_Ebay の基本的な機能の使用法を説明します。

例 61-1プロキシオブジェクトの使用法

require_once 'Services/Ebay.php';

// 認証データを渡します
$session = Services_Ebay::getSession($devId, $appId, $certId);
$session->setToken($token);

// 新しいプロキシオブジェクトを作成します
$ebay = new Services_Ebay($session);

// メソッドをコールします
echo $ebay->GeteBayOfficialTime();

例 61-2Call オブジェクトを直接操作する

require_once 'Services/Ebay.php';

// 認証データを渡します
$session = Services_Ebay::getSession($devId, $appId, $certId);
$session->setToken($token);

$call = Services_Ebay::loadAPICall('GetEbayOfficialTime');
$result = $call->call($session);

echo $result;

例 61-3モデルクラスの使用法

require_once 'Services/Ebay.php';

// 認証データを渡します
$session = Services_Ebay::getSession($devId, $appId, $certId);
$session->setToken($token);

// eBay の商品を取得します
$item = $ebay->GetItem(4501333179, 2);

// 出品者の情報も同様にオブジェクトとして取得できます
echo '出品者のユーザ ID: '.$item->Seller->UserId.'<br />';

// 商品を配列に変換します
echo '<pre>';
print_r($item->toArray());
echo '</pre>';

// モデルのメソッドを使用します
$item->AddToDescription('大切なことを言い忘れていました');

// 商品を変更します
$item->Title = '新しいタイトル';

$ebay->ReviseItem($item);
前のページ | ホーム | 次のページ
構造 | 上に戻る | Services_Technorati

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


さあはじめましょう

さあはじめましょう -- eBay ウェブサービスの利用の手引き

eBay アプリケーションの開発

eBay ウェブサービスは、もちろん誰でも好き勝手に使用できるというわけではありません。 アプリケーションの開発やテストを行うには、eBay デベロッパとして登録する必要があります (これは無料です)。さらに、作成したアプリケーションが承認されるまでは、 eBay サイト上での開発やテストを行うことはできません。

eBay サンドボックス

eBay Developers Program Sandbox は、"ミニ" eBay サイトとでもいうべき テスト用環境です。このサンドボックスは eBay サイトの重要な機能のほとんどを 提供しており、アプリケーションの作成やテストを本番環境以外で行うことができます。 eBay Sandbox は、API のテストおよび GUI インターフェイスによる サイトのテストの両方をサポートしています。

アプリケーションを開発する際には、常にこの eBay サンドボックスを使用することになるでしょう。 サンドボックスへは、ウェブ経由で http://sandbox.ebay.com/ からアクセスできます。このサイトは、あなたが見慣れている eBay のサイトと見た目が似ており、同じように動作します。

サンドボックスの使用法

サンドボックスを使用してアプリケーションを開発するには、 eBay developers program に登録する必要があります。そのためには以下の手順に従ってください。

  1. eBay ユーザとしての登録

    eBay デベロッパとして登録するには、eBay のユーザである必要があります。 eBay のユーザは世界各国のどのサイトでも有効なので、 ebay.com や ebay.de などのローカル eBay サイトの ID を持っているのならそれで十分です。

  2. eBay デベロッパとしての登録

    次に、eBay developer program で eBay デベロッパとして登録します。この手続きには少し時間がかかります。 というのも非常に多くの情報を入力しなければならないからです。 ですので、これは慎重に行う必要があります。Service_Ebay を使用して オープンソースアプリケーションを開発するのなら、 Individual license を申請しなければなりません。

    登録が完了すると、eBay アプリケーションの認証に必要な三つのキーが送られてきます。 DevID、AppID そして CertID です。これらは後で必要となるので、 どこかに保存しておきましょう。

  3. テストユーザの作成

    サンドボックスと eBay のサイトは一切データを共有していません。 商品を追加したり取引を進めたりフィードバックを送ったりするため、 新しいユーザを作成する必要があるでしょう。テスト用のユーザは、 いくつでも作成することができます。作成するには、サンドボックス内の 登録フォーム を使用します。

    作成する各ユーザについて、それぞれ有効な email アドレスが必要です。また、 アメリカの住所および電話番号も必要です。これらは YellowPages で簡単に得られます。 クレジットカードは必須ではありません。テストユーザは、 サンドボックス内で使用できるお金を eBay から受け取っています。もちろん、 これは本物のお金ではありませんので、サンドボックス外では何の役にも立ちません。

  4. テストユーザの認証

    テストユーザに eBay 上で出品させたいのなら、そのユーザを認証する必要があります。 これを行うには ValidateTestUserRegistration() API をコールします。 この機能は既に Services_Ebay でサポートされています。

認証および承認

eBay の認証および認証プロセスはとても複雑で、 ウェブサービスの開発を始めるにあたっての最大の障害ともいえるでしょう。 API コールのためには次の情報が必要です。

  • DevID (登録時に受け取ったもの。デベロッパ単位で固有)

  • AppID (登録時に受け取ったもの。アプリケーション単位で固有)

  • CertID (登録時に受け取ったもの。アプリケーション単位で固有)

  • 認証トークン。アプリケーションのユーザ単位で固有

すでに最初の 3 つのトークンは取得済みでしょうが、API コールを行うためには まだ最後のひとつが必要です。もしあなたのアプリケーションが複数のユーザに使用される (ウェブアプリケーションなど) のなら、eBay は彼らのユーザ名・パスワードを あなたのアプリケーションに受け取らせたくありません。ユーザの認証を行う場合は、 アプリケーション側で eBay のログインページにリダイレクトし、 その際に追加のパラメータ (いわゆる RuName) を渡すようにします。 ユーザはそこで eBay ウェブサイトへのログイン情報を入力します。すると、 あなたのアプリケーションではそのユーザに代わって API をコールできるようになります。

その後、eBay はユーザをあなたのアプリケーションにリダイレクトし、 一意なトークンを渡します。これが、あなたのアプリケーションで そのユーザ用の API をコールする際の ID となります。 この手法の利点は以下のとおりです。

  • eBay アプリケーション間でのシングルサインオンシステム

  • あなたのアプリケーションがハックされたとしても、パスワードが漏洩することがない

  • ユーザは、見慣れたログイン画面を使用できる

この認証手順はとても複雑で、さまざまな API をコールしなければなりません。そこで テスト用に使用できる、より簡単な方法があります。eBay が提供する、いわゆる Single-User-Tool がそれで、HTML ベースでユーザ認証用のトークンを作成できます。 あなたの DevID、AppID と CertID を入力し、サンドボックスあるいは 運用環境のどちらで使用するのかを指定するだけです。

Services_Ebay の手引き

Services_Ebay にはたくさんのサンプルが含まれています。それらを見ると、 どのように API をコールするのかがわかります。Service_Ebay をインストールすると、 PEAR インストールディレクトリの下の docs/ にサンプルが配置されます。 サンプルを実行するには、eBay から受け取った認証情報が必要になるでしょう。 一番簡単な方法は、config.php ファイルを修正することです。 このファイルは examples フォルダにあります。

例 61-1設定ファイル

// DevID, AppID and CertID
$devId  = 'HFGHSK7JKKJ82JKJFJHF84LKH86Z3JFF71KJKH';

$appId  = 'IUENVCLJEGBN62JLKKLJHD34KKJL-GDJHDGJHD';

$certId = 'GHKL67JKDJLKJGFBNMBCHGDLﾖWJH241KKHJKKJ';

// Username and password, only required by some calls
// that set up the Auth&Auth mechanism
$username = 'YourTestUser';

$password = 'Secret Pass';

// Token as returned from the Single-User-Tool
$token = 'AgAAAA.......3jfiEQ**';
前のページ | ホーム | 次のページ
導入 | 上に戻る | XML エンコーディング

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- Services_Ebay の導入

Services_Ebay の導入

Services_Ebay は、eBay の XML API 用の オブジェクト指向抽象化レイヤーです。SOAP サービスに加え、eBay では別の API も提供しています。 これは何かの標準規格に従っているわけではなく、 すべてのウェブサービスのコールやパラメータを XML で記述します。 このウェブサービスは、eBay の SOAP サーバよりはるかに高機能で、 実運用環境で厳しくテストされています。

eBay のウェブサービスを使用すると、eBay の全機能 (入札を除く) を PHP アプリケーションから利用できるようになります。 利用できる機能としては、新しい商品の追加から取引の管理、 支払いや発送などがあります。現在は約 70 種類のメソッドが使用可能で、 さまざまなパラメータを受け付けます。

Services_Ebay は (バージョン 0.7.0 の時点では) 既にこのうちの 50 のメソッドをサポートしており、 メソッドが返す内容を処理するためのクラスも用意されています。

このパッケージを使用するには、cURL サポートが組み込まれた PHP5 が必要です。また、PHP5 の例外処理になじんでいなければなりません。

前のページ | ホーム | 次のページ
Services_Ebay | 上に戻る | さあはじめましょう

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Services_Technorati

目次
導入およびクイックスタート -- Services_Technorati の概要

Technorati API を使用するためのクラスです。

前のページ | ホーム | 次のページ
例 | 上に戻る | 導入およびクイックスタート

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Services_Yahoo

目次
導入 -- Services_Yahoo の紹介
例 -- Services_Yahoo の使用例
設計 -- Services_Yahoo の設計

Yahoo! Search API へのインターフェイスです。

このパッケージは、REST ベースの XML インターフェイスを 使用して Yahoo のサービスと通信するためのオブジェクト指向モデルを 提供します。

前のページ | ホーム | 次のページ
導入およびクイックスタート | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


設計

設計 -- Services_Yahoo の設計

概要

Services_Yahoo は、機能単位でいくつかの部分に 分割されています。現在は Yahoo Search および Content Analysis 関数に 対応する機能のみが存在します。

それぞれの部分は、ソースツリー内で 2 つの要素から構成されています。 ひとつは .php ファイルで、もうひとつは 実装コードが格納されているディレクトリです。 ファイルのほうの中身は、ファクトリ メソッド を実装したメソッドがひとつだけ含まれるクラスです。 このメソッドは、対応するディレクトリから正しいファイルを 動的に読み込み、必要な関数を実装したクラスのインスタンスを返します。

このようにモジュール化された設計になっているため、Yahoo が API に新機能を追加した場合でも 簡単に Services_Yahoo を拡張することが可能です。

詳細な情報

このパッケージ自体のコードについて勉強したいなら、パッケージのホームページ からリリースパッケージをダウンロードするか、あるいは CVS のコードを 閲覧する ことができます。

また、自動的に作成される API ドキュメント も有用です。

前のページ | ホーム | 次のページ
例 | 上に戻る | Services_YouTube

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


例

例 -- Services_Yahoo の使用例

この例について

以下の節では、Services_Yahoo のさまざまな機能を 使用する例を提供します。現在収録されているのは、 Yahoo! Search および Content Analysis へのインターフェイスのついてのドキュメントのみです。

Services_Yahoo のすべての public メソッドは、 何か問題が起こった場合には 例外 を発生させるようになっています。そのため、すべての例で try { ... } catch { } ブロックが使用されています。

注意 この例は、シェルのコマンドラインから実行させるように設計されています。 Web ブラウザから試してみたい場合は、結果を読みやすくするために \n を <br /> に置き換えましょう。

Yahoo! Search との会話

以下の例は、Yahoo! Search との通信を行います。

例 61-1Web 検索: 結果の一覧表示

このコードは、Yahoo! Search に対して Steve Fossett という言葉を問い合わせる検索クエリを発行します。 返される結果のひとつひとつについて、その表題が出力されます。

require_once "Services/Yahoo/Search.php";

try {
    $search = Services_Yahoo_Search::factory("web");
    $search->setQuery("Steve Fossett");

    $results = $search->submit();

    echo "結果の総数: " . $results->getTotalResultsReturned() . "\n\n";

    foreach ($results as $result) {
        echo $result['Title'] . "\n";
    }

} catch (Services_Yahoo_Exception $e) {
    echo "エラー: " . $e->getMessage() . "\n";

    foreach ($e->getErrors() as $error) {
        echo "* " . $error . "\n";
    }
}

デフォルトでは、一回のリクエストで 10 件ずつの結果が返されます。 setResultNumber() メソッドを使用することで、 この数を変更することが可能です。

require_once "Services/Yahoo/Search.php";

try {
    $search = Services_Yahoo_Search::factory("web");
    $search->setQuery("Steve Fossett");

    // 一度に 20 件ずつ結果を返します
    $search->setResultNumber(20);

    /* ... */

例 61-2Web 検索: 結果の詳細

このコードは、Yahoo! Search に対してもう一度 Steve Fossett という言葉を問い合わせます。こんどは 最初に返される結果についての詳細が出力されます。

require_once "Services/Yahoo/Search.php";

try {
    $search = Services_Yahoo_Search::factory("web");
    $search->setQuery("Steve Fossett");

    $results = $search->submit();

    if ($results->getTotalResultsReturned() > 0) {
        $info = $results->current();

        echo "表題: " . $info['Title'] . "\n";
        echo "概要: " . $info['Summary'] . "\n";
        echo "URL: " . $info['Url'] . "\n";
        echo "クリッカブル URL: " . $info['ClickUrl'] . "\n";
        echo "最終更新日: " . $info['ModificationDate'] . "\n";
        echo "Mime 型: " . $info['MimeType'] . "\n";
    }

} catch (Services_Yahoo_Exception $e) {
    echo "エラー: " . $e->getMessage() . "\n";

    foreach ($e->getErrors() as $error) {
        echo "* " . $error . "\n";
    }
}

例 61-3Web 検索: 結果のページ移動

この例では、Services_Yahoo の「ページ移動」 機能についてご覧いただきます。ページ移動機能とは、検索結果の一部分 (たとえば 20 件) が画面に表示され、それ以外の部分へ移動するための リンクが同時に表示されるような機能を意味します。簡単に言うと、 Yahoo の検索結果ページ の一番下の部分のようなものです。

TBD

注意 画像・ニュース・動画 あるいはローカル検索を行いたい場合は、 factory() のコール時に渡した引数 "web" を "image"・"news"・"video" あるいは "local" のいずれかに置き換えればいいだけです。

Yahoo! Content Analysis サービスの使用

以下の例では、Yahoo! が提供する Content Analysis Services を使用する方法を説明します。

例 61-4Term Extraction Service (用語抽出サービス)

Term Extraction サービスは、大量の文書から有意な単語や熟語を抽出し、 その一覧を返します。

require_once "Services/Yahoo/ContentAnalysis.php";

try {
    $search = Services_Yahoo_ContentAnalysis::factory("termExtraction");
    $search->setContext("Italian sculptors and painters of the "
        . "renaissance favored the Virgin Mary for inspiration.");
    $search->setQuery("madonna");

    $results = $search->submit();

    foreach ($results as $result) {
        echo $result . "\n";
    }

} catch (Services_Yahoo_Exception $e) {
    echo "エラー: " . $e->getMessage() . "\n";

    foreach ($e->getErrors() as $error) {
        echo "* " . $error . "\n";
    }
}

setQuery() のコールは省略することもできます。 このメソッドでパラメータを設定することにより、エンジンが抽出作業を 行うのを助けることができますが、これは必須というわけではありません。

例 61-5Spelling Suggestion Service (スペル訂正サービス)

Spelling Suggestion サービスは、指定した用語についてのスペルの 修正候補を返します。

以下のコードは、"madnna" という用語について スペルの修正候補を Yahoo に問い合わせます。実際のところ このクエリは結果を 1 件だけしか返さないのですが、現時点では $results をループさせる以外にこの結果を 取得する方法はありません。

require_once "Services/Yahoo/ContentAnalysis.php";

try {
    $search = Services_Yahoo_ContentAnalysis::factory("spellingSuggestion");
    $search->setQuery("madnna");

    $results = $search->submit();

    foreach ($results as $result) {
        echo $result . "\n";
    }
} catch (Services_Yahoo_Exception $e) {
    echo "Error: " . $e->getMessage() . "\n";

    foreach ($e->getErrors() as $error) {
        echo "* " . $error . "\n";
    }
}
前のページ | ホーム | 次のページ
導入 | 上に戻る | 設計

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- Services_Yahoo の紹介

概要

このパッケージは、REST ベースの XML インターフェイスを 使用し、Yahoo の web サービス との通信を行うオブジェクト指向のモデルを提供します。

現在、このパッケージは Yahoo! Search Web Services のみを サポートしています。Yahoo! は現時点ではそれ以外のサービスの API を公開していないため、これはごく自然なことです。 このパッケージはモジュール化されているので、後に新しいサービスが 追加されたとしても、それをサポートするのはたやすいことです。 このパッケージの設計についての詳細な情報は、こちらの節 をご覧ください。

セットアップ

要件

Services_Yahoo は PHP 5 を必要とし、いくつかの PEAR パッケージに依存しています。依存性の完全な一覧は、 ダウンロードページ を参照ください。

インストール

Services_Yahoo パッケージは、PEAR インストーラの コマンドを使用して pear install Services_Yahoo のようにインストール可能です。 もし依存性の問題などでインストールが失敗する場合は、 手動でインストールを行うか、あるいは pear install -a Services_Yahoo のように、 必要なパッケージを自動的にインストールするように インストーラに指示します。

アンインストール

パッケージのアンインストールは、pear uninstall Services_Yahoo のように行います。

前のページ | ホーム | 次のページ
Services_Yahoo | 上に戻る | 例

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Services_YouTube

目次
Introduction -- Introduction to Services_YouTube
Example -- Basic examples of Services_YouTube

Object-oriented abstraction for YouTube API.

前のページ | ホーム | 次のページ
設計 | 上に戻る | Introduction

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Example

Example -- Basic examples of Services_YouTube

Basic examples of Services_YouTube

The following examples show how to use some basic features of Services_YouTube:

例 61-1Retrieves the public parts of a user profile.

require_once 'Services/YouTube.php';

$dev_id = "YOUR_DEV_ID";
$user_id = "USER_ID";
$youtube = new Services_YouTube($dev_id, array('usesCache' => true));
$user = $youtube->getProfile($user_id);
$profile = $user->user_profile;
print "{$profile->first_name} {$profile->last_name} :({$profile->video_watch_count} Wathced.)\n";

例 61-2Lists a user's favorite videos.

require_once 'Services/YouTube.php';

$dev_id = "YOUR_DEV_ID";
$user_id = "USER_ID";
$youtube = new Services_YouTube($dev_id, array('usesCache' => true));
$videos = $youtube->listFavoriteVideos($user_id);
foreach ($videos->xpath('//video') as $i => $video) {
    print "<img src='{$video->thumbnail_url}' alt='{$video->title}' />\n";
    print "<a href='{$video->url}'>URL</a><br />\n";
}

例 61-3Lists a user's friends.

require_once 'Services/YouTube.php';

$dev_id = "YOUR_DEV_ID";
$user_id = "USER_ID";
$youtube = new Services_YouTube($dev_id, array('usesCache' => true));
$users = $youtube->listFriends($user_id);
foreach ($users->xpath('//friend') as $i => $friend) {
    print "{$friend->user} : Upload: {$friend->video_upload_count}";
}

例 61-4Lists all videos that have the specified tag.

require_once 'Services/YouTube.php';

$dev_id = "YOUR_DEV_ID";
$tag = "test";
$youtube = new Services_YouTube($dev_id, array('usesCache' => true));
$videos = $youtube->listByTag($tag);
foreach ($videos->xpath('//video') as $i => $video) {
    print "<img src='{$video->thumbnail_url}' alt='{$video->title}' />\n";
    print "<a href='{$video->url}'>URL</a><br />\n";
}

例 61-5Lists all videos that were uploaded by the specified user.

require_once 'Services/YouTube.php';

$dev_id = "YOUR_DEV_ID";
$user_id = "USER_ID";
$youtube = new Services_YouTube($dev_id, array('usesCache' => true));
$videos = $youtube->listByUser($user_id);
foreach ($videos->xpath('//video') as $i => $video) {
    print "<img src='{$video->thumbnail_url}' alt='{$video->title}' />\n";
    print "<a href='{$video->url}'>URL</a><br />\n";
}

例 61-6Lists the most recent 25 videos that have been featured on the front page of the YouTube site.

require_once 'Services/YouTube.php';

$dev_id = "YOUR_DEV_ID";
$youtube = new Services_YouTube($dev_id, array('usesCache' => true));
$videos = $youtube->listFeatured();
foreach ($videos->xpath('//video') as $i => $video) {
    print "<img src='{$video->thumbnail_url}' alt='{$video->title}' />\n";
    print "<a href='{$video->url}'>URL</a><br />\n";
}

例 61-7Displays the details for a video.

require_once 'Services/YouTube.php';

$dev_id = "YOUR_DEV_ID";
$video_id = "VIDEO_ID";
$youtube = new Services_YouTube($dev_id, array('usesCache' => true));
$video = $youtube->getDetails($video_id);
$details = $video->video_details;
print "{$details->title} : ({$details->tags}) : RATE: {$details->rating_avg} in {$detials->rating_count}";
print "<img src='{$details->thumbnail_url}' alt={$details->title}><hr /><hr />";
foreach ($details->xpath('//comment') as $i => $comment) {
    print "{$comment->author} : {$comment->text}<hr />";
}
前のページ | ホーム | 次のページ
Introduction | 上に戻る | UDDI

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction

Introduction -- Introduction to Services_YouTube

Introduction to Services_YouTube

Services_YouTube is an abstraction for the webservice of YouTube APIs. Using YouTube APIs, you can easily integrate online videos from YouTube's rapidly growing repository of videos into your application. To use YouTube API and this package, create a YouTube account and create a YouTube developer profile.

YouTube APIs currently allow read-only access to key parts of the YouTube video respository and user community. Services_YouTube provides functions for YouTube APIs using O-O abstraction access.

前のページ | ホーム | 次のページ
Services_YouTube | 上に戻る | Example

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入およびクイックスタート

導入およびクイックスタート -- Services_Technorati の概要

説明

Technorati は、blog の検索エンジンです。blog をインデックス化して blog 間のリンクを探索することにより、オンラインでの会話や blog 間での やりとりをモニタする仕組みを提供します。REST ベースの API を使用する ことにより、この手の情報の中ではもっとも豊富な情報を得ることが可能と なります。このモジュールでは、PHP から使用するためのオブジェクト指向の インターフェイスを提供します。 Technorati API の完全なドキュメントは、 開発者用 wiki にあります。この API を使用するには、 API キー が必要です。

将来の API 側での仕様変更に対応するため、このモジュールへのアクセスには ファクトリメソッドを使用します。
$tapi =& Services_Technorati::factory($api_key);

Technorati API は、1 日あたりのクエリの総数を 500 に制限しています。 そのため、頻繁に使用される環境などでは、何らかのキャッシュの仕組みが 欲しくなることでしょう。 Services_Technorati は、Cache_Lite API に対応したキャッシュシステムを サポートしています。キャッシュを使用するには、それを作成した上で ファクトリ内でクラスに渡します。
$tapi =& Services_Technorati::factory($api_key, $cache_object);

オブジェクトのインスタンスを作成すると、クエリを渡すことが可能になります。 クエリの呼び出しは methodName(keyParameter, options) のような形式となり、 オプションは配列で渡します。

表 61-1クエリの型およびオプション

クエリ名 | キーパラメータ | 許可されるオプション
cosmos | url | type, limit, start, current, claim, highlight
search | query keywords | start, limit, claim
outbound | url | start
tag | tag | limit, start, format, excerptsize, topexcerptsize
topTags | - | limit, start
blogPostTags | url | limit
getInfo | username | -
blogInfo | url | -
(注意。Technorati の attention.XML サービスへのサポートも 仕様どおりに組み込まれていますが、このサービス自体がまだ流動的な状態ですので これに頼ることはできません。)

クエリから返される値は、シリアライズされていない XML を表す配列または PEAR_Error です。

例 61-1 ('jystewart' を指定して) blogInfo クエリを実行した場合の結果の例

Array
(
    [version] => 1.0
    [document] => Array
        (
            [result] => Array
                (
                    [username] => jystewart
                    [firstname] => James
                    [lastname] => Stewart
                )

            [item] => Array
                (
                    [0] => Array
                        (
                            [weblog] => Array
                                (
                                    [name] => little more than a placeholder
                                    [url] => http://james.anthropiccollective.org
                                    [rssurl] => http://james.anthropiccollective.org/index.rdf
                                    [atomurl] => http://james.anthropiccollective.org/atom.xml
                                    [inboundblogs] => 52
                                    [inboundlinks] => 82
                                    [lastupdate] => 2005-08-27 09:01:42 GMT
                                    [rank] => 7483
                                    [lat] => 0
                                    [lon] => 0
                                    [lang] => 26110
                                    [foafurl] => http://jystewart.net/foaf.rdf
                                )

                        )

                    [1] => Array
                        (
                            [weblog] => Array
                                (
                                    [name] => something approaching a photo album
                                    [url] => http://approach.anthropiccollective.org
                                    [rssurl] =>
                                    [atomurl] =>
                                    [inboundblogs] => 1
                                    [inboundlinks] => 1
                                    [lastupdate] => 2004-08-13 17:40:02 GMT
                                    [rank] => 240760
                                    [lat] => 0
                                    [lon] => 0
                                    [lang] => 0
                                )

                        )

                    [2] => Array
                        (
                            [weblog] => Array
                                (
                                    [name] => grwifi.net : wireless internet (wifi) in grand rapids, michigan
                                    [url] => http://grwifi.net
                                    [rssurl] =>
                                    [atomurl] => http://grwifi.net/atom/
                                    [inboundblogs] => 9
                                    [inboundlinks] => 11
                                    [lastupdate] => 2005-04-15 19:44:46 GMT
                                    [rank] => 50688
                                    [lat] => 0
                                    [lon] => 0
                                    [lang] => 26110
                                )

                        )

                    [3] => Array
                        (
                            [weblog] => Array
                                (
                                    [name] => a work on process
                                    [url] => http://jystewart.net/process
                                    [rssurl] => http://jystewart.net/process/feed/
                                    [atomurl] => http://jystewart.net/process/feed/atom/
                                    [inboundblogs] => 3
                                    [inboundlinks] => 3
                                    [lastupdate] => 2005-08-31 20:44:38 GMT
                                    [rank] => 132735
                                    [lat] => 0
                                    [lon] => 0
                                    [lang] => 26110
                                    [foafurl] => http://jystewart.net/foaf.rdf
                                )
                        )
                )
        )
)

Technorati が返す XML の詳細は、 開発者用 wiki にあります。

前のページ | ホーム | 次のページ
Services_Technorati | 上に戻る | Services_Yahoo

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


UDDI

目次
導入 -- PHP での UDDI 実装

PHP での UDDI 実装

前のページ | ホーム | 次のページ
Example | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- PHP での UDDI 実装

UDDI 概要

UBR (UDDI Business Registry) でリストされている Web サービスを検索・照会するための UDDI (Universal Description, Discovery and Integration) API の実装です。

完全なオンラインドキュメントはこちらから利用できます。

前のページ | ホーム | 次のページ
UDDI | 上に戻る | XML_RPC

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_RPC

目次
導入 --
サポート -- XML_RPC のサポートを受けるには
例 -- XML_RPC パッケージの利用例
API -- パッケージ内のクラスのドキュメント

XML-RPC プロトコルの PHP による実装

これは、Useful inc の XML-RPC for PHP を PEAR に対応させたものです。 HTTP 転送やプロキシ、認証をサポートしています。

前のページ | ホーム | 次のページ
導入 | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_RPC2

目次
Introduction --
Client Side --
Server Side --
Client Side with cache --
Server Side with cache --

PHP5 implementation of the XML-RPC protocol.

This is a "PHP5 only" implementation of the XMLRPC protocol. This package provides the client and the server side of the protocol. An optimized cache is also available for both parts.

As a client library, XML_RPC2 is capable of creating a proxy class which exposes the methods exported by the server. As a server library, XML_RPC2 is capable of exposing methods from a class or object instance, seamlessly exporting local methods as remotely callable procedures.

前のページ | ホーム | 次のページ
API | 上に戻る | Introduction

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Client Side with cache

Client Side with cache --

Introduction about the XML_RPC2 "cached client side" usage

Thanks to PHP5 and PEAR/Cache_Lite, it's really easy to do XMLRPC "cached client" requests with XML_RPC2. The usage is really straightforward.

First, you include 'XML/RPC2/CachedClient.php' file (only this one).
require_once 'XML/RPC2/CachedClient.php';

Second, you make an assocative arrays of options to tune XML_RPC2 (prefix, proxy, manual backend choice...).
$options = array(
    'prefix' => 'package.',
    'cacheOptions' => array(
        'cacheDir' => '/tmp/',
        'lifetime' => 3600
    )
);

Third, you make a XML_RPC2_CachedClient object with the server URL and the with the options array.
$client = XML_RPC2_CachedClient::create('http://pear.php.net/xmlrpc.php', $options);

Then, you send your request by calling the server method as it was a local method of the $client object.
$result = $client->info('XML_RPC2');
This single line will encode a XMLRPC client request for the package.info() (prefix + method name) method with a single argument (the string 'XML_RPC2'), will send the request over HTTP to the server and will decode the response into PHP native types. With a single line ! Moreover, the result will be cached into a file for the given lifetime. So the next call will not send any HTTP request and it will be really fast.

Of course, to catch server errors, you have to add a few lines around you client call like for example :
try {
    $result = $client->info('XML_RPC2');
    print_r($result);
} catch (XML_RPC2_FaultException $e) {
    // The XMLRPC server returns a XMLRPC error
    die('Exception #' . $result->getFaultCode() . ' : ' . $e->getFaultString());
} catch (Exception $e) {
    // Other errors (HTTP or networking problems...)
    die('Exception : ' . $e->getFaultString());
}

The options array

This array is completely optional but really usefull. The following keys are available :

表 61-1Options available keys

Option | Data Type | Default Value | Description
[...] | [...] | [...] | See "non cached client side" for more options
cacheOptions | array | array() | See next table for a complete description
"CacheOptions" entry is an associative array. Available keys are :

表 61-2CacheOptions available keys

Option | Data Type | Default Value | Description
[...] | [...] | [...] | See "Cache_Lite constructor" for more options
defaultCacheGroup | string | '' | Name of the default cache group
cachedMethods | array | array() | Array of method names to be cached (if cacheByDefault is false)
notCachedMethods | array | array() | Array of method names not to be cached (if cacheByDefault is true)
cacheByDefault | boolean | TRUE | if true, the cache is "on" by default ; else, only methods listed in cachedMethods will be cached

Making the XML_RPC2_CachedClient object

It's really easy to make the XML_RPC2_CachedClient object. Use the following syntax :
// $XMLRPCServerURL is a string : 'http://pear.php.net/xmlrpc.php' (for example)
// $options is an optional array : see previous section for more informations
$client = XML_RPC2_CachedClient::create($XMLRPCServerURL, $options);
Don't try to call the XML_RPC2_CachedClient constructor directly, use the call() static method.

Call the XMLRPC exported method

See "non cached client side" documentation, there is no difference.

The caching process is completly embedded and automatic. If a cache is available, result will be get from cache and no HTTP request will be sent. If there is no cache available for this particular call (method name and arguments), the classical XMLRPC communication will be used (and the result will be stored into a cache file for the next use).

前のページ | ホーム | 次のページ
Server Side | 上に戻る | Server Side with cache

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Server Side with cache

Server Side with cache --

to be written

to be written

前のページ | ホーム | 次のページ
Client Side with cache | 上に戻る | XML

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Client Side

Client Side --

Introduction about the XML_RPC2 client side usage

Thanks to PHP5, it's really easy to do XMLRPC client requests with XML_RPC2. The usage is really straightforward.

First, you include 'XML/RPC2/Client.php' file (only this one).
require_once 'XML/RPC2/Client.php';

Second, you make an assocative arrays of options to tune XML_RPC2 (prefix, proxy, manual backend choice...).
$options = array(
    'prefix' => 'package.'
);

Third, you make a XML_RPC2_Client object with the server URL and the with the options array.
$client = XML_RPC2_Client::create('http://pear.php.net/xmlrpc.php', $options);

Then, you send your request by calling the server method as it was a local method of the $client object.
$result = $client->info('XML_RPC2');
This single line will encode a XMLRPC client request for the package.info() (prefix + method name) method with a single argument (the string 'XML_RPC2'), will send the request over HTTP to the server and will decode the response into PHP native types. With a single line !

Of course, to catch server errors, you have to add a few lines around you client call like for example :
try {
    $result = $client->info('XML_RPC2');
    print_r($result);
} catch (XML_RPC2_FaultException $e) {
    // The XMLRPC server returns a XMLRPC error
    die('Exception #' . $result->getFaultCode() . ' : ' . $e->getFaultString());
} catch (Exception $e) {
    // Other errors (HTTP or networking problems...)
    die('Exception : ' . $e->getFaultString());
}

The options array

This array is completely optional but really usefull. The following keys are available :

表 61-1Options available keys

Option | Data Type | Default Value | Description
prefix | string | '' | Prefix added before XMLRPC called method name
proxy | string | '' | Proxy used for the HTTP request (default : no proxy)
debug | boolean | FALSE | Debug mode ?
encoding | string | '' | Encoding of the request 'utf-8', 'iso-8859-1' (for now, only these two ones are officialy supported)
uglyStructHack | boolean | TRUE | ugly hack to circumvent a XMLRPCEXT bug/feature , see this PHP bug for more details. The only (reasonable) counterpart of this hack is that you can't use structs with a key beginning with the string 'xml_rpc2_ugly_struct_hack_' as arguments of the called method.

Making the XML_RPC2_Client object

It's really easy to make the XML_RPC2_Client object. Use the following syntax :
// $XMLRPCServerURL is a string : 'http://pear.php.net/xmlrpc.php' (for example)
// $options is an optional array : see previous section for more informations
$client = XML_RPC2_Client::create($XMLRPCServerURL, $options);
Don't try to call the XML_RPC2_Client constructor directly, use the call() static method.

Call the XMLRPC exported method

When the XML_RPC2_Client object is created, you can directly call the remote method as it was local. For example :
// We call the remote foo() method without any arguments
$result1 = $client->foo();

// We call the remote bar() method with two arguments (an integer : 123, a string : 'foo')
$result2 = $client->bar(123, 'foo');

// We call the remote foobar() method with complex data types (2 integer, a string, a structure)
$result3 = $client->foobar(1, 2, 'foo', array('foo' => 1, 'bar' => 2));

Be carefull, XMLRPC spec allows some remote method names with some special characters like "." or "/"... which are not available as PHP method names. To deal with them, you have to fix a prefix in a the options array. For example :
$options = array('prefix' => 'foo.');
$client = XML_RPC2_Client::create('http://...', $options);

// We call the foo.bar() method because of the prefix 'foo.' fixed in $options array
$result = $client->bar();

In most cases, XML_RPC2 transforms automatically PHP native types into XMLRPC types (as described in the SPEC) for the request. In most cases too, XML_RPC2 transforms the XML server response into PHP native types too. Yet, there are two exceptions : 'dateTime.iso8601' and 'base64' which doesn't really exist in PHP.

To manipulate explicitely these two types, you have to use special objects. Let's see a complete example :
<?php

// Classic usage
require_once 'XML/RPC2/Client.php';

// To manipulate these types, we need to include this file too
require_once 'XML/RPC2/Value.php';

// To get a 'dateTime.iso8601' object, you have first to set a string with an iso8601 encoded date :
$tmp = "20060116T19:14:03";

// Then, you call this static method to get your 'dateTime.iso8601' object
$time = XML_RPC2_Value::createFromNative($tmp, 'datetime');

// For 'base64', you call the same static method with your string to get a 'base64' object
$base64 = XML_RPC2_Value::createFromNative('foobar', 'base64');

// Then, you can use XML_RPC2_Client as usal :
$options = array('prefix' => 'validator1.');
$client = XML_RPC2_Client::create('http://phpxmlrpc.sourceforge.net/server.php', $options);
$result = $client->manyTypesTest(1, true, 'foo', 3.14159, $time, $base64);

// The remote validator1.manyTypesTest() method returns an array with the 6 given arguments
$result_datetime = $result[4]; // a 'dateTime.iso8601' object
$result_base64 = $result[5];   // a 'base64' object

// To transform these objects into PHP native types, you have to use public properties of
// these objects as follow :
var_dump($result_datetime->scalar);      // will return string(17) "20060116T19:14:03"
var_dump($result_datetime->xmlrpc_type); // will return string(8) "datetime"
var_dump($result_datetime->timestamp);   // will return int(1137435243)
var_dump($result_base64->scalar);        // will return string(6) "foobar"
var_dump($result_base64->xmlrpc_type);   // will return string(6) "base64"

?>

前のページ | ホーム | 次のページ
Introduction | 上に戻る | Server Side

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction

Introduction --

説明

XML_RPC2 is a "PHP5 only" implementation of the XMLRPC protocol. This package provides the client and the server side of the protocol. An optimized cache is also available for both parts.

As a client library, XML_RPC2 is capable of creating a proxy class which exposes the methods exported by the server. So it's very easy and natural to call XMLRPC exported methods. Like in Python language, the classic way to use XML_RPC2 client side is :

  • We make a XML_RCP2_Client object with server informations as arguments.

  • In a classic way, we call a method of this object.

  • Then, the method call is XMLRPC encoded, sent to the server, the response is decoded into PHP native types and we get the result of the call (all this logic is made by the library in a completely transparent way).

As a server library, XML_RPC2 is capable of exposing methods from a class or object instance, seamlessly capable of exposing methods from a class or object instance, seamlessly exporting local methods as remotely callable procedures. Method signatures are automatically determined and checked by using the reflection API and PHPDOC comments. An automatic documentation about XMLRPC exported methods is dynamically built and available at the server URL (with a simple HTTP GET).

For both sides, an optimized cache based on Cache_Lite can be set. It can be really usefull especially on public XMLRPC servers.

Requirements

XML_RCP2 need PHP5 and the CURL extension. To avoid in next version, the CURL dependency, we are waiting for a PHP5 E_STRICT PEAR module for HTTP_Request.

If you want to use the integrated cache, you will also need the Cache_Lite PEAR module but it's of course an optional dependency.

XML_RPC2 can use two backends for the XMLRPC encoding/decoding :

  • XMLRPCEXT, which of course need this PHP extension (probably the better choice but it's an additional dependency) ;

  • PHP, which doesn't need the XMLRPCEXT extension at all (this is full PHP but slower).

A first example of the client side use

Let's start with a XMLRPC call to the pear.php.net XMLRPC server :
<?php

require_once 'XML/RPC2/Client.php';

$options = array(
    'prefix' => 'package.'
);

// We make the XML_RPC2_Client object (as the backend is not specified, XMLRPCEXT
// will be used if available (full PHP else))
$client = XML_RPC2_Client::create('http://pear.php.net/xmlrpc.php', $options);

try {

    // Because of the prefix specified in the $options array, indeed,  we will call
    // the package.info() method with a single argument (the string 'XML_RPC2')
    $result = $client->info('XML_RPC2');

    // $result is a complex PHP type (no XMLRPC decoding needed, it's already done)
    print_r($result);

} catch (XML_RPC2_FaultException $e) {

    // The XMLRPC server returns a XMLRPC error
    die('Exception #' . $result->getFaultCode() . ' : ' . $e->getFaultString());

} catch (Exception $e) {

    // Other errors (HTTP or networking problems...)
    die('Exception : ' . $e->getFaultString());

}

?>

A first example of the server side use

Let's build a XMLRPC "echo server" :
<?php

require_once 'XML/RPC2/Server.php';

// Let's define a class with public static methods
// PHPDOC comments are really important because they are used for automatic
// signature checking

class EchoServer {

    /**
     * echoes the message received
     *
     * @param string  Message
     * @return string The echo
     */
    public static function echoecho($string) {
        return $string;
    }

}

$options = array(
    'prefix' => 'test.' // we define a sort of "namespace" for the server
);

// Let's build the server object with the name of the Echo class
$server = XML_RPC2_Server::create('EchoServer', $options);
$server->handleCall();

?>
If you do a simple HTTP GET on the server URL, you will get an automatic HTML documentation about the echoecho function. If you make a XMLRPC client request on the same URL about the "test.echoecho()" method (with one argument), you will get your argument as a response. If you call another method or with a bad arguments number, you will get an error (because of automatic method signature checking).

A first example of the client side use (with integrated cache)

As the caching process is completely transparent, this is very similar to the standard client side use :
<?php

require_once 'XML/RPC2/CachedClient.php';

$options = array(
    'prefix' => 'package.',
    'cacheDebug' => false, // with cacheDebug set to true, it's very easy to get an indication about the cache using (or not)
    'cacheOptions' => array(
        'cacheDir' => '/tmp/',
        'lifetime' => 3600,      // during this lifetime, the local cache will be used
        'cacheByDefault' => true // all methods call will be cached (but a more precise way is possible)
    )
);

// We make the XML_RPC2_CachedClient object (same syntax than XML_RPC2_Client)
$client = XML_RPC2_CachedClient::create('http://pear.php.net/xmlrpc.php', $options);

try {

    // First call, the cache won't be used
    $result = $client->info('XML_RPC2');
    print_r($result);

    // Second call, the cache will be used  (in a transparent way) and no
    // additional HTTP request will be sent to the server
    $result = $client->info('XML_RPC2');
    print_r($result);

} catch (XML_RPC2_FaultException $e) {

    // The XMLRPC server returns a XMLRPC error
    die('Exception #' . $result->getFaultCode() . ' : ' . $e->getFaultString());

} catch (Exception $e) {

    // Other errors (HTTP or networking problems...)
    die('Exception : ' . $e->getFaultString());

}

?>

A first example of the server side use (with integrated cache)

As the caching process is completely transparent, this is very similar to the standard server side use :
<?php

require_once 'XML/RPC2/CachedServer.php';

// Let's define a class with public static methods
// PHPDOC comments are really important because they are used for automatic
// signature checking

// IMPORTANT : note the @xmlrpc.caching PHPDOC tags to indicate that the method has to be cached

class EchoServer {

    /**
     * echoes the message received
     *
     * @param string  Message
     * @return string The echo
     * @xmlrpc.caching true
     */
    public static function echoecho($string) {
        return $string;
    }

}

$options = array(
    'prefix' => 'test..',
    'cacheDebug' => false, // with cacheDebug set to true, it's very easy to get an indication about the cache using (or not)
    'cacheOptions' => array(
        'cacheDir' => '/tmp/',
        'lifetime' => 3600,
        'cacheByDefault' => false // we don't cache by default (only methods with @xmlrpc.caching true)
    )
);

$server = XML_RPC2_CachedServer::create('EchoServer', $options);
$server->handleCall();

?>

前のページ | ホーム | 次のページ
XML_RPC2 | 上に戻る | Client Side

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Server Side

Server Side --

to be written

to be written

前のページ | ホーム | 次のページ
Client Side | 上に戻る | Client Side with cache

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


API

API -- パッケージ内のクラスのドキュメント

XML_RPC_Client

これは、XML-RPC サーバのクライアントを表現するために使用されます。

生成

コンストラクタは以下のような構文です。

$client = new XML_RPC_Client (string $path, string $server [, integer $port [, string $proxy [, integer $proxy_port [, string $proxy_user [, string $proxy_pass]]]]])

string $path

リクエストを送信したい RPC サーバスクリプトのパスと名前。

string $server

接続先リモートサーバの URL 。プロトコルが指定されておらず、 かつ $port が 443 であった場合は ssl:// が使用されます。

integer $port

リモートサーバに接続する際のポート。デフォルトは 80 で、 http:// 接続を表します。443 を指定すると https:// および ssl:// 接続となります。

string $proxy

もし使用するなら、プロキシサーバの URL 。 プロトコルが指定されておらず、 かつ $port が 443 であった場合は ssl:// が使用されます。

integer $proxy_port

リモートサーバに接続する際のポート。デフォルトは 8080 で、 http:// 接続を表します。443 を指定すると https:// および ssl:// 接続となります。

string $proxy_user

プロキシサーバにアクセスするためのユーザ名。

string $proxy_pass

プロキシサーバにアクセスするためのパスワード。

注意 SSL 接続を使用するには、 openssl 拡張モジュールを有効にして PHP がインストールされている必要があります。

betty.userland.com にある Userland の XML-RPC サーバに問い合わせるためのクライアント設定の例は このようになります。

$client = new XML_RPC_Client('/RPC2', 'betty.userland.com');

メソッド

このクラスは以下のメソッドをサポートしています。

send()

このメソッドは以下のような書式です。

$response = $client->send ($xmlrpc_message [, $timeout])

$xmlrpc_message は XML_RPC_Message のインスタンスで、 $response は XML_RPC_Response のインスタンスです（XML_RPC_Response を参照ください）。

$timeout はオプションで、指定しなかった場合は 0（永遠に待ち続ける）となります。この値は fsockopen() に渡されます。

もし $response の内容が XML_RPC_Response ではなく 0 であった場合、それは I/O エラーが発生したことを 表します。発生した I/O エラーの内容については、 $client->errno および $client->errstring の値から知ることができます。

低レベルのエラーに加え、問い合わせ先の XML-RPC サーバが XML_RPC_Response オブジェクトの中でエラーを 返すこともあります。これらのエラーを処理する方法については XML_RPC_Response を参照ください。

setCredentials()

$client->setCredentials ($username, $password)

このメソッドは、クライアントがサーバに対する認証処理を行う際の ユーザ名とパスワードを指定します。デフォルトの通信（HTTP）では、 これらの情報が HTTP ベーシック認証に使用されます。

setDebug()

$client->setDebug ($debugOn)

$debugOn は 0 あるいは 1 のどちらかで、クライアントのブラウザにデバッグ情報を 表示するか否かを指定します。デフォルトではこの情報を表示しません。

デバッグ情報の中には XML-RPC サーバが返す問い合わせ結果の生データが含まれ、 またサーバから返された値を表すためにクライアントが作成しようとした PHP の値も含まれます。サーバが返す内容を正確に確認することができるので、 このオプションはサーバのデバッグ時に有用です。

XML_RPC_Message

このクラスは XML-RPC サーバへのリクエストを表します。クライアントは XML_RPC_Message をサーバに送信し、 XML_RPC_Response を受け取ります。

生成

コンストラクタは以下のような構文です。

$msg = new XML_RPC_Message ($methodName, $parameterArray)

$methodName は起動したいメソッドの名前で、 $parameterArray は XML_RPC_Value オブジェクトの配列です。 US state name サーバにメッセージを送信する例です。

require_once "XML/RPC.php";
$msg = new XML_RPC_Message("examples.getStateName", array(new XML_RPC_Value(23, "int")));

この例では州番号 23 の州の名前を問い合わせています。 XML_RPC_Value オブジェクトについての 詳細な情報は XML_RPC_Value を参照ください。

メソッド

serialize()

$outString = $msg->serialize ()

XML-RPC メッセージを表す XML 文字列を返します。

addParam()

$msg->addParam ($xmlrpcVal)

このメソッドのコールにより、パラメータリストに XML_RPC_Value オブジェクト $xmlrpcVal を追加します。

XML_RPC_Value オブジェクトを返します。 パラメータが存在しない場合は XML_RPC_Response オブジェクトが返されます。

getParam()

$xmlrpcVal = $msg->getParam ($n)

メッセージ中の $n 番目のパラメータを取得します。 このメソッドが使用できるかどうかはサーバの実装に依存します。 もしパラメータが存在しない場合は undef を返します。

getNumParams()

$n = $msg->getNumParams ()

メッセージに付属するパラメータの数を返します。

method()

$methName=$msg->method ()

$msg->method ($methName)

XML-RPC メッセージ中に含まれるメソッドを取得あるいは設定します。

parseResponse()

$response = $msg->parseResponse ($xmlString)

文字列 $xmlString に含まれる XML-RPC サーバからの 応答を受け取り、XML_RPC_Response オブジェクトを 構築してそれを返します。また適切なエラーコードを設定します。

このメソッドは、見つかった HTTP/MIME ヘッダをすべて処理します。

parseResponseFile()

$response = $msg->parseResponseFile ($fileHandle)

ファイルハンドル $fileHandle から XML-RPC サーバの応答を読み込み、それを parseResponse() に渡します。

このメソッドは、事前に用意されたファイルから応答を生成する際に有用です。 また、見つかった HTTP ヘッダをすべて処理します。

XML_RPC_Response

このクラスは、XML-RPC リクエストに対する応答を格納するために使用されます。 サーバのメソッドハンドラは XML_RPC_Response を 作成し、返り値としてそれを渡します。 XML_RPC_Client クラスの send() メソッドを実行した際に、これと同じ値が返されます。

生成

$resp = new XML_RPC_Response ($xmlrpcval)

$resp = new XML_RPC_Response (0, $errcode, $errstring)

ひとつめのインスタンスは、何の問題もなく処理が実行された際に使用されます。 $xmlrpcval は XML_RPC_Value の値で、メソッドの実行結果が 格納されています。

2 番目の形式のコンストラクタは、失敗時に使用されます。どこに問題が あったのかを示すために、$errcode および $errstring が使用されます。渡されるエラーコードの 詳細については XML_RPC_Server を参照ください。

メソッド

faultCode()

$fn = $resp->faultCode ()

XML-RPC レスポンス $resp から、失敗のコードを 整数値で返します。ゼロは成功を、それ以外の値は失敗を意味します。

faultString()

$fs = $resp->faultString ()

$resp->faultCode が示す失敗の内容を、 人間が読める形式で返します。

value()

$xmlrpcVal = $resp->value ()

サーバから送信された返り値が含まれる XML_RPC_Value オブジェクトを返します。応答の faultCode がゼロ以外の 場合、このメソッドが返す値を使用するべきではありません（返り値は オブジェクトですらないかもしれません）。

serialize()

$outString = $resp->serialize ()

応答を、XML 文字列形式で返します。

XML_RPC_Value

これは、多くの大変な仕事を担当するものです。このクラスは、XML-RPC で使用する値の作成とカプセル化を可能にします。

事前に http://www.xmlrpc.com/stories/storyReader$7 で XML-RPC の仕様を読んでおくと、これ以降の内容を理解しやすくなるでしょう。

XML_RPC_Value クラスは、以下の型を利用して 任意の複雑な値を格納することが可能です。 i4、 int、 boolean、 string、 double、 dateTime.iso8601、 base64、 array あるいは struct。 これらの型についての詳細な情報は 仕様 を参照ください。

型についての注意

int

i4 型は int の別名です。コード中で値を解析する際には 自動的に i4 が int に変換されます。この実装では、int のほうを 正式名とみなしています。

base64

この型を使用すると、Base64 エンコーディングが透過的に行われます。 そのため、これはバイナリデータ型として扱うべきで、7 ビットクリーン ではないデータを渡したい場合に使用します。デコード処理もまた 透過的に行われます。

boolean

true および 1 は true にマップされます。それ以外のすべての値 （空文字列を含む）は false に変換されます。

string

<、 >、 " および & の各文字は、 XML-RPC での通信の際に各々と等価なエンティティ &lt;、 &gt;、 &quot; および &amp; に変換されます。現在の XML-RPC の仕様では エンコードするよう推奨されているのは < および & だけですが、この実装ではさらに一歩先を行っています。 その理由は XML 1.0 勧告 で説明されています。

TODO: &apos; エンティティは現在サポートされていません。

生成

コンストラクタは、XML_RPC_Value を生成するための一般的な方法です。コンストラクタは以下のような構文です。

$myVal = new XML_RPC_Value ()

$myVal = new XML_RPC_Value ($stringVal)

$myVal = new XML_RPC_Value ($scalarVal, 'int' | 'boolean' | 'string' | 'double' | 'dateTime.iso8601' | 'base64')

$myVal = new XML_RPC_Value ($arrayVal, 'array' | 'struct')

最初のコンストラクタは空の値を生成します。使用する前に、必ず addScalar()、 addArray() あるいは addStruct() で初期化しなければなりません。

2 番目のコンストラクタはシンプルな文字列値を生成します。

3 番目のコンストラクタはスカラ値を生成するために使用されます。 第 2 パラメータは、以下の例のように XML-RPC 型の名前である必要があります。

$myInt = new XML_RPC_Value(1267, "int");
$myString= new XML_RPC_Value("Hello, World!", "string");
$myBool = new XML_RPC_Value(1, "boolean");

4 番目の形式のコンストラクタは、複雑な XML-RPC の値を作成するのに 使用されます。値が XML-RPC の 配列 である場合は 単純な配列、構造体 の場合は連想配列を 第 1 パラメータに指定します。配列の要素は XML_RPC_Value オブジェクトである必要があります 。例えば以下のようになります。

$myArray = new XML_RPC_Value(array(
    new XML_RPC_Value("Tom"), new XML_RPC_Value("Dick"),
    new XML_RPC_Value("Harry")), "array");

$myStruct = new XML_RPC_Value(array(
    "name" => new XML_RPC_Value("Tom"),
    "age" => new XML_RPC_Value(34, "int"),
    "geek" => new XML_RPC_Value(1, "boolean")), "struct");

メソッド

addScalar()

$ok = $val->addScalar ($stringVal)

$ok = $val->addScalar ($scalarVal, 'int' | 'boolean' | 'string' | 'double' | 'dateTime.iso8601' | 'base64')

$val が空の XML_RPC_Value だった場合、このメソッドは そこにスカラ値を設定します。すでに $val に スカラ値が設定されていた場合、新たにスカラ値が追加されることはなく 0 が返されます。すべての処理がうまく終了した場合は 1 が返されます。

$val が 配列 だった場合は特別で、スカラ値が配列に追加されます。

addArray()

$ok = $val->addArray ($arrayVal)

空の XML_RPC_Value を、 $arrayVal で指定した内容の 配列 に変換します。詳細な情報は、4 番目の コンストラクタの書式を参照ください。

addStruct()

$ok = $val->addStruct ($assocArrayVal)

空の XML_RPC_Value を、 $assocArrayVal で指定した内容の 構造体 に変換します。詳細な情報は、4 番目の コンストラクタの書式を参照ください。

kindOf()

$kind = $val->kindOf ()

値の型を表す文字列 struct、array あるいは scalar を返します。もし値が まだ初期化されていない場合は undef を返します。

serialize()

$outString = $val->serialize ()

値を、XML-RPC 形式の文字列で返します。

scalarval()

$scalarVal = $val->scalarval ()

$val->kindOf() == 'scalar' の場合、 このメソッドは PHP 言語のスカラ値を返します（Base64 デコード処理は自動的に行われます）。

scalartyp()

$typeName = $val->scalartyp ()

$val->kindOf() == 'scalar' の場合、 このメソッドはスカラの型を表す文字列を返します。先に述べたとおり、 i4 は常に int に変換されます。

arraymem()

$xmlrpcVal = $val->arraymem ($n)

$val で表される配列から、 $n 番目の要素を返します。 返される値は XML_RPC_Value オブジェクトです。

arraysize()

$len = $val->arraysize ()

$val が array の場合、その配列の要素数を返します。

structmem()

$xmlrpcVal = $val->structmem ($memberName)

$val で表される構造体から、 $memberName に対応する要素を返します。 返される値は XML_RPC_Value オブジェクトです。

structeach()

list($key,$value) = $val->structeach ()

$val が構造体の場合に、次の 「キー・値」の組み合わせを返します。structreset() も参照ください。

structreset()

$val->structreset ()

$val で表される構造体について、 structeach() の内部ポインタを構造体の先頭に戻します。

XML_RPC_Server

このクラスの現在の実装は、できる限りシンプルであることを心がけています。 基本的には、コンストラクタがすべての仕事をこなします。最低限の例は 以下のとおりです。

function foo ($params) {
   ...
}

$s = new XML_RPC_Server(array("examples.myFunc" => array("function" => "foo")));

これは、サーバで実行させたい仕事をすべて行ってくれます。たったひとつの 引数は連想配列であり、メソッド名と関数名を対応させます。リクエストが 解析されると適切な関数が呼び出され、関数が返す XML_RPC_Response オブジェクトはシリアライズされて コール元に返されます。

ハンドラ関数 foo() が何を行うのかについて、 もうすこし詳しく見てみましょう。

function foo ($params) {
    global $XML_RPC_erruser; // ユーザエラーコードの値をインポート

    // $params は、受信した XML_RPC_Message オブジェクト
    if ($err) {
        // エラーが発生した場合
        return new XML_RPC_Response(0, $XML_RPC_erruser+1, // ユーザエラー 1
           "艦長、問題が発生しました。");
    } else {
        // 処理が成功した際に返す値
        return new XML_RPC_Response(new XML_RPC_Value("万事順調!", "string"));
    }
}

ディスパッチマップ

XML_RPC_Server() コンストラクタの最初の引数は配列で、 ディスパッチマップと呼ばれます。この配列の中にあるのは、 あなたが定義した XML-RPC メソッドを提供するために必要な情報です。

ディスパッチマップは、連想配列の連想配列という形式になります。 外側の配列は個々のメソッドに対してひとつのエントリを持ち、 メソッド名が連想配列のキーとなります。キーに対応する値は別の連想配列で、 以下のようなメンバを保持します。

  • function - このエントリは必須です。 XML-RPC メソッドを提供するために使用するグローバルスコープの関数名である 必要があります。

    正規表現・クラス名とメソッド名・オブジェクトとメソッド名 などが使用可能です。このマニュアル内の例で、 これらのすべての方法の使用例を示しています。

  • signature - このエントリは、メソッドがとりうる シグネチャ（Signatures を参照ください）を含む配列です。このエントリが存在する場合、 メソッドを割り振る前にサーバ側で引数の数や型のチェックを行います。

  • docstring - このエントリは、メソッドの ドキュメントを含む文字列です。ドキュメントには HTML マークアップを 含めることが可能です。

メソッドのシグネチャ

シグネチャとは、メソッドの返り値の型やそのパラメータの型を示すものです。 メソッドは、すくなくともひとつのシグネチャを持っています。

サーバのディスパッチマップ内では、個々のメソッドはとりうるシグネチャの 配列を保持しています。各シグネチャの中身は型の配列で、最初のエントリは 返り値の型です。

例を実行してみましょう。このような普通の PHP 関数を書こうとしている状況を 想定してください。
function is_8($input, $strict = false) {
    if ($strict) {
       return ($input === 8);
    } else {
       return ($input == 8);
    }
}

この関数を XML_RPC サーバで動作させようとすると、このように 書く必要があります。
function is_8($params) {
    // このパラメータは必須
    $param = $params->getParam(0);
    if (!XML_RPC_Value::isValue($param)) {
        return $param;
    }
    $input = $param->scalarval();

    // このパラメータはオプション
    $param = $params->getParam(1);
    if (!XML_RPC_Value::isValue($param)) {
        $strict = false;
    } else {
        $strict = $param->scalarval();
    }

    if ($strict) {
       $answer = ($input === 8);
    } else {
       $answer = ($input == 8);
    }

    $val = new XML_RPC_Value($answer, 'boolean');
    return new XML_RPC_Response($val);
}

これは、とりうる順番のシグネチャをすべて網羅したものです。
array(
    array('boolean', 'int'),
    array('boolean', 'int', 'boolean'),
    array('boolean', 'string'),
    array('boolean', 'string', 'boolean'),
)

サーバはこのようにしてインスタンス化します。
$server = new XML_RPC_Server(
    array(
        'isan8' =>
            array(
                'function' => 'is_8',
                'signature' =>
                     array(
                         array('boolean', 'int'),
                         array('boolean', 'int', 'boolean'),
                         array('boolean', 'string'),
                         array('boolean', 'string', 'boolean'),
                     ),
                'docstring' => '値は 8 ですか?'
            ),
    ),
    1,
    0
);

使いやすさを考慮し、XML-RPC の型を表す文字列がグローバル変数として コード化されています。

$GLOBALS['XML_RPC_I4']       = 'i4';
$GLOBALS['XML_RPC_Int']      = 'int';
$GLOBALS['XML_RPC_Boolean']  = 'boolean';
$GLOBALS['XML_RPC_Double']   = 'double';
$GLOBALS['XML_RPC_String']   = 'string';
$GLOBALS['XML_RPC_DateTime'] = 'dateTime.iso8601';
$GLOBALS['XML_RPC_Base64']   = 'base64';
$GLOBALS['XML_RPC_Array']    = 'array';
$GLOBALS['XML_RPC_Struct']   = 'struct';

サーバからの応答の遅延

あなたが作ろうとしているサーバでは、何らかの理由（たとえば セキュリティ認証など）によりリクエストに対する応答をいったん保留したい こともあるでしょう。コンストラクタの 2 番目の引数に 0 を渡すと、お望みの効果が得られます。その後、 サーバクラスの service() メソッドを使用して リクエストを処理すればよいのです。たとえば以下のようになります。

$s = new XML_RPC_Server($myDispMap, 0);

// ... 何らかの他の処理をここで行う

$s->service();

失敗の報告

サーバが返す失敗コードは、グローバルの $xmlrpcerruser が指す値に 1 を加えた値から開始するべきです。

サーバが返す標準的なエラーには以下のようなものがあります。

1 Unknown method

サーバが関知しないメソッドの実行を要求された際に返されます。

2 Invalid return payload

このエラーは、実際のところサーバやコードではなくクライアント側で 発生します。しかし、これはサーバが自分で理解できない何かを返したことを 示します。

3 Incorrect parameters

サーバがメソッドに対応したシグネチャを保持しており、クライアントから 渡されたパラメータがいずれのシグネチャにも一致しなかった際に発生します。

4 Can't introspect: method unknown

このエラーは、組み込みの system.*() メソッドから 発生するもので、サーバ上で未定義のメソッドを実行しようとした際に起こります。

5 Didn't receive 200 OK from remote server

このエラーは、サーバからの応答として HTTP/1.1 200 OK が戻ってこなかった際に クライアント側で発生します。エラーの詳細な情報は、上のメッセージの最後に 付け加えられます。

100- XML parse errors

発生した障害の XML パーサエラーコードに 100 を加えたものを返します。 返される faultString の中には、入力 XML ストリームの どこでパースエラーが発生したのかが示されています。

XML_RPC_Dump

このクラスは、XML_RPC_Value オブジェクト内のデータの 文字列表現を生成します。

その他の関数

以下は XML_RPC オブジェクトの外部にある関数です。

XML_RPC_encode()

$rpc = XML_RPC_encode ($php_val)

PHP のネイティブデータ型を受け取り、それを XML_RPC オブジェクト型に 変換します。

XML_RPC_decode()

$values = XML_RPC_decode ($XML_RPC_val)

XML_RPC オブジェクト型のメッセージを受け取り、それを PHP の ネイティブデータ型に変換します。

前のページ | ホーム | 次のページ
例 | 上に戻る | XML_RPC2

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


例

例 -- XML_RPC パッケージの利用例

クライアントを使用して、PEAR の最新情報を取得する

例 61-1

require_once 'XML/RPC.php';

/*
 * いちばん最近にリリースされた PEAR パッケージの情報を取得する
 */
$params = array(new XML_RPC_Value(1, 'int'));
$msg = new XML_RPC_Message('release.getRecent', $params);

$cli = new XML_RPC_Client('/xmlrpc.php', 'pear.php.net');

// デバッグを有効にしたい場合は...
// $cli->setDebug(1);

// 余分な行をそのままにしておきたいのなら...
// 注意: プロパティ $remove_extra_lines はバージョン 1.4.6 で追加されました。
// $cli->remove_extra_lines = false;

// サーバに送信する XML を調べるのなら...
// $msg->createPayload();
// logit($msg->payload);  // 仮の関数

$resp = $cli->send($msg);

if (!$resp) {
    echo 'Communication error: ' . $cli->errstr;
    exit;
}

if (!$resp->faultCode()) {
    $val = $resp->value();
    $data = XML_RPC_decode($val);
    echo $data[0]['name'] . ' is at version ' . $data[0]['version'];
} else {
    /*
     * xmlrpc.php スクリプトが遭遇した問題を
     * 報告する
     */
    echo 'Fault Code: ' . $resp->faultCode() . "\n";
    echo 'Fault Reason: ' . $resp->faultString() . "\n";
}

// サーバからの XML 応答を調べるのなら...
// 注意: プロパティ $response_payload はバージョン 1.4.6 で追加されました。
// logit($msg->response_payload);  // 仮の関数

クライアント - サーバ の組み合わせ

例 61-2

これがサーバ側のスクリプトです。localhost の web サーバの ドキュメントルートに、xmlrpc.php という名前で設置します。

require_once 'XML/RPC/Server.php';

function returnTimes2($params) {
    $obj = new some_class_name;
    return $obj->returnTimes2($params);
}

class some_class_name {
    function returnTimes2($params) {
        $param = $params->getParam(0);

        // このエラーチェック構文は、リリース 1.3.0 で追加されました
        if (!XML_RPC_Value::isValue($param)) {
            return $param;
        }

        $val = new XML_RPC_Value($param->scalarval() * 2, 'int');
        return new XML_RPC_Response($val);
    }
}

$some_object = new some_class_name;

/*
 * ディスパッチマップと XML_RPC サーバインターフェイスを確立します
 */
$server = new XML_RPC_Server(
    array(
        'function_times2' => array(
            'function' => 'returnTimes2'
        ),
        'class_paamayim_nekudotayim_times2' => array(
            'function' => 'some_class_name::returnTimes2'
        ),
        'class_times2' => array(
            'function' => array('some_class_name', 'returnTimes2')
        ),
        'object_times2' => array(
            'function' => array($some_object, 'returnTimes2')
        ),
    ),
    1  // serviceNow
);

そしてこちらがクライアント側のスクリプトです。

require_once 'XML/RPC.php';

$input = 8;
$params = array(new XML_RPC_Value($input, 'int'));
$msg = new XML_RPC_Message('function_times2', $params);

$cli = new XML_RPC_Client('/xmlrpc.php', 'localhost');
// $cli->setDebug(1);
$resp = $cli->send($msg);

if (!$resp) {
    echo 'Communication error: ' . $cli->errstr;
    exit;
}

if (!$resp->faultCode()) {
    $val = $resp->value();
    echo $input . ' times 2 is ' . $val->scalarval();
} else {
    /*
     * xmlrpc.php スクリプトが遭遇した問題を
     * 報告する
     */
    echo 'Fault Code: ' . $resp->faultCode() . "\n";
    echo 'Fault Reason: ' . $resp->faultString() . "\n";
}

自動的なデータのエンコード

XML_RPC_encode() 関数は、 PHP のデータを自動的に XML_RPC ライブラリの形式に変換します。

例 61-3

require_once 'XML/RPC.php';

$data = fetch_row_from_db();  //  仮の関数

$params = array(XML_RPC_encode($data));
$msg = new XML_RPC_Message('some_function_name', $params);

$cli = new XML_RPC_Client('/xmlrpc.php', 'pear.php.net');
$resp = $cli->send($msg);

// 他の例についても同様に処理します...
前のページ | ホーム | 次のページ
サポート | 上に戻る | API

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 --

概要の紹介

XML-RPC は、XML を用いたリモートプロシージャコールを実現するために Userland Software が考案した フォーマットです。XML-RPC の web サイトは www.XmlRpc.com です。

現時点で使用可能な XML-RPC の実装のほとんどは、データ交換に HTTP を使用しています。Perl や Python など他の言語での実装の一覧が www.xmlrpc.com にあります。

この PHP クラス群は、XML-RPC のクライアントおよびサーバを PHP で 記述するためのフレームワークを提供します。

謝辞

このパッケージは、Useful Information Company の Edd Dumbill によって最初に書かれました。 最も賞賛されるべきなのは彼です。最初のコードベースに対して貢献した 以下の人々は別として、そのコードは現在も Edd によって保守されています。

  • Jim Winstead <jimw at php dot net>

  • Peter Kocks <peter.kocks at baygate dot com>

  • Nicolay Mausz <mausz at flying-dog dot com>

  • Ben Margolin <ben at wendy.auctionwatch dot com>

  • Dan Libby <dan at libby dot com>

  • Gaetano Giunta <g.giunta at libero dot it>

  • Idan Sofer <i_sofer at yahoo dot com>

  • Giancarlo Pinerolo <ping at alt dot it>

  • Justin Miller <justin at voxel dot net>

ファイル一覧 - パッケージ内のファイル

Server.php

XML-RPC サーバクラス。サーバ機能を使用するするために、これを include() します。

RPC.php

XML-RPC クライアントクラス。クライアント機能を使用するために、これを include() します。

前のページ | ホーム | 次のページ
XML_RPC | 上に戻る | サポート

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


サポート

サポート -- XML_RPC のサポートを受けるには

オンラインサポート

このパッケージは"あるがまま（as-is）"で提供されており、 何らかの補償をしたりサポートの約束をしたりするものではありません。 しかし、PEAR ユーザメーリングリストや XML-RPC.com にて 非公式なアドバイスやヘルプを行っています。

  • パッケージの使用法に関する質問は、 PEAR ユーザメーリングリスト を通じて行ってください。詳細は こちらをご覧ください。

  • XML-RPC についての一般的な質問には、Yahoo! グループの XML-RPC メーリングリストが利用できます。

  • XML-RPC の使用法についての助言を得るには、XML-RPC.com の掲示板が便利です。 この掲示板の内容は、Yahoo! Groups のメーリングリストにも反映されます。

クラゲ本

Simon St.Laurent や Joe Johnston とともに Edd Dumbill が書いた XML-RPC についての本が、O'Reilly and Associates より発売されています。 この本の表紙には、ちょっと目を引くクラゲが描かれています。

この本についての詳細は、O'Reilly の web サイトから得られます。

Edd は PHP に関する章を担当しており、実際に動作する例が収録されています。 その内容は、掲示板サーバを立ち上げ、O'Reilly の Meerkat サービスを用いて Web 上の ニュース記事に対するコメントを行うものです。

こうしたソフトウェアを書き上げた彼の労力のおかげで何らかの恩恵を受けた なら、ぜひこの本を購入することを考えてください。

前のページ | ホーム | 次のページ
導入 | 上に戻る | 例

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Beautifier

目次
導入 -- XML_Beautifierの導入
例 -- XML_Beautifierの使用例
オプション -- すべてのXML_Beautifierオプションの一覧
XML_Beautifier::XML_Beautifier() -- インスタンスを新規作成する
XML_Beautifier::setOption() -- オプションを設定する
XML_Beautifier::setOptions() -- いくつかのオプションを設定する
XML_Beautifier::resetOptions() -- オプションをデフォルトにリセットする
XML_Beautifier::apiVersion() -- APIバージョンを返す
XML_Beautifier::formatFile() -- ファイルを美化する
XML_Beautifier::formatString() -- 文字列を美化する

XML文書を「美化する」パッケージです。 このパッケージはXML文書に改行、 字下げおよび他のレイアウト要素を加えます。 したがって、人間によって容易に読むことが出来るようになります。

前のページ | ホーム | 次のページ
XML | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


例

例 -- XML_Beautifierの使用例

基本例

実際にひどい書式のXML文書を持っていると仮定します。

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE page [
    <!ENTITY foo SYSTEM "foo.xml">
    <!ENTITY bar SYSTEM "bar.xml">
]>
<document title="Current News">
<meta project="none" foo="bar">
    <keywords/><description/>
<author>Stephan Schmidt</author>
<getMetaNav/>
</meta>
<page label="PHP Application Tools" sublabel="Current News">
<?php
    for($i = 0; $i < count($_GET); $i++) {
        echo    $_GET[$i]."<br>";
    }
?>
&foo;&bar;
<intro>
   <!-- This Comment
has more
    than one line.
                    -->
        <introtitle>Welcome to PHP
Application Tools &amp; PEAR!</introtitle>
<para>
        If you're new to pat, and would like
        <!-- This is a comment in a single line that contains an &amp; -->
         to know

         what we do

         here, take a look at

         <link url=
         "/about/project.xml">
         "About Pat"</link>
or
check out the
<link url="/about/projectsOverview.xml">"projects overview"</link>. Otherwise, you probably know your way
around
the site already <smiley type="smile"/>
</para>
                                            </intro>
</page>
</document>

行うべきはXML_Beautifierを使用することで、 オリジナルのファイルのファイル名および 新しいファイル用のファイル名を渡すことです。

require_once "XML/Beautifier.php";
$fmt = new XML_Beautifier();
$result = $fmt->formatFile('originalFile.xml', 'beautifiedFile.xml');

if (PEAR::isError($result)) {
    echo $result->getMessage();
    exit();
}
echo "File beautified, awaiting orders!<br />";

そうすればあなたの文書はいい感じに見えます。

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE page [
    <!ENTITY foo SYSTEM "foo.xml">
    <!ENTITY bar SYSTEM "bar.xml">
]>
<document title="Current News">
    <meta foo="bar" project="none">
        <keywords />
        <description />
        <author>Stephan Schmidt</author>
        <getMetaNav />
    </meta>
    <page label="PHP Application Tools" sublabel="Current News">
        <?php
        for($i = 0; $i < count($_GET); $i++) {
                echo    $_GET[$i]."<br>";
            }
        ?>
        &foo;
        &bar;
        <intro>
            <!--
                This Comment
                has more
                than one line.
            -->
            <introtitle>Welcome to PHP Application Tools &amp; PEAR!</introtitle>
            <para>
                If you&apos;re new to pat, and would like
                <!-- This is a comment in a single line that contains an &amp; -->
                to know what we do here, take a look at
                <link url="/about/project.xml">&quot;About Pat&quot;</link>
                or check out the
                <link url="/about/projectsOverview.xml">&quot;projects overview&quot;</link>
                . Otherwise, you probably know your way around the site already
                <smiley type="smile" />
            </para>
        </intro>
    </page>
</document>
前のページ | ホーム | 次のページ
導入 | 上に戻る | オプション

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- XML_Beautifierの導入

XML_Beautifierの導入

XML_Beautifierは、 人間がXML文書を容易に読むことが出来るようにすることを助けるパッケージです。

それは改行・字下げの追加、字下げ(indent)・属性ソートとタグケース (英大・小文字)の変換をし、長いコメントも含みます。 それはタグ・文字データ・コメント・XML宣言・ 処理命令および外部の実態を認識し、 これらのトークンをうまくフォーマットすることが出来ます。

文書はXML_Beautifier_Tokenizerクラスおよびexpatパーザを使用し、 これらのトークンへ分割します。

現在、ひとつのレンダラだけが利用可能です。 しかし、XML_Beautifierがドライバに基づいたアーキテクチャーを使用ことで、 他のレンダラ(シンタックスを強調するような)はまもなく後続するでしょう。

前のページ | ホーム | 次のページ
XML_Beautifier | 上に戻る | 例

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


オプション

オプション -- すべてのXML_Beautifierオプションの一覧

オプションの導入

Options let you influence the beautifiying process. They are passed to the renderer and thus, you have to check, whether the renderer you are using supports the options you want to use.

As there currently is only one renderer (Plain) available, you should not worry about this too much.

オプションは、XML_Beautifierのコンストラクタ への連想配列として渡すことが出来ます。 You may also use setOption(), or setOptions() to set one or more options after the instance of XML_Beautifier has been created.

すべての有効なオプション

ここに、 XML_Beautifierでサポートされたすべてのオプションの一覧があります。

表 62-1XML_Beautifierオプション

オプション | 可能な値 | デフォルト | 説明
removeLineBreaks | TRUE or FALSE | TRUE | Sets, whether linebreaks should be stripped from cdata sections
indent | any string | " " (4つの半角空白) | The string passed to this option will be used to indent the tags in one level.
linebreak | any string | "\n" | The string passed to this option will be used for linebreaks You should use "\n" or "\r\n".
caseFolding | TRUEかFALSE | FALSE | Disable or enable case folding for tags and attributes
caseFoldingTo | "uppercase"か"lowercase" | "uppercase" | Can be used, if caseFolding is set to TRUE to define whether tags and attributes should be converted to upper- or lowercase
normalizeComments | FALSE or TRUE | FALSE | If set to true, all adjacent whitespaces in an XML comment will be converted to one space. This will convert comments with more than one line to a comment with one line.
maxCommentLine | integer | -1 | コメント行の最大長です。 コメントがこの限度を越えれば、それは自動的にラッピングされるでしょう。 もし-1にセットされれば、行長は無制限になります。
multilineTags | TRUEか FALSE | FALSE | If set to true, a linebreak will be added inside the tags after each attribute and attributes will be indeted.

オプション例

次の例は、XML_Beautifierのためにオプションを設定する方法の手引きです。

例 62-1setOptions()とsetOption()の使用例

require_once "XML/Beautifier.php";
$options = array(
                    "caseFolding"       => true,
                    "caseFoldingTo"     => "uppercase",
                    "normalizeComments" => true
                );

$fmt = new XML_Beautifier($options);
$result = $fmt->formatFile('originalFile.xml', 'outputFile.xml');

Options example setting options at a later point

インスタンスが既に作成されている場合、 次の例はXML_Beautifierのオプションを設定する方法手引きです。

例 62-2XML_Beautifierオプション

require_once "XML/Beautifier.php";
$fmt = new XML_Beautifier();
$options = array(
                    "caseFolding"       => true,
                    "caseFoldingTo"     => "uppercase",
                    "normalizeComments" => true
                );

$fmt->setOptions($options);
$fmt->setOption("indent", "\t");
$result = $fmt->formatFile('originalFile.xml', 'outputFile.xml');
前のページ | ホーム | 次のページ
例 | 上に戻る | XML_Beautifier::XML_Beautifier()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Beautifier::apiVersion

PEAR マニュアル
前のページ 次のページ

XML_Beautifier::apiVersion()

XML_Beautifier::apiVersion() -- APIバージョンを返す

概要

require_once 'XML/Beautifier.php';

string XML_Beautifier::apiVersion ()

説明

XML_BeautifierのAPIバージョンを返します。

返り値

string AのPIバージョンを返します。

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
XML_Beautifier::resetOptions() | 上に戻る | XML_Beautifier::formatFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Beautifier::formatFile

PEAR マニュアル
前のページ 次のページ

XML_Beautifier::formatFile()

XML_Beautifier::formatFile() -- ファイルを美化する

概要

require_once 'XML/Beautifier.php';

object XML_Beautifier::formatFile (string $file [, string $newFile = NULL [, string $renderer = "Plain"]])

説明

ファイルを美化します。

パラメータ

  • string $file - オリジナルファイルのファイル名です。

  • string $newFile - 美化したファイルのファイル名です。 もしファイルが与えられなかった場合、 このメソッドはXMLドキュメントの結果を返すでしょう。 オリジナルファイルを上書きするには XML_BEAUTIFIER_OVERWRITEを通してください。

  • string $renderer - 使用するレンダラです。 現在は"Plain"XMLレンダラのみ使用出来ます。

返り値

mixed ファイルに書き込まれるか、XML文書文字列化した場合はtrueが返ります。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_Beautifier::apiVersion() | 上に戻る | XML_Beautifier::formatString()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Beautifier::formatString

PEAR マニュアル
前のページ 次のページ

XML_Beautifier::formatString()

XML_Beautifier::formatString() -- 文字列を美化する

概要

require_once 'XML/Beautifier.php';

object XML_Beautifier::formatString (string $string [, string $renderer = "Plain"])

説明

XML文字列を美化します。 このメソッドを使うとすぐさま美化したXMLドキュメントを生成します。

パラメータ

  • string $string - XML文書を含む文字列です。

  • string $renderer - 使用するレンダラです。 現在は"Plain"XMLレンダラのみ使用出来ます。

返り値

string 美化されたXML文書です。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_Beautifier::formatFile() | 上に戻る | XML_DTD

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Beautifier::resetOptions

PEAR マニュアル
前のページ 次のページ

XML_Beautifier::resetOptions()

XML_Beautifier::resetOptions() -- オプションをデフォルトにリセットする

概要

require_once 'XML/Beautifier.php';

void XML_Beautifier::resetOptions ()

説明

すべてのオプションをデフォルト値にリセットします。

より詳しい情報はXML_Beautifierオプション を参照してください。

パラメータ

このメソッドはパラメータを受付けません。

返り値

void

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_Beautifier::setOptions() | 上に戻る | XML_Beautifier::apiVersion()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Beautifier::setOption

PEAR マニュアル
前のページ 次のページ

XML_Beautifier::setOption()

XML_Beautifier::setOption() -- オプションを設定する

概要

require_once 'XML/Beautifier.php';

void XML_Beautifier::setOption (string $option, mixed $value)

説明

美化過程のオプションを設定します。

より詳しい情報はXML_Beautifierオプション を参照してください。

パラメータ

  • string $option - オプションの名前です。

  • mixed $value - オプションの値です。

返り値

void

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_Beautifier::XML_Beautifier() | 上に戻る | XML_Beautifier::setOptions()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Beautifier::setOptions

PEAR マニュアル
前のページ 次のページ

XML_Beautifier::setOptions()

XML_Beautifier::setOptions() -- いくつかのオプションを設定する

概要

require_once 'XML/Beautifier.php';

void XML_Beautifier::setOptions (array $options)

説明

美化過程のオプションをいくつか設定します。

より詳しい情報はXML_Beautifierオプション を参照してください。

パラメータ

  • array $options - オプション群の値を含む連想配列で、 それはコンストラクタに渡すものと似ているでしょう。

返り値

void

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_Beautifier::setOption() | 上に戻る | XML_Beautifier::resetOptions()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Beautifier::XML_Beautifier

PEAR マニュアル
前のページ 次のページ

XML_Beautifier::XML_Beautifier()

XML_Beautifier::XML_Beautifier() -- インスタンスを新規作成する

概要

require_once 'XML/Beautifier.php';

object XML_Beautifier::XML_Beautifier ([array $options = array()])

説明

XML_Beautifierのインスタンスを新規作成します。

パラメータ

  • array $options - オプションは美化工程への影響に使用します。 おそらくインデント文字列、 ケースフォルディングが可能かなどを設定するでしょう。

    より詳しい情報はXML_Beautifierオプション を参照してください。

返り値

object XML_Beautifierオブジェクトを返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
オプション | 上に戻る | XML_Beautifier::setOption()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_DTD

目次
導入 -- XML_DTD 導入

DTD ファイルのパースと、XML 文章の DTD 検証を行う

前のページ | ホーム | 次のページ
XML_Beautifier::formatString() | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- XML_DTD 導入

XML_DTD 導入

XML_DTD は、文書型宣言 (DTD) ファイルをパースし、この DTD による XML 文章の検証を行うことができます。 DTD は、XMLアプリケーションの「文法」で、 タグがどの様にネストしなければならず、どのような属性を持つことができるか、 というルールで構成されています。

もし、DTD をどの様に作成するかを知りたいのであれば、 W3C を見てみてください。

XML_DTD は、二つのパートで構成されています:

  • XML_DTD_Parser。DTD ファイルをパースし、 XML_DTD_Tree オブジェクトを返します。

  • XML_DTD_XmlValidator。DTD ファイルを使用して XML 文章の検証を行います。

もし、XML_DTD_XmlValidator を使って XML_Document を検証する場合、 自動的に DTD ファイルをパースし、XML_DTD_Tree を生成するでしょう。

前のページ | ホーム | 次のページ
XML_DTD | 上に戻る | XML_Feed_Parser

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Feed_Parser

目次
Introduction and Quick Start -- Overview of XML_Feed_Parser
XML_Feed_Parser and Extensions -- Handling extensions with XML_Feed_Parser

XML_Feed_Parser is a parser for (the various) RSS and Atom format XML feeds. It provides a somewhat unified API while still allowing access to the full details of each feed type.

前のページ | ホーム | 次のページ
導入 | 上に戻る | Introduction and Quick Start

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Feed_Parser and Extensions

XML_Feed_Parser and Extensions -- Handling extensions with XML_Feed_Parser

説明

Using XML namespaces, the various syndication formats are very easy to extend and the number of extensions in use is enormous.

XML_Feed_Parser focusses on core functionality shared between the various syndication formats. Some of the most common extensions are handled natively?particularly when they provide one format with features to bring it into line with others, such as the content extension for RSS2?but the majority provide specialist content and providing support for them would quickly result in a bloated package.

It is possible that a proper extensions mechanism may be introduced in a future version, but as an alternative the DOM models in use within the classes are publicly accessible, allowing the package to be wrapped with special handlers.

For example, to make use of the 'pheed' extension (namespace http://www.pheed.com/pheed/) we might use:
$feed = new XML_Feed_Parser($xml_source);
$entry = $feed->getEntryByOffset(0);
$eModel = $entry->model;

$thumbnails = $eModel->getElementsByTagNameNS(
    'http://www.pheed.com/pheed/', 'thumbnail');

if ($thumbnails->length) {
    $thumbnail_url = $thumbnails->item(0)->nodeValue;
}

前のページ | ホーム | 次のページ
Introduction and Quick Start | 上に戻る | XML_Parser

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction and Quick Start

Introduction and Quick Start -- Overview of XML_Feed_Parser

説明

XML_Feed_Parser provides a generic interface to a number of the most popular XML-based syndication formats (Atom, RSS1, RSS2, etc). In order to focus on its core competencies, it does not provide any HTTP or feed creation features, but instead parses a wide range of formats quickly and simply.

Presuming the XML for a feed is stored in the variable $xml_source, the simplest way to create an instance of the parser is:
try {
    $feed = new XML_Feed_Parser($xml_source);
} catch (XML_Feed_Parser_Exception $e) {
    die('Feed invalid: ' . $e->getMessage());
}

The constructor accepts a number of parameters, as follows:
/* The file you wish to parse */
$source = 'my_source.xml';

/* Where Relax NG is available, we can force validation of the feed */
$validate = true;

/* Whether or not to suppress non-fatal warnings */
$suppress_warnings = false;

/* If the feed is not valid XML and the tidy extension is installed we can
 * attempt to use it to fix the feed */
$use_tidy = true;

$feed = new XML_Feed_Parser($source, $validate, $suppress_warnings, $use_tidy);

Once you have an instance of the parser you can extract feed-level data by querying it directly. eg.
$title = $feed->title;

You can also access elements by iterating over the feed, or directly by offset or id.
foreach ($feed as $entry) {
    print $entry->title . "\n";
}

$first_entry = $feed->getEntryByOffset(0);

$particular_entry = $feed->getEntryById('http://jystewart.net/entry/1');

前のページ | ホーム | 次のページ
XML_Feed_Parser | 上に戻る | XML_Feed_Parser and Extensions

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Parser

目次
はじめに -- XML_Parser について
例 -- XML_Parser 使用の例
モード -- パースモードについての解説
入力の選択 -- 異なるタイプの入力データに関する解説

XML_Parser は、PHP の XML 拡張機能のオブジェクト指向抽象化です。

前のページ | ホーム | 次のページ
XML_Feed_Parser and Extensions | 上に戻る | はじめに

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


例

例 -- XML_Parser 使用の例

基本的な例

この基本的な例では、要素の開始と終了（つまり、開始タグと終了タグ） および文字データ (タグの間の "内容") を処理する単純なパーサを示します。

require_once 'XML/Parser.php';

class myParser extends XML_Parser
{
  function myParser()
  {
    parent::XML_Parser();
  }

 /**
  * 要素の開始の処理
  *
  * @access private
  * @param  resource  xml パーサのリソース
  * @param  string    要素の名前
  * @param  array     属性
  */
  function startHandler($xp, $name, $attribs)
  {
    printf('次の開始タグを処理します: %s<br />', $name);
  }

 /**
  * 要素の終了の処理
  *
  * @access private
  * @param  resource  xml パーサのリソース
  * @param  string    要素の名前
  */
  function endHandler($xp, $name)
  {
    printf('次の終了タグを処理します: %s<br />', $name);
  }

 /**
  * 文字データの処理
  *
  * @access private
  * @param  resource  xml parser resource
  * @param  string    character data
  */
  function cdataHandler($xp, $cdata)
  {
    // ここでは何もしていませんが、例えば print $cdata などを行います。
  }
}

$p = &new myParser();

$result = $p->setInputFile('xml_parser_file.xml');
$result = $p->parse();

このパーサは、単に、文書のパース中に見つかった開始タグと終了タグの 名前を出力するだけのものです。

前のページ | ホーム | 次のページ
はじめに | 上に戻る | モード

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


入力の選択

入力の選択 -- 異なるタイプの入力データに関する解説

XML_Parser に対する入力の選択

XML_Parser がパースできる入力には、幾つかの種類があります。

  • ファイルシステム、その他ストリームでアクセス可能なもの

  • 文字列

  • リソース

setInputFile(),
setInputString() もしくは setInput()
メソッドを使って入力を指定し、 parse() をコールすれば、
XML の処理を開始することができます。

ファイルのパース

ファイル、もしくは URL のパースをするには、その名前や URI を XML_Parser::setInputFile() を使って指定します。 ファイルシステムにあるファイルだけでなく、fopen() 関数で開くことのできるロケーションも指定できます。 また、この機能と、 ストリーム関数や、PEAR の ストリームパッケージと組み合わせると、 共有メモリやデータベースその他から得られる文書のパースが可能です。

HTTP や FTP ロケーションを標準入力として開くには、 PHP の組み込み ラッパーを使用することもできます。

文字列のパース

XML 文字列をパースするには、その文字列を XML_Parser::setInputString() メソッドを使って XML_Parser（もしくはそのサブクラス）に渡します。しかし、SAX ベースのパーサの 大きな利点として、XML 文書全体を処理にあたって読み込む必要がないことがあります。 ですから、非常に大きい文書をパースする場合は、 setInputString() を使用せずに、setInput() もしくは setInputFile() を使うべきです。

リソースのパース

第3に、あまり使われないようですが、XML_Parser の入力として fopen() が返すファイルポインタなどの PHP リソースを 指定することができます。これは、XML 文書が on-the-fly で生成され、 すでにオープン済みである場合などに有用です。わざわざファイルをクローズし ファイル名を XML_Parser に渡す代わりに、 XML_Parser::setInput() を使ってリソースを渡すことができます。 fseek() を使って、ファイルポインタが正しい位置にあるかどうかを 確認するようにしてください。

前のページ | ホーム | 次のページ
モード | 上に戻る | XML_Query2XML

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


はじめに

はじめに -- XML_Parser について

XML_Parser について

XML_Parser は、PHP の XML 拡張機能をオブジェクト指向により 抽象化したものです。これにより、XML 文書を扱う場合に必要なメソッド、 たとえば、自動エラー処理、ファイルやURL・文字列から得られたデータのパース （構文解析）、さらにコールバックの簡単な登録方法などが得られ、 XML 文書の処理が容易となります。

XML_Parser は、SAX ベースの構文解析を行います。 そのため、XML 文書からの情報の取得に使われる API は、シンプルです。 パーサが文書を読むと、種々のノードが見つかる度、対応するメソッドがコール されます。ノードには、タグの開始・終了や文字データ・処理命令 といったものがあります。

文書のパースは、XML_Parser を直接使って行うことはできません。 XML_Parser を継承した新しいクラスを作成し、処理したいタグや その他の要素に対するハンドラを実装する必要があります。

PEAR の XML 関連のパッケージの中には、この手法を用いているものもあり、 それらは XML_Parser に依存しています。 実例を見たいときには、XML_RDDL, XML_Beautifier, XML_Statistics もしくは XML_Serializer をインストールしてください。

XML_Parser のほぼ全機能を説明したチュートリアルが http://www.schst.net/articles/XML_Parser にあります。

前のページ | ホーム | 次のページ
XML_Parser | 上に戻る | 例

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


モード

モード -- パースモードについての解説

XML_Parser のパースモード

XML_Parser のパースには、下記の2つのモードがあります。

  • func

  • event

'event' モードでは、タグの名前に依らず startHandler() および endHandler() が コールされます。 これらのメソッドにおいては、タグ名（第2の引数としてあたえられる）を自らチェックし、 switch/case 文などを使って、行うべき処理を決める必要があるかもしれません。

'func' モードでは、タグの名前により、異なるメソッドが コールされます。 これにより、タグごとに異なるメソッドを割り付けることができます。 開始タグを処理するメソッドは、 [tagname] を処理したい要素名として、 xmltag_[tagname]() という名前になります。 つまり、<title> タグの開始を処理するためのメソッドを作成する場合、 そのメソッド名は xmltag_title となります。

終了タグを処理するメソッドは、xmltag_[tagname]_() となります（末尾のアンダースコアで要素の開始のハンドラと区別されます。）

XML タグには "."、":" や "-" のような文字を使用できますが、これらの文字は PHP の関数名には使用できません。 そこで、XML_Parser はこれらの文字を "_" で置き換えた名前でコールバック関数を作成します。

メソッドが存在しなければ、要素は処理されずに、そのタグがスキップされます。 ただし、メソッド xmltag() および xmltag_() を実装している場合は別で、これらのメソッドを代わりに使用します。

モードの設定

モードの設定には、2つの方法があります。

  • モードをコンストラクタの第2引数として指定する

    XML 文書の処理のために XML_Parser のサブクラスを実装した場合は、 そのコンストラクタで XML_Parser::XML_Parser() をコールする必要があります。 このメソッドが、モードを第2引数として受け取ります。

  • XML_Parser::setMode() を使って指定する

前のページ | ホーム | 次のページ
例 | 上に戻る | 入力の選択

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Query2XML

目次
Introduction -- Start here

Creates XML data from SQL queries.

前のページ | ホーム | 次のページ
入力の選択 | 上に戻る | Introduction

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction

Introduction -- Start here

Major Features

XML_Query2XML allows you to transform the records retrieved with one or more SQL SELECT queries into XML data. Very simple to highly complex transformations are supported. Is was written with performance in mind and can handle large amounts of data. No XSLT needed!

  • 1. XML_Query2XML works with the classes provided by PHP5's DOM XML extension

  • 2. minimum effort necessary to get the simple jobs done

  • 3. highly configurable for more complex tasks

  • 4. ISO/IEC 9075-14:2005 support: mapping of SQL identifiers to XML names

  • 5. works with any database that is supported by PEAR DB, PEAR MDB2 or ADOdb

  • 6. debugging and logging features

  • 7. provides profiling features

  • 8. in-depth documentation: tutorials and API documentation

  • 9. Eight case studies: from very simple to highly complex scenarios

  • 10. 433 phpt unit tests

Full Documentation

  • The full online documentation is available here

前のページ | ホーム | 次のページ
XML_Query2XML | 上に戻る | XML_RDDL

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_RDDL

目次
Introduction -- Introduction to XML_RDDL
Example -- Example for the usage of XML_RDDL
XML_RDDL::XML_RDDL() -- Constructor
XML_RDDL::parseRDDL() -- parse a document that contains RDDL resources
XML_RDDL::getAllResources() -- return all resources that have been found
XML_RDDL::getResourceById() -- get one resource from the document
XML_RDDL::getResourcesByNature() -- selects all resources of a specified nature
XML_RDDL::getResourcesByPurpose() -- selects all resources of a specified nature
XML_RDDL::getResourcesByLanguage() -- selects all resources of a specified language
XML_RDDL::apiVersion() -- return API version

Class to read RDDL (Resource Directory Description Language) documents.

前のページ | ホーム | 次のページ
Introduction | 上に戻る | Introduction

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Example

Example -- Example for the usage of XML_RDDL

Usage example

As the RDDL website contains RDDL resources embedded in the XHMTL code of the home page, it can be used in the following example.

例 62-1Fetching resources from www.rddl.org

require_once "XML/RDDL.php";

// create new RDDL parser
$rddl   = &new XML_RDDL();

// parse a document that contains RDDL resources
$result = $rddl->parseRDDL('http://www.rddl.org');
// check for error
if (PEAR::isError($result)) {
echo	sprintf( "ERROR: %s (code %d)", $result->getMessage(), $result->getCode());
exit;
}

// get all resources
$resources = $rddl->getAllResources();
echo	"<pre>";
print_r($resources);
echo	"</pre>";

//	get one resource by its Id
$test = $rddl->getResourceById('CSS');
echo	"<pre>";
print_r($test);
echo	"</pre>";

// get all stylesheets
$test = $rddl->getResourcesByNature('http://www.w3.org/1999/XSL/Transform');
echo	"<pre>";
print_r($test);
echo	"</pre>";

// get all normative references
$test = $rddl->getResourcesByPurpose('http://www.rddl.org/purposes#normative-reference');
echo	"<pre>";
print_r($test);
echo	"</pre>";
前のページ | ホーム | 次のページ
Introduction | 上に戻る | XML_RDDL::XML_RDDL()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction

Introduction -- Introduction to XML_RDDL

Introduction to XML_RDDL

XML_RDDL is a class that allows the extraction of RDDL resources from an XML document.

The Resource Directory Description Language is an extension of XHTML Basic 1.0 with an added element named resource. This element serves as an XLink to the referenced resource, and contains a human-readable description of the resource and machine readable links which describe the purpose of the link and the nature of the resource being linked to. The nature of the resource being linked to is indicated by the xlink:role attribute and the purpose of the link is indicated by the xlink:arcrole attribute.

For more information on RDDL, visit the RDDL website.

前のページ | ホーム | 次のページ
XML_RDDL | 上に戻る | Example

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_RDDL::apiVersion

PEAR マニュアル
前のページ 次のページ

XML_RDDL::apiVersion()

XML_RDDL::apiVersion() -- return API version

概要

require_once 'XML/RDDL.php';

string XML_RDDL::apiVersion ()

説明

Returns API version of XML_RDDL.

返り値

string API version

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
XML_RDDL::getResourcesByLanguage() | 上に戻る | XML_RSS

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_RDDL::getAllResources

PEAR マニュアル
前のページ 次のページ

XML_RDDL::getAllResources()

XML_RDDL::getAllResources() -- return all resources that have been found

概要

require_once 'XML/RDDL.php';

array XML_RDDL::getAllResources ()

説明

Returns an array containing all reources that have been found. You have to call XML_RDDL::parseRDDL() first.

返り値

array array containing all resources

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_RDDL::parseRDDL() | 上に戻る | XML_RDDL::getResourceById()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_RDDL::getResourceById

PEAR マニュアル
前のページ 次のページ

XML_RDDL::getResourceById()

XML_RDDL::getResourceById() -- get one resource from the document

概要

require_once 'XML/RDDL.php';

array XML_RDDL::getResourceById (string $id)

説明

Gets one resource from a document. You have to call XML_RDDL::parseRDDL() first.

パラメータ

  • string $id - ID of the resource you want to get.

返り値

array array containing all information about the specified resource or a PEAR_Error if the resource does not exist.

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_RDDL::getAllResources() | 上に戻る | XML_RDDL::getResourcesByNature()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_RDDL::getResourcesByLanguage

PEAR マニュアル
前のページ 次のページ

XML_RDDL::getResourcesByLanguage()

XML_RDDL::getResourcesByLanguage() -- selects all resources of a specified language

概要

require_once 'XML/RDDL.php';

array XML_RDDL::getResourcesByLanguage (string $language)

説明

Gets all resources of a given language from an RDDL document. You have to call XML_RDDL::parseRDDL() first. If a resource has no xml:lang attribute, the xml:lang attribute of the root of the document is used.

パラメータ

  • string $language - language of the resources you want to get.

返り値

array array containing all resources with the specified language.

注意

この関数は、スタティックにコールする ことはできません。

Usage example

例 62-1Getting all english resource

require_once "XML/RDDL.php";
// create new parser
$rddl   = &new XML_RDDL();

// parse a document that contains RDDL resources
$result = $rddl->parseRDDL('http://www.rddl.org');
// check for error
if (PEAR::isError($result)) {
    echo sprintf( "ERROR: %s (code %d)", $result->getMessage(), $result->getCode());
    exit;
}
// get all english resources
$en = $rddl->getResourcesByLanguage('en');
echo "<pre>";
print_r($en);
echo "</pre>";
前のページ | ホーム | 次のページ
XML_RDDL::getResourcesByPurpose() | 上に戻る | XML_RDDL::apiVersion()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_RDDL::getResourcesByNature

PEAR マニュアル
前のページ 次のページ

XML_RDDL::getResourcesByNature()

XML_RDDL::getResourcesByNature() -- selects all resources of a specified nature

概要

require_once 'XML/RDDL.php';

array XML_RDDL::getResourcesByNature (string $nature)

説明

Gets all resources of a given nature from an RDDL document. You have to call XML_RDDL::parseRDDL() first. The nature of a resource is specified by the 'xlink:role' attribute. A nature can be a stylesheet, a DTD, a HTML document, etc. You can find a list of well known natures at http://www.rddl.org/natures/.

パラメータ

  • string $nature - nature of the resources you want to get.

返り値

array array containing all resources with the specified nature.

注意

この関数は、スタティックにコールする ことはできません。

Usage example

例 62-1Getting all stylesheets from a document

require_once "XML/RDDL.php";
// create new parser
$rddl   = &new XML_RDDL();

// parse a document that contains RDDL resources
$result = $rddl->parseRDDL('http://www.rddl.org');
// check for error
if (PEAR::isError($result)) {
    echo sprintf( "ERROR: %s (code %d)", $result->getMessage(), $result->getCode());
    exit;
}
// get all stylesheets
$xslt = $rddl->getResourcesByNature('http://www.w3.org/1999/XSL/Transform');
echo "<pre>";
print_r($xslt);
echo "</pre>";
前のページ | ホーム | 次のページ
XML_RDDL::getResourceById() | 上に戻る | XML_RDDL::getResourcesByPurpose()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_RDDL::getResourcesByPurpose

PEAR マニュアル
前のページ 次のページ

XML_RDDL::getResourcesByPurpose()

XML_RDDL::getResourcesByPurpose() -- selects all resources of a specified nature

概要

require_once 'XML/RDDL.php';

array XML_RDDL::getResourcesByPurpose (string $purpose)

説明

Gets all resources of a given purpose from an RDDL document. You have to call XML_RDDL::parseRDDL() first. The purpose of a resource is specified by the 'xlink:arcrole' attribute. The purpose of a resource link determines what the link will be used for. Frequently the purpose of a link can be determined from the nature of the referenced resource. For example the purpose of an XML Schema is typically schema validation, yet a schema may be comprised of a number of included modules and even when included modules are themselves an XML Schema, the purpose is as a module. You can find a list of well known purposes at http://www.rddl.org/purposes/.

パラメータ

  • string $purpose - purpose of the resources you want to get.

返り値

array array containing all resources with the specified purpose.

注意

この関数は、スタティックにコールする ことはできません。

Usage example

例 62-1Getting all normative references

require_once "XML/RDDL.php";
// create new parser
$rddl   = &new XML_RDDL();

// parse a document that contains RDDL resources
$result = $rddl->parseRDDL('http://www.rddl.org');
// check for error
if (PEAR::isError($result)) {
    echo sprintf( "ERROR: %s (code %d)", $result->getMessage(), $result->getCode());
    exit;
}
// get all normative references
$ref = $rddl->getResourcesByPurpose('http://www.rddl.org/purposes#normative-reference');
echo "<pre>";
print_r($ref);
echo "</pre>";
前のページ | ホーム | 次のページ
XML_RDDL::getResourcesByNature() | 上に戻る | XML_RDDL::getResourcesByLanguage()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_RDDL::parseRDDL

PEAR マニュアル
前のページ 次のページ

XML_RDDL::parseRDDL()

XML_RDDL::parseRDDL() -- parse a document that contains RDDL resources

概要

require_once 'XML/RDDL.php';

boolean XML_RDDL::parseRDDL (string $input [, boolean $isFile = true])

説明

Parses an XML or XHTML document that contains RDDL resources and stores information about them for retrieval by the other methods.

パラメータ

  • string $input - input to parse, either a string or a file. If it's a file, you have to set $isFile to true.

  • boolean $isFile - flag to indicate whether the $input parameter should be treated as a filename.

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_RDDL::XML_RDDL() | 上に戻る | XML_RDDL::getAllResources()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_RDDL::XML_RDDL

PEAR マニュアル
前のページ 次のページ

XML_RDDL::XML_RDDL()

XML_RDDL::XML_RDDL() -- Constructor

概要

require_once 'XML/RDDL.php';

object XML_RDDL::XML_RDDL ([string $rddlNamespace = "rddl" [, string $xlinkNamespace = "xlink"]])

説明

Creates a new instance of XML_RDDL that can be used to parse RDDL documents.

When instantiating you may specifiy RDDL and XLINK namespaces. This may change, when XML_Parser supports namespaces and XML_RDDL will be able to extract the correct namespace abbrevations.

パラメータ

  • string $rddlNamespace - abbrevation for the RDDL namespace.

  • string $xlinkNamespace - abbrevation for the XLink namespace.

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
Example | 上に戻る | XML_RDDL::parseRDDL()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_RSS

目次
導入 -- XML_RSSの導入
Requirements -- Requirements for running XML_RSS
例 -- XML_RSSの使用例
XML_RSS::XML_RSS -- コンストラクタ
XML_RSS::getStructure -- RSSファイルの完全な構造を取得する
XML_RSS::getChannelInfo -- 現在のチャンネルに関する一般的な情報を取得する
XML_RSS::getItems -- RSSファイルから項目セットを取得する
XML_RSS::getImages -- RSSドキュメントから画像を取得する
XML_RSS::getTextinputs -- RSS文書からテキスト入力フィールドを取得する

リソース記述フレームワーク(RDF)と、 リソースサイト要約(RSS)ドキュメントの解析をします。

前のページ | ホーム | 次のページ
XML_RDDL::apiVersion() | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


例

例 -- XML_RSSの使用例

使用例

次のスクリプトはRSSによってSlashdot.orgから最新のヘッドラインを取得します。

例 62-1Slashdotからヘッドラインを取得する

require_once "XML/RSS.php";

$rss =& new XML_RSS("http://slashdot.org/slashdot.rdf");
$rss->parse();

echo "<h1>Headlines from <a href=\"http://slashdot.org\">Slashdot</a></h1>\n";
echo "<ul>\n";

foreach ($rss->getItems() as $item) {
    echo "<li><a href=\"" . $item['link'] . "\">" . $item['title'] . "</a></li>\n";
}

echo "</ul>\n";
前のページ | ホーム | 次のページ
Requirements | 上に戻る | XML_RSS::XML_RSS

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- XML_RSSの導入

XML_RSSの導入

Resource Description Framework(RDF)とSite_Summary(RSS)ドキュメントは XMLドキュメントです。 それは、軽量で多目的の拡張可能なメタデータ記述および、 組織化フォーマットを提供します。 RSSファイルはポータルサイト (例えばSlashdotあるいはfreshmeat.net) あるいはweblogsからのニュース、 あるいはヘッドラインをシンジケートにするためにしばしば使用されます。

RSSについてより詳細な情報は、 RSSワーキンググループのウェブサイト (http://www.purl.org/rss/) を見てください。

例 62-1RSSファイル

<?xml version="1.0"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns="http://my.netscape.com/rdf/simple/0.9/">

<channel>
 <title>FooBar Inc.</title>
 <link>http://example.com/</link>
 <description>abcd, xyz, 123</description>
</channel>

<image>
 <title>FooBar</title>
 <url>http://example.com/images/rssicon.gif</url>
 <link>http://example.com/</link>
</image>

<item>
 <title>Headline 1</title>
 <link>http://example.com/news.php?h=1</link>
</item>

<item>
 <title>Headline 2</title>
 <link>http://example.com/news.php?h=2</link>
</item>

<textinput>
 <title>Search FooBar Inc.</title>
 <description>Search FooBar Inc. headlines</description>
 <name>q</name>
 <link>http://example.com/search.php</link>
</textinput>

</rdf:RDF>
前のページ | ホーム | 次のページ
XML_RSS | 上に戻る | Requirements

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Requirements

Requirements -- Requirements for running XML_RSS

XML_Parser

To parse the XML files that contain the RSS feeds, XML_RSS requires that the package XML_Parser is installed. However this dependency will be automatically handled by the installer during the installation phase of XML_RSS.

allow_url_fopen configuration value

Since most RSS feeds are located on remote hosts, one has to ensure that the PHP configuration value "allow_url_fopen" is set to "On" before running XML_RSS.

To find out the current value of "allow_url_fopen", one can use the function ini_get(). To set a new value of "allow_url_fopen", you must modify the php.ini configuration file of PHP.

前のページ | ホーム | 次のページ
導入 | 上に戻る | 例

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_RSS::getChannelInfo

XML_RSS::getChannelInfo -- 現在のチャンネルに関する一般的な情報を取得する

概要

require_once "XML/RSS.php";

array XML_RSS::getChannelInfo ()

説明

現在のチャンネルに関する一般的な情報を取得します。 この関数は、 RSS文書を解析中に出現する <channel>から抽出した情報を含む配列を返します。

返り値

array - いくつかの文字列の配列です。配列キーは下記のとおりです。

  • 'title' - チャンネル名です。

  • 'link' - チャンネルサイトのURLです。

  • 'description' - チャンネルの説明です。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_RSS::getStructure | 上に戻る | XML_RSS::getItems

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_RSS::getImages

XML_RSS::getImages -- RSSドキュメントから画像を取得する

概要

require_once "XML/RSS.php";

array XML_RSS::getImages ()

説明

RSSドキュメントから画像を取得します。 この関数は、 RSSドキュメントが提供するイメージのセットを含む配列を返します。

返り値

array - 2次元配列です。 すべての内側の配列は、サイトのイメージに関する情報を含みます。

  • 'title' - チャンネル名です。

  • 'link' - サイトのURLです。

  • 'url' - 画像のURLです。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_RSS::getItems | 上に戻る | XML_RSS::getTextinputs

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_RSS::getItems

XML_RSS::getItems -- RSSファイルから項目セットを取得する

概要

require_once "XML/RSS.php";

array XML_RSS::getItems ()

説明

RSSファイルからアイテム群をします。 この関数は、 RSSドキュメントが提供する項目セットを含む配列を返します。

返り値

array - 2次元配列です。 すべての内側の配列は、サイトのイメージに関する情報を含みます。 配列キーは、 取得した記事のタイトルに'title'キーを、 サイトのURLに'link'キーを使用します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 62-1getItems()の使用法

foreach ($r->getItems() as $value) {
    echo $value['title'] . ": " . $value['link'] . "\n";
}
前のページ | ホーム | 次のページ
XML_RSS::getChannelInfo | 上に戻る | XML_RSS::getImages

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_RSS::getStructure

XML_RSS::getStructure -- RSSファイルの完全な構造を取得する

概要

require_once "XML/RSS.php";

array XML_RSS::getStructure ()

説明

RSSファイルの完全な構造を取得します。

返り値

array - 配列はRSSドキュメントの構造に依存します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_RSS::XML_RSS | 上に戻る | XML_RSS::getChannelInfo

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_RSS::getTextinputs

XML_RSS::getTextinputs -- RSS文書からテキスト入力フィールドを取得する

概要

require_once "XML/RSS.php";

array XML_RSS::getTextinputs ()

説明

RSS文書からテキスト入力フィールドを取得します。

返り値

array - 入力フィールドのデータを含むハッシュです。

  • 'title' - 入力フィールド名です。

  • 'description' - 入出力フィールドの説明です。

  • 'link' - リクエストの為のURLです。

  • 'name' - リクエストパラメータ名です。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_RSS::getImages | 上に戻る | XML_Serializer

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_RSS::XML_RSS

XML_RSS::XML_RSS -- コンストラクタ

概要

require_once "XML/RSS.php";

void XML_RSS::XML_RSS ([mixed $handle=''])

説明

コンストラクタです。

パラメータ

  • mixed $handle - ファイルポインタかRDFファイル名を指定します。

注意

この関数は、スタティックにコールする ことはできません。

例

例 62-1XML_RSS()の使用法

$r =& new XML_RSS("test.rss");
前のページ | ホーム | 次のページ
例 | 上に戻る | XML_RSS::getStructure

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Serializer

目次
導入 -- XML_Serializer 導入
XML_Serializer パッケージの定数 -- XML_Serializer で定義、使用されている定数
XML_Serializer のクラス概要 -- XML_Serializer - 様々な構成を XML 文章にシリアライズするクラス
コンストラクタ XML_Serializer::XML_Serializer() -- コンストラクタ
XML_Serializer::apiVersion() -- API のバージョンを返す
XML_Serializer::serialize() -- データをシリアライズする
XML_Serializer::getSerializedData() -- シリアライズした結果を取得する
XML_Serializer::resetOptions() -- 全てのオプションをデフォルトオプションにリセットする
XML_Serializer::setOption() -- オプションをセットします
例 -- XML_Serializer の使用例
XML_Unserializer クラス概要 -- XML_Unserializer - XML ドキュメントをアンシリアライズ (読み込む) するためのクラス
XML_Unserializer Options -- XML_Unserializer の全てのオプションのリスト
XML_Unserializer::XML_Unserializer() -- XML_Unserializer のコンストラクタ
XML_Unserializer::apiVersion() -- API のバージョンを返す
XML_Unserializer::unserialize() -- データをアンシリアライズする
XML_Unserializer::getUnserializedData() -- アンシリアライズした結果を取得する
XML_Unserializer::getRootName() -- パースされた文章のルートタグの名前を取得する
XML_Unserializer::setOption() -- オプションをセットする
XML_Unserializer::setoptions() -- いくつかのオプションをセットする
XML_Unserializer::resetOptions() -- 全てのオプションをデフォルトオプションにリセットする
前のページ | ホーム | 次のページ
XML_RSS::getTextinputs | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Serializer パッケージの定数

XML_Serializer パッケージの定数 -- XML_Serializer で定義、使用されている定数

全ての定数

Serializer.php で定義されている定数

表 62-1Serializer.php で定義されている定数

名前 | 値 | 行番号
XML_SERIALIZER_ERROR_NO_SERIALIZATION | 51 | 34

Unserializer.php で定義されている定数

表 62-2Constants defined in Unserializer.php

名前 | 値 | 行番号
XML_UNSERIALIZER_ERROR_NO_UNSERIALIZATION | 151 | 34

前のページ | ホーム | 次のページ
導入 | 上に戻る | XML_Serializer のクラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- XML_Serializer 導入

XML_Serializer 導入

XML_Serializer は配列やオブジェクトのような複雑なデータ構造を XML ドキュメントにシリアライズします。 このクラスは、DOM の必要なしに、あなたが必要とする XML ドキュメントを生成する手助けをします。

現時点で、XML_Serializer をアプリケーションで使用する 2つの方法があります:

  • 特定の XML アプリケーション (たとえば RDF) で XML 文章を生成するために XML_Serializer を関数的に使用する

  • あとでアンシリアライズすべく、 データ構造をシリアライズするために XML_Serializer を関数的に使用する。 これは、全ての XML 要素に型情報を与えることで可能となる。

このパッケージは、シリアライザクラスだけではなく、適応する XML_Unserializer も含んでいます。 これは、どのような XML ドキュメントも仮想的に読み込むことができ、 文章にストアされたデータを表す配列かオブジェクトを返します。

XML_Serializer のチュートリアル

XML_Serializer についてのいくつかのチュートリアルが利用可能です。 これは、あなたが使い始めることの手助けをします。

  • Harry Fuecks 氏による Instant XML with PHP and PEAR::XML_Serializer

  • Vikram Vaswani 氏による Serializing XML With PHP

  • cnb 氏による Create a RSS newsfeed with XML_Serializer

前のページ | ホーム | 次のページ
XML_Serializer | 上に戻る | XML_Serializer パッケージの定数

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Serializer のクラス概要

XML_Serializer のクラス概要 -- XML_Serializer - 様々な構成を XML 文章にシリアライズするクラス

XML_Serializer - 様々な構成を XML 文章にシリアライズするクラス

このクラスは、二つのモードで使用することができます:

  1. 他のアプリケーションで処理された配列やオブジェクトから XML ドキュメントを生成する

  2. あとでアンシリアライズ可能な様々なデータ構造をシリアライズするために、 このクラスを利用する。 XML_Serializer は、囲まれたタグの属性に 値の方や付加的なメタ情報をストアします。 このメタ情報のため、後に PHP においてオリジナルのデータ構造を リストアする事ができるようになります。

前のページ | ホーム | 次のページ
XML_Serializer パッケージの定数 | 上に戻る | コンストラクタ XML_Serializer::XML_Serializer()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Serializer::apiVersion

PEAR マニュアル
前のページ 次のページ

XML_Serializer::apiVersion()

XML_Serializer::apiVersion() -- API のバージョンを返す

概要

require_once 'Serializer.php';

string XML_Serializer::apiVersion ()

説明

このパッケージに関する文書は、未作成です。

返り値

returns API のバージョン

例外・エラー

throws 投げられる例外はありません。

static

static

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
コンストラクタ XML_Serializer::XML_Serializer() | 上に戻る | XML_Serializer::serialize()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


例

例 -- XML_Serializer の使用例

単純な XML ドキュメントの構築

この例では、returnResult オプションを使用することで、 serialize() メソッドからシリアライズ済み XML ドキュメントを直接返します。

この例では、次の 3 行に注目しましょう。

$serializer = &new XML_Serializer($options);
$foo = PEAR::raiseError('Just a test', 1234);
$result = $serializer->serialize($foo);
error_reporting(E_ALL);
require_once 'XML/Serializer.php';
$options = array(
  XML_SERIALIZER_OPTION_INDENT        => '    ',
  XML_SERIALIZER_OPTION_RETURN_RESULT => true
  );

$serializer = &new XML_Serializer($options);

$foo = PEAR::raiseError('Just a test', 1234);

$result = $serializer->serialize($foo);

echo '<pre>';
echo htmlspecialchars($result);
echo '</pre>';

そして、結果はこうなります。

<pear_error>
    <error_message_prefix />
    <mode>1</mode>
    <level>1024</level>
    <code>1234</code>
    <message>Just a test</message>
    <userinfo />
    <backtrace>
        <XML_Serializer_Tag>
            <file>pathToMypear\PEAR.php</file>
            <line>566</line>
            <function>pear_error</function>
            <class>pear_error</class>
            <type>-&gt;</type>
            <args>
                <XML_Serializer_Tag>Just a test</XML_Serializer_Tag>
                <XML_Serializer_Tag>1234</XML_Serializer_Tag>
                <XML_Serializer_Tag>1</XML_Serializer_Tag>
                <XML_Serializer_Tag>1024</XML_Serializer_Tag>
                <XML_Serializer_Tag />
            </args>
        </XML_Serializer_Tag>
        <XML_Serializer_Tag>
            <file>pathToMyDocRoot\cvs.php.net\pear\xml_serializer\examples\serializeandreturn.php</file>
            <line>19</line>
            <function>raiseerror</function>
            <class>pear</class>
            <type>::</type>
            <args>
                <XML_Serializer_Tag>Just a test</XML_Serializer_Tag>
                <XML_Serializer_Tag>1234</XML_Serializer_Tag>
            </args>
        </XML_Serializer_Tag>
    </backtrace>
    <callback />
</pear_error>

このソースコードの最新版が、パッケージ中に serializeAndReturn.php として含まれています。

RDF ドキュメントの構築

この例は、数行のコードで RDF ドキュメントを作成する方法を示します。 これは、mode => simplexml でも実行できます。

この例で注目すべき点は、次の 3 行です。

$serializer = new XML_Serializer($options);
    $result = $serializer->serialize($rdf);
    echo    htmlentities($serializer->getSerializedData());
/**
   * @see    serializeIndexedArray.php
   */
    error_reporting(E_ALL);

    require_once 'XML/Serializer.php';

    $options = array(
      "indent"          => "    ",
      "linebreak"       => "\n",
      "typeHints"       => false,
      "addDecl"         => true,
      "encoding"        => "UTF-8",
      "rootName"        => "rdf:RDF",
      "rootAttributes"  => array("version" => "0.91"),
      "defaultTagName"  => "item",
      "attributesArray" => "_attributes"
      );

    $serializer = new XML_Serializer($options);

    $rdf = array(
      "channel" => array(
        "title" => "Example RDF channel",
        "link"  => "http://www.php-tools.de",
        "image" => array(
          "title" => "Example image",
          "url"   => "http://www.php-tools.de/image.gif",
          "link"  => "http://www.php-tools.de"
          ),
        "_attributes" => array( "rdf:about" => "http://example.com/foobar.html" ),
        array(
          "title"       => "Example item",
          "link"	=> "http://example.com",
          "_attributes" => array( "rdf:about" => "http://example.com/foobar.html" )
          ),
        array(
          "title"	=> "Another item",
          "link"	=> "http://example.com",
          "_attributes" => array( "rdf:about" => "http://example.com/foobar.html" )
          ),
        array(
          "title"	=> "I think you get it...",
          "link"	=> "http://example.com",
          "_attributes" => array( "rdf:about" => "http://example.com/foobar.html" )
          )
        )
      );

    $result = $serializer->serialize($rdf);

    if( $result === true ) {
        echo    "<pre>";
        echo    htmlentities($serializer->getSerializedData());
        echo    "</pre>";
    }

結果はこうなります。

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF version="0.91">
    <channel rdf:about="http://example.com/foobar.html">
        <title>Example RDF channel</title>
        <link>http://www.php-tools.de</link>
        <image>
            <title>Example image</title>
            <url>http://www.php-tools.de/image.gif</url>
            <link>http://www.php-tools.de</link>
        </image>
        <item rdf:about="http://example.com/foobar.html">
            <title>Example item</title>
            <link>http://example.com</link>
        </item>
        <item rdf:about="http://example.com/foobar.html">
            <title>Another item</title>
            <link>http://example.com</link>
        </item>
        <item rdf:about="http://example.com/foobar.html">
            <title>I think you get it...</title>
            <link>http://example.com</link>
        </item>
    </channel>
</rdf:RDF>

このソースコードの最新版が、パッケージ中に serializeRDF.php として含まれています。

注意: RDF/RSS ドキュメントのパース (読み込み) 方法を知りたい場合は、 XML_RSS パッケージを参照ください。

DTD を使用した XML ドキュメントの構築

この例では、XML ドキュメントに DocType 宣言を追加する方法を示します。

この例では、次の 3 行に注目しましょう。

$serializer = new XML_Serializer($options);
    $result = $serializer->serialize($rdf);
    echo    htmlentities($serializer->getSerializedData());
error_reporting(E_ALL);

    require_once 'XML/Serializer.php';

    $options = array(
      "indent"     => "    ",
      "linebreak"  => "\n",
      "addDecl"    => true,
      "addDoctype" => true,
      "doctype"    => array(
        'uri' => 'http://pear.php.net/dtd/package-1.0',
        'id'  => '-//PHP//PEAR/DTD PACKAGE 0.1'
        )
      );

    $serializer = new XML_Serializer($options);

    $foo    =   PEAR::raiseError("Just a test", 1234);

    $result = $serializer->serialize($foo);

    if( $result === true ) {
        echo '<pre>';
        echo htmlentities($serializer->getSerializedData());
        echo '</pre>';
    }

結果はこのようになります。

<?xml version="1.0"?>
<!DOCTYPE pear_error PUBLIC "-//PHP//PEAR/DTD PACKAGE 0.1" "http://pear.php.net/dtd/package-1.0">
<pear_error>
    <error_message_prefix />
    <mode>1</mode>
    <level>1024</level>
    <code>1234</code>
    <message>Just a test</message>
    <userinfo />
    <backtrace>
        <XML_Serializer_Tag>
            <file>pathToMyPear\PEAR.php</file>
            <line>566</line>
            <function>pear_error</function>
            <class>pear_error</class>
            <type>-&gt;</type>
            <args>
                <XML_Serializer_Tag>Just a test</XML_Serializer_Tag>
                <XML_Serializer_Tag>1234</XML_Serializer_Tag>
                <XML_Serializer_Tag>1</XML_Serializer_Tag>
                <XML_Serializer_Tag>1024</XML_Serializer_Tag>
                <XML_Serializer_Tag />
            </args>
        </XML_Serializer_Tag>
        <XML_Serializer_Tag>
            <file>pathToMyDocumentRoot\cvs.php.net\pear\xml_serializer\examples\serializewithdtd.php</file>
            <line>24</line>
            <function>raiseerror</function>
            <class>pear</class>
            <type>::</type>
            <args>
                <XML_Serializer_Tag>Just a test</XML_Serializer_Tag>
                <XML_Serializer_Tag>1234</XML_Serializer_Tag>
            </args>
        </XML_Serializer_Tag>
    </backtrace>
    <callback />
</pear_error>

このソースコードの最新版が、パッケージ中に serializeWithDTD.php として含まれています。

前のページ | ホーム | 次のページ
XML_Serializer::setOption() | 上に戻る | XML_Unserializer クラス概要

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Serializer::getSerializedData

PEAR マニュアル
前のページ 次のページ

XML_Serializer::getSerializedData()

XML_Serializer::getSerializedData() -- シリアライズした結果を取得する

概要

require_once 'Serializer.php';

string XML_Serializer::getSerializedData ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_Serializer::serialize() | 上に戻る | XML_Serializer::resetOptions()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Serializer::resetOptions

PEAR マニュアル
前のページ 次のページ

XML_Serializer::resetOptions()

XML_Serializer::resetOptions() -- 全てのオプションをデフォルトオプションにリセットする

概要

require_once 'Serializer.php';

void XML_Serializer::resetOptions ()

説明

このパッケージに関する文書は、未作成です。

例外・エラー

throws 投げられる例外はありません。

参照

XML_Serializer::setOption(), XML_Unserializer() を参照して下さい。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_Serializer::getSerializedData() | 上に戻る | XML_Serializer::setOption()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Serializer::serialize

PEAR マニュアル
前のページ 次のページ

XML_Serializer::serialize()

XML_Serializer::serialize() -- データをシリアライズする

概要

require_once 'Serializer.php';

boolean XML_Serializer::serialize (mixed $data [, mixed $options = NULL])

説明

このパッケージに関する文書は、未作成です。

パラメータ

mixed $data

シリアライズするデータを指定します。

mixed $options

返り値

returns 成功すると true、失敗すると pear error を返します。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_Serializer::apiVersion() | 上に戻る | XML_Serializer::getSerializedData()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Serializer::setOption

PEAR マニュアル
前のページ 次のページ

XML_Serializer::setOption()

XML_Serializer::setOption() -- オプションをセットします

概要

require_once 'Serializer.php';

void XML_Serializer::setOption (mixed $name, mixed $value)

説明

もし、コンストラクタで全てのオプションをセットしたくない場合、 このメソッドを使うことができます。

パラメータ

mixed $name

mixed $value

例外・エラー

throws 投げられる例外はありません。

参照

resetOption(), XML_Serializer::XML_Serializer() を参照して下さい。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_Serializer::resetOptions() | 上に戻る | 例

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コンストラクタ XML_Serializer::XML_Serializer

PEAR マニュアル
前のページ 次のページ

コンストラクタ XML_Serializer::XML_Serializer()

コンストラクタ XML_Serializer::XML_Serializer() -- コンストラクタ

概要

require_once 'Serializer.php';

void constructor XML_Serializer::XML_Serializer ([mixed $options = NULL])

説明

このパッケージに関する文書は、未作成です。

パラメータ

mixed $options

シリアライズするためのオプションを含んだ配列を指定します。

例外・エラー

throws 投げられる例外はありません。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_Serializer のクラス概要 | 上に戻る | XML_Serializer::apiVersion()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Unserializer クラス概要

XML_Unserializer クラス概要 -- XML_Unserializer - XML ドキュメントをアンシリアライズ (読み込む) するためのクラス

XML_Unserializer - XML ドキュメントをアンシリアライズ (読み込む) するためのクラス

XML_Serializer で生成された XML 文章をアンシリアライズするためのクラスです。 XML 文章をアンシリアライズするために、 XML_Serializer のオプションに方ヒントを与える必要があります。

もし、何もヒントがない場合、 XML_Unserializer はタグがどの様に処理されたかを推測します。 その場合、複雑な構造は配列になり、CData のみのタグは文字列になります。

前のページ | ホーム | 次のページ
例 | 上に戻る | XML_Unserializer Options

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Unserializer::apiVersion

PEAR マニュアル
前のページ 次のページ

XML_Unserializer::apiVersion()

XML_Unserializer::apiVersion() -- API のバージョンを返す

概要

require_once 'Unserializer.php';

string XML_Unserializer::apiVersion ()

説明

XML_Unserializer の API バージョンを返します。 これは、必要な機能が存在するかどうかをチェックするのに有効です。

返り値

string API バージョン

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
XML_Unserializer::XML_Unserializer() | 上に戻る | XML_Unserializer::unserialize()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Unserializer::getRootName

PEAR マニュアル
前のページ 次のページ

XML_Unserializer::getRootName()

XML_Unserializer::getRootName() -- パースされた文章のルートタグの名前を取得する

概要

require_once 'Unserializer.php';

string XML_Unserializer::getRootName ()

説明

このメソッドは、ドキュメントがアンシリアライズされた後、 ルートタグの名前を返します。 これは、配列が返された場合に非常に便利です。 先に、 XML_Unserializer::unserialize() がコールされている必要があります。

返り値

string ルートタグの名前

例外・エラー

throws 文章がパースされていない場合、 PEAR_Error オブジェクト

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_Unserializer::getUnserializedData() | 上に戻る | XML_Unserializer::setOption()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Unserializer::getUnserializedData

PEAR マニュアル
前のページ 次のページ

XML_Unserializer::getUnserializedData()

XML_Unserializer::getUnserializedData() -- アンシリアライズした結果を取得する

概要

require_once 'Unserializer.php';

string XML_Unserializer::getUnserializedData ()

説明

このメソッドは、最後にアンシリアライズした結果を返します。 先に、 XML_Unserializer::unserialize() がコールされている必要があります。

返り値

mixed アンシリアライズした結果。 配列もしくはオブジェクトの場合もあります。

例外・エラー

throws 文章がパースされていない場合、PEAR_Error オブジェクト

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_Unserializer::unserialize() | 上に戻る | XML_Unserializer::getRootName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Unserializer Options

XML_Unserializer Options -- XML_Unserializer の全てのオプションのリスト

オプションの導入

オプションは、XML_Unserializer がパースされた XML をどの様に処理するか、 に影響します。 属性をパースすべきかどうか、複雑なデータ型を処理するために 連想配列もしくはオブジェクトのいずれを使用するか、などを定義します。

オプションは、 XML_Unserializer のコンストラクタ に連想配列として渡すことができます。 また、セットするために setOption() あるいは、 setOptions() を使用することもできます。

利用可能な全てのオプション

以下は、XML_Unserializer でサポートしている全てのオプションのリストです。

表 62-1XML_Unserializer options

オプション | 可能な値 | デフォルト | 詳細
complexType | 'array' または 'object' | 'array' | ネストしたタグが連想配列もしくはオブジェクトのいずれで返されるかを 定義します
tagAsClass | TRUE または FALSE | TRUE | complexType が 'object' に設定されている場合、 タグ名をクラス名として使用するかどうか、を定義します。 もし、タグの名前を持つクラスがない場合、 'defaultClass' によって定義されたクラスが使用されます。
defaultClass | 任意の文字列 | stdClass | complexType が 'object' に設定されている場合、 オブジェクトを生成するために使用されるクラスを定義します。
keyAttribute | 任意の文字列 または 配列 | '_originalKey' | もし、オプションで指定した属性がタグに存在していれば、 親オブジェクトもしくは配列でのキーもしくはプロパティ名に 使用されます。また、異なるタグに異なるキー属性を使用したい場合、 連想配列を指定することもできます。この場合、配列のキーは タグ名と属性名に一致する値を取ります。
typeAttribute | 任意の文字列 | '_type' | もし、この属性がタグに存在していれば、タグのコンテンツは指定した型に変換されます。可能な型は、string, integer, float, boolean, 配列もしくはオブジェクトです。
classAttribute | 任意の文字列 | '_class' | もし、XML_Unserializer がオブジェクトを生成する場合、タグがこのオプションで属性が指定されない限り、stdClassのインスタンスとなります。もし、セットされた場合、属性値としてストアされたクラス名が使用されます。
parseAttributes | TRUE または FALSE | FALSE | このオプションで、タグの属性もパースするかどうかを XML_Unserializer に指示することができます。 次の2つのオプションで、 パースされた属性をどの様に処理するかを定義します。
attributesArray | FALSE または任意の文字列 | FALSE | falseにセットされた場合、 属性はネストしたタグとして処理されます。 もし、文字列をセットした場合、新しい配列が生成され、 このオプションで指定したキーを使った親構造にストアされます。
prependAttributes | 任意の文字列 | '' | 属性名の接頭辞を指定します。
contentName | 任意の文字列 | '_content' | 属性や、cdata やタグを含むタグをパースする場合、 cdata はここで指定されたインデックスにストアされます。
tagMap | 連想配列 | array() | PHP クラスにタグ名をマップする事ができます。 タグ名はキーで、 値はそれぞれのタグで使用されるクラス名でなければなりません。
forceEnum | 順序付けされた配列 | array() | タグの反復数とは無関係に、順序づけされた配列に自動変換される タグのリストを指定することができます。これによりコード中の if 文を節約することができます。
encoding | 任意の有効なエンコーディング文字列 | null | オリジナル文章のエンコーディングを定義します。
targetEncoding | 任意の有効なエンコーディング文字列 | null | 結果データのエンコーディングを定義します。
decodeFunction | 任意の有効な PHP コールバック | null | このオプションを使用することで、結果にストアされる前に 文章の全ての文字データや属性に対して適用させるコールバック関数 またはメソッドを定義する事ができます。 これにより、XML 内のデータをデコードしたり、 全てのコンテンツを小文字に変換することができます。
returnResult | TRUE または FALSE | FALSE | TRUE の場合、文章がアンシリアライズ可能であれば XML_Unserializer::unserialize()() はただの TRUE の代わりに結果を返します。

オプションの例

以下の例は、XML_Unserializer でどの様にオプションをセットするか、 を示しています。

例 62-1コンストラクタの使用法

require_once "XML/Unserializer.php";
$options = array(
                    'complexType'       => 'array'
                );

$us = new XML_Unserializer($options);
$result = $us->unserialize('example.xml', true);

以下の例は、インスタンスがすでに生成されている場合、 XML_Unserializer でどの様にオプションをセットするか、 を示しています。

例 62-2setOption() と setOptions() の使用法

require_once "XML/Unserializer.php";
$us = new XML_Unserializer();
$options = array(
                    'tagMap'            => array( 'util' => 'XML_Util' ),
                    'classAttribute'    => '_classname'
                );

$us->setOptions($options);
$us->setOption('complexType', 'object');
$result = $us->unserialize('example.xml', true);
前のページ | ホーム | 次のページ
XML_Unserializer クラス概要 | 上に戻る | XML_Unserializer::XML_Unserializer()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Unserializer::resetOptions

PEAR マニュアル
前のページ 次のページ

XML_Unserializer::resetOptions()

XML_Unserializer::resetOptions() -- 全てのオプションをデフォルトオプションにリセットする

概要

require_once 'Unserializer.php';

void XML_Unserializer::resetOptions ()

説明

全ての XML_Unserializer オプションをデフォルトオプションにリセットします。

参照

オプションのセット方法については、 XML_Unserializer::setOption() と XML_Unserializer::XML_Unserializer() を参照してください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_Unserializer::setoptions() | 上に戻る | XML_sql2xml

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Unserializer::setOption

PEAR マニュアル
前のページ 次のページ

XML_Unserializer::setOption()

XML_Unserializer::setOption() -- オプションをセットする

概要

require_once 'Unserializer.php';

void XML_Unserializer::setOption (string $name, mixed $value)

説明

オプションは、XML_Unserializer の振る舞いに影響し、 XML_Unserializer の最も重要な部分です。

全てのオプションをコンストラクタでセットしたくない場合、 このメソッドを使用することができます。

パラメータ

  • string $option - オプション名を指定します。

  • mixed $value - オプションの値を指定します。

参照

XML_Unserializer::resetOptions() を参照してください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_Unserializer::getRootName() | 上に戻る | XML_Unserializer::setoptions()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Unserializer::setoptions

PEAR マニュアル
前のページ 次のページ

XML_Unserializer::setoptions()

XML_Unserializer::setoptions() -- いくつかのオプションをセットする

概要

require_once 'Unserializer.php';

void XML_Unserializer::setOptions (array $options)

説明

オプションは、XML_Unserializer の振る舞いに影響し、 XML_Unserializer の最も重要な部分です。

全てのオプションをコンストラクタでセットしたくない場合、 このメソッドを使用することができます。

パラメータ

  • array $options - 全てのオプションを含んだ連想配列を指定します。

参照

XML_Unserializer::resetOptions(), XML_Unserializer::setOption() を参照してください。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_Unserializer::setOption() | 上に戻る | XML_Unserializer::resetOptions()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Unserializer::unserialize

PEAR マニュアル
前のページ 次のページ

XML_Unserializer::unserialize()

XML_Unserializer::unserialize() -- データをアンシリアライズする

概要

require_once 'Unserializer.php';

boolean XML_Unserializer::unserialize (string $data [, boolean $isFile = FALSE [, array $options = NULL]])

説明

文字列もしくはファイルからの XML 文章をアンシリアライズします。

文章をアンシリアライズする方法は、コンストラクタや setOptions() でセットされたオプションに影響されます。

パラメータ

  • string $data - XML 文章のファイル名、もしくは XML 文章を含む文字列を指定します。

  • boolean $isFile - 最初のパラメータがファイル名 (TRUE) もしくは XML 文字列 (FALSE) かを指定します。

  • array $options - 以前にセットされたオプションを上書きするためのオプションを指定します。 このオプションは、このアンシリアライズ化のためのみに使用され、 以前にセットしたオプションをリセットします。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_Unserializer::apiVersion() | 上に戻る | XML_Unserializer::getUnserializedData()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Unserializer::XML_Unserializer

PEAR マニュアル
前のページ 次のページ

XML_Unserializer::XML_Unserializer()

XML_Unserializer::XML_Unserializer() -- XML_Unserializer のコンストラクタ

概要

require_once 'Unserializer.php';

XML_Unserializer::XML_Unserializer ([array $options = NULL])

説明

XML_Unserializer の新しいインスタンスを生成します。

パラメータ

  • array $options - インスタンスのためのオプションを指定します。 また、 XML_Unserializer::setOption() を使用してセットすることもできます。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_Unserializer Options | 上に戻る | XML_Unserializer::apiVersion()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_sql2xml

目次
導入 -- 簡単な変換
導入 -- データを変化させる
導入 -- XPath を用いる
XML_sql2xml::XML_sql2xml -- コンストラクタ
XML_sql2xml::add -- 新しいリザルトセットを追加するための一般メソッド
XML_sql2xml::addXmlFile -- XML ファイルを追加する
XML_sql2xml::addXmlString -- XML 文字列を追加する
XML_sql2xml::addResult -- PEAR::DB のリザルトセットを追加する
XML_sql2xml::addSql -- SQL ステートメントからリザルトセットへ追加する
XML_sql2xml::addArray -- 配列からリザルトセットへ追加する
XML_sql2xml::getXML -- リザルトセットを XML 表現で返す
XML_sql2xml::getXMLObject -- XML DOM 文書オブジェクトを返す
XML_sql2xml::setOptions -- インスタンスのオプションを設定する
XML_sql2xml::setEncoding -- 文字エンコードを設定する
XML_sql2xml::getXpathValue -- XPath 式にマッチしたものを返す
XML_sql2xml::getXpathChildValues -- XPath 式にマッチした子タグを返す

SQL クエリを XML 形式のリザルトセットへ変換します。

XML_sql2xml は既存のリザルトセットか SQL ステートメントを XML 形式に変換します。

前のページ | ホーム | 次のページ
XML_Unserializer::resetOptions() | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- データを変化させる

概要

データをオブジェクトへ変化させるには3つの方法があります。

  • 直接クエリを用いて

    先に はじめに にある導入を読んでおいてください。

  • 既存の DB_result オブジェクトを用いて

    もし貴方が PEAR::DB の全出力が可能であるか PEAR::MDB API が利用可能であるならば、こちらを選ぶべきです。

  • 配列を用いて

    これは SQL を直接 XML へ変換させるものではありません。 連想配列をインスタンスへ 渡した場合、配列のキーは XML のタグになり、配列の値はタグの内容に変換されます。 この特徴はデータを与えることで XML の結果を変化させることに役立つことです。

Direct query

これは DBMS に接続し、問い合わせと取得を自動的に行います。 XML_sql2xml は有効な DSN を コンストラクタ パラメータ に必要とします。 クエリは getXML() か add() メソッドに渡さなければなりません。

はじめに に導入例があるので見てださい。

DB_Result オブジェクトを渡す

PEAR::DB と PEAR::MDB は DB_result として リザルトセットを返します。 あなたは DB_common インスタンスを コンストラクタ に、 そして DB_result インスタンスを getXML() か add() に提供しなければなりません。

例 62-1DB_Result オブジェクトを渡す

<?php
require_once "XML/sql2xml.php";
require_once "DB.php";

$db = db::connect("mysql://username:password@localhost/xmltest");
$result = $db->query("select * from bands");

$sql2xmlclass = new xml_sql2xml($db);
$xmlstring = $sql2xmlclass->getxml($result);
?>

$xmlstring への XML 出力は、 "典型的な使用" の例と一緒です。

あなたがデータベース API すべての特徴の恩恵を受けたいのなら、この方法しかありません。

配列を渡す

あなたが入れ子状になった配列を getXML() か add() に渡せば、 XML ドキュメントに変換されます。

例 62-2配列を渡す

<?php
require_once "XML/sql2xml.php";

$sql2xmlclass = new xml_sql2xml();

$array = array (
            array("name"=>"The Blabbers",
                  "birth_year"=>"1998",
                  "birth_place"=>"London",
                  "genre"=>"Rock'n'Roll"),
            array("name"=>"Only Stupids",
                  "birth_year"=>"1997",
                  "birth_place"=>"New York",
                  "genre"=>"hiphop")
);

$xmlstring = $sql2xmlclass->getXML($array);
?>

$xmlstringに代入された XML の出力

<?xml version="1.0"?>
    <root>
        <result>
            <row>
                <name>The Blabbers</name>
                <birth_year>1998</birth_year>
                <birth_place>London</birth_place>
                <genre>Rock'n'Roll</genre>
            </row>
            <row>
                <name>Only Stupids</name>
                <birth_year>1997</birth_year>
                <birth_place>New York</birth_place>
                <genre>hiphop</genre>
            </row>
        </result>
    </root>

もう一組のリザルトセットを渡す

add() をコールすることで数個のリザルトセットを XML ドキュメントに追加することができます。 あらゆるリザルトセットにこのメソッドをコールし、すべてのリザルトセットを加えたなら、 XML 文書を得るために 引数なしで getXml() をコールしてください。

例 62-3Adding result sets

$sql2xmlclass->add("select * from bands");
$sql2xmlclass->add("select * from albums");
$xmlstring= $sql2xmlclass->getxml();
前のページ | ホーム | 次のページ
導入 | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- 簡単な変換

データベースの例

このチュートリアルで、 例として使われるデータベーステーブルです。
mysql> select * from bands;
+----+--------------+------------+-------------+-------------+
| id | name         | birth_year | birth_place | genre       |
+----+--------------+------------+-------------+-------------+
|  1 | The Blabbers |       1998 | London      | Rock'n'Roll |
|  2 | Only Stupids |       1997 | New York    | Hip Hop     |
+----+--------------+------------+-------------+-------------+

mysql> select * from albums;
+----+---------+------------------+------+-----------------+
| id | bandsID | title            | year | comment         |
+----+---------+------------------+------+-----------------+
|  1 |       1 | BlaBla           | 1998 | Their first one |
|  2 |       1 | More Talks       | 2000 | The second one  |
|  3 |       2 | All your base... | 1999 | The Classic     |
+----+---------+------------------+------+-----------------+

典型的な使用

デフォルトオプションを使用する例から始めましょう。 新しいインスタンスが DSN と結びつけるので、あなたは SQL クエリを投げるだけでよいです。 インスタンスは自動的に結果を取得し、リザルトセットの XML 表現にしたものを $xmlstring に代入します。

例 62-1もっとも典型的な例

<?php
require_once "XML/sql2xml.php";
$sql2xmlclass = new xml_sql2xml("mysql://username:password@localhost/xmltest");
$xmlstring = $sql2xmlclass->getxml("select * from bands");
?>

データベーステーブルに基づく $xmlstring の内容は下記の通りです。

<?xml version="1.0"?>
    <root>
        <result>
            <row>
                <id>1</id>
                <name>The Blabbers</name>
                <birth_year>1998</birth_year>
                <birth_place>London</birth_place>
                <genre>Rock'n'Roll</genre>
            </row>
            <row>
                <id>2</id>
                <name>Only Stupids</name>
                <birth_year>1997</birth_year>
                <birth_place>New York</birth_place>
                <genre>Hip Hop</genre>
            </row>
        </result>
    </root>

結合クエリに基づいて変換

もしクエリの結果が結合されたテーブルならば、 XML データ構造は入れ子になり DBMS がどのようにテーブルを結合したかを表します。 この振る舞いは setOptions() のオプションキー 'nested' を使って有効にしたり無効にしたりできます。 デフォルトの値は TRUE - 入れ子は有効。

例 62-2入れ子状になったリザルトセット

<?php
$sql2xmlclass = new xml_sql2xml("mysql://username:password@localhost/xmltest");
$xmlstring = $sql2xmlclass->getxml("select * from bands left join albums on bands.id = bandsID");
?>

$xmlstring に生成された XML

<?xml version="1.0"?>
    <root>
        <result>
            <row>
                <id>1</id>
                <name>The Blabbers</name>
                <birth_year>1998</birth_year>
                <birth_place>London</birth_place>
                <genre>Rock'n'Roll</genre>
                <row>
                    <id>1</id>
                    <bandsID>1</bandsID>
                    <title>BlaBla</title>
                    <year>1998</year>
                    <comment>Their first one</comment>
                </row>
                <row>
                    <id>2</id>
                    <bandsID>1</bandsID>
                    <title>More Talks</title>
                    <year>2000</year>
                    <comment>The second one</comment>
                </row>
            </row>
            <row>
                <id>2</id>
                <name>Only Stupids</name>
                <birth_year>1997</birth_year>
                <birth_place>New York</birth_place>
                <genre>Hip Hop</genre>
                <row>
                    <id>3</id>
                    <bandsID>2</bandsID>
                    <title>All your base...</title>
                    <year>1999</year>
                    <comment>The Classic</comment>
                </row>
            </row>
        </result>
    </root>

もし入れ子を無効にした場合、 XML 構造の列は平坦になります。

例 62-3入れ子状になっていないリザルトセット

<?php
$sql2xmlclass = new xml_sql2xml("mysql://username:password@localhost/xmltest");
$options      = array('nested' => false);
$sql2xmlclass->setOptions($options);
$xmlstring    = $sql2xmlclass->getxml("select * from bands left join albums on bands.id = bandsID");
?>

XML 出力

$xmlstring =>

<?xml version="1.0"?>
    <root>
        <result>
            <row>
                <id>1</id>
                <name>The Blabbers</name>
                <birth_year>1998</birth_year>
                <birth_place>London</birth_place>
                <genre>Rock'n'Roll</genre>
                <id>1</id>
                <bandsID>1</bandsID>
                <title>BlaBla</title>
                <year>1998</year>
                <comment>Their first one</comment>
            </row>
            <row>
                <id>1</id>
                <name>The Blabbers</name>
                <birth_year>1998</birth_year>
                <birth_place>London</birth_place>
                <genre>Rock'n'Roll</genre>
                <id>2</id>
                <bandsID>1</bandsID>
                <title>More Talks</title>
                <year>2000</year>
                <comment>The second one</comment>
            </row>
            <row>
                <id>2</id>
                <name>Only Stupids</name>
                <birth_year>1997</birth_year>
                <birth_place>New York</birth_place>
                <genre>Hip Hop</genre>
                <id>3</id>
                <bandsID>2</bandsID>
                <title>All your base...</title>
                <year>1999</year>
                <comment>The Classic</comment>
            </row>
        </result>
    </root>
前のページ | ホーム | 次のページ
XML_sql2xml | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- XPath を用いる

何故 XPath サポート ?

XPath サポートは SQL に問い合わせた後のリザルトセットに対してアクセスするために 導入されました。これはデータベースへリザルトセットを再び問い合わせすることなく より一層の処理を可能にします。

XPath は W3 規格です、そしてそれに対する詳細な情報については、 XSL/XML の本 もしくは、 http://www.w3.org/ を訪ねてください。

XPath の式を渡す

XML_sql2xml はリザルトセットの問い合わせについて2つの関数を提供します。 getXpathValue() と getXpathChildValues()。 両方とも XPath クエリによって、配列もしくは文字列の結果を返します。

例 62-1getXpathValue

<?php
include_once("XML/sql2xml.php");
$sql2xmlclass = new xml_sql2xml("mysql://username:password@localhost/xmltest");
$sql2xmlclass->add("select * from bands");
$xmlstring  = $sql2xmlclass->getXpathValue("/root/result/row[id = '2']/name");
?>

$xmlstring contains:

$xmlstring = 'Only Stupids'

例 62-2getXpathChildValues

<?php
include_once("XML/sql2xml.php");
$sql2xmlclass = new xml_sql2xml("mysql://username:password@localhost/xmltest");
$sql2xmlclass->add("select * from bands");
$xmlstring  = $sql2xmlclass->getXpathChildValues("/root/result/row[id = '2']");
?>

$xmlstring contains:

Array
(
    [] =>
    [id] => 2
    [name] => Only Stupids
    [birth_year] => 1997
    [birth_place] => New York
    [genre] => Hip Hop
)

XPath クエリと SQL の混合

SQL クエリに XPath クエリを挿入することができます。例では先に SQL クエリが終了し、 再度第2の SQL クエリが実行されます、しかし bandsID の パラメータは XPath 式の波括弧から取得される。この表現では 最初 の SQL クエリのリザルトセットで処理されます。

例 62-3混合したクエリ

<?php
include_once("XML/sql2xml.php");
$sql2xmlclass = new xml_sql2xml("mysql://username:password@localhost/xmltest");
$sql2xmlclass->add("select * from bands");
$sql2xmlclass->add("select * from albums where bandsID = {/root/result/row[name = 'The Blabbers']/id}");
$xmlstring = $sql2xmlclass->getxml();
?>
$xmlstring = '

<?xml version="1.0"?>
    <root>
        <result>
            <row>
                <id>1</id>
                <name>The Blabbers</name>
                <birth_year>1998</birth_year>
                <birth_place>London</birth_place>
                <genre>Rock'n'Roll</genre>
            </row>
            <row>
                <id>2</id>
                <name>Only Stupids</name>
                <birth_year>1997</birth_year>
                <birth_place>New York</birth_place>
                <genre>Hip Hop</genre>
            </row>
        </result>
        <result>
            <row>
                <id>1</id>
                <bandsID>1</bandsID>
                <title>BlaBla</title>
                <year>1998</year>
                <comment>Their first one</comment>
            </row>
            <row>
                <id>2</id>
                <bandsID>1</bandsID>
                <title>More Talks</title>
                <year>2000</year>
                <comment>The second one</comment>
            </row>
        </result>
    </root>
前のページ | ホーム | 次のページ
導入 | 上に戻る | XML_sql2xml::XML_sql2xml

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_sql2xml::add

XML_sql2xml::add -- 新しいリザルトセットを追加するための一般メソッド

概要

require_once "XML/sql2xml.php";

void XML_sql2xml::add (string $resultset [, mixed $params = NULL])

説明

オブジェクトに新しいリザルトセットを追加するための一般メソッドです。 インプットパラメータとして SQL ステートメント、 PEAR::DB_result オブジェクトまたは配列を与えると、 このメソッドは適切な入力のためのメソッドをコールします。

パラメータ

  • string $resultset - SQL ステートメント、 DB_result オブジェクトまたは配列

  • mixed $params - parameters for the following functions

注意

この関数は、スタティックにコールする ことはできません。

参照

XML_sql2xml::addResult(),

XML_sql2xml::addSql(),

XML_sql2xml::addArray(),

XML_sql2xml::addXmlFile()

例

例 62-1Using add()

$sql2xml->Add("select * from bands");
前のページ | ホーム | 次のページ
XML_sql2xml::XML_sql2xml | 上に戻る | XML_sql2xml::addXmlFile

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_sql2xml::addArray

XML_sql2xml::addArray -- 配列からリザルトセットへ追加する

概要

require_once "XML/sql2xml.php";

void XML_sql2xml::addArray (array $array)

説明

配列から生成した付加をリザルトセットへ追加します。 XML は配列の入れ子を表現します。

パラメータ

  • array $array - データ配列

注意

この関数は、スタティックにコールする ことはできません。

参照

XML_sql2xml::add()

前のページ | ホーム | 次のページ
XML_sql2xml::addSql | 上に戻る | XML_sql2xml::getXML

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_sql2xml::addResult

XML_sql2xml::addResult -- PEAR::DB のリザルトセットを追加する

概要

require_once "XML/sql2xml.php";

void XML_sql2xml::addResult (Object $result)

説明

PEAR::DB_result のリザルトセットを追加する

パラメータ

  • Object $result - DB_result オブジェクト

注意

この関数は、スタティックにコールする ことはできません。

参照

XML_sql2xml::add()

前のページ | ホーム | 次のページ
XML_sql2xml::addXmlString | 上に戻る | XML_sql2xml::addSql

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_sql2xml::addSql

XML_sql2xml::addSql -- SQL ステートメントからリザルトセットへ追加する

概要

require_once "XML/sql2xml.php";

void XML_sql2xml::addSql (string $sql)

説明

SQL ステートメントから生成されたリザルトセットを追加します。 この機能はステートメントを実行し XML に変換します。 あなたは DSN を コンストラクタに渡さなければならない。

パラメータ

  • string $sql - SQL ステートメントを含む文字列

注意

この関数は、スタティックにコールする ことはできません。

参照

XML_sql2xml::XML_sql2xml(), XML_sql2xml::add()

前のページ | ホーム | 次のページ
XML_sql2xml::addResult | 上に戻る | XML_sql2xml::addArray

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_sql2xml::addXmlFile

XML_sql2xml::addXmlFile -- XML ファイルを追加する

概要

require_once "XML/sql2xml.php";

void XML_sql2xml::addXmlFile (string $file [, mixed $xpath = NULL])

説明

正常なリザルトセットと同レベルの XML ファイルの内容を加える (それは <root> 直下になります)

パラメータ

  • string $file - ファイル名

  • mixed $xpath - either a string with the XPath expression or an array with the keys "xpath"=>XPath expression and "root"=>tag/subtag/etc, which are the tags to be inserted before the result.

注意

この関数は、スタティックにコールする ことはできません。

参照

XML_sql2xml::add()

前のページ | ホーム | 次のページ
XML_sql2xml::add | 上に戻る | XML_sql2xml::addXmlString

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_sql2xml::addXmlString

XML_sql2xml::addXmlString -- XML 文字列を追加する

概要

require_once "XML/sql2xml.php";

void XML_sql2xml::addXmlString (string $string [, mixed $xpath = NULL])

説明

正常なリザルトセットと同レベルの XML 文字列の内容を加える (それは <root> 直下になります)

パラメータ

  • string $string - XML 文字列

  • mixed $xpath - either a string with the XPath expression or an array with the keys "xpath"=>XPath expression and "root"=>tag/subtag/etc, which are the tags to be inserted before the result.

注意

この関数は、スタティックにコールする ことはできません。

参照

XML_sql2xml::add()

前のページ | ホーム | 次のページ
XML_sql2xml::addXmlFile | 上に戻る | XML_sql2xml::addResult

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_sql2xml::getXML

XML_sql2xml::getXML -- リザルトセットを XML 表現で返す

概要

require_once "XML/sql2xml.php";

string XML_sql2xml::getXML ([mixed $result = NULL])

説明

リザルトセットを XML 表記にした XML 文字列を返します。 直接ここにリザルトセットを提供するか、または一つ以上の XML を必要とするならば、 getXML() をコールする前にそれぞれ add() に提供しなければなりません、しかし最後に一つはまたここに提供することができます。

パラメータ

  • mixed $result - DB もしくは SQL クエリの DB_result オブジェクト

返り値

string - XML 文字列

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_sql2xml::addArray | 上に戻る | XML_sql2xml::getXMLObject

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_sql2xml::getXMLObject

XML_sql2xml::getXMLObject -- XML DOM 文書オブジェクトを返す

概要

require_once "XML/sql2xml.php";

Object XML_sql2xml::getXMLObject ([mixed $result = NULL])

説明

Returns an XML DomDocument object with a XML representation of the result sets. The result set can be directly provided here, or if you need more than one in your XML, then you have to provide each of them with add() before you call getXMLObject(), but the last one can also be provided here.

パラメータ

  • mixed $result - a DB_result object from a DB query

返り値

Object - DomDocument object

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_sql2xml::getXML | 上に戻る | XML_sql2xml::setOptions

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_sql2xml::getXpathChildValues

XML_sql2xml::getXpathChildValues -- XPath 式にマッチした子タグを返す

概要

require_once "XML/sql2xml.php";

array XML_sql2xml::getXpathChildValues (string $expr)

説明

XPath で最初にマッチした子タグの値を返します。

パラメータ

  • string $expr - XPath 式

返り値

array - 子タグの内容 子タグ名はキーとなり、内容は値に入ります。

注意

この関数は、スタティックにコールする ことはできません。

参照

XML_sql2xml::getXpathValue()

前のページ | ホーム | 次のページ
XML_sql2xml::getXpathValue | 上に戻る | XML_Statistics

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_sql2xml::getXpathValue

XML_sql2xml::getXpathValue -- XPath 式にマッチしたものを返す

概要

require_once "XML/sql2xml.php";

mixed XML_sql2xml::getXpathValue (string $expr)

説明

XPath 式に最初にマッチした内容を返します。

パラメータ

  • string $expr - XPath 式

返り値

mixed - 評価された XPath 式の内容

注意

この関数は、スタティックにコールする ことはできません。

参照

XML_sql2xml::getXpathChildValues()

前のページ | ホーム | 次のページ
XML_sql2xml::setEncoding | 上に戻る | XML_sql2xml::getXpathChildValues

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_sql2xml::setEncoding

XML_sql2xml::setEncoding -- 文字エンコードを設定する

概要

require_once "XML/sql2xml.php";

void XML_sql2xml::setEncoding ([string $encoding_from="ISO-8859-1" [, string $encoding_to="UTF-8"]])

説明

db2xml 変換のためのエンコードを設定する。 $encoding_from の値はあなたの データベースシステムによります。 リザルトセットに伝えるためにあなたのシステムが使えるエンコードを DBMS のマニュアルでチェックしてください。

$encoding_to には生成される XML 文書の文字列を設定します

パラメータ

  • string $encoding_from - 元となるエンコード

  • string $encoding_to - 変換したいエンコード

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_sql2xml::setOptions | 上に戻る | XML_sql2xml::getXpathValue

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_sql2xml::setOptions

XML_sql2xml::setOptions -- インスタンスのオプションを設定する

概要

require_once "XML/sql2xml.php";

void XML_sql2xml::setOptions (array $options [, constant $delete=FALSE])

説明

クラスインスタンスのオプションを設定するメソッドです。

パラメータ

  • array $options - オプションの配列。 配列のキーは設定するオプションを定義します。 利用できるオプションは次の通りです。

    • boolean $options['nested'] - TRUE の時は結合クエリが入れ子状になって出力されます。 デフォルトの値は FALSE です。

    • boolean $options['tagNameRow'] - 列のタグ名。デフォルトは >row<

    • boolean $options['tagNameResult'] - リザルトセットのタグ名。デフォルトは >result<

  • constant $delete - the old sub options should be deleted

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_sql2xml::getXMLObject | 上に戻る | XML_sql2xml::setEncoding

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_sql2xml::XML_sql2xml

XML_sql2xml::XML_sql2xml -- コンストラクタ

概要

require_once "XML/sql2xml.php";

void XML_sql2xml::XML_sql2xml ([mixed $dsn = NULL [, string $root="root"]])

説明

コンストラクタは Pear::DB の データソース名 (DSN) から データベースに接続することができ、もしくは、もし以前既にデータベースに接続したのであれば Pear::DB オブジェクトハンドルを受け取ることができます。 SQL 文字列を提供するものは動きません。

もし DSN だけを提供するなら、あなたは後で DB_result 、 SQL ステートメントまたは配列を add しなければなりません。

あなたがもし <root> 以外のルートタグ名を使いたいの時に、 $root パラメータを使用します。 もしあなたが空の文字列 ("") を与え、リザルトセット、配列もしくは SQL ステートメントが 加えられているときだけ、ルートタグは生成されません。 そしてリザルトセットの最初のタグがルートタグとして使われます。

パラメータ

  • mixed $dsn - PEAR::DB "データソース名" または DB_common オブジェクト

  • string $root - XML root要素の名前

注意

この関数は、スタティックにコールする ことができます。

参照

XML_sql2xml::add()

例

例 62-1Using XML_sql2xml()

$sql2xml = new xml_sql2xml("mysql://root@localhost/xmltest");
$sql2xml->Add("select * from bands");
前のページ | ホーム | 次のページ
導入 | 上に戻る | XML_sql2xml::add

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Statistics

目次
導入 -- XML_Statisticsの導入
例 -- XML_Statistics の使用例
XML_Statistics::apiVersion() -- APIのバージョンを返す
XML_Statistics::analyzeFile() -- XMLファイルを分析する
XML_Statistics::analyzeString() -- XML文字列の分析をする
XML_Statistics::countTag() -- タグの出現数をカウントする
XML_Statistics::countTagsInDepth() -- ある深さのタグをカウントする
XML_Statistics::countPI() -- processing instructionの出現数をカウントする
XML_Statistics::countExternalEntity() -- 外部エンティティの出現数をカウントする
XML_Statistics::getMaxDepth() -- ネストレベルの最大数を得る
XML_Statistics::countAttribute() -- 属性 (attribute) の出現数をカウントする
XML_Statistics::countDataChunks() -- データブロックの出現数をカウントする
XML_Statistics::getCDataLength() -- すべてのCDataセクションを合わせた長さを得る

統計的にXML文書を分析するパッケージです。

前のページ | ホーム | 次のページ
XML_sql2xml::getXpathChildValues | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


例

例 -- XML_Statistics の使用例

使用例

以下の例は、XML_Statistics で文書を分析する方法を示したものです。

例 62-1Basic example

require_once "XML/Statistics.php";
$stat = new XML_Statistics(array("ignoreWhitespace" => true));
$result = $stat->analyzeFile("example.xml");

if ($stat->isError($result)) {
    die("Error: " . $result->getMessage());
}

// タグの合計:
echo "Total tags: " . $stat->countTag() . "<br />";

// すべてのタグの中で'title'属性をもつタグの合計
echo "Occurences of attribute title: " . $stat->countAttribute("title") . "<br />";

// <section>タグだけの中で'title' 属性をカウントする
echo "Occurences of attribute title in tag section: " . $stat->countAttribute("title", "section") . "<br />";

// 4番目の階層のタグをカウントする
echo "Amount of Tags in depth 4: " . $stat->countTagsInDepth(4) . "<br />";

echo "Occurences of PHP Blocks: " . $stat->countPI("PHP") . "<br />";

echo "Occurences of external entity 'bar': " . $stat->countExternalEntity("bar") . "<br />";

echo "Data chunks: " . $stat->countDataChunks() . "<br />";

echo "Length of all data chunks: " . $stat->getCDataLength() . "<br />";
前のページ | ホーム | 次のページ
導入 | 上に戻る | XML_Statistics::apiVersion()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- XML_Statisticsの導入

XML_Statisticsの導入

XML_Statisticsはファイルや文字列のXML文書の分析を可能にするパッケージです。

XML_Statisticsはタグ、属性、processing instructions、外部エンティティ、cdataブロック をカウントすることができます。さらに特定の階層や特定のタグの属性だけを カウントすることのできるフィルターを適用することができます。

前のページ | ホーム | 次のページ
XML_Statistics | 上に戻る | 例

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Statistics::analyzeFile

PEAR マニュアル
前のページ 次のページ

XML_Statistics::analyzeFile()

XML_Statistics::analyzeFile() -- XMLファイルを分析する

概要

require_once 'XML/Statistics.php';

string XML_Statistics::analyzeFile (string $filename)

説明

XMLを文書をファイルから読み込んで分析します。統計的な情報を取り出す前に、 文書の分析をしなければなりません。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

参照

XML_Statistics::analyzeString()

前のページ | ホーム | 次のページ
XML_Statistics::apiVersion() | 上に戻る | XML_Statistics::analyzeString()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Statistics::analyzeString

PEAR マニュアル
前のページ 次のページ

XML_Statistics::analyzeString()

XML_Statistics::analyzeString() -- XML文字列の分析をする

概要

require_once 'XML/Statistics.php';

string XML_Statistics::analyzeString (string $string)

説明

文字列をそのままXML文書として分析します。 他のアプリケーションで作成中のXML文書を分析する場合に役に立ちます。 統計的な情報を取り出す前に、文書の分析をしなければなりません。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

参照

XML_Statistics::analyzeFile()

前のページ | ホーム | 次のページ
XML_Statistics::analyzeFile() | 上に戻る | XML_Statistics::countTag()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Statistics::apiVersion

PEAR マニュアル
前のページ 次のページ

XML_Statistics::apiVersion()

XML_Statistics::apiVersion() -- APIのバージョンを返す

概要

require_once 'XML/Statistics.php';

string XML_Statistics::apiVersion ()

説明

XML_StatisticsのAPIバージョンを返します。

返り値

string API version

注意

この関数は、スタティックにコールする ことができます。

前のページ | ホーム | 次のページ
例 | 上に戻る | XML_Statistics::analyzeFile()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Statistics::countAttribute

PEAR マニュアル
前のページ 次のページ

XML_Statistics::countAttribute()

XML_Statistics::countAttribute() -- 属性 (attribute) の出現数をカウントする

概要

require_once 'XML/Statistics.php';

integer XML_Statistics::countAttribute ([string $attribute = null [, string $tagname = null]])

説明

ドキュメントの中である属性がどれだけ用いられたかをカウントします。 属性が指定されなかった場合は全体のタグの数をカウントします。

2番目の引数で特定のタグのみを検索するように制限します。

パラメータ

  • string $attribute - もし属性の名前を取らなければ、すべての要素がカウントされます。

  • string $tagname - 特定のタグに検索を制限します。

返り値

integer 属性の出現数、あるいは属性が見つからなかった場合に PEAR_Error を返します。

注意

この関数は、スタティックにコールする ことはできません。

参照

XML_Statistics::countTag()

前のページ | ホーム | 次のページ
XML_Statistics::getMaxDepth() | 上に戻る | XML_Statistics::countDataChunks()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Statistics::countDataChunks

PEAR マニュアル
前のページ 次のページ

XML_Statistics::countDataChunks()

XML_Statistics::countDataChunks() -- データブロックの出現数をカウントする

概要

require_once 'XML/Statistics.php';

integer XML_Statistics::countDataChunks ()

説明

'ignoreWhitespace'オプションの影響を受けます。さらに、パーサが改行や内部エンティティ（internal entity） をみつけたときに、新しいチャンクがカウントされます。

パラメータ

このメソッドは引数をとりません。

返り値

integer 文書のデータチャンクの数

注意

この関数は、スタティックにコールする ことはできません。

参照

XML_Statistics::getCDataLength()

前のページ | ホーム | 次のページ
XML_Statistics::countAttribute() | 上に戻る | XML_Statistics::getCDataLength()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Statistics::countExternalEntity

PEAR マニュアル
前のページ 次のページ

XML_Statistics::countExternalEntity()

XML_Statistics::countExternalEntity() -- 外部エンティティの出現数をカウントする

概要

require_once 'XML/Statistics.php';

integer XML_Statistics::countExternalEntity ([string $name = null])

説明

ある外部エンティティが文書の中でどれだけ使用されたかをカウントします。名前が指定されなければ、外部エンティティのすべての数がカウントされます。

パラメータ

  • string $name - '&' と ';'をのぞく外部エンティティの名前

返り値

integer 外部エンティティの出現数

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_Statistics::countPI() | 上に戻る | XML_Statistics::getMaxDepth()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Statistics::countPI

PEAR マニュアル
前のページ 次のページ

XML_Statistics::countPI()

XML_Statistics::countPI() -- processing instructionの出現数をカウントする

概要

require_once 'XML/Statistics.php';

integer XML_Statistics::countPI ([string $target = null])

説明

あるprocessing instruction (e.g. <?PHP)が文書中にどれだけあるかをカウントします。ターゲットはprocessing instructionの"言語"です。名前を指定するだけで、クエスチョンマークは必要ありません。もしターゲットが指定されなければ、 processing instruction全体の数がカウントされます。

パラメータ

  • string $target - processing instructionのターゲット

返り値

integer processing instructionの出現数

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_Statistics::countTagsInDepth() | 上に戻る | XML_Statistics::countExternalEntity()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Statistics::countTag

PEAR マニュアル
前のページ 次のページ

XML_Statistics::countTag()

XML_Statistics::countTag() -- タグの出現数をカウントする

概要

require_once 'XML/Statistics.php';

integer XML_Statistics::countTag ([string $tagname = null])

説明

文書の中であるタグがどれだけ使用されているかをカウントします。タグの名前が指定されなければ、すべてのタグの数がカウントされます。

パラメータ

  • string $tagname - カウントするタグの名前

返り値

integer タグの出現数

注意

この関数は、スタティックにコールする ことはできません。

参照

XML_Statistics::countTagsInDepth(), XML_Statistics::countAttribute()

前のページ | ホーム | 次のページ
XML_Statistics::analyzeString() | 上に戻る | XML_Statistics::countTagsInDepth()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Statistics::countTagsInDepth

PEAR マニュアル
前のページ 次のページ

XML_Statistics::countTagsInDepth()

XML_Statistics::countTagsInDepth() -- ある深さのタグをカウントする

概要

require_once 'XML/Statistics.php';

integer XML_Statistics::counttagsindepth (integer $depth)

説明

タグをネストすることによって深さができます。ルートタグは0の深さです。 ある深さのタグの数をカウントすることでXML文書にあるrecordsetの数をカウントすることができます。

パラメータ

  • integer $depth - タグの深さ (ルートタグが0です)

返り値

integer この深さのタグの数

注意

この関数は、スタティックにコールする ことはできません。

参照

XML_Statistics::countTag()

前のページ | ホーム | 次のページ
XML_Statistics::countTag() | 上に戻る | XML_Statistics::countPI()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Statistics::getCDataLength

PEAR マニュアル
前のページ 次のページ

XML_Statistics::getCDataLength()

XML_Statistics::getCDataLength() -- すべてのCDataセクションを合わせた長さを得る

概要

require_once 'XML/Statistics.php';

integer XML_Statistics::getCDataLength ()

説明

タグの間に文字がどれだけあるかを知らなければならないとき、このメソッドで取得します。

パラメータ

このメソッドは引数をとりません。

返り値

integer XML文書にあるすべてのCData blocksの長さ

注意

この関数は、スタティックにコールする ことはできません。

参照

XML_Statistics::countDataChunks()

前のページ | ホーム | 次のページ
XML_Statistics::countDataChunks() | 上に戻る | XML_Transformer

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Statistics::getMaxDepth

PEAR マニュアル
前のページ 次のページ

XML_Statistics::getMaxDepth()

XML_Statistics::getMaxDepth() -- ネストレベルの最大数を得る

概要

require_once 'XML/Statistics.php';

integer XML_Statistics::getMaxDepth ()

説明

ネストされたレベルで文書のタグの最大の深さを知ることができます。

パラメータ

このメソッドは引数をとりません。

返り値

integer ネストレベルの最大数

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_Statistics::countExternalEntity() | 上に戻る | XML_Statistics::countAttribute()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Transformer

目次
Introduction -- Introduction to XML_Transformer
XML_Transformer::XML_Transformer --
XML_Transformer::overloadElement --
XML_Transformer::overloadNamespace --
XML_Transformer::isOverloadedElement --
XML_Transformer::isOverloadedNamespace --
XML_Transformer::unOverloadElement --
XML_Transformer::unOverloadNamespace --
XML_Transformer::start --
XML_Transformer::transform --
XML_Transformer::setCaseFolding --
XML_Transformer::setDebug --
XML_Transformer::setDebug --
XML_Transformer::stackdump --
XML_Transformer::attributesToString --
XML_Transformer::canonicalize --

XML Transformations in PHP.

前のページ | ホーム | 次のページ
XML_Statistics::getCDataLength() | 上に戻る | Introduction

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction

Introduction -- Introduction to XML_Transformer

Introduction to XML_Transformer

With the XML Transformer class one can easily bind PHP functionality to XML tags, thus transforming the input XML tree into an output XML tree without the need for XSLT. Single XML elements can be overloaded with PHP functions, methods and static method calls, XML namespaces can be registered to be handled by PHP classes.

前のページ | ホーム | 次のページ
XML_Transformer | 上に戻る | XML_Transformer::XML_Transformer

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Transformer::attributesToString

XML_Transformer::attributesToString --

概要

string XML_Transformer::attributesToString (array attributes)

説明

Returns string representation of attributes array.

前のページ | ホーム | 次のページ
XML_Transformer::stackdump | 上に戻る | XML_Transformer::canonicalize

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Transformer::canonicalize

XML_Transformer::canonicalize --

概要

mixed XML_Transformer::canonicalName (mixed target)

説明

Canonicalizes XML attribute arrays and element names.

前のページ | ホーム | 次のページ
XML_Transformer::attributesToString | 上に戻る | XML_Tree

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Transformer::isOverloadedElement

XML_Transformer::isOverloadedElement --

概要

boolean XML_Transformer::isOverloadedElement (string element)

説明

Returns TRUE if the given element is overloaded, FALSE otherwise.

前のページ | ホーム | 次のページ
XML_Transformer::overloadNamespace | 上に戻る | XML_Transformer::isOverloadedNamespace

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Transformer::isOverloadedNamespace

XML_Transformer::isOverloadedNamespace --

概要

boolean XML_Transformer::isOverloadedNamespace (string namespacePrefix)

説明

Returns TRUE if the given namespace is overloaded, FALSE otherwise.

前のページ | ホーム | 次のページ
XML_Transformer::isOverloadedElement | 上に戻る | XML_Transformer::unOverloadElement

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Transformer::overloadElement

XML_Transformer::overloadElement --

概要

void XML_Transformer::overloadElement (string element, string startHandler, string endHandler, boolean recursiveOperation)

説明

Overloads an XML element and binds its opening and closing tags to a PHP callback. A PHP callback can be one of the following:

  • A PHP Function.

  • A PHP Method on an object.

  • A static PHP Method.

The optional fourth parameter can be used to override the global setting for recursive operation.

前のページ | ホーム | 次のページ
XML_Transformer::XML_Transformer | 上に戻る | XML_Transformer::overloadNamespace

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Transformer::overloadNamespace

XML_Transformer::overloadNamespace --

概要

void XML_Transformer::overloadNamespace (string namespacePrefix, object object, boolean recursiveOperation)

説明

Overloads an XML Namespace and binds all its elements to a PHP object, that must provide startElement($element, $attributes)() and endElement($element, $cdata)() methods.

If the PHP object provides a initObserver($namespacePrefix, $transformer)() method it is automatically called with the registered namespace prefix and a reference to the XML_Transformer object.

前のページ | ホーム | 次のページ
XML_Transformer::overloadElement | 上に戻る | XML_Transformer::isOverloadedElement

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Transformer::setCaseFolding

XML_Transformer::setCaseFolding --

概要

void XML_Transformer::setCaseFolding (boolean caseFolding, integer caseFoldingTo)

説明

Sets the XML parser's case-folding option.

前のページ | ホーム | 次のページ
XML_Transformer::transform | 上に戻る | XML_Transformer::setDebug

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Transformer::setDebug

XML_Transformer::setDebug --

概要

void XML_Transformer::setDebug (mixed debug)

説明

Enables or disables debugging to error.log.

The parameter may be either TRUE or FALSE, thus enabling or disabling complete debugging information. May also be an array containing the names of elements to which the generated debugging information shall be limited. The special keywords "&CDATA" and "&RECURSE" may be used to enable debugging information for CDATA and recursion events.

前のページ | ホーム | 次のページ
XML_Transformer::setCaseFolding | 上に戻る | XML_Transformer::setDebug

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Transformer::setDebug

XML_Transformer::setDebug --

概要

void XML_Transformer::setRecursiveOperation (boolean recursiveOperation)

説明

Enables or disables the recursive operation.

前のページ | ホーム | 次のページ
XML_Transformer::setDebug | 上に戻る | XML_Transformer::stackdump

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Transformer::stackdump

XML_Transformer::stackdump --

概要

string XML_Transformer::stackdump ()

説明

Returns a stack dump as a debugging aid.

前のページ | ホーム | 次のページ
XML_Transformer::setDebug | 上に戻る | XML_Transformer::attributesToString

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Transformer::start

XML_Transformer::start --

概要

void XML_Transformer::start ()

説明

Starts the transformation, if it has not yet been started, for instance by the constructor.

前のページ | ホーム | 次のページ
XML_Transformer::unOverloadNamespace | 上に戻る | XML_Transformer::transform

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Transformer::transform

XML_Transformer::transform --

概要

string XML_Transformer::transform (string xml)

説明

Transforms a given XML string.

前のページ | ホーム | 次のページ
XML_Transformer::start | 上に戻る | XML_Transformer::setCaseFolding

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Transformer::unOverloadElement

XML_Transformer::unOverloadElement --

概要

boolean XML_Transformer::unOverloadElement (string element)

説明

Reverts overloading of the given element.

前のページ | ホーム | 次のページ
XML_Transformer::isOverloadedNamespace | 上に戻る | XML_Transformer::unOverloadNamespace

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Transformer::unOverloadNamespace

XML_Transformer::unOverloadNamespace --

概要

boolean XML_Transformer::unOverloadNamespace (string namespacePrefix)

説明

Reverts overloading of the given namespace.

前のページ | ホーム | 次のページ
XML_Transformer::unOverloadElement | 上に戻る | XML_Transformer::start

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Transformer::XML_Transformer

XML_Transformer::XML_Transformer --

概要

void XML_Transformer::XML_Transformer (array parameters)

説明

Constructor of the XML_Transformer class. It can be passed an associative array that may have the following keys:

  • caseFolding: If TRUE, XML attribute and element names will be case-folded.

    caseFoldingTo: May be either CASE_UPPER or CASE_LOWER and sets the target case for the case-folding.

    debug: May be either TRUE or FALSE, thus enabling or disabling complete debugging information. May also be an array containing the names of elements to which the generated debugging information shall be limited. The special keywords "&CDATA" and "&RECURSE" may be used to enable debugging information for CDATA and recursion events.

    recursiveOperation: If TRUE, the transformation will continue recursively until the XML contains no more overloaded elements. Can be overrided on a per-element basis.

    overloadedElements: Associative array with pre-defined set of overloaded elements.

    overloadedNamespaces: Associative array with pre-defined set of overloaded elements.

前のページ | ホーム | 次のページ
Introduction | 上に戻る | XML_Transformer::overloadElement

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Tree

目次
XML_Tree::XML_Tree -- コンストラクタ
XML_Tree::&addRoot -- ルートノードの追加をする
XML_Tree::&insertChild -- 子ツリーを挿入するう
XML_Tree::&removeChild -- remove child from tree
XML_Tree::&getTreeFromFile -- XMLファイルをツリーに写像する
XML_Tree::clone -- ツリーをコピーする
XML_Tree::dump -- XMLツリーの出力をする
XML_Tree::&get -- XMLツリーの取得をする
XML_Tree::&getName -- 名前空間の取得
XML_Tree::registerName -- 名前空間の登録をする

ツリー表現を用いた構造XML文書を構築します。

XML_Treeパッケージは、1つがツリー表現を使用して、 XMLデータ構造を建造することを、 DOMXMLのような拡張の必要なしで可能にします。

前のページ | ホーム | 次のページ
XML_Transformer::canonicalize | 上に戻る | XML_Tree::XML_Tree

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Tree::&addRoot

XML_Tree::&addRoot -- ルートノードの追加をする

概要

require_once "XML/Tree.php";

object XML_Tree_Node XML_Tree::&addRoot (string $name [, string $content='' [, array $attributes=array()]])

説明

XMLデータ構造に新たなルートノードを追加します。

パラメータ

  • string $name - ルート要素名です。

  • string $content - 開始と終了タグの間のデータです。

  • array $attributes - タグに追加する属性です。 属性名は配列キーが、配列キーへのエントリが属性値を現します。

返り値

object XML_Tree_Node - ルートノードへのリファレンスです。

注意

この関数は、スタティックにコールする ことはできません。

例

例 62-1&addRoot()の使用法

$tree  = new XML_Tree;
$root =& $tree->addRoot("root");
前のページ | ホーム | 次のページ
XML_Tree::XML_Tree | 上に戻る | XML_Tree::&insertChild

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Tree::clone

XML_Tree::clone -- ツリーをコピーする

概要

require_once "XML/Tree.php";

object XML_Tree XML_Tree::clone ()

説明

このツリーインスタンスのコピーを取得します。

返り値

object XML_Tree - コピーされたオブジェクトです。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_Tree::&getTreeFromFile | 上に戻る | XML_Tree::dump

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Tree::dump

XML_Tree::dump -- XMLツリーの出力をする

概要

require_once "XML/Tree.php";

void XML_Tree::dump ()

説明

XMLツリーをテキスト表現で出力します。

注意

この関数は、スタティックにコールする ことはできません。

参照

XML_Tree::get()

前のページ | ホーム | 次のページ
XML_Tree::clone | 上に戻る | XML_Tree::&get

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Tree::&get

XML_Tree::&get -- XMLツリーの取得をする

概要

require_once "XML/Tree.php";

string XML_Tree::&get ()

説明

XMLツリーのテキスト表現を取得します。

返り値

string - XMLドキュメントです。

注意

この関数は、スタティックにコールする ことはできません。

参照

XML_Tree::get()

前のページ | ホーム | 次のページ
XML_Tree::dump | 上に戻る | XML_Tree::&getName

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Tree::&getName

XML_Tree::&getName -- 名前空間の取得

概要

require_once "XML/Tree.php";

string XML_Tree::&getName (string $name)

説明

現在の名前空間の取得をします。

パラメータ

  • string $name - 名前空間です。

返り値

string - 名前空間です。

注意

この関数は、スタティックにコールする ことはできません。

参照

XML_Tree::registerName()

前のページ | ホーム | 次のページ
XML_Tree::&get | 上に戻る | XML_Tree::registerName

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Tree::&getTreeFromFile

XML_Tree::&getTreeFromFile -- XMLファイルをツリーに写像する

概要

require_once "XML/Tree.php";

object XML_Tree XML_Tree::&getTreeFromFile ()

説明

XMLファイルをオブジェクトツリーに写像します。

返り値

object XML_Tree - オブジェクトツリーです。

注意

この関数は、スタティックにコールする ことはできません。

参照

XML_Tree::XML_Tree()

前のページ | ホーム | 次のページ
XML_Tree::&removeChild | 上に戻る | XML_Tree::clone

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Tree::&insertChild

XML_Tree::&insertChild -- 子ツリーを挿入するう

概要

require_once "XML/Tree.php";

object XML_Tree_Node XML_Tree::&insertChild (array $path, integer $pos, mixed $child [, string $content='' [, array $attributes=array()]])

説明

位置$posのパス$path に子かツリーを挿入し、 名前空間保全を維持します。

パラメータ

  • array $path - 挿入する子の親パスです。

  • integer $pos - その親子供リストに挿入される子供の位置です。

  • mixed $child - 子ノード (XML_Tree、 XML_Nodeか名前による)です。

  • string $content - 新ノードの内容(テキスト)です。

  • array $attributes - 新ノードの属性ハッシュです。

返り値

object XML_Tree_Node - 挿入した子(ノード)です。

注意

この関数は、スタティックにコールする ことはできません。

参照

XML_Tree::removeChild()

前のページ | ホーム | 次のページ
XML_Tree::&addRoot | 上に戻る | XML_Tree::&removeChild

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Tree::registerName

XML_Tree::registerName -- 名前空間の登録をする

概要

require_once "XML/Tree.php";

void XML_Tree::registerName (string $name, string $path)

説明

名前空間の登録をします。

パラメータ

  • string $name - 名前空間です。

  • string $path - パスです。

注意

この関数は、スタティックにコールする ことはできません。

参照

XML_Tree::getName()

前のページ | ホーム | 次のページ
XML_Tree::&getName | 上に戻る | XML_Util

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Tree::&removeChild

XML_Tree::&removeChild -- remove child from tree

概要

require_once "XML/Tree.php";

object XML_Tree_Node XML_Tree::&removeChild (array $path, integer $pos)

説明

Removes a child ($path,$pos) from tree and maintains namespace integrity

パラメータ

  • array $path - path to parent of child to remove

  • integer $pos - position of child in parents children-list

返り値

object XML_Tree_Node - parent whichs child was removed

注意

この関数は、スタティックにコールする ことはできません。

参照

XML_Tree::insertChild()

前のページ | ホーム | 次のページ
XML_Tree::&insertChild | 上に戻る | XML_Tree::&getTreeFromFile

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Tree::XML_Tree

XML_Tree::XML_Tree -- コンストラクタ

概要

require_once "XML/Tree.php";

void XML_Tree::XML_Tree ([string $filename='' [, string $version='1.0']])

説明

コンストラクタです。

パラメータ

  • string $filename - 解析するファイルの名前です。

  • string $version - 使用するXMLバージョンです。

注意

この関数は、スタティックにコールする ことはできません。

前のページ | ホーム | 次のページ
XML_Tree | 上に戻る | XML_Tree::&addRoot

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Util

目次
導入 -- XML_Utilの導入
例 -- XML_Utilの使用例
XML_Util::apiVersion() -- APIバージョンを返す
XML_Util::attributesToString() -- XML 属性の文字列を生成する
XML_Util::collapseEmptyTags() -- 文字列内の空の XML タグをまとめる
XML_Util::createTag() -- タグの作成をする
XML_Util::createTagFromArray() -- 配列からタグを作成する
XML_Util::createStartElement() -- 開始要素を作成する
XML_Util::createEndElement() -- 終了要素の作成をする
XML_Util::createCDataSection() -- CDataセクションの作成をする
XML_Util::createComment() -- XMLコメントを生成する
XML_Util::getDocTypeDeclaration() -- ドキュメントタイプの宣言を構築する
XML_Util::getXMLDeclaration() -- XML宣言を構築する
XML_Util::isValidName() -- XML名の立証をする
XML_Util::replaceEntities() -- XMLエンティティの置換をする
XML_Util::reverseEntities() -- XML エンティティを置換する
XML_Util::splitQualifiedName() -- 有修飾名を分割する

XMLドキュメントの作成助けるしばしば必要とされる関数のコレクション。

前のページ | ホーム | 次のページ
XML_Tree::registerName | 上に戻る | 導入

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


例

例 -- XML_Utilの使用例

使用例

次の例は、 XML_Utilの関数のうちのいくつかをどのように使用するかを示します。

例 62-1いくつかの基本的な例

require_once "XML/Util.php";

// creating an XML tag
$tag = XML_Util::createTag("xsl:stylesheet", array("version" => "1.0"), "Place your content here", "http://www.w3.org/1999/XSL/Transform");

// verify tag name
$result = XML_Util::isValidName("my Tag");
if (PEAR::isError($result)) {
    print "Invalid XML name: " . $result->getMessage();
} else {
    print "Tagname is valid.";
}
前のページ | ホーム | 次のページ
導入 | 上に戻る | XML_Util::apiVersion()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


導入

導入 -- XML_Utilの導入

XML_Utilの導入

XML_UtilはXMLドキュメントの処理(または特に作成)を助けるユーティリティクラスです。

XML_Utilの関数は総て静的に呼ぶことが出来ます。 それは提供される関数をしようするために、 XML_Utilオブジェクトをインスタンスする必要がないことを意味します。

The funcionality of XML_Util ranges from validating an XML tag name (as there are strict rules for tag and attribute names) to the creation of namespaced XML tags.

前のページ | ホーム | 次のページ
XML_Util | 上に戻る | 例

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Util::apiVersion

PEAR マニュアル
前のページ 次のページ

XML_Util::apiVersion()

XML_Util::apiVersion() -- APIバージョンを返す

概要

require_once 'XML/Util.php';

string XML_Util::apiVersion ()

説明

XML_UtilのAPIバージョンを返します。

返り値

string APIバージョンを返します。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
例 | 上に戻る | XML_Util::attributesToString()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Util::attributesToString

PEAR マニュアル
前のページ 次のページ

XML_Util::attributesToString()

XML_Util::attributesToString() -- XML 属性の文字列を生成する

概要

require_once 'XML/Util.php';

string XML_Util::attributesToString (array $attributes [, boolean $sort = TRUE [, boolean $multiline = FALSE [, string $indent = ' ' [, string $linebreak = "\n" [, integer $entities = XML_UTIL_ENTITIES_XML]]]]])

説明

属性リストの文字列表現を生成します。

パラメータ

  • array $attributes - 属性を含む連想配列です。

  • boolean $sort - 属性をアルファベット順にソートするべきかどうか指定をします。

  • boolean $multiline - 属性を複数行で表示するかどうかを指定します (可読性を高めます)。

  • string $indent - 字下げ用の文字です。multiline が TRUE の場合にのみ使用されます。

  • string $linebreak - 改行文字です。multiline が TRUE の場合にのみ使用されます。

  • integer $entities - どのエンティティを属性値に置換するかを定義します。 XML_UTIL_ENTITIES_NONE、XML_UTIL_ENTITIES_XML、XML_UTIL_ENTITIES_XML_REQUIRED あるいは XML_UTIL_ENTITIES_HTML のいずれかです。

返り値

string 属性の文字列の表現が返ります。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
XML_Util::apiVersion() | 上に戻る | XML_Util::collapseEmptyTags()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Util::collapseEmptyTags

PEAR マニュアル
前のページ 次のページ

XML_Util::collapseEmptyTags()

XML_Util::collapseEmptyTags() -- 文字列内の空の XML タグをまとめる

概要

require_once 'XML/Util.php';

string XML_Util::collapseEmptyTags (string $string [, integer $mode = XML_UTIL_COLLAPSE_ALL])

説明

このメソッドは、<foo></foo> のような空のタグを、 正規表現によって <foo/> 形式に短縮します。これは、特に XHTML 文書を扱う際に役立ちます。というのも、 ブラウザ上でのこれらのタグのレンダリングには重要な違いがあるからです。

このメソッドは、XML_Util 1.1.0 で追加されました。

パラメータ

  • string $string - 空のタグをまとめる文字列。

  • integer $mode - すべての空のタグをまとめる (XML_UTIL_COLLAPSE_ALL) か、あるいは XHTML タグのみをまとめる (XML_UTIL_COLLAPSE_XHTML_ONLY) かを指定します。

返り値

string 空のタグをまとめた文字列を返します。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
XML_Util::attributesToString() | 上に戻る | XML_Util::createTag()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Util::createCDataSection

PEAR マニュアル
前のページ 次のページ

XML_Util::createCDataSection()

XML_Util::createCDataSection() -- CDataセクションの作成をする

概要

require_once 'XML/Util.php';

string XML_Util::createCDataSection (string $data)

説明

「<!CDATA[」と「]]>」の中のデータを埋め込むことにより、 CDataセクションを作成します。 XMLドキュメント内にCDataセクションを使用すれば、 このセクション中のエンティティを置換する必要はありません。

パラメータ

  • string $data - CDataセクションのデータです。

返り値

string CDataセクションです。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
XML_Util::createEndElement() | 上に戻る | XML_Util::createComment()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Util::createComment

PEAR マニュアル
前のページ 次のページ

XML_Util::createComment()

XML_Util::createComment() -- XMLコメントを生成する

概要

require_once 'XML/Util.php';

string XML_Util::createComment (string $data)

説明

"<!--"と"-->"の間に 指定のーデータを埋め込むことで、XMLコメントを生成します。

パラメータ

  • string $data - コメント用データを指定します。

返り値

string XMLコメントが返ります。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
XML_Util::createCDataSection() | 上に戻る | XML_Util::getDocTypeDeclaration()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Util::createEndElement

PEAR マニュアル
前のページ 次のページ

XML_Util::createEndElement()

XML_Util::createEndElement() -- 終了要素の作成をする

概要

require_once 'XML/Util.php';

string XML_Util::createEndElement (string $qname)

説明

終了要素の作成をします。(</foo>)

パラメータ

  • string $qname - 有修飾タグ名です。

返り値

string 閉じるXMLタグです。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
XML_Util::createStartElement() | 上に戻る | XML_Util::createCDataSection()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Util::createStartElement

PEAR マニュアル
前のページ 次のページ

XML_Util::createStartElement()

XML_Util::createStartElement() -- 開始要素を作成する

概要

require_once 'XML/Util.php';

string XML_Util::createStartElement (string $qname [, array $attributes = array() [, string $namespaceUri = NULL]])

説明

ネーム空間と属性を備えた要素の開始をもし必要ならば、 'xmlns'を加えて作成します。 (<pear foo="bar">)

パラメータ

  • string $qname - 有修飾タグ名です。

  • array $attributes - 属性の連想配列です。

  • string $namespaceUri - xmlns属性が必要な時に追加する名前空間URIです。

返り値

string 開くXMLタグです。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
XML_Util::createTagFromArray() | 上に戻る | XML_Util::createEndElement()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Util::createTag

PEAR マニュアル
前のページ 次のページ

XML_Util::createTag()

XML_Util::createTag() -- タグの作成をする

概要

require_once 'XML/Util.php';

string XML_Util::createTag (string $qname [, array $attributes = array() [, string $content = NULL [, string $namespaceUri = NULL [, integer $replaceEntities = XML_UTIL_REPLACE_ENTITIES]]]])

説明

ネーム空間と属性を備えたタグをもし必要ならば、 'xmlns'を加えて作成します。

パラメータ

  • string $qname - 有修飾タグ名です。

  • array $attributes - 属性の連想配列です。

  • string $content - タグの内容の文字列です。

  • string $namespaceUri - xmlns属性が必要な時に追加する名前空間URIです。

  • integer $replaceEntities - 内容中のXMLエンティティを交換するかどうかを指定します。 CDataセクションにそれを埋め込むべきか、 あるいはそれを手をつけないでおくべきかを指定します。 可能な値はFALSE、 XML_UTIL_REPLACE_ENTITIESあるいはXML_UTIL_CDATA_SECTIONです。

返り値

string XMLタグです。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
XML_Util::collapseEmptyTags() | 上に戻る | XML_Util::createTagFromArray()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Util::createTagFromArray

PEAR マニュアル
前のページ 次のページ

XML_Util::createTagFromArray()

XML_Util::createTagFromArray() -- 配列からタグを作成する

概要

require_once 'XML/Util.php';

string XML_Util::createTagFromArray (array $tag [, integer $replaceEntities = XML_UTIL_REPLACE_ENTITIES])

説明

配列からタグの作成をします。 これは XML_Util::createTag() に似ていますが、より柔軟です。

パラメータ

  • array $tag - タグに関する情報を含む配列です。

  • integer $replaceEntities - 内容中のXMLエンティティを交換するかどうかを指定します。 CData セクションにそれを埋め込むべきか、 あるいはそれを手をつけないでおくべきかを指定します。 可能な値は FALSE、 XML_UTIL_REPLACE_ENTITIES あるいは XML_UTIL_CDATA_SECTION です。

返り値

string XML タグを返します。

注意

この関数は、スタティックにコール されます。

使用例

例 62-1XML_Util::createTagFromArray() でのタグの作成

require_once "XML/Util.php";

$tag = array(
             "namespace"    => "xslt",
             "localPart"    => "variable",
             "namespaceUri" => "http://www.w3.org/1999/XSL/Transform",
             "attributes"   => array( "name" => "myVar" ),
             "content"      => "myValue"
           );
$string = XML_Util::createTagFromArray($tag);
前のページ | ホーム | 次のページ
XML_Util::createTag() | 上に戻る | XML_Util::createStartElement()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Util::getDocTypeDeclaration

PEAR マニュアル
前のページ 次のページ

XML_Util::getDocTypeDeclaration()

XML_Util::getDocTypeDeclaration() -- ドキュメントタイプの宣言を構築する

概要

require_once 'XML/Util.php';

string XML_Util::getDocTypeDeclaration (string $root [, mixed $uri = NULL [, mixed $internalDtd = NULL]])

説明

パラメーターに基づいたドキュメントタイプの宣言を返します。

パラメータ

  • string $root - ルートタグです。

  • mixed $uri - パブリックIDを含むドキュメントタイプの定義か、 配列のURIおよびDTDのURIです。

  • mixed $internalDtd - 内部定義です。

返り値

string ドキュメントタイプ宣言です。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
XML_Util::createComment() | 上に戻る | XML_Util::getXMLDeclaration()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Util::getXMLDeclaration

PEAR マニュアル
前のページ 次のページ

XML_Util::getXMLDeclaration()

XML_Util::getXMLDeclaration() -- XML宣言を構築する

概要

require_once 'XML/Util.php';

string XML_Util::getXMLDeclaration ([string $version = "1.0" [, string $encoding = NULL [, boolean $standalone = NULL]]])

説明

パラメーターに基づいたXML宣言を返します。

パラメータ

  • string $version - XMLバージョンを指定します。

  • string $encoding - XMLエンコーディング文字コードを指定します。

  • boolean $standalone - ドキュメントがスタンダロンかどうかを指定します。

返り値

string XML宣言を返します。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
XML_Util::getDocTypeDeclaration() | 上に戻る | XML_Util::isValidName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Util::isValidName

PEAR マニュアル
前のページ 次のページ

XML_Util::isValidName()

XML_Util::isValidName() -- XML名の立証をする

概要

require_once 'XML/Util.php';

boolean XML_Util::isValidName (string $string)

説明

文字列が有効なXML名かどうかチェックします。 XMLでは、タグ名と属性の名前は厳しい規則に従う必要があります。 この関数は使用している名前の確認をすることが出来ます。

パラメータ

  • string $string - 確認する文字列です。

返り値

成功時には TRUE、 失敗時には PEAR_Error を返します。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
XML_Util::getXMLDeclaration() | 上に戻る | XML_Util::replaceEntities()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Util::replaceEntities

PEAR マニュアル
前のページ 次のページ

XML_Util::replaceEntities()

XML_Util::replaceEntities() -- XMLエンティティの置換をする

概要

require_once 'XML/Util.php';

string XML_Util::replaceEntities (string $string)

説明

XML文書では、&と<.を使用することを認められません。 それらはそれぞれのエンティティに置換しなければなりません。 このメソッドはそれをし、 更に他のあらかじめ定義されたXMLエンティティにすべて置換します。

パラメータ

  • string $string - エンティティに置換する文字列です。

返り値

string エンティティに置換された文字列です。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
XML_Util::isValidName() | 上に戻る | XML_Util::reverseEntities()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Util::reverseEntities

PEAR マニュアル
前のページ 次のページ

XML_Util::reverseEntities()

XML_Util::reverseEntities() -- XML エンティティを置換する

概要

require_once 'XML/Util.php';

string XML_Util::reverseEntities (string $string)

説明

これは、XML_Util::replaceEntities()() と逆の働きをする関数です。文字列内のすべての XML (あるいは HTML) エンティティを、対応する文字に置換します。これは、 XML パーサを使用せずに XML 文書を扱う際に便利です。

このメソッドは、XML_Util 1.0.0 で追加されました。

パラメータ

  • string $string - エンティティを削除する文字列。

返り値

string エンティティが削除された文字列を返します。

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
XML_Util::replaceEntities() | 上に戻る | XML_Util::splitQualifiedName()

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


XML_Util::splitQualifiedName

PEAR マニュアル
前のページ 次のページ

XML_Util::splitQualifiedName()

XML_Util::splitQualifiedName() -- 有修飾名を分割する

概要

require_once 'XML/Util.php';

array XML_Util::splitQualifiedName (string $qname [, string $defaultNs = NULL])

説明

有修飾名を分割し、 ネームスペースとローカルパートの配列を返します。

パラメータ

  • string $qname - 有修飾タグ名(例えばxsl:stylsheet)

  • string $defaultNs - デフォルトネームスペースです。 有修飾がローカルパートのみを含む場合使用されます。

返り値

array assoc array containing namespace and local part of the tag

注意

この関数は、スタティックにコール されます。

前のページ | ホーム | 次のページ
XML_Util::reverseEntities() | 上に戻る | PECL パッケージ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Introduction

Introduction -- Basic usage of Auth_RADIUS

What is Auth_RADIUS?

Auth_RADIUS is a php wrapper around the php radius extension. If you are unfamiliar with the RADIUS protocol, the Wikipedia article provides an excellent introduction.

Auth_RADIUS is structured around the facilities built into the radius extension. Understanding Auth_RADIUS generally first requires a basic understanding of how the radius extension is designed. Documentation of the radius extension is available through the PHP manual at http://www.php.net/manual/en/ref.radius.php

There are different Classes for the different authentication methods available through RADIUS. If you are using CHAP-MD5 or MS-CHAP authentication, you will also need the Crypt_CHAP package. In addition, if using MS-CHAP authentication, you will need to enable the mhash and mcrypt extension in php.ini, or compile them in statically.

Note that if you have the latest radius extension (version 1.2 or newer), you will not need to enable the mcrypt extension.

How do I use Auth_RADIUS?

Basic usage examples follow, pulled from the package itself.

<?php
/* vim: set expandtab tabstop=4 shiftwidth=4: */
/*
Copyright (c) 2003, Michael Bretterklieber <michael@bretterklieber.com>
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in the
   documentation and/or other materials provided with the distribution.
3. The names of the authors may not be used to endorse or promote products
   derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

This code cannot simply be copied and put under the GNU Public License or
any other GPL-like (LGPL, GPL2) License.

    $Id: intro.xml,v 1.1 2006/11/21 00:08:03 cellog Exp $
*/

require_once 'Auth/RADIUS.php';
require_once 'Crypt/CHAP.php';

//$type = 'PAP';
//$type = 'CHAP_MD5';
$type = 'MSCHAPv1';
//$type = 'MSCHAPv2';

$username = 'sepp';
$password = 'sepp';

$classname = 'Auth_RADIUS_' . $type;
$rauth = new $classname($username, $password);
$rauth->addServer('localhost', 0, 'testing123');
$rauth->setConfigfile('/etc/radius.conf');
$rauth->username = $username;

switch($type) {
case 'CHAP_MD5':
case 'MSCHAPv1':
    $classname = $type == 'MSCHAPv1' ? 'Crypt_CHAP_MSv1' : 'Crypt_CHAP_MD5';
    $crpt = new $classname;
    $crpt->password = $password;
    $rauth->challenge = $crpt->challenge;
    $rauth->chapid = $crpt->chapid;
    $rauth->response = $crpt->challengeResponse();
    $rauth->flags = 1;
// If you must use deprecated and weak LAN-Manager-Responses use this:
//    $rauth->lmResponse = $crpt->lmChallengeResponse();
//    $rauth->flags = 0;
    break;

case 'MSCHAPv2':
    $crpt = new Crypt_CHAP_MSv2;
    $crpt->username = $username;
    $crpt->password = $password;
    $rauth->challenge = $crpt->authChallenge;
    $rauth->peerChallenge = $crpt->peerChallenge;
    $rauth->chapid = $crpt->chapid;
    $rauth->response = $crpt->challengeResponse();
    break;

default:
    $rauth->password = $password;
    break;
}

if (!$rauth->start()) {
    printf("Radius start: %s<br>\n", $rauth->getError());
    exit;
}

$result = $rauth->send();
if (PEAR::isError($result)) {
    printf("Radius send failed: %s<br>\n", $result->getMessage());
    exit;
} else if ($result === true) {
    printf("Radius Auth succeeded<br>\n");
} else {
    printf("Radius Auth rejected<br>\n");
}

// get attributes, even if auth failed
if (!$rauth->getAttributes()) {
    printf("Radius getAttributes: %s<br>\n", $rauth->getError());
} else {
    $rauth->dumpAttributes();
}

$rauth->close();

?>

Here is the second example:

<?php
/* vim: set expandtab tabstop=4 shiftwidth=4: */
/*
Copyright (c) 2003, Michael Bretterklieber <michael@bretterklieber.com>
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in the
   documentation and/or other materials provided with the distribution.
3. The names of the authors may not be used to endorse or promote products
   derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

This code cannot simply be copied and put under the GNU Public License or
any other GPL-like (LGPL, GPL2) License.

    $Id: intro.xml,v 1.1 2006/11/21 00:08:03 cellog Exp $
*/

require_once 'Auth/RADIUS.php';
require_once 'Crypt/CHAP.php';
$username = 'sepp';

$starttime = time();

$racct = new Auth_RADIUS_Acct_Start;
$racct->addServer('localhost', 0, 'testing123');
$racct->username = $username;
// RADIUS_AUTH_RADIUS => authenticated via Radius
// RADIUS_AUTH_LOCAL => authenicated local
// RADIUS_AUTH_REMOTE => authenticated remote
$racct->authentic = RADIUS_AUTH_LOCAL;
$status = $racct->start();
if(PEAR::isError($status)) {
    printf("Radius start: %s<br>\n", $status->getMessage());
    exit;
}
// you can put any additional attributes here
// $racct->putAttribute(RADIUS_ACCT_INPUT_PACKETS, 45236);
// $racct->putAttribute(RADIUS_ACCT_OUTPUT_PACKETS, 1212);
$result = $racct->send();
if (PEAR::isError($result)) {
    printf("Radius send failed: %s<br>\n", $result->getMessage());
    exit;
} else if ($result === true) {
    printf("Radius Acounting succeeded<br>\n");
} else {
    printf("Radius Acounting rejected<br>\n");
}

$racct->close();

// Wait a bit, that we can put the session-time
sleep(2);

// send an accounting update
$racct = new Auth_RADIUS_Acct_Update;
$racct->addServer('localhost', 0, 'testing123');
$racct->username = $username;
$racct->session_time = time() - $starttime;
$status = $racct->start();
if(PEAR::isError($status)) {
    printf("Radius start: %s<br>\n", $status->getMessage());
    exit;
}
$result = $racct->send();
if (PEAR::isError($result)) {
    printf("Radius send failed: %s<br>\n", $result->getMessage());
    exit;
} else if ($result === true) {
    printf("Radius Acounting succeeded<br>\n");
} else {
    printf("Radius Acounting rejected<br>\n");
}

// Wait a bit, that we can put the session-time
sleep(2);

// send the stop
$racct = new Auth_RADIUS_Acct_Stop;
$racct->addServer('localhost', 0, 'testing123');
$racct->username = $username;
$racct->session_time = time() - $starttime;
$status = $racct->start();
if(PEAR::isError($status)) {
    printf("Radius start: %s<br>\n", $status->getMessage());
    exit;
}
// you can put any additional attributes here
// $racct->putAttribute(RADIUS_ACCT_TERMINATE_CAUSE, RADIUS_TERM_SESSION_TIMEOUT);
$result = $racct->send();
if (PEAR::isError($result)) {
    printf("Radius send failed: %s<br>\n", $result->getMessage());
    exit;
} else if ($result === true) {
    printf("Radius Acounting succeeded<br>\n");
} else {
    printf("Radius Acounting rejected<br>\n");
}

$racct->close();

?>

前のページ | ホーム | 次のページ
Auth_RADIUS | 上に戻る | LiveUser

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PHPUnit::TestCase

PHPUnit::TestCase -- TestCase: 複数のテストを実行するための試験装置の抽象化

TestCase を定義する手順

  • 1) PHPUnit_TestCase のサブクラスを作ります

  • 2) クラス変数を定義し、そこに試験装置の状態を保存できるようにします

  • 3) setUp() をオーバーライドすることにより試験装置の状態を初期化します

  • 4) tearDown() を上書きすることによりテスト後の後片付けを行います

各テストは、別個の試験装置において実行されるため、テストの実行による 副作用はありません。

PHPUnit::TestCase

class MathTest extends PHPUnit_TestCase {
  var $fValue1;
  var $fValue2;

  function MathTest($name) {
    $this->PHPUnit_TestCase($name);
  }

  function setUp() {
    $this->fValue1 = 2;
    $this->fValue2 = 3;
  }
}

各テストにおいては、試験装置を利用してメソッドを実装します。 正しい値が返されたかどうかは、assert 関数に boolean を渡すことで 確認します。

function testPass() {
  $this->assertTrue($this->fValue1 + $this->fValue2 == 5);
}

前のページ | ホーム | 次のページ
PHPUnit::run() | 上に戻る | PHPUnit2

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Documentation

Documentation --

Documentation moved

The documentation is now part of the PHP manual.

前のページ | ホーム | 次のページ
KADM5 | 上に戻る | Radius

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Documentation

Documentation --

Documentation moved

The documentation is now part of the PHP manual.

前のページ | ホーム | 次のページ
Net_Gopher | 上に戻る | oggvorbis

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Documentation

Documentation --

Documentation moved

The documentation is now part of the PHP manual.

前のページ | ホーム
oggvorbis | 上に戻る

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Documentation

Documentation --

Documentation moved

The documentation is now part of the PHP manual.

前のページ | ホーム | 次のページ
Net_Gopher | 上に戻る | PostScript document creation

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Documentation

Documentation --

Documentation moved

The documentation is now part of the PHP manual.

前のページ | ホーム | 次のページ
PostScript document creation | 上に戻る | Satellite CORBA client extension

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


Documentation

Documentation --

Documentation moved

The documentation is now part of the PHP manual.

前のページ | ホーム | 次のページ
Radius | 上に戻る | Net_Gopher

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


OrbitEnum

OrbitEnum -- Use CORBA enums

Description

new OrbitEnum (string id)

警告

この関数は、 実験的 なものです。 この関数の動作・関数名を含めここに書かれていることすべてが このパッケージの将来のリリースで予告なく変更される可能性があります。 注意を喚起するとともに、使用者のリスクでこの関数を使用してください。

This class represents the enumeration identified with the id parameter. The id can be either the name of the enumeration (e.g "MyEnum"), or the full repository id (e.g. "IDL:MyEnum:1.0").

例 1Sample IDL file

enum MyEnum {
    a,b,c,d,e
};

例 2PHP code for accessing MyEnum

<?php
$enum = new OrbitEnum ("MyEnum");

echo $enum->a;	/* write 0 */
echo $enum->c;	/* write 2 */
echo $enum->e;	/* write 4 */
?>

前のページ | ホーム | 次のページ
OrbitObject | 上に戻る | OrbitStruct

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


OrbitObject

OrbitObject -- Access CORBA objects

Description

new OrbitObject (string ior)

警告

この関数は、 実験的 なものです。 この関数の動作・関数名を含めここに書かれていることすべてが このパッケージの将来のリリースで予告なく変更される可能性があります。 注意を喚起するとともに、使用者のリスクでこの関数を使用してください。

This class provides access to a CORBA object. The ior parameter should be a string containing the IOR (Interoperable Object Reference) that identifies the remote object.

例 1Sample IDL file

interface MyInterface {
    void SetInfo (string info);
    string GetInfo();

    attribute int value;
}

例 2PHP code for accessing MyInterface

<?php
$obj = new OrbitObject ($ior);

$obj->SetInfo ("A 2GooD object");

echo $obj->GetInfo();

$obj->value = 42;

echo $obj->value;
?>

前のページ | ホーム | 次のページ
Satellite CORBA client extension | 上に戻る | OrbitEnum

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


OrbitStruct

OrbitStruct -- Use CORBA structs

Description

new OrbitStruct (string id)

警告

この関数は、 実験的 なものです。 この関数の動作・関数名を含めここに書かれていることすべてが このパッケージの将来のリリースで予告なく変更される可能性があります。 注意を喚起するとともに、使用者のリスクでこの関数を使用してください。

This class represents the structure identified with the id parameter. The id can be either the name of the struct (e.g "MyStruct"), or the full repository id (e.g. "IDL:MyStruct:1.0").

例 1Sample IDL file

struct MyStruct {
    short shortvalue;
    string stringvalue;
};

interface SomeInterface {
  void SetValues (MyStruct values);
  MyStruct GetValues();
}

例 2PHP code for accessing MyStruct

<?php
$obj = new OrbitObject ($ior);

$initial_values = new OrbitStruct ("IDL:MyStruct:1.0");
$initial_values->shortvalue = 42;
$initial_values->stringvalue = "HGTTG";

$obj->SetValues ($initial_values);

$values = $obj->GetValues();

echo $values->shortvalue;
echo $values->stringvalue;
?>

前のページ | ホーム | 次のページ
OrbitEnum | 上に戻る | satellite_caught_exception

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


satellite_caught_exception

satellite_caught_exception -- See if an exception was caught from the previous function

Description

bool satellite_caught_exception ()

警告

この関数は、 実験的 なものです。 この関数の動作・関数名を含めここに書かれていることすべてが このパッケージの将来のリリースで予告なく変更される可能性があります。 注意を喚起するとともに、使用者のリスクでこの関数を使用してください。

This function returns TRUE if an exception has been caught.

例 1Sample IDL file

/* ++?????++ Out of Cheese Error. Redo From Start. */
exception OutOfCheeseError {
    int parameter;
}

interface AnotherInterface {
    void AskWhy() raises (OutOfCheeseError);
}

例 2PHP code for handling CORBA exceptions

<?php
$obj = new OrbitObject ($ior);

$obj->AskWhy();

if (satellite_caught_exception()) {
    if ("IDL:OutOfCheeseError:1.0" == satellite_exception_id()) {
        $exception = satellite_exception_value();
        echo $exception->parameter;
    }
}
?>

前のページ | ホーム | 次のページ
OrbitStruct | 上に戻る | satellite_exception_id

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


satellite_exception_id

satellite_exception_id -- Get the repository id for the latest exception.

Description

string satellite_exception_id ()

警告

この関数は、 実験的 なものです。 この関数の動作・関数名を含めここに書かれていることすべてが このパッケージの将来のリリースで予告なく変更される可能性があります。 注意を喚起するとともに、使用者のリスクでこの関数を使用してください。

Return a repository id string. (E.g. "IDL:MyException:1.0".) For example usage see satellite_caught_exception().

前のページ | ホーム | 次のページ
satellite_caught_exception | 上に戻る | satellite_exception_value

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


satellite_exception_value

satellite_exception_value -- Get the exception struct for the latest exception

Description

OrbitStruct satellite_exception_value ()

警告

この関数は、 実験的 なものです。 この関数の動作・関数名を含めここに書かれていることすべてが このパッケージの将来のリリースで予告なく変更される可能性があります。 注意を喚起するとともに、使用者のリスクでこの関数を使用してください。

Return an exception struct. For example usage see satellite_caught_exception().

前のページ | ホーム | 次のページ
satellite_exception_id | 上に戻る | satellite_object_to_string

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


satellite_get_repository_id

satellite_get_repository_id -- NOT IMPLEMENTED

Description

int satellite_get_repository_id (object obj)

Not implemented.

前のページ | ホーム | 次のページ
satellite_load_idl | 上に戻る | PostgreSQLセッション保存ハンドラ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


satellite_load_idl

satellite_load_idl -- Instruct the type manager to load an IDL file

Description

bool satellite_load_idl (string file)

Load an IDL file into Satellite.

前のページ | ホーム | 次のページ
satellite_object_to_string | 上に戻る | satellite_get_repository_id

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


satellite_object_to_string

satellite_object_to_string -- Convert an object to its string representation

Description

string satellite_object_to_string (object obj)

Convert an object to its string representation (IOR).

前のページ | ホーム | 次のページ
satellite_exception_value | 上に戻る | satellite_load_idl

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


session_pgsql_status

session_pgsql_status -- カレントの保存ハンドラのステータスを取得する

説明

array session_pgsql_status (void)

警告

この関数は、 実験的 なものです。 この関数の動作・関数名を含めここに書かれていることすべてが このパッケージの将来のリリースで予告なく変更される可能性があります。 注意を喚起するとともに、使用者のリスクでこの関数を使用してください。

No description yet.

前のページ | ホーム | 次のページ
PostgreSQLセッション保存ハンドラ | 上に戻る | SPPLUS Payment System

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


calcul_hmac

calcul_hmac -- Obtain a hmac key (needs 8 arguments)

Description

string calcul_hmac (string clent, string siretcode, string price, string reference, string validity, string taxation, string devise, string language)

Generate a HMAC Key (only 8 arguments).

前のページ | ホーム | 次のページ
SPPLUS Payment System | 上に戻る | calculhmac

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


calculhmac

calculhmac -- Obtain a hmac key (needs 2 arguments)

Description

string calculhmac (string clent, string data)

Generate a HMAC Key (only 2 arguments).

前のページ | ホーム | 次のページ
calcul_hmac | 上に戻る | nthmac

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


nthmac

nthmac -- Obtain a nthmac key (needs 2 arguments)

Description

string nthmac (string clent, string data)

Generate a NHTMAC Key (only 2 arguments).

前のページ | ホーム | 次のページ
calculhmac | 上に戻る | signeurlpaiement

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


signeurlpaiement

signeurlpaiement -- Obtain the payment url (needs 2 arguments)

Description

string signeurlpaiement (string clent, string data)

Obtain the payment url (needs 2 arguments).

前のページ | ホーム | 次のページ
nthmac | 上に戻る | Net_Gopher

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PEAR マニュアル
前のページ 次のページ

--

前のページ | ホーム | 次のページ
Imagick | 上に戻る | KADM5

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


ベストプラクティス

PEAR コーディング規約でカバーされていない問題もまだありますが、 それらの多くは個人的な好みの問題であり、コードの可読性とは直結しません。 「シングルクォートとダブルクォートのどちらを使用するか」 などといった問題は、プログラミングを簡単にするための PHP の機能そのものについてものであり、どちらを選ぶとかいう類のものではありません。 このような、いわゆる「ベストプラクティス」については各開発者にお任せします。 ただ、各パッケージ内では一貫性を保つようにしてください。また、 他の開発者の個人的なスタイルを尊重することも大切です。

前のページ | ホーム | 次のページ
ファイルフォーマット | 上に戻る | サンプルファイル (標準の Docblock コメントを含む)

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コメント

インラインのコメントブロック (docblocks) を必ず表記します。 PEAR パッケージに対するコメントブロックの表記方法については、 サンプルファイル および ヘッダコメントブロック のセクションを参照してください。 詳細な情報は、 http://www.phpdoc.org/ にあります。

インラインドキュメント以外のコメントを書くことも推奨します。一般的な目安として、 コードのある部分を見て「言葉だけで説明したくないな」と思うような場合には、 処理内容を忘れてしまう前にコメントを追加する必要があります。

C 言語形式 (/* */) と標準 C++ コメント (//) のどちらも使用可能です。 Perl/shell 形式のコメント (#) は使用するべきではありません。

前のページ | ホーム | 次のページ
関数定義 | 上に戻る | コードの読み込み

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


制御構造

制御構造には、if, for, while, switch 等があります。 最も複雑な制御構造である if 文の例を示します。
if ((condition1) || (condition2)) {
    action1;
} elseif ((condition3) && (condition4)) {
    action2;
} else {
    defaultaction;
}

制御構造では、関数コールと区別するために、 制御キーワードと開きカッコの間に空白を 1 つ置きます。

構文的に任意の場合にも、波カッコを使用することを推奨します。 波カッコを付けることにより可読性が向上し、新しく行を追加した際に 論理的なエラーが紛れこむ可能性が減少します。

switch 文の場合は次のようにします。
switch (condition) {
case 1:
    action1;
    break;

case 2:
    action2;
    break;

default:
    defaultaction;
    break;

}

前のページ | ホーム | 次のページ
標準コーディング規約 | 上に戻る | 関数コール

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


CVS の使用

本節は、cvs.php.net の CVS を使用するパッケージにのみ適用します。

各ファイルに、CVS のキーワード $Id$ を記述します。

本節の残りの部分は、読者が CVS タグおよびブランチに関する基本的な 知識を有していることを前堤とします。

CVS タグは、指定したリリースに属するパッケージのファイルのリビジョンを 示すラベルとして使用されます。以下に必須な、もしくは推奨される CVS タグ のリストを示します。

RELEASE_n_n

（必須）リリース用タグとして使用します。これを使用しない場合、 リリース時点の状態で CVS サーバからパッケージを取得する手段が なくなります。

QA_n_n

（ブランチ, オプション）リリース前にリリース侯補版を公開する必要が あると考えた場合には、リリース版を分岐するというのは良い考えです。 というのも、重大な修正だけをリリースに適用できるからです。 その間にも、通常の開発はメイントランクにおいて継続することが可能です。

MAINT_n_n

（ブランチ, オプション）（たとえば 1.2 の後に 1.2.1 といった） "マイクロリリース" を行う際に、 メインの開発トランクが非常に活発で、マイクロリリースで 僅かな変更のみを行いたい場合に、ブランチを使用することもできます。

RELEASE タグのみが必須です。残りも有用ですので使用を推奨します。

以下は、Money_Fast パッケージに 1.2 リリースタグを付ける方法を示すものです。

$ cd pear/Money_Fast
$ cvs tag RELEASE_1_2
T Fast.php
T README
T package.xml

これにより、PEAR Web サイトにてリリース手順を行うことが できるようになります。

以下は、QA ブランチを作成する方法の例です。

$ cvs tag QA_2_0_BP
...
$ cvs rtag -b -r QA_2_0_BP QA_2_0
$ cvs update -r QA_2_0
$ cvs tag RELEASE_2_0RC1
...そして、実際のリリースでは、同じブランチから以下のようにします
$ cvs tag RELEASE_2_0

QA_2_0_0_BPタグは、"分岐点 (branch point)" タグで、タグの開始点です。 このような分岐点から CVS ブランチを開始するのは良い考えです。 MAINT ブランチは、RELEASE タグも分岐点として使用することができます。

前のページ | ホーム | 次のページ
ヘッダコメントブロック | 上に戻る | URL の例

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


URL の例

URL や電子メールアドレスの例を示す場合には、example.com もしくは example.org, example.net を使用します。詳細は、 RFC 2606 を参照してください。

前のページ | ホーム | 次のページ
CVS の使用 | 上に戻る | 命名規約

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


ファイルフォーマット

PEAR に提供されるすべてのスクリプトは、

  • アスキーテキストで保存しなければならない。

  • 文字エンコードは ISO-8859-1 を使用しなければならない。

  • Unix フォーマットでなければならない。

    "Unix フォーマット" とは、以下の 2 点を意味しています。

    1) 各行は、 ラインフィード（改行: LF）で終える。 ラインフィードは、10進数で 10、 8進数で 012、16進数で 0A と表示されます。 Mac のようにキャリッジリターン (行頭復帰: CR )で終えたり、 Windows のようにキャリッジリターンとラインフィードの組 (CRLF )で終えたりしてはいけません。

    2) PHP 終了タグ (?> ) の後には ラインフィードを 1 つ 置くべきです。 つまり、ファイルの最後にカーソルを移動させると、 PHP 終了タグの 1 つ 下の行に カーソルがあるようにすべきと言うことです。

前のページ | ホーム | 次のページ
命名規約 | 上に戻る | ベストプラクティス

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


関数コール

関数は、関数名・開きカッコおよび最初のパラメータそれぞれの間には空白を置かず、 カンマとパラメータ間には空白を置き、最後のパラメータと閉カッコ およびセミコロンの間には空白を置かずにコールします。 例を示します。
$var = foo($bar, $baz, $quux);

上記のように、関数の返り値を変数に代入する際に使用する等号の左右には、 空白を１つづつ置きます。関連する一連の代入文については、 可読性を向上させるために空白を複数置いても良いでしょう。
$short         = foo($bar);
$long_variable = foo($baz);

前のページ | ホーム | 次のページ
制御構造 | 上に戻る | 関数定義

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


関数定義

関数宣言は、以下のような "BSD/Allman スタイル"にしたがいます。
function fooFunction($arg1, $arg2 = '')
{
    if (condition) {
        statement;
    }
    return $val;
}

デフォルト値を有する引数は、引数リストの終わりに置きます。 適切でない場合を除き、関数は、意味のある値を返すようにします。 やや長い例を示します。
function connect(&$dsn, $persistent = false)
{
    if (is_array($dsn)) {
        $dsninfo = &$dsn;
    } else {
        $dsninfo = DB::parseDSN($dsn);
    }

    if (!$dsninfo || !$dsninfo['phptype']) {
        return $this->raiseError();
    }

    return true;
}

前のページ | ホーム | 次のページ
関数コール | 上に戻る | コメント

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


ヘッダコメントブロック

PEAR リポジトリに含まれるすべてのソースコードには、 各ファイルの先頭に "ページレベル" のコメントブロックを、 各クラスの直前に "クラスレベル" のコメントブロックを記述します。 それらの例を示します。

<?php

/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */

/**
 * Short description for file
 *
 * Long description for file (if any)...
 *
 * PHP versions 4 and 5
 *
 * LICENSE: This source file is subject to version 3.0 of the PHP license
 * that is available through the world-wide-web at the following URI:
 * http://www.php.net/license/3_0.txt.  If you did not receive a copy of
 * the PHP License and are unable to obtain it through the web, please
 * send a note to license@php.net so we can mail you a copy immediately.
 *
 * @category   CategoryName
 * @package    PackageName
 * @author     Original Author <author@example.com>
 * @author     Another Author <another@example.com>
 * @copyright  1997-2005 The PHP Group
 * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
 * @version    CVS: $Id:$
 * @link       http://pear.php.net/package/PackageName
 * @see        NetOther, Net_Sample::Net_Sample()
 * @since      File available since Release 1.2.0
 * @deprecated File deprecated in Release 2.0.0
 */

/*
 * Place includes, constant defines and $_GLOBAL settings here.
 * Make sure they have appropriate docblocks to avoid phpDocumentor
 * construing they are documented by the page-level docblock.
 */

/**
 * Short description for class
 *
 * Long description for class (if any)...
 *
 * @category   CategoryName
 * @package    PackageName
 * @author     Original Author <author@example.com>
 * @author     Another Author <another@example.com>
 * @copyright  1997-2005 The PHP Group
 * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
 * @version    Release: @package_version@
 * @link       http://pear.php.net/package/PackageName
 * @see        NetOther, Net_Sample::Net_Sample()
 * @since      Class available since Release 1.2.0
 * @deprecated Class deprecated in Release 2.0.0
 */
class foo
{
}

?>

内容を変更する必要のある必須タグ

Short Descriptions

コメントブロックすべてに、Short descriptions （短い説明文）を記述します。 要素の名前ではなく、簡潔な文章で記します。良い説明文の書き方については、 サンプルファイル を参照してください。

PHP Versions

PHP のバージョンについては、ページレベルのコメントブロックに 次のいづれかを記します

.
 * PHP version 4
 * PHP version 5
 * PHP versions 4 and 5

@license

PEAR で利用できるライセンスには何種類かあります。 次のいづれかを選択し、ページレベルもしくはクラスレベルのコメントブロックに 記述します。

.
 * @license   http://www.apache.org/licenses/LICENSE-2.0  Apache License 2.0
 * @license   http://www.freebsd.org/copyright/freebsd-license.html  BSD License (2 Clause)
 * @license   http://www.debian.org/misc/bsd.license  BSD License (3 Clause)
 * @license   http://www.freebsd.org/copyright/license.html  BSD License (4 Clause)
 * @license   http://www.opensource.org/licenses/mit-license.html  MIT License
 * @license   http://www.gnu.org/copyleft/lesser.html  LGPL License 2.1
 * @license   http://www.php.net/license/3_0.txt  PHP License 3.0

詳細については、PEAR グループによるアナウンス Licensing Announcement （英語）を参照してください。

@link

ページレベル、クラスレベルどちらにも使用できます。 もちろん、"PackageName" は自分のパッケージ名に置き換えます。 このタグを使うことで、生成されたドキュメントが自分のパッケージにリンクする ことができるようになります。

.
 * @link      http://pear.php.net/package/PackageName

@author

ソースファイルの作者リストに、コード提供者の名前を追加するべきかどうか を定義する明確な規則はありません。一般的には、 "相当な" 部分（10%から20%のコード変更を意味します）の変更を 行った場合に、作者に加えるようです。 関数のリライトや新たなロジックの提供の場合には、例外もありえます。

簡単なコードの整理やバグ修正は、作者リストに 新たに人を追加するまでの理由にはなりません。

@since

ファイルやクラスが、パッケージの初リリースの後で加えられた場合、 このタグを使用します。初リリースに際しては使用しません。

@deprecated

ファイルやクラスが、もはや使われなくなっているが、 互換性のため残されている場合にこのタグを使用します。

任意タグ

@copyright

コピーライトは自由に記述してください。 形式としては、年は西暦 4 桁で、複数年にわたる場合は ハイフンを用いて始まりの年と終わりの年を結びます。 著作権者は、個人でも複数人でも会社名でも PHP Group 等でもかまいません。 例を示します。

.
 * @copyright 2003 John Doe and Jennifer Buck
 * @copyright 2001-2004 John Doe
 * @copyright 1997-2004 The PHP Group
 * @copyright 2001-2004 XYZ Corporation

ライセンスの概要

PHP ライセンスを使用する場合は、上記に示した概要文を使ってください。 他のライセンスを使用する場合は、PHP ライセンスの概要文を削除し、 使用するライセンスに対応するものに置き換えます。 ただし、記述は簡潔にとどめ、また LICENSE: という テキストを前につけます。

@see

ユーザにパッケージのドキュメントの他のセクションを参照してもらう場合に @see タグを用います。複数の参照項目を記述する場合には、@see タグを複数書くのではなく、 コンマで区切って記述します。。

文字間隔ほか

PEAR のソースコードを読みやすくするため、 テキストやタグの順序や文字間隔は、前の例にしたがう必要があります。 これは、JavaDoc 標準を採用したものになっています。

@package_version@ の使用法

@package_version@ 置換は、2つの方法で実行することができます。 package.xml を書いているか、PackageFileManager を使っているかに 依ります。

package.xml を作成するにあたって、<replace> 要素を 各ファイルに対して追加します。以下のような XML となります。

<file name="Class.php">
  <replace from="@package_version@" to="version" type="package-info" />
</file>

メンテナが PackageFileManager を使っている場合は、 各ファイルに対して addReplacement() を コールするようにします。

$pkg->addReplacement('filename.php', 'package-info',
                     '@package_version@', 'version');

移行ポリシー

既存の小規模なパッケージ

数個のファイルからなる既存のパッケージは、 次のリリースまでに上記の docblocks に対応する。

既存の大規模なパッケージ

多くのファイルから構成される既存のパッケージは、 できるだけ早く上記の新ヘッダに対応することが望まれる。 メジャーバージョンを上げるような更新をする場合には、 上記の docblocks に必ず対応する。

未リリースのパッケージ

新しいパッケージや、既存でも未リリースのパッケージは、 初リリースまでに上記の docblocks に対応する。

前のページ | ホーム | 次のページ
PHP コードタグ | 上に戻る | CVS の使用

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コードの読み込み

クラスファイルを無条件で読み込む場合は、 require_once() を使用します。 クラスファイルを条件付きで読み込む場合（たとえば、factory メソッド）は、 include_once() を使用します。 こうすることで、クラスファイルが 確実に 1 度だけ読み込まれます。 これらは、ファイルリストを共有しており、 混用について心配する必要はありません。 require_once() で読み込まれたファイルは、 include_once() により再度読み込まれることはありません。

注意 include_once() および require_once() は命令であり、関数ではありません。 読み込むファイル名の前後にカッコは付けません。

前のページ | ホーム | 次のページ
コメント | 上に戻る | PHP コードタグ

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


命名規約

クラス

クラスには、内容が理解できるような名前を指定するべきです。 略語の使用は可能なかぎり避けます。 クラス名は、常に大文字で始めるべきです。 PEAR クラス階層は、クラス名にも反映され、各階層レベルは、 アンダースコアで区切られます。良いクラス名の例を以下に示します。

Log

Net_Finger

HTML_Upload_Error

関数とメソッド

関数とメソッドは、"studly caps" 形式 （"bumpy case" または "camel caps" とも呼ばれます） を使用して名前を付けるべきです。 関数には、パッケージ間の名前の衝突を避けるためにパッケージ名を接頭辞として 加えるべきです。（接頭辞の後の）名前の最初の文字は小文字で、 新しい単語を始める際の各先頭文字は大文字とします。 いくつかの例を示します。

connect()

getData()

buildSomeWidget()

XML_RPC_serializeData()

プライベートなクラスメンバ （それが宣言されたクラスの内部からだけの使用を意図したクラスメンバ。 PHP は、プライベート名前空間をまだサポートしていません。）は、 アンダースコア 1 つを前に付けます。例を示します。

_sort()

_initTree()

$this->_status

注意次の内容は PHP5 に適用されます。

プロテクテッドなクラスメンバ（すなわち、それが宣言されたクラス内、 およびそのサブクラス内でだけ使用できるクラスメンバ）には、 前にアンダースコアを付けません。例を示します。

protected $somevar

protected function initTree()

定数

定数は、すべて大文字で記述し、単語の区切りにはアンダースコアを 使用するべきです。使用されるクラス／パッケージを大文字で表した名前を 定数の接頭辞として付加してください。 たとえば、DB:: パッケージで使用する定数は、 すべて DB_ で始めます。

注意 true, false および null は例外で、すべて小文字で記述します。

グローバル変数

パッケージでグローバル変数を定義する必要がある場合、その名前は、 アンダースコアを前後に付けたパッケージ名で始めるべきです。 たとえば、PEAR パッケージは、 $_PEAR_destructor_object_list という名前のグローバル変数を使用します。

前のページ | ホーム | 次のページ
URL の例 | 上に戻る | ファイルフォーマット

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


サンプルファイル (標準の Docblock コメントを含む)

数多くの人が PEAR パッケージのソースコードを読みます。 また、将来、他の人がパッケージの開発者として加わるかもしれません。 ですから、皆の人生を楽にするには、コードや docblocks を規約にしたがって整えておくことが重要となります。 欲しい情報が予期した場所にあれば、すばやく見つけ出すことができるからです。 協力をよろしくお願いします。

例に示す各 docblock には、Docblock コメントの記述方法について 詳しく述べられています。 これらの指示にしたがうことは、2 つの意味で重要です。 ひとつは、docblock が読みやすくなれば、ユーザや開発者が コードの内容についてすばやく理解できるようになるということ。 ふたつめは、PEAR のサイトでは、phpDocumentor により自動生成された ドキュメントを各パッケージの各リリースごとに掲載しており、 本規約にしたがわないと、その API ドキュメントは使い物にならなくなるためです。

上下左右方向のスペースにも注意してください。それらも、規約の一部です。

"折り畳みマーカ (fold markers)" （// {{{ および // }}} ） は、オプションです。折り畳みマーカを使わない場合は、 foldmethod=marker を vim のヘッダから削除してください。

<?php

/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */

/**
 * Short description for file
 *
 * Long description for file (if any)...
 *
 * PHP versions 4 and 5
 *
 * LICENSE: This source file is subject to version 3.0 of the PHP license
 * that is available through the world-wide-web at the following URI:
 * http://www.php.net/license/3_0.txt.  If you did not receive a copy of
 * the PHP License and are unable to obtain it through the web, please
 * send a note to license@php.net so we can mail you a copy immediately.
 *
 * @category   CategoryName
 * @package    PackageName
 * @author     Original Author <author@example.com>
 * @author     Another Author <another@example.com>
 * @copyright  1997-2005 The PHP Group
 * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
 * @version    CVS: $Id:$
 * @link       http://pear.php.net/package/PackageName
 * @see        NetOther, Net_Sample::Net_Sample()
 * @since      File available since Release 1.2.0
 * @deprecated File deprecated in Release 2.0.0
 */

/**
 * This is a "Docblock Comment," also known as a "docblock."  The class'
 * docblock, below, contains a complete description of how to write these.
 */
require_once 'PEAR.php';

// {{{ constants

/**
 * Methods return this if they succeed
 */
define('NET_SAMPLE_OK', 1);

// }}}
// {{{ GLOBALS

/**
 * The number of objects created
 * @global int $GLOBALS['NET_SAMPLE_Count']
 */
$GLOBALS['NET_SAMPLE_Count'] = 0;

// }}}
// {{{ Net_Sample

/**
 * An example of how to write code to PEAR's standards
 *
 * Docblock comments start with "/**" at the top.  Notice how the "/"
 * lines up with the normal indenting and the asterisks on subsequent rows
 * are in line with the first asterisk.  The last line of comment text
 * should be immediately followed on the next line by the closing asterisk
 * and slash and then the item you are commenting on should be on the next
 * line below that.  Don't add extra lines.  Please put a blank line
 * between paragraphs as well as between the end of the description and
 * the start of the @tags.  Wrap comments before 80 columns in order to
 * ease readability for a wide variety of users.
 *
 * Docblocks can only be used for programming constructs which allow them
 * (classes, properties, methods, defines, includes, globals).  See the
 * phpDocumentor documentation for more information.
 * http://phpdoc.org/docs/HTMLSmartyConverter/default/phpDocumentor/tutorial_phpDocumentor.howto.pkg.html
 *
 * The Javadoc Style Guide is an excellent resource for figuring out
 * how to say what needs to be said in docblock comments.  Much of what is
 * written here is a summary of what is found there, though there are some
 * cases where what's said here overrides what is said there.
 * http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#styleguide
 *
 * The first line of any docblock is the summary.  Make them one short
 * sentence, without a period at the end.  Summaries for classes, properties
 * and constants should omit the subject and simply state the object,
 * because they are describing things rather than actions or behaviors.
 *
 * Below are the tags commonly used for classes. @category through @access
 * are required.  The remainder should only be used when necessary.
 * Please use them in the order they appear here.  phpDocumentor has
 * several other tags available, feel free to use them.
 *
 * @category   CategoryName
 * @package    PackageName
 * @author     Original Author <author@example.com>
 * @author     Another Author <another@example.com>
 * @copyright  1997-2005 The PHP Group
 * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
 * @version    Release: @package_version@
 * @link       http://pear.php.net/package/PackageName
 * @see        NetOther, Net_Sample::Net_Sample()
 * @since      Class available since Release 1.2.0
 * @deprecated Class deprecated in Release 2.0.0
 */
class Net_Sample
{
    // {{{ properties

    /**
     * The status of foo's universe
     *
     * Potential values are 'good', 'fair', 'poor' and 'unknown'.
     *
     * @var string
     */
    var $foo = 'unknown';

    /**
     * The status of life
     *
     * Note that names of private properties or methods must be
     * preceeded by an underscore.
     *
     * @var bool
     * @access private
     */
    var $_good = true;

    // }}}
    // {{{ setFoo()

    /**
     * Registers the status of foo's universe
     *
     * Summaries for methods should use 3rd person declarative rather
     * than 2nd person imperative, begining with a verb phrase.
     *
     * Summaries should add description beyond the method's name. The
     * best method names are "self-documenting", meaning they tell you
     * basically what the method does.  If the summary merely repeats
     * the method name in sentence form, it is not providing more
     * information.
     *
     * Summary Examples:
     *   + Sets the label              (preferred)
     *   + Set the label               (avoid)
     *   + This method sets the label  (avoid)
     *
     * Below are the tags commonly used for methods.  A @param tag is
     * required for each parameter the method has.  The @return and
     * @access tags are mandatory.  The @throws tag is required if the
     * method uses exceptions.  @static is required if the method can
     * be called statically.  The remainder should only be used when
     * necessary.  Please use them in the order they appear here.
     * phpDocumentor has several other tags available, feel free to use
     * them.
     *
     * The @param tag contains the data type, then the parameter's
     * name, followed by a description.  By convention, the first noun in
     * the description is the data type of the parameter.  Articles like
     * "a", "an", and  "the" can precede the noun.  The descriptions
     * should start with a phrase.  If further description is necessary,
     * follow with sentences.  Having two spaces between the name and the
     * description aids readability.
     *
     * When writing a phrase, do not capitalize and do not end with a
     * period:
     *   + the string to be tested
     *
     * When writing a phrase followed by a sentence, do not capitalize the
     * phrase, but end it with a period to distinguish it from the start
     * of the next sentence:
     *   + the string to be tested. Must use UTF-8 encoding.
     *
     * Return tags should contain the data type then a description of
     * the data returned.  The data type can be any of PHP's data types
     * (int, float, bool, string, array, object, resource, mixed)
     * and should contain the type primarily returned.  For example, if
     * a method returns an object when things work correctly but false
     * when an error happens, say 'object' rather than 'mixed.'  Use
     * 'void' if nothing is returned.
     *
     * Here's an example of how to format examples:
     * <code>
     * require_once 'Net/Sample.php';
     *
     * $s = new Net_Sample();
     * if (PEAR::isError($s)) {
     *     echo $s->getMessage() . "\n";
     * }
     * </code>
     *
     * Here is an example for non-php example or sample:
     * <samp>
     * pear install net_sample
     * </samp>
     *
     * @param string $arg1  the string to quote
     * @param int    $arg2  an integer of how many problems happened.
     *                       Indent to the description's starting point
     *                       for long ones.
     *
     * @return int  the integer of the set mode used. FALSE if foo
     *               foo could not be set.
     * @throws exceptionclass  [description]
     *
     * @access public
     * @static
     * @see Net_Sample::$foo, Net_Other::someMethod()
     * @since Method available since Release 1.2.0
     * @deprecated Method deprecated in Release 2.0.0
     */
    function setFoo($arg1, $arg2 = 0)
    {
        /*
         * This is a "Block Comment."  The format is the same as
         * Docblock Comments except there is only one asterisk at the
         * top.  phpDocumentor doesn't parse these.
         */
        if ($arg1 == 'good' || $arg1 == 'fair') {
            $this->foo = $arg1;
            return 1;
        } elseif ($arg1 == 'poor' && $arg2 > 1) {
            $this->foo = 'poor';
            return 2;
        } else {
            return false;
        }
    }

    // }}}
}

// }}}

/*
 * Local variables:
 * tab-width: 4
 * c-basic-offset: 4
 * c-hanging-comment-ender-p: nil
 * End:
 */

?>

前のページ | ホーム | 次のページ
ベストプラクティス | 上に戻る | 貢献

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


PHP コードタグ

PHP コードを区分するためには、短縮型の <? ?> ではなく、 かならず <?php ?> を使用してください。 PEAR のルールであると言うだけでなく、オペレーティングシステムや設定が異なる情况で PHP コードを読み込む際の最も互換性の高い方法でもあります。

前のページ | ホーム | 次のページ
コードの読み込み | 上に戻る | ヘッダコメントブロック

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


IRC の #PEAR

PEAR プロジェクトには専用の IRC チャンネル #PEAR があり、EFnet で利用可能です。 参加して、グルーたちに逢って下さい。彼らのインターネット接続の料金を 負担する必要はなく、一日中 IRC に接続したままとすることができます。

前のページ | ホーム | 次のページ
WEB リソース | 上に戻る | 標準コーディング規約

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


WEB リソース

PEAR について扱っている WEB サイトは数多く存在します。 それらのリストを、こちらで 作成しています。 もし、サイトが消えている場合は、 webmaster へメールしてください。

前のページ | ホーム | 次のページ
サポート | 上に戻る | IRC の #PEAR

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists


コードをリリースする機会

PEAR に参加すれば、自らのコードを、他の多くの PHP 開発者に使用してもらえる機会が得られます。 PEAR にコードを提供する方法について詳細な情報を得るには 「こちら」を参照してください。

前のページ | ホーム | 次のページ
開発者にとって PEAR が持つ意味 | 上に戻る | コードの提供

Back

Forward

Copy

PEAR Packages

Developer Mailing Lists