0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

あなたのPHPが変わる!SAPI導入ガイド

Last updated at Posted at 2024-05-17

コード分析システム - Zend・Engine

概要

  • Zend EngineはPHPのインタプリタ(レジスタマシンベースの仮想機械)である。
  • PHP Licenseに類似したZend Engine Licenseが適用される自由なソフトウェア。
  • The PHP Groupによって開発・公開されている。

歴史

  • PHPはラスマス・ラードフが開発し、PHP **2(PHP/FI)**までほぼ1人で開発を行っていた。
  • PHP 3を作るにあたり、アンディ・ガトマンズゼーブ・スラスキーが構文解析部の開発に参加。
  • PHP 4でパーサが完全に作り直され、Zend Engineと名付けられた。
  • ゼンド・テクノロジーズを創業し、PHPをベースとしたWebアプリケーションの開発を行っている。

機能

  • PHP 3以前: 実行のたびにソースコードを翻訳し実行。
  • Zend Engine: ファイル単位で中間表現へ翻訳し実行、速度向上。
  • モジュール化、API公開により第三者がPHP向けの拡張モジュールを開発可能。

バージョン

  • Zend Engineのバージョン番号はPHPと連動。
  • PHP 4.x系: Version 1.x
  • PHP 5.x系: Version 2.x
  • PHP 7.x系: Version 3.x
  • PHP 8.x系: Version 4.x

Zend Engine 2

  • PHP 5に搭載。
  • カプセル化、抽象クラス、例外処理などのオブジェクト指向プログラミング関連の機能強化。

SAPI - (WEB - PHP間のインターフェース)

概要

  • WEB上でPHPを扱う際のインターフェース(Speech Application Programming Interface)
  • Windowsアプリケーションで音声認識や音声合成を使うために、マイクロソフトが開発したAPI。
  • 様々なバージョンが存在し、Speech SDKの一部として出荷されたもの、Windows OSの一部としてリリースされたものがある。
  • SAPIを使用した主なアプリケーション: Microsoft Office、Microsoft Agent、Microsoft Speech Server。

機能

  • 各バージョンは、音声合成/認識機能を使用するための標準インタフェースを提供。
  • サードパーティがSAPI対応の音声認識エンジンや音声合成エンジンを開発可能。
  • マイクロソフト提供のエンジンの代替として使用可能。

再配布

  • Speech APIは自由に再配布可能なコンポーネント。
  • 音声認識/合成エンジンの多くも自由に再配布可能。

SAPIのバージョン

  • SAPIには2つのファミリがある。

⇒ バージョン1から4

  • 互いに類似、新機能が追加。

⇒ SAPI 5(2000年リリース)

  • 従来のバージョンと全く異なるインタフェース。
  • 基本アーキテクチャSAPIバージョン1から4アプリケーションは直接エンジンとやり取りできる。
  • 抽象「インタフェース定義」が含まれ、単純化された高レベルのオブジェクトも使用可能。

SAPI 5

  • アプリケーションとエンジンは直接やり取りできない。
  • 両者はランタイムコンポーネント(sapi.dll)とやり取りする。
  • アプリケーション向けAPIとエンジン向けインタフェースがsapi.dllに実装。

SAPI 5の機能

  • 認識文法のロード、認識開始、合成すべき文の提供などにAPIを使用。
  • sapi.dllはコマンドを解釈し、必要に応じてエンジンインタフェースを通してエンジンを呼び出す。
  • エンジンからdllを経由してアプリケーションにイベントが通知されることもある。

Speech SDKの構成

  • コンポーネントAPI定義ファイル(MIDL、C/C++用ヘッダファイル)
  • ランタイムコンポーネント(sapi.dll)
  • コントロールパネル・アプレット(デフォルトの音声認識/音声合成エンジンを選択/設定)
  • 各種言語用の音声合成エンジン
  • 各種言語用の音声認識エンジン
  • 再配布可能コンポーネント(エンジンとランタイム)
  • サンプルコード(アプリケーションとエンジンのサンプルコード)

PEAR - フレームワーク・リポジトリ(PHP)

概要

  • PEAR (PHP Extension and Application Repository) は、PHPプログラミング言語のためのフレームワークおよびリポジトリです。
  • PEARはPHP開発者が再利用可能なコードを簡単に共有、配布、インストール、管理するための標準化されたシステムを提供します。

主な特徴

パッケージ管理

  • PEARは、PHPコードをパッケージとして提供し、依存関係管理、インストール、アップデートを容易にします。
  • コマンドラインツールpearを使用してパッケージの検索、インストール、アップデートが可能。

再利用可能なコンポーネント

  • PEARには、広範な再利用可能なコンポーネントが含まれており、これを利用することで開発速度の向上とコードの品質向上が期待できます。
  • 例として、データベース抽象化レイヤ、メール処理ライブラリ、認証システムなどがあります。

コーディング規約

  • PEARはコーディングスタイルガイドラインを提供し、これに従うことで一貫性のあるコードベースを維持できます。
  • 標準的なコーディングスタイルにより、他の開発者との協働が容易になります。

ドキュメントとサポート

  • 各パッケージには詳細なドキュメントが付属しており、インストール方法、使用方法、APIリファレンスが含まれます。
  • 開発者コミュニティやメーリングリスト、フォーラムを通じてサポートを受けることが可能です。

代表的なパッケージ

DB

  • データベース抽象化レイヤ。複数のデータベースシステムを統一的に扱うことができます。

Mail

  • メール送信および処理のためのライブラリ。
  • SMTP、IMAP、POP3に対応。

Auth

  • 認証システムのためのライブラリ。
  • ユーザー認証を簡単に実装可能。

コーディング規則 - PHP

インデントと行の長さ

  • コードブロックはスペース4つでインデント。
  • 行の長さは80文字以内に制限。

制御構造

  • 制御構造には1TBS(One True Brace Style)を使用。
  • 開き中括弧は制御文と同じ行に配置。
  • 閉じ中括弧は新しい行に配置。

関数呼び出し

  • 関数名と開き括弧の間にスペースを入れない。
  • 引数はカンマの後に1つのスペースを挿入。

クラス定義

  • クラス名はキャメルケースを使用。
  • クラス名は大文字で始める。
  • 開き中括弧はクラス名と同じ行に配置。
  • 閉じ中括弧は新しい行に配置。

関数定義

  • 関数名はキャメルケースを使用。
  • 開き中括弧は関数名と同じ行に配置。
  • 閉じ中括弧は新しい行に配置。
  • パラメータと戻り値の型はDocblockで記述。

配列

  • 短い配列構文([])を使用。
  • 配列の値は読みやすいように整列。
  • 複数行の配列にはトレーリングカンマを使用。

コメント

  • 短いコメントにはシングルラインコメント(//)を使用。
  • 長い説明にはマルチラインコメント(`/* ... */)を使用。
  • クラス、メソッド、関数のドキュメントにはDocblock(`/** ... */)を使用。

コードのインクルード

  • ファイルのインクルードにはinclude_onceまたはrequire_onceを使用。
  • ファイルパスはルートディレクトリを基準に指定。

PHPコードタグ

  • PHPコードには<?php ... ?>タグを使用。
  • 互換性のためにショートタグ(<? ... ?>)は避ける。

ヘッダコメント

  • ブロック各ファイルの先頭にファイルレベルのDocblockを含める。
  • ファイルの目的、作成者、ライセンス情報を記載。

SVNの使用

  • SVNコミットガイドラインに従う。
  • 意味のあるコミットメッセージを含める。
  • コード変更をコミットメッセージに記録。

URLの例

  • コメントに参考となるURLを提供。
  • URLが最新で関連性があることを確認。

名前付け規約

  • 変数と関数にはキャメルケースを使用。
  • 定数には大文字を使用。
  • 意味のある名前を使用して目的を伝える。

ファイル形式

  • すべてのファイルはUTF-8エンコードを使用。
  • ファイルの末尾に改行文字を含める。

E_STRICT対応コード

  • E_STRICT標準に準拠するコードを書く。
  • コードが将来のPHPバージョンと互換性があることを確認。

エラーハンドリングガイドライン

  • エラーハンドリングには例外を使用。
  • 期待される例外をDocblockに記載。
  • エラーを抑制するために@を使用しない。

ベストプラクティス

  • DRY原則(Don't Repeat Yourself)に従う。
  • 重要なコードには単体テストを書く。
  • すべてのプロジェクトにバージョン管理を使用。

サンプルファイル(Docblockコメント標準を含む)

  • コーディング規約を示すサンプルファイルを含む。
  • クラス、メソッド、関数のDocblockコメントの例を提供。

PEARツールボックス

  • PEARコーディング規約を参考にする。
  • パッケージ管理と配布にPEARツールを活用。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?