愛車:マツダアテンザ
Webを中心とした、ビジネス&テクノロジーに関する思いつき
by F-shin
[ このサイトについて ] [ F-shinについて ] [ トップ ]
author:えふしん
photo_20.jpg
藤川真一について


モバツイの中の人
人の良いジョンカビラと言われます。ソフト哲学者を目指します。
AMN sponsor rolls
ツイッターやるなら
for iPhone App
Google Friend Connect
このカテゴリ[Web系]の最新30件
そろそろモバツイがEC2に移転した話でも書くとするか。 とりあえずやってみて、ダメならすぐ手を変える体制重要 メールって盗聴されますか? 「正しい反論を得る」ことは重要なネットリテラシーの一つ 人は同じことを繰り返す。けど、残念なのかよくわからない。 楽天アフィリエイトが儲かる理由 「ブレイクするっていうのはバカに見つかるってこと」はプルメディアであるネットで成り立つのか。 RT:日本のネットが「残念」なのは、ハイブロウな人たちの頑張りが足りないから RSSと引越しとパーマリンク ツイッターは一期一会の精神で楽しむ なんだこの楽天叩き。 記事未満〜エンジニアの未来サミットとか。 ネット世論を殺すのは簡単。 Web身の回り告知系 個別アーカイブの記事に記事の文字数、行数表示をつけた。 DH時代のFlashがインデックスされてるのを見つけた。 それドロップシッピングを語る業者に騙された、だけでしょ? はてブの関連エントリーはスゴイ。 ニコニコ動画がiPhoneアプリで登場! Doblogサービスが終わりだそうで。 Web2.0は死んだとか言うbuzzwordに影響されてる開発者は、自分の開発手法が当たり前のようにWeb2.0化していることに気がつくべき。 オレ様最適で炎上対象になると、全体最適の的外れレスがつきやすい モバツイでのDonation体験談 イケてないモバイル広告 経営者にとってのサーバサイド技術選び はてブがMac OperaでBad Requestになる件について 言論の質、blogの質 XMLが描いた世界は実現するのか。 年収とイキイキ評価とのギャップ 日本人にとってのTweetってはてブじゃないのかなぁ。
[このカテゴリをもっと見る]
F's Garage関連
Powered by
Movable Type
■お仕事情報
カラメルアフィリエイト始めました
カラメルアフィリエイト
一緒にペパボで働きませんか?カラメル開発者募集中です!

February 18, 2006

PHPのすごさは何より「require」文だと思う。

require文は、いわゆる外部のphpをincludeする命令である。PHPのrequire文は、その命令が「実行した段階」からphpファイルがincludeされ、何食わぬ顔をしてあらゆる変数を引き継いだまま、include元のphpコードの続きとして実行される。

逆に言うと、require文を「実行しなければ」ソースコード中に書かれたinclude先のコードが呼び出されることはない。

これ最強だと思うんだが、他の言語ではどうなんだろう。

MVCモデルで言うコントローラーを作りたければ、
switch  (分岐用変数)
case 条件1:
require "条件1のPHP"; 
break;
case 条件2:
require "条件2のPHP";
break;
 ・
 ・
 ・
最低限のものなら、たった、これだけで終わり。なんなら、これだけを書いたphpを定義ファイルとしてしまえば良い。それ自体もrequiredで呼び出すことができる。

Javaで何故これを実現するのに、わざわざstruts.confにいつまで経っても覚えられない特殊文法のXMLを書いていたのか?が不思議に思えてきた。

この柔軟な機能は、他の言語で存在するのだろうか?ASPでは、そもそもこういう柔軟性の高いincludeはできないし、ServletやJSPでは、ここまで透過的なアクセスは不可能だと思う。

PHPをメインで使う人で、このありがたさをありがたいと気がついている人はどれぐらいいるのだろうか。PHP自体が、C言語のWeb向けラッパー言語であり、その豊富な関数群を含めてWebアプリケーションフレームワークと言えるわけだが。(そして、自分が欲しいと思った機能は、かなりの確率でPHPの組み込み関数とPEARでフォローされているのがスゴイ。)

もちろん上記のrequiredの連鎖をしていった場合、複数プログラム内からグローバル変数にアクセス可能な状態になってしまうことの危険性はあるので、そこはそれMVCフレームワークなどを開発のルールブックとして導入し、PHPファイル毎の役割分担を作ることで対処するわけだ。君はコントローラだから繋ぐ処理だけね。君はモデルだからデータベースアクセスとロジックだけ書こうね・・・と。

最終段の出力はSmartyに限定すればよい。そうすればプログラム中にデバッグで書いたecho文は全部ゴミだ。最後にEclipseの検索でechoを検索して、もし見つかったら削除してしまえば終わり。

チームでは通常出力にecho文を使うなということを徹底する。最後に消しちゃうからよろしく・・・で良いんではないかと。echoを検索するぐらいのソースコードチェックなら毎朝やっても良いだろう。それが会話で通用しない相手であれば、Javaを使った場合でも、どっちにしろ違う苦労を強いられる。

PHPにPEARというライブラリ群を組み合わせると、ログとかDBとかエラー処理などのフレームワークで必要な機能は満たされているし、テンプレートエンジンはSmartyが決定版なので、フレームワークのプロダクトにおいて、機能面以外は、結局のところ、どういう手順と役割を決めたphpファイルをrequireするか?という実装に落ち着いているんではないのだろうか?

それが当たり前に存在していたこと。そこにPHPのすばらしさだったと思うところで、なんでもっと早くPHPにしなかったのか?を悔やむことが過去に沢山ある(w

(人のこと言えないけど、開発者は、ややこしいこと=高度=自己の価値・・・と考える傾向があって非常によろしくないですね。)

■同じカテゴリ[Web系]のエントリー
<<前の記事 【mixi】人は自律的にコミュニティの幅を制限する
>>次の記事 Ajax記念日(感傷モード)
■このblogの書き込み最新3件
そろそろモバツイがEC2に移転した話でも書くとするか。 とりあえずやってみて、ダメならすぐ手を変える体制重要 メールって盗聴されますか?