P言語という言葉があって、Perl, Python, PHPなど軽量スクリプト言語がみなPではじまるからだそうです。RubyはPで始まらないですが名誉会員のようです。

COBOL,C,Javaはレガシーな重量級コンパイラ言語ということで、ライブラリやバッチなどの裏方にまわれということのようです。

作者:城風敏彦 http://www5.plala.or.jp/shirokaze/

PHP

まえがき

  • 分散トランザクション(データベースを2つ以上使う)の必要がないWebアプリにJavaやC++,C#は必要以上に複雑な場面も多い。そんな時手軽に作成でき、習得も容易なのがPHPです。似たものにASP(VB)、Perl、Rubyなどがあります。
  • 2005年ころからCakePHP,Symfony,Zend Framework,CodeIgniterなどのフレームワークが乱立して面白いです。
    テーブル定義からデータクラスを自動生成するのはRuby on Railsからの影響と思われます。Javaのトランザクション系フレームワークのseaser2がPHPに移植されたのにも驚きました。
  • テンプレートエンジンSmary,HTMLの生成とパラメータのチェックライブラリPEAR HTML_Quickformなど、5年前のJavaの勢いを見ているようです。変数はVBのVariantに 似て自動認識なので型のチェックに弱いのでプログラムを簡易につくれるのはVBやPerl などの他のスクリプト言語と同様です。
  • 画面が10個くらいしかない小さいシステムでは、「フレームワークを使わない方が良かった」という笑えない話も多いです。特に最近は重厚なMVCフレームワークでがんばるよりも、AjaxのJavaScript?やFlexのAction Scriptに注力したり、DB更新を夜間バッチや非同期メッセージにした方が良いことも多いです。しかし、終わってみないと何が不要だったのかわかりません。

インストール

開発環境としてはxamppが各サービスのバージョンあわせをしてくれるので良いです。 PHPのリリースはApacheかIISと組み合わせて使うのが普通です。ApacheならWindowsで開発してLinuxにインストールすることができますので、Apacheのことが多いです。

入門サンプル

  • まずは現在時刻を表示してみましょう。再表示で時刻が変わることを確認してみましょう。ApacheでしたらC:\Apche2.2\htdocs などのルートパスに以下のファイルを置いてIEなどのブラウザで確認します。

now2.phpはASPライクなタグを使える場合の例です。php.iniでasp_tags = OnにするとASPライクな<%=..%>を使うことができます。

  • HTMLのFORMからパラメータを入力して、何かを計算して返すというのが良い入門です。データベースを使いませんので。
  • セッション情報に値をセットしてページ遷移後に取り出して用いることはログイン情報などで良く用いられます。従来はregister_globals()関数が使われていましたが、PHP6から完全に無くなるので今から$_SESSION グローバル変数を用いておいた方が良いです。

Web定番スキル

チェックボックスと複数選択コンボボックス

  • チェックボックスは選んだ値しか送信されないので、エラーチェック後や他のページから戻ってきたときの値の引継ぎが一工夫いります。パラメータ名に配列記号(例:name="block[]")を使うのが最初はびっくりです。ちなみに添字(インデックス)に数字を入れても結果は変わりません。
  • name=xxx[]がJavaScript?で問題になります
    • これから書く予定

formのactionやサブactionをJavaScript?で切り替える場合

PostgreSQLとの接続

業務アプリはデータベースを使います。巨大な金額が動くときはOracleしかないですが、小さなシステムで更新は夜間バッチで良い場合は、MySQLやPostgreSQLも使われます。 PHPにはPostgreSQL,MySQLのドライバーが最初から入っているので簡単に接続できます。

MySQLとの接続

  • mysql_resource.inc
  • mysql.php
    • SQLを入力して検索結果を表示するサンプルです。
    • うまく動かない場合、環境変数PATHにC:\Program Files\MySQL\MySQL Server 5.0\binを加えると良いです。
  • usertable.php
    • HTMLのフォームから値を入力してテーブルに登録するサンプルです。

MVCフレームワークMojaviを使う

2005年頃はMojavi(モハビと読むらしいです)が一番使われていました。開発がストップしていたり、実行が遅かったりしますがが、設定ファイルがなくファイル名だけでMVCを関連づけるのはわかりやすい。 JavaのStrutsを簡略化してDynaActionFormで行く感じですが、テンプレートエンジンのSmartyやPEARのHTML_QuickForm?などと組み合わせることもできます。個人的には好きですが、今となってはフレームワーク入門に良いという感じです。

高速MVCフレームワークCodeIgniter?を使う

SymfonyやCakePHPなどRuby on Rails風の機能豊富だが動作が遅いPHPフレームワークにベンチマークで2倍の速度を出すというCodeIgniterが実用的と思い使っています。
データベースとの連携も持っていて、テンプレートを重視していないのが良いです。
http://userguide.cilab.info/index.html のガイド(Table of Contentsタブをクリックするとメニューが再表示される)を追ってPostgreSQLとMySQLを使ったサンプルを作ってみます。

以上はサンプルであり、実際のアプリはSQLをパラメータにせずに、準備されたSQL分(PreparedStatement?)を使って作成します。

PHPLink

Ruby

ついにJavaの後継に

Web+DB PRESSなどを読んでいると、マシン性能の向上とともに遅くとも便利で開発のしやすい言語の時代になっており、その筆頭がRubyだそうです。 たしかにEJB, JSF, Struts, Spring, HibernateとXML,アノテーション,デプロイ地獄を体験した身にするとうなずけます。ただしRubyとRailsの遅さとデバッグのつらさに直面すると、スペルミスの多い著者としては冗長ゆえに静的チェックができたJavaもなつかしいというところです;-)

DB

SQLite

文字コード

配列

ファイル

RubyLink

Perl

通にはいまだにNo.1

WWWがはじまった1995年頃、アメリカでコンピュータ言語の本で一番売れていたのはPerlでした。今でもサイト構築の専門家は基本はPerlで考えているとか。一人でシステム管理系のスクリプトを作るには最適ですが、他人が読みづらいというのが諸刃の剣なのでしょうか。

CGI

Counter: 3868, today: 3, yesterday: 0

著者: 城風 敏彦

shiro's webへもどる


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-02-23 (木) 16:48:24 (83d)