BUSINESS TIPS発注担当者の方へ、発注成功の為のお役立ち情報

PHPで対話型アプリケーションを扱うには

目次

PHPで対話型アプリケーションを扱うには

PHP

PHPはプロセス間通信やスレッドなどといった処理には本来は向いていません。 そもそものPHPの設計思想がサーバーサイドスクリプトとして用いられているためです。 しかし、PHP 5.4.x以上からビルトインサーバー、いわゆるPHP自体をウェブサーバー化するための仕組みが提供されました。 ※ 現状のPHPの最新版は7.0.xです。 上記を踏まえると、PHPはサーバーサイドスクリプトというポジションを超えて、 サーバーとして扱えるようになってきたと考えられます。 ※ RubyやPythonなどが出来てきてから、PHPもこういった考え方になってきたのではないかと思います。

プロセス間通信

PHPでは、上述しているように、プロセス間通信やスレッド処理などには不向きですが、 扱えないわけではなく、Unixでインストールした際にデフォルトで制約はあるものの、 プロセス間通信を行うための関数が用意されています。(POSIXやPCNTLなどと呼ばれるものです。) プロセス間通信とは、たとえばAプログラムとBプログラムがあったときに AプログラムとBプログラムが互いに通信(分かりやすく言うと、コマンドの送受信)を行うことです。 プロセス間通信では、 シグナルと呼ばれるプログラム間の合図のようなものや、標準入出力と呼ばれるもので、 読み込み(stdin, input)・書き込み(stdout, output)・エラー(stderr)の3種類のパイプが存在します。 基本的には読み込みと書き込みしか使用しません。

標準入出力

シグナルはPHPのプロセスを扱う関数で基本的に制御するため、ここでは関係はありませんが、 標準入出力が、対話型アプリケーションでは必要になります。 標準入出力で身近なものでいえばキーボードです。 キーボードで入力(input)されたものが画面に出力(output)されるものです。 身近なところでいうとキーボードで何か文字を入力しようとするとカーソルが点滅すると思います。 プログラム側もカーソルの点滅と一緒で、何か入力されるまで待機している状態です。 しかし、何かしら入力されたとしても、それをどこまで取得していいのかプログラム側にはわからないため、1文字でも入力されたら、出力されたという扱いになるため、 コマンドを送信後、どこまでが出力の範囲なのかを見る必要性が有ります。さらに、プロセス間通信を行っているプログラムが必ずしも定まった形でレスポンスを返す とは限らないため、ダミーのコマンドを送信し、ダミーのコマンドの位置までの出力を取得するなどといったような一工夫が必要です。

WEBサービス開発依頼先探しなら、
リカイゼンにおまかせください!

相談するだけ!プロがあなたにぴったりの会社をご紹介いたします!

かんたん3ステップ
お急ぎの方はお電話で 03-6427-5422
※サポートデスク直通番号
受付時間:平日10:00〜18:00

WEBサービス開発依頼先探しでこんなお悩みはありませんか?

お悩み
  • 会社の選び方がわからない
  • 何社も問い合わせるのが面倒くさい
  • そもそも依頼方法がわからない
  • 予算内で対応できる会社を見つけたい

発注サポート経験豊富な専任スタッフが
あなたのご要望をお聞きし、最適な会社をご紹介いたします!
ご相談から会社のご紹介まで全て無料でご利用いただけます。
お気軽にご相談ください!

WEBサービス開発
依頼先探しなら
リカイゼンにおまかせください!

相談するだけ!プロがあなたにぴったりの会社を無料でご紹介いたします!

サポートデスク

まずはご質問・ご相談なども歓迎!
お気軽にご連絡ください。

この記事の監修
リカイゼン サポートデスク 
吉田・新町
BtoBマッチングサービスであるリカイゼンにおいて、発注企業からのご相談のヒアリング、企業選定のフォローなどを行う部門の担当です。出展企業であるシステム開発やWEB制作、クリエイティブ制作会社ともコミュニケーションを取りながら、年間数百件の受発注のサポートを行っています。

WEBサービス開発の関連記事

【初心者必見】PHPとは?PHPの基礎知識を解説!

【初心者必見】PHPとは?PHPの基礎知識を解説!

PHPとはどんな言語? PHP(Hypertext Preprocessor)は、主にウェブ開発に使用されるスクリプト言語の一つです。PHPはサーバーサイドで実行され、動的なウェブページを生成するために利用されます。主な特徴...

プラットフォーム開発のステップバイステップガイド:重要な開発ツールとその使い方

プラットフォーム開発のステップバイステップガイド:重要な開発ツールとその使い方

プラットフォーム開発とはプラットフォームの定義とその重要性ある特定の製品やサービスが、他の製品やサービスに基づいて作成・展開・運用される基盤やフレームワーク、それが「プラットフォーム」です。この言葉はビジネスやテクノロジーの...

EC-CUBE: 完全ガイドとその特性

EC-CUBE: 完全ガイドとその特性

はじめに: EC-CUBEとその重要性インターネットが日常生活の一部となった現代社会において、Eコマースは消費者のショッピングスタイルを大きく変えています。その中でも、EC-CUBEは多くの企業がオンラインショップを構築する...

ホームページとWebサイトはいったいどこが異なるのか

ホームページとWebサイトはいったいどこが異なるのか

ホームページとWebサイトというとどちらも同じ意味だと捉えている方、同じような使い方をしている方も多いのではないでしょうか。 しかし、実はこの2つのワード、意味は似ているようで非なるものです。 今回は、ホームページとWebサ...

GoogleのSEOを制するものは集客を制する!?

GoogleのSEOを制するものは集客を制する!?

ホームページで集客や販売促進、求人などを行う際、検索エンジンを通じてアクセスする人を増やすには、GoogleのSEOを重視することが大切です。 GoogleはSEOガイドラインを公表しているので、これに沿った対策を講じていく...

記事を探す

キーワードで探す

カテゴリーで探す