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


初代モバツイ開発者
想創社再創業 / KMD博士課程
著書〜100万人から教わったウェブサービスの極意―「モバツイ」開発1268日の知恵と視点 [Kindle版]
お求めやすい夏休み特価!
このカテゴリ[Web系]の最新30件
本ブログは移転しました インターネットの遊び方を身につけよう ネットでの選挙活動と投票率 Web2.0がうまくいかなかったワケ WebにおけるMVCアーキテクチャの勃興と変遷 何故、PCはブラウザ、スマホはアプリなのか。 言っとくけどスマホは退化でもあるからな。 アイコン5000円とか、Web受注(発注)価格について。 残念なWeb論の骨子 HTMLってホントよく出来てるな。 「やまもといちろう×イケダハヤト対談イベント」のログを読んで ネットサービスの成功者は「とりあえず受託」という言葉使うのやめません? 全収集型RSSリーダーの終焉とソーシャル化するWeb 頑張ると報われるプログラマーの社会とは。 Perlが○○な話 アメリカ製品のすごさと不思議とワイヤフレーム どの人件費を考えても絶対にお得!利用規約ナイトがきっかけの本が出ます。 クラウドやモバイルを、もっと仕事で活用したいけど、どうやって会社を説得したら良いかわからない! スマホアプリらしいUXとは。 インターネットの変化に対して起こるモヤモヤすることを考え、整理する活動 Facebookは見なくてもいい情報が出てくるSNS 「あなたは影響力があるから、そんなことを言っちゃいけません」の問題点 Facebookに時間を取られすぎる対策 Paypalの本人確認がむかつく件 ネット系イベントがとても主催しやすくなった件 モバイルファーストが失敗なハズはないが、今はまだ時期尚早 やりがいはソートできない…非情なデータベース社会 2012年までのふりかえりと2013年へ ブラウザという平面の限界 ブログ記事の流通の難しさ
[このカテゴリをもっと見る]
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件
本ブログは移転しました インターネットの遊び方を身につけよう トトロが陽なら、『風立ちぬ』は陰?〜『風立ちぬ』の感想