トップページphp
1001コメント310KB

【PHP】フレームワークについて語るスレ9【総合】

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2007/12/11(火) 23:37:20ID:???
前スレ
http://pc11.2ch.net/test/read.cgi/php/1192604501/
0951nobodyさん2008/02/06(水) 22:46:28ID:???
>>949
お前の負け。
0952nobodyさん2008/02/06(水) 22:48:49ID:???
斜め読みだけど、結局言い出しっぺ(>>889)の言いたいことは

・サーバサイドと(リッチ)クライアントサイドで同じ言語で記述できれば楽できる
・だからJavaScriptでPHP実装をすることに意味がある

ってこと?
ただここにいる多数の感覚では、わざわざPHPを実装せんでもなあ、と。

それなら、むしろサーバ側でJavaScriptで書ければイイじゃんって>>891とかで
言ってるし、確かにそれでいいと思う。なんで>>889はJavaScriptよりもPHPがいいと
思うんだろう。

現状でも、JavaScriptエンジン組み込んだApacheモジュール(mod_javascript?)とか
あっても不思議はなさそうだけど、誰か作ってないのかな?
もしくはコマンドラインインタプリタとか。それでCGIはできるな >>929 が言うように。
(Windowsはまったく知らないのであしからず)

>>889の為にまとめてみたが、この辺りにちゃんと答えないとただの馬鹿で終わり?
0953nobodyさん2008/02/06(水) 22:49:09ID:???
>948
いや、プロジェクトは一つきりじゃないでしょ?
次のプロジェクトで新しいバリデーションコードを書くとき、
コードをコピペするのであれば、それは「よく似た違うコード」を生み出すことになる

結局、コードを主体に考えているからPHPとJS共用コードという発想になるので、
本質的な依存条件を考えた方がいいんじゃないの?という話
0954nobodyさん2008/02/06(水) 22:49:33ID:???
>>935
こいつはどう見ても並"未満"なのに、優しいんだなw
0955nobodyさん2008/02/06(水) 22:49:49ID:???
>>949
すべての勝負がお前の脳内だけで行われてるんだから勝てる奴なんていねーだろw
0956nobodyさん2008/02/06(水) 22:49:50ID:???
おもろい。
>>891で終わっている話といっている奴がいたが、
ぜんぜん違うや。こりゃ完全に>>891を覆したなw
0957nobodyさん2008/02/06(水) 22:51:35ID:???
>>952
> 現状でも、JavaScriptエンジン組み込んだApacheモジュール(mod_javascript?)とか
> あっても不思議はなさそうだけど、誰か作ってないのかな?

はるか昔はあった。ネットスケープのサーバーかなにか。
最近また出てきたみたいだが、まだベータ版。
選択しにはならないと思うよ。
0958nobodyさん2008/02/06(水) 22:52:30ID:???
>>950
自演恥ずかしいwww
0959nobodyさん2008/02/06(水) 22:52:39ID:???
>>953
> 次のプロジェクトで新しいバリデーションコードを書くとき、
> コードをコピペするのであれば、それは「よく似た違うコード」を生み出すことになる

なんで? バリデーションコードをそのまま使えばいいじゃん。
0960nobodyさん2008/02/06(水) 22:55:00ID:???
>959
うん、だからそれをするのがバリデータでしょ?
PHPでもJSでもそれを使えばいいんじゃないと言ってるわけ
0961nobodyさん2008/02/06(水) 23:00:01ID:???
>>960
だけど、俺が知る限りバリデータでは複雑なチェックはできないんだよね。
未入力チェックとか、正規表現の比較とか、数値の範囲とか、その程度。

ラジオボタンでAの値が選択されているときは、チェックなし。
Bの値が選択されているときはチェックあり。とかできる?
0962nobodyさん2008/02/06(水) 23:02:35ID:???
>889がPHPとJS共用のフレームワークを作るということでFA?

>956
いや、後から出てる反論のほとんどは>891で出てる。
それはいいんだけど、やはり実行に移さないことには価値がない
0963nobodyさん2008/02/06(水) 23:04:45ID:???
なんでバリデータライブラリって流行らないんだろう。
WEBアプリの入力チェックなんて、定番があっても良さそうなのに。
テンプレートエンジンと比べてえらい寂れようだ。フレームワークに結合されてしまってるのが多いからかな?

HTML_QuickFormも、結局入力がフォームデータ限定でしか使えないし、バリデータ部分だけ切り出せないのかな。
良いのがあるんだったらエロイひとお勧めして。

>>961
そういうのは多分設定ファイルでは無理で、バリデータクラスのサブクラスの指定メソッドに個別処理を書く、とかいう
対処になるんじゃないかなぁ、と勝手にライブラリ仕様を想像してみる。
>>960がどんなのをつかってるのかは知らないけど
0964nobodyさん2008/02/06(水) 23:05:35ID:???
後からわかっていたとか言っても
先に(PHPでもJSでも動く)コード書いた奴の勝ちって事だな。
0965nobodyさん2008/02/06(水) 23:06:59ID:???
>>963
> そういうのは多分設定ファイルでは無理で、バリデータクラスのサブクラスの指定メソッドに個別処理を書く、とかいう
> 対処になるんじゃないかなぁ、と勝手にライブラリ仕様を想像してみる。

で、そういうメソッドを書くとき、
PHPでもJavaScriptでも動くコードを
書けば楽って事でしょ?彼が言いたいのは。
0966nobodyさん2008/02/06(水) 23:08:08ID:???
あー。なるほどそういうことか。やっと納得した。
0967nobodyさん2008/02/06(水) 23:09:18ID:???
>>964
素でやると物凄く不自由なコードになってそうだw
foreachやsprintfが使えないPHPなんて本当に何のメリットもない糞言語だろ。

あと、文字列結合が素直には出来なさそう?
本当に限定された局面のみ有効になりそうだ。PHP.jsってそういうのはうまくやってくれるの?
0968nobodyさん2008/02/06(水) 23:11:56ID:???
http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_abs/

このリストを見る限り、sprintfは使えるようだな。
0969nobodyさん2008/02/06(水) 23:12:12ID:???

PHPとJavaScriptではオブジェクトの仕組みとかお互い全然違うから、
もしコード共有しようとしたらオブジェクト指向できなくなるし、いちいち二つの環境で確認するのめんどくさい。

YAMLとかでヴァリデーションの条件書いて各実装でそれを実現するのがよっぽどスマートだと思うんだけどな。

少なくともサーバーサイドJavaScriptよりもさらに現実味がないと思うよ俺は。
0970nobodyさん2008/02/06(水) 23:17:49ID:???
でも>>961のような、YAMLのバリデーションで
対応できないような場合には使えそうな気もする。
0971nobodyさん2008/02/06(水) 23:28:42ID:???
>>967
PHP.jsはPHPの関数をjavascriptに移植しただけ。
JavaScriptでのPHP実装とかじゃない
0972nobodyさん2008/02/06(水) 23:29:05ID:???
予想に反して流れが良スレ化しててワロタw
0973nobodyさん2008/02/06(水) 23:32:41ID:???
>961
俺が使ったことのあるのはCake, CodeIgniter, Piece_Rightだけど、
その程度だったら問題ないし、追加の検証メソッドもサポートしてる。

しかし、やはりコード共用をやるなら、最終的にはコード生成に落ち着くような気がする。
結果的にその方が楽だと思う(例として挙がっているGWTもそういうことだし)。
後は、「実際にやってみて」としかいいようがない。
0974nobodyさん2008/02/06(水) 23:44:25ID:???
というか、それならJavascriptでサーバサイドできるよね
PHPとして動くようなJavascriptを書けばいいんでしょ?

それはともかく、同じECMAScript系だとFlex/ColdFusionもある
ActionScriptのフレームワークも揃いつつあるし、
ECMAScriptでサーバサイド・モジュールというのは十分現実的
0975nobodyさん2008/02/06(水) 23:53:13ID:???
>>889は今すぐJaxerでググレ。
お望みのものがあるから。
0976nobodyさん2008/02/06(水) 23:53:57ID:???
> というか、それならJavascriptでサーバサイドできるよね
> PHPとして動くようなJavascriptを書けばいいんでしょ?

なかなか難しいことを言ってるな。
JavaScriptの場合、オブジェクト指向がデフォだから、
array.push("1"); とか str.length とか良くある関数が使えない。
また、PHPの制約により、$から始まる変数名じゃないといけないし。
0977nobodyさん2008/02/06(水) 23:54:33ID:???
Jaxerってこの間ベータ版が出たばかりのあれ?
0978nobodyさん2008/02/07(木) 00:16:59ID:???
【従来のプログラミング作業】
サーバーサイド=PHPでプログラミング…(1)
クライアントサイド=JavaScriptでプログラミング…(2)

【php.jsを使ったプログラミング作業】
サーバーサイド=PHPでプログラミング…(3)
クライアントサイド=PHPでプログラミングしたコード(3)をphp.jsで動かす。…(4)

(4)php.jsを使うことによって、(2)の手間が省けるという話ですか?
=バリデータくらいなら作れるのではないか?と。

PHPがJavaScriptの代替になるか?
=php.jsをテストしてみて、どの程度PHPのコードが動くものか確認しなければなりませんね。
0979nobodyさん2008/02/07(木) 00:27:55ID:???
なんだ。PHP.jsを使えば、PHPの一部の関数が、JavaScriptのコード内でも使えるようになりますよ、という話じゃん。
単なる関数名のラッパーか?

php.js の検索結果 約 770,000 件
http://www.google.co.jp/search?q=php.js

PHPで使える便利関数をJavaScriptでも使えるようにする「php.js」 2008年02月05日
http://phpspot.org/blog/archives/2008/02/phpjavascriptph.html
>php.js をインクルードすれば、次のPHP関数と同名かつ同機能を使うことが出来ます。
>JavaScriptに慣れ親しみたいと思っているPHPプログラマの方は、これを元に、JavaScriptに移行していくのも手かもしれませんね。

PHPで書いたバリデーターに、PHPの関数が入っていても、コピペでJavaScriptで使える。
これを手動ではなくて、自動でやれば、コードジェネレーターを使うみたいに楽ができるよね?という話ですか。
そのコードジェネレーターは、もう誰か作ってくれてるの?
0980nobodyさん2008/02/07(木) 00:50:45ID:???
>>933
>半分正解。答えは、PHPとJavaScript。
http://jp.youtube.com/watch?v=yOS4GJf60gw
「はい!ここ、テストに出ま〜す♪」

>>975
http://www.google.co.jp/search?q=Jaxer
Jaxer の検索結果 約 222,000 件
0981nobodyさん2008/02/07(木) 01:22:02ID:???
Jaxerのスレはまだないのかな
0982nobodyさん2008/02/07(木) 02:08:52ID:???
PHPと連動させるならJSを生成するPHP書いた方がまだまし
JSでPHP関数のクローンを使うという発想が気持ち悪い
PHPは少なくとも「積極的に書きたい言語」ではないし
0983nobodyさん2008/02/07(木) 02:18:25ID:???
>>963
一回書こうとしたことあったけど
バリデーションて複数の層と、それなりに密接に関わるから
だんだんそれ自体がミニFW化していくんだよね
コントローラでは判定とaction分岐、
ビューではFormコンポーネントや値、エラーメッセージの生成や管理nado
なかなかキレイにまとめるのはむずかしす
0984nobodyさん2008/02/07(木) 02:26:50ID:???
kohanaはまだ早いかなー
気になるのは
ビデオチュートリアルでhello worldなんかを作ってるあたり。
そこはブログっぽいのとか作っとかなきゃダメだろ。
そこここにセンスのなさを感じて
ださいコードや構造になっているんじゃないかと危惧してしまう
0985nobodyさん2008/02/07(木) 02:44:18ID:???
http://www.hige-chen.com/hogeron

ヒゲチェンはcakephpで作られてるらしい
0986nobodyさん2008/02/07(木) 04:14:13ID:???
kohanaはCodeIgniterベースみたいだから大丈夫じゃない?
しかし、CIの普及も十分とは言えないのに、なぜ派生プロジェクトが…
0987nobodyさん2008/02/07(木) 04:25:36ID:???
ci軽くていいんだけどね
0988nobodyさん2008/02/07(木) 07:29:28ID:???
pythonなんかはライブラリの読み込みは自分でやるわけだ
phpでもautoloadに頼らず
自分でinclude_once()するのが一番いいんじゃね?
0989nobodyさん2008/02/07(木) 17:18:10ID:???
PHPってArrayのタイプヒンティングだけあって
StringとかIntがないのって何なの?
頭おかしいの?
0990nobodyさん2008/02/07(木) 17:54:08ID:???
それはフレームワークのスレとPHP言語仕様のスレの区別が付かないようなもので、
特におかしいことではありません。
0991nobodyさん2008/02/07(木) 20:05:31ID:???
>>989
そもそもarrayのtype hintingすら5.1っつー中途半端なタイミングで入れられたんだ

大絶賛中言語PHPではIntegerのタイプヒンティング入れた日にゃ
初心者がリクエストパラメータそのまま引数に投げて
型が違うよっておこられるんだけどうわーんな惨状を回避するためさ、嘘だけど

実際でもstringとintegerの区別に関しては
何故か寛容なPHPだからあながち100%嘘でもなさそうなのがPHPの凄い所
0992nobodyさん2008/02/07(木) 20:17:54ID:???
あれ?Arrayのタイプヒンティングできたっけ?と思ったら5.1からできるようになったのね
0993nobodyさん2008/02/07(木) 20:29:22ID:???
>>991
少し前、ちょうどそんな感じでphp.internalがフレームしてた。(なんかまた再燃してるっぽい)
除算しただけでいつの間にかintがfloatになってた、みたいな罠もあるので
厳密なスカラーのタイプヒンティングは嬉しくないかも。
int, float, 数値文字列まで受け入れる「numeric」なら妥協できるようなやっぱりキモいような。
まあ、外部から来るスカラーはバリデーション通しとけってことで。
0994nobodyさん2008/02/07(木) 20:49:26ID:???
型が割とファジーだからなんとなくでも通るけど
ハマっちゃうと慣れてない人は良く分からないだろうな
そういう意味ではちょっとでも型違うとエラーになる方が
分かりやすいしハマりにくい
さすがMatzにDISられる言語だけある
0995nobodyさん2008/02/07(木) 20:53:13ID:???
あれ?rubyってタイプヒンティングできたっけ?
0996nobodyさん2008/02/07(木) 21:49:13ID:???
rubyだとraiseとkind_of?でチェックするとか。
そもそもruby界隈だと型チェックでduck typing殺す意義が疑問視されそうだ
0997nobodyさん2008/02/08(金) 06:40:44ID:???
$ php -a
でpythonみたいに対話的に使えるの初めて知った
Ruby脂肪www
0998nobodyさん2008/02/08(金) 08:07:20ID:???
PHPでCとPerlとJavaとPythonとRubyとJavaScriptの関数が使えるライブラリ作って
クライアントサイドのJavaScriptでも動くようにすればPHP最強。
0999nobodyさん2008/02/08(金) 09:31:46ID:???
関数だけかよw そいつぁ凶悪だ
1000nobodyさん2008/02/08(金) 09:43:30ID:???
> $sosuu = array(2, 3, 5, 7);
>  for($i=1; $i<10; $i++) {
>   if(in_array($i, $sosuu)) {
>    foo($i);
>   }
> }

へぇ。これってJavaScriptとしても実行できるのか。
言われてみればわかるけど、目からうろこ
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。