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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/08/24(日) 21:43:37ID:???
前スレ
http://pc11.2ch.net/test/read.cgi/php/1202521438/
0153nobodyさん2008/09/23(火) 00:47:41ID:???
>>152
$this->Modelとか$this->Componentの__get()で、
与えられたクラス名のオブジェクトを生成・取得するって仕組み?
特に悪いとも思わないけど、必要とか便利とかもあんまり思わないw

例えば設計思想とか、利用時の利便性とかもあるんだろうけど、
同じ事をするのに、Model::factory()とかModel::singleton()でも
いい場合もあるかもだし

ピントはずれだったらスマソ
0154nobodyさん2008/09/23(火) 00:51:04ID:???
>>153 微妙に修正
> 同じ事をするのに、Model::factory()とかModel::singleton()でも
→ 同じ事をするのに、Model::factory(classname) とか new classname() とか classname::singleton() とかでも
0155nobodyさん2008/09/23(火) 02:07:19ID:???
new は method chain できないから却下
01561522008/09/23(火) 15:14:04ID:???
cakephpだとコントローラーのプロパティに
使うコンポーネント設定するのいちいち面倒だな〜と思ってたんで。
そういうやり方もあるんですね、勉強になります。有り難うございました。
0157nobodyさん2008/09/23(火) 17:34:13ID:???
∧_∧
( ´∀`)< ぬるぽプロジェクト

みんなで面白いサイト作って有名にしようぜ!
http://yutori.2ch.net/test/read.cgi/news4vip/1222156869/
★まとめwiki
http://www39.atwiki.jp/vipproject/

PHPのフレームワークとして symfonyを採用予定です。
0158nobodyさん2008/09/23(火) 20:55:42ID:???
>>157
スレ荒れすぎワロタ
0159nobodyさん2008/09/23(火) 21:24:50ID:???
>>158
自動保守おいしいです(^q^)
0160nobodyさん2008/09/26(金) 16:21:57ID:???
フレームワークとは直接関係ないけど5.3でspl_autoload_register(function($name){...});
すると実際にautoloadされるときにbus erorrで落ちるね。
spl_autoload_register($f=function($name){...}); なら$fが生きている間だけは落ちない。
0161nobodyさん2008/09/26(金) 16:42:24ID:???
5が出ても枯れるまで結構時間かかったし
6も使えるようになるまでは長いだろうなぁ
0162nobodyさん2008/09/27(土) 08:37:12ID:???
一人で最初期モックアップ作るなら、
railsとcakephpと、どっちが向いてる?
0163nobodyさん2008/09/28(日) 11:02:03ID:???
その比較って意味あるのかな?
Ruby(少なくともRails)とPHPが同等にできる人にとってしか答えようがないし、
回答もしかりw
0164nobodyさん2008/09/28(日) 11:49:26ID:???
cakeみたいな厨フレームワーク使ってる人恥ずかしくないんですかぁ
0165nobodyさん2008/09/28(日) 15:59:10ID:???
んじゃ何使えばいいの?
0166nobodyさん2008/09/28(日) 18:15:32ID:???
☆Z☆E☆N☆D☆!!
0167nobodyさん2008/09/28(日) 22:06:23ID:???
Zend…


無いわー
0168nobodyさん2008/09/28(日) 23:15:36ID:???
zend使いまくりだけど
何が不満なのかわからない
0169nobodyさん2008/09/29(月) 06:03:55ID:???
モックならちいたんで良いジャマイカ。
0170nobodyさん2008/09/30(火) 00:08:37ID:???
モックなら素のPHPでいいよ
0171nobodyさん2008/09/30(火) 00:17:33ID:???
モックはHTMLで十分なこともおおくない?w
ヘッダフッタ辺りのレイアウトとかで楽したいなら、
手慣れたテンプレートエンジンがあればいいかもだけど

フレームワークってのとはちょっと違うような
多分必要なのはView側の省力化・柔軟性かなあ
0172nobodyさん2008/09/30(火) 00:41:51ID:???
マックでいいよ
0173nobodyさん2008/09/30(火) 01:56:27ID:???
楽天がセッションidごとgoogleにキャッシュされ、
個人情報を漏らしまくって最終的にPHP脂肪www
0174nobodyさん2008/09/30(火) 03:55:27ID:CLW/UbJj
物区ならPencilでいいんじゃね
0175nobodyさん2008/09/30(火) 06:24:36ID:???
つーかsymfony一択だろ
フレームワーク作者で一番センスあるコード書くのがフランチョス。
0176nobodyさん2008/09/30(火) 07:01:23ID:???
symfonyは関数名がダサい
_区切りとかKENTかよw
0177nobodyさん2008/09/30(火) 07:07:59ID:???
そんな規約ないよ
何かと間違えてないか?
0178nobodyさん2008/09/30(火) 07:12:10ID:???
あれれ〜symfonyじゃなかったっけ?
0179nobodyさん2008/09/30(火) 07:26:27ID:???
symfonyはJavaと同じキャメルケースだよ
0180nobodyさん2008/09/30(火) 19:28:17ID:???
そもそもPHPの標準関数の命名がいい加減なんだから、拘っても意味ない。
0181nobodyさん2008/10/01(水) 01:38:54ID:???
PHPはキャメルケースとアンダースコア混在しまくってるからな
クラス名とか関数名とか考えるとき、どっちにしようかいつも迷ってしまう
0182nobodyさん2008/10/01(水) 01:50:42ID:???
それ単に昔の関数と最近のクラスメソッドなだけだろ
0183nobodyさん2008/10/01(水) 07:31:56ID:???
将来的にはほとんどオブジェクト指向のラッパーが用意されて
関数は地下に潜った存在になるだろうな
0184nobodyさん2008/10/02(木) 19:06:50ID:???
最近のは殆どキャメルケースに一本化の流れなんかね
アンダースコア派だったからどうもなじめない
0185nobodyさん2008/10/02(木) 19:46:59ID:???
オブジェクト指向な関数(メソッド)で
アンダースコアが普及しているような言語あるの?
0186nobodyさん2008/10/02(木) 19:54:09ID:???
るby
0187nobodyさん2008/10/02(木) 19:55:23ID:???
くそ言語ww
0188nobodyさん2008/10/02(木) 19:59:51ID:???
PHPに言われたらしめぇだべ
0189nobodyさん2008/10/02(木) 20:29:01ID:???
PHPよりも糞な言語なんてINTERCALくらいだろ
0190nobodyさん2008/10/02(木) 20:58:24ID:???
キャメルケースでも、メソッド名でM$流のUpperCamelCaseは勘弁して欲しい
それはクラス名だけでいいと思う
0191nobodyさん2008/10/02(木) 21:19:41ID:???
メソッドをアッパーキャメルケースで書く人なんているの?
そんなコード見たことない
0192nobodyさん2008/10/02(木) 21:28:23ID:???
C#とかかじった人はやる。
携帯ミドルウェアとかやっててC/C++は触るがJavaは触らない、って人もやる。
まあぶっちゃけ Java vs. C# なんだけど、PHPは中途半端なので混在してる。

その点Rubyは、作ってる・使ってる人間がC・Perl on *nix の人メインなので、
アンダースコア派が主流なのかな
また、RubyではUpperCamelCaseは文法的に定数扱いされるので、メソッド名や
通常の変数名には使えない。・・・MS流が嫌いなのか?w
0193nobodyさん2008/10/03(金) 00:28:34ID:???
そういう書き方の自由を奪う言語は嫌われる。
0194nobodyさん2008/10/03(金) 02:07:48ID:???
Rubyの_でつなぐのはPerl由来だろうね。俺は_でつなぐのが見やすくて好きだけどな。
PHPはJava風なんだけど、初期に出来た関数の命名が超適当だからな。引数の取り方とかも。
C#とかJavaはどうせIDE使うんで、まあ、どうでもいいような気がする。
0195nobodyさん2008/10/03(金) 11:11:04ID:???
大文字小文字を区別しないものにCamelCaseを使うのは、ちょっと気持ち悪い
0196nobodyさん2008/10/03(金) 14:57:50ID:???
キャメルケースの種類

アッパーキャメルケース (UCC)、またはパスカルケース(PascalCase)
    複合語の先頭を、大文字で書き始める。
    つづり例:CamelCase

ローワーキャメルケース (LCC)、または単にキャメルケース
    複合語の先頭を、小文字で書き始める。
    つづり例:camelCase

0197nobodyさん2008/10/03(金) 15:09:46ID:???
なんでわざわざ書いたん?
自分用メモか?
0198nobodyさん2008/10/03(金) 15:43:33ID:???
初めて知ってうれしかった
0199nobodyさん2008/10/03(金) 16:36:40ID:???
CSSですらできる多重継承ができないPHPって一体・・・
0200nobodyさん2008/10/03(金) 17:18:11ID:???
Mixinがあれば多重継承なんて必要ありませんよ
0201nobodyさん2008/10/03(金) 17:57:27ID:???
>>199
Javaもですが・・
0202nobodyさん2008/10/03(金) 18:04:06ID:???
Mixinを提供しているRubyだけがCSSと肩を並べているということですね
0203nobodyさん2008/10/03(金) 19:59:32ID:???
つまり、いや、やめておこう
0204nobodyさん2008/10/03(金) 20:27:36ID:???
>>185
pythonもメソッド名は、アンダースコアが一般的かな。
クラス名はキャメルケースだけど。
0205nobodyさん2008/10/03(金) 20:55:12ID:???
最後の文字だけ大文字にする逆キャメルケースにしてる人いる?
geThogEとか
0206nobodyさん2008/10/03(金) 23:42:27ID:???
>>205
どうでもいいけど、読みづらくね?
0207nobodyさん2008/10/03(金) 23:48:08ID:???
ゲ ソォグ イー と読んでしまった
0208nobodyさん2008/10/04(土) 00:29:16ID:???
>>205
まずそうしようと思った意図はなんだw
さすがにこれは利点も考え付かんww
0209nobodyさん2008/10/04(土) 00:31:58ID:???
難読化とかw
0210nobodyさん2008/10/04(土) 04:52:10ID:???
<?php
class Class_Name
{
    public function methodName( )
    {
         functionName($valOne, $valTwo);
         if ($a == 1){
            $b = 2;
         }
    }

命名規則、俺の結論はこのあたり。
http://framework.zend.com/manual/en/coding-standard.naming-conventions.html
http://solarphp.org/manual:project_standards:naming_conventions
Zend, Solarあたり守っとけばPEARの規約でも問題ない。あとクラス名は_で区切っとかないとauto loaderがめんどい。
0211nobodyさん2008/10/04(土) 07:46:06ID:???
if (---) {
0212nobodyさん2008/10/04(土) 13:25:04ID:???
>>210
>あとクラス名は_で区切っとかないとauto loaderがめんどい。
kwsk
0213nobodyさん2008/10/04(土) 15:19:20ID:???
>>212
>>210じゃ無いけど、ディレクトリ構造を反映ってことじゃない?
Perlのモジュール風?

Zend_Db_Table_Rowクラス => Zend/Db/Table/Row.php

ってな感じじゃないかと想像
0214nobodyさん2008/10/04(土) 15:29:32ID:???
explodeですぐパスに変換できるってことか
たしかに_区切りはよさげだな
0215nobodyさん2008/10/04(土) 20:31:20ID:???
へー
0216nobodyさん2008/10/05(日) 02:47:20ID:???
>>213
その通り。フォローthx
PEARでもその命名でディレクトリきってるし、PEAR2ではそのルールでauto loader標準だと思ったよ。
0217nobodyさん2008/10/05(日) 04:57:56ID:???
細かい話になってくるが、DBとかPDFとかいう略語の場合、
DBなのかDbなのか、PDFなのかPdfなのか、っていう違いも
あるねw

これがまた人によってまちまちだし、同じ人でも場合によって
違う場合がある
0218nobodyさん2008/10/05(日) 05:28:14ID:???
zendスタイルにした時、そこが一番しっくり来なかったような気がする

あとプロパティはどうせ全部 private なので _ が面倒
0219nobodyさん2008/10/05(日) 11:01:14ID:???
デザインパターン使うときはデザインパターンも名前に入れてる
例えばSolar_Auth_Adapter_Sql はパッケージ名はSolarで認証クラスをアダプターでSQLクラスで実装してるクラス。
Solar/Auth.php
Solar/Auth/Adapter.php Solar_Auth_Adapterクラスで抽象クラスを定義
Solar/Auth/Adapter/Sql.php Solar_Auth_Adapter_Sql クラスでSolar_Auth_Adapterクラスを実装
0220nobodyさん2008/10/06(月) 14:16:23ID:H0RcPBpG
みんな努力してるんだなー。
参考になります^^
0221nobodyさん2008/10/07(火) 00:37:43ID:h510jQqa
>>205
意味不明で面白い。ウケる。
0222nobodyさん2008/10/07(火) 14:11:17ID:???
>>219
> デザインパターン使うときはデザインパターンも名前に入れてる

それ、使うときもあったり使わないときもあったり、

クラスに単一のパターンしか適用されない場合、
そのパターンの為のクラスの場合には、そういう名前付けられるけど

一つのクラスに複数のパターンが適用される場合困るんだよな。
0223nobodyさん2008/10/07(火) 14:44:16ID:???
俺様フレームワークをやめようと思って、CakeかSymfonyを導入しようと思うけど
結局どれがいいんだ…
0224nobodyさん2008/10/07(火) 14:53:14ID:???
逆に俺様フレームワークを公開して
スタンダードにしてやれ
0225nobodyさん2008/10/07(火) 14:58:34ID:???
結局はちいたんでいいじゃんっていうレスがつく未来が見える
0226nobodyさん2008/10/07(火) 20:28:02ID:???
ちいたんは、その名前が失敗の理由のひとつである。
0227nobodyさん2008/10/07(火) 21:32:19ID:???
>>225
結局はちいたんで(ry
0228nobodyさん2008/10/08(水) 02:29:04ID:???
>>227
早いわw
0229nobodyさん2008/10/10(金) 00:45:42ID:???
まあ増えすぎたよね
機能追加しすぎで扱いにくいWEBサービスのようだ
0230nobodyさん2008/10/16(木) 15:04:15ID:???
>>225
まあ徴兵制だろうね。
戦前(に成人した)世代と戦後世代の日本人を見比べれば一目瞭然。
0231nobodyさん2008/10/16(木) 15:31:37ID:???
なんだ?この妙に右よりの誤爆は
0232nobodyさん2008/10/17(金) 00:38:24ID:???
PHPプログラマーの方でPHP用フレームワークを使っている方へアンケート! ※フレームワーク導入を検討中。先輩方は何を使っているのか?好んでいるのか?をアンケート。.. - 人力検索はてな
http://q.hatena.ne.jp/1210442237

Pradoが圧倒的ですねw
http://www.pradosoft.com/
0233nobodyさん2008/10/17(金) 01:45:17ID:???
このpradoぶっちぎりはネタだよね?w
0234nobodyさん2008/10/17(金) 03:15:57ID:7gkZ0lcc
>>233
PRADOの解説本が出てないじゃん!?
Zend、Symfony、CakePHP、CodeIgniterの本は出てるぞwww
出版社は売れるであろう本を出すはず
0235nobodyさん2008/10/20(月) 02:51:25ID:ya5easnJ
symfonyってページネーション機能はあるんですか?
ネットで検索しても「ajaxでページネーション」はあるんだけど・・・
0236nobodyさん2008/10/20(月) 17:37:11ID:???
英語の情報をなかったことにするのは君にとって損失かもしれないよ?

http://www.google.co.jp/search?hl=ja&q=site%3Asymfony-project.org+paginate
0237nobodyさん2008/10/20(月) 21:10:52ID:Kq4igHV+
>>236
でもそれも機能たいしてなくないか?
CakePHPみたいに同一ページの複数モデルに対応してないでしょ?

っていうか、ページネーションって掲示板ですら絶対に必要になる機能なのに
なんで標準で付けないんだろ
0238nobodyさん2008/10/20(月) 21:57:19ID:???
>>237
最適化が難しいから。

一度でもページネイションの機能を作ったことがあればわかると思うが、
DBから全データ読み込んでから絞り込むのか、検索条件を考慮したデータを
取得しておいてからそれを絞り込むのか、なんだかんだ。

基本的に、データの「件数」がわからないとページング出来ない。
(それを無視してやるページングもあるが。)

どうせライトユーザ向けには、DBやらと連携したページングを求め
られるんだから、「始めからつけてない」は、ある意味賢明な選択だよ。

・・・↑が不満なら、PEARとか使えばいいじゃん、全く。
0239nobodyさん2008/10/20(月) 22:10:00ID:Kq4igHV+
>>238
いや俺もたいしたやつじゃないけど作ったことあるし、
CakePHPのソースを解析したりしてみたけど、
そんなに難しくはないと思うけどな(だったらそれ使えばいいじゃんと言われるかもしれないが・・・)

>基本的に、データの「件数」がわからないとページング出来ない。
これは渡せばいいだけ
0240nobodyさん2008/10/20(月) 22:21:43ID:???
>>239
うん。だから、>>238の二行目
>最適化が難しいから
と、最終行
>・・・↑が不満なら、PEARとか使えばいいじゃん、全く。
が、結論なんだけどなw

「フレームワークに標準で付いていない」ってのが問題じゃ無かったのか?
0241nobodyさん2008/10/20(月) 22:31:39ID:Kq4igHV+
>>240
PEARは使いたくない

まあ、付いてないことがはっきり分かったからもういいです
0242nobodyさん2008/10/20(月) 23:11:01ID:???
paginationはZendなら標準で付いてる
しかも色んな状況に対応できる
さあ、ZFを使おう!
0243nobodyさん2008/10/20(月) 23:27:07ID:Kq4igHV+
まあそれが普通だよな
0244nobodyさん2008/10/20(月) 23:34:15ID:???
>基本的に、データの「件数」がわからないとページング出来ない。
CakePHPはよくできてる。
データの件数ってのは、データ用のSQL文のうち条件は同じでselectするものが、
フィールド名の変わりにcount(*)になっただけ。

そこの部分(フィールド名の変わりにcount(*))への変換を
自動でやってくれるから、データ用のSQLに相当する部分のみを書けばいい。
また、データ用のSQLにlimitを主導で追加する必要もない。これも自動で追加される。

つまり、「データを取ってくるSQL」を書いて「ペジネーション」処理を使うだけで内部的に、
「データを取ってくるSQL」には、自動的にlimitが追加されて発行され
「データを取ってくるSQL」には、自動的に件数を取得するcountに変更される。(当たり前だがこっちにはlimitはつかない)
(もちろんSQL直書きではなくモデルの操作だが)

最適化って話なら、データ件数を取得する関数をオーバーライドできる。(上のやつはデフォルト動作)
こういう目的でオーバーライドされるために存在するメソッドが用意されている。
0245nobodyさん2008/10/20(月) 23:41:59ID:???
>>244
うーん。それは、例えばファイルベースのデータとかには適用できないよね。
メールボックスを漁るとか、さw
無理矢理使おうと思えば、いっぺんDBに放り込む必要がある。

そんな(SQLで全部済む)フレームワークばかりではない、っていう前提に
立てば、ページネイションの機能は汎用的なものにならざるを得ない。

データの件数と一ページ辺りの取得件数から、データ開始位置(番号)と
データ終了位置を取得する、みたいな。
SQLで言えば、OFFSET とそこからの LIMIT を取得するだけ、っていう。

んで、そんなクラスが乱立しても仕方ないので、PEARなりZendなり使えって
結論で多分無問題。
と思うんだけどなぁ
もちろん、>>244みたいな全自動?ページネイションを否定するわけではないけど。
0246nobodyさん2008/10/20(月) 23:53:02ID:???
SQLを使わないページネイションなら別にある。
0247nobodyさん2008/10/21(火) 00:20:07ID:???
mysqlならSQL_CALC_FOUND_ROWSを使いたいよね
0248nobodyさん2008/10/21(火) 00:32:46ID:???
>>247
またそんな無茶ぶりをw
フレームワークなりライブラリなり作る身になれw

まあ、そんなこと言う人は自分で作るんだろうけど
0249nobodyさん2008/10/21(火) 01:06:35ID:???
>>244
>CakePHPはよくできてる。
別にCakeだけがよくできてるわけじゃなくて、Cake以外もできてますよね?
0250nobodyさん2008/10/21(火) 03:24:50ID:???
>>247-248
ページネイションとSQLをごっちゃにしてね?
SQL_CALC_FOUND_ROWSを使った独自SQL文からのデータを、
ページネイションに渡せばいいんですよ。
0251nobodyさん2008/10/21(火) 03:26:05ID:???
>>249
symfonyにはないってことから、この話題がはじまっている。
0252nobodyさん2008/10/21(火) 03:31:10ID:???
ページネーションくらい自分で書けばいいじゃん
■ このスレッドは過去ログ倉庫に格納されています