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


モバツイの中の人
人の良いジョンカビラと言われます。ソフト哲学者を目指します。
AMN sponsor rolls
応援します!
ツイッターやるなら
for iPhone App
Google Friend Connect
このカテゴリ[Web系]の最新30件
ワーナー作品のオンデマンド配信サービス「ワーナーオンデマンド」 動画ベーススライドプレゼンよりも、スライドベース動画プレゼンの方がWeb向き。 mixiアプリやるならAmazon EC2 モバツイが月間1億PV到達の見通し ツイッターとはなんぞや?のわかりやすい回答 ツイッターか?ブログか?思考の整理学 【Best Mobile Based Twitter App】モバツイッターがTOP5にノミネートされました。投票のご協力を!【敵はtweetie2】 【Best Mobile Based Twitter App】モバツイッターのOpen Web Awardsへの投票のご協力をお願いします! モバツイッターが日経ビジネスアソシエに掲載されました。 ネットビジネスで商標は大事です。 twitterによって世界が集約され心の戦争が起きる おまとめマンxTwitterキャンペーン セカイカメラは、21世紀のネットスケープになるか?! 「食事中なう」が無意味だと?あれ?ライフログってなんだか意味わかってる? 岡田有花さんに取材された! EC2のロードバランサーのIPアドレスが変わる罠 twitterの「つぶやき」の有効期間は2分 究極のスモールスタートの方法 自宅サーバからEC2へ 技術や用語に興味ないユーザーを「一般ユーザー」と括るのキケン アマゾンEC2 ナイトセミナ 第 2 回に出演します。 モバツイッターの政治家アカウント一時サスペンドの話 【twitter話】ネットを使う人には2種類のタイプがある ビバ☆ヒウィッヒヒーは、ネットコミュニケーションの問題をズバリ突いている うっかりしてたらモバツイの延べ登録ユーザー数が10万人を超えていました。 POPitがカラメルの商品紹介&アフィリエイトに対応! twitterは「みんなのもの」じゃない。 入力フォームの美学と現実 日本人にとって一番使われてるハッシュタグ ツイッターはステートレスなコミュニケーションでありつづけて欲しい。 夜のプロトコル「NO_04「We love twitter & tumblr.」~あの娘、ぼくがリブログ決めたらどんな顔するだろう~」に参加した。
[このカテゴリをもっと見る]
F's Garage関連
Powered by
Movable Type
■お知らせ
モバツイッターが、Open Web AwardsのBest Mobile Based Twtter Appを受賞しました!

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件
グッドデザイン賞に出てたおしゃれなサイクロン掃除機がなんと半額以下。 SEOには、運用のSEOと設計のSEOの2つのフェーズがある。 ワーナー作品のオンデマンド配信サービス「ワーナーオンデマンド」