私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ【PHP】PHPフレームワーク総合スレ14
php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
いんたーなる
ねーむすぺーすのないPHPとしては、全部が同じ場所にいるようなもんだから
ある意味あってるという見方もできるな
ねーむすぺーすのないPHPとしては、全部が同じ場所にいるようなもんだから
ある意味あってるという見方もできるな
>>953
言語仕様的にネームスペースは不要だったかと。
接頭子でネームスペースの役割は担えてるし、JavaScript等も同じような方法でnamespaceを実装してるし・・・
ネイティブにnamespaceを実装するとコンパイラとの相性は良いのかもしれんけどね、PHPでは不要だよね。
また Hoge_Moge_ClassName と書いていたクラスが \Hoge\Moge\ClassName と名称変更されるのだが、
バックスラッシュを区切り文字に使ってしまうデメリットは結構あると思う。
同ネームスペース内なら、ClassNameを直接参照出来るというメリットはあるが、
そんな場面は滅多に無いし use構文で別名付けちゃうと、今度は他のクラス名と被る可能性が出てくるので
結果的に、フルパスでクラス名を記述する事になる。
となると、何の為に 5.2以下を切り捨ててまでnamespaceを使うのか?という事になる。
言語仕様的にネームスペースは不要だったかと。
接頭子でネームスペースの役割は担えてるし、JavaScript等も同じような方法でnamespaceを実装してるし・・・
ネイティブにnamespaceを実装するとコンパイラとの相性は良いのかもしれんけどね、PHPでは不要だよね。
また Hoge_Moge_ClassName と書いていたクラスが \Hoge\Moge\ClassName と名称変更されるのだが、
バックスラッシュを区切り文字に使ってしまうデメリットは結構あると思う。
同ネームスペース内なら、ClassNameを直接参照出来るというメリットはあるが、
そんな場面は滅多に無いし use構文で別名付けちゃうと、今度は他のクラス名と被る可能性が出てくるので
結果的に、フルパスでクラス名を記述する事になる。
となると、何の為に 5.2以下を切り捨ててまでnamespaceを使うのか?という事になる。
逆に考えるんだ
PHP5.3を普通と考えて
他の言語環境を「普通」とどれだけかけ離れているか
語るくらいの図太さと厚顔さがPHPerには必要だ
PHP5.3を普通と考えて
他の言語環境を「普通」とどれだけかけ離れているか
語るくらいの図太さと厚顔さがPHPerには必要だ
まあ、PHPの場合、ほとんどウェブ専用で、ウェブアプリケーションフレームワークはフルスタックのばかりだから、外部ライブラリを読み込む機会がないというのはあるかも。
でも、ネームスペースが不要とかって事はありえない。
JSなんかはネームスペースかないせいで$とかぶつかりまくってる。
でも、ネームスペースが不要とかって事はありえない。
JSなんかはネームスペースかないせいで$とかぶつかりまくってる。
コードの再利用、ライブラリをつかってこねくり回すことが主体になってきた昨今だと
ネームスペースの重要性は切り捨てれるようなもんじゃないからな
小規模なものなら問題ないけど、どうしてもつかいたいライブラリ同士の
名前がぶつかったりした日にゃ、めんどくさいことになる
ネームスペースの重要性は切り捨てれるようなもんじゃないからな
小規模なものなら問題ないけど、どうしてもつかいたいライブラリ同士の
名前がぶつかったりした日にゃ、めんどくさいことになる
>>959
JavasSctiprtはネームスペースあるだろ。
ネームスペースという機能自体はないが、
規約レベルではるがネームスペースはある。
そしてそれはPHPのネームスペースより余程エレガント。
JavasSctiprtはネームスペースあるだろ。
ネームスペースという機能自体はないが、
規約レベルではるがネームスペースはある。
そしてそれはPHPのネームスペースより余程エレガント。
>>962
でもPHPの構文として用意されたネームスペースを使わずに
規約として用意されたネームスペースもどきを使うようじゃ駄目だ。
今後スタンダードなものとして使うことはできんな。
symfonyのようなPHPを代表するようなFWなら尚更だ。
でもPHPの構文として用意されたネームスペースを使わずに
規約として用意されたネームスペースもどきを使うようじゃ駄目だ。
今後スタンダードなものとして使うことはできんな。
symfonyのようなPHPを代表するようなFWなら尚更だ。
>>963
頭硬すぎ。
その、「規約として用意されたネームスペースもどきを使うようじゃ駄目」な理由を述べてくれよ。
単に新しいもの=素晴らしいとでも思ってるの?
いくら構文として用意されていても、
規約を守らずにnamespaceを使ってしまっては意味が無いし、
use文によるエイリアスとか、潜在的なバグが増える事も想定される。
ネームスペースの概念は必須だが、PHP5.3のnamespace実装はお粗末すぎる。
5.2以下(既存FWユーザ)を切り捨ててまで移行するモノでは無いかな。
頭硬すぎ。
その、「規約として用意されたネームスペースもどきを使うようじゃ駄目」な理由を述べてくれよ。
単に新しいもの=素晴らしいとでも思ってるの?
いくら構文として用意されていても、
規約を守らずにnamespaceを使ってしまっては意味が無いし、
use文によるエイリアスとか、潜在的なバグが増える事も想定される。
ネームスペースの概念は必須だが、PHP5.3のnamespace実装はお粗末すぎる。
5.2以下(既存FWユーザ)を切り捨ててまで移行するモノでは無いかな。
>>966
たらればの話はいい。現状、メリットの無いモノに移行する必要は無い。
たらればの話はいい。現状、メリットの無いモノに移行する必要は無い。
>>965
機能としてネームスペースが用意されているのに
規約としてのネームスペースを使うということの気持ち悪さ。
お前は保守的なんだよ。
ところでなんでお前は規約としてのネームスペースにこだわるの?
機能として5.3からネームスペースが正式に実装されたんだから
黙って使えよ能無し
機能としてネームスペースが用意されているのに
規約としてのネームスペースを使うということの気持ち悪さ。
お前は保守的なんだよ。
ところでなんでお前は規約としてのネームスペースにこだわるの?
機能として5.3からネームスペースが正式に実装されたんだから
黙って使えよ能無し
別にそこで止まりたい人はそれでいいんじゃね?
使った事のあるフレームワークはみな移行してるんで俺は移行するだけ
置いていかれる人の事なんてどうでも良いよ
いつの世もそう言うのんびり屋な人達はいるしどうぞご勝手にって感じだわな
言い訳考えるぐらいならさっさと過去の資産の為のコンバータ書いた方がマシ
俺はね
使った事のあるフレームワークはみな移行してるんで俺は移行するだけ
置いていかれる人の事なんてどうでも良いよ
いつの世もそう言うのんびり屋な人達はいるしどうぞご勝手にって感じだわな
言い訳考えるぐらいならさっさと過去の資産の為のコンバータ書いた方がマシ
俺はね
>>967
どんな仕組みだとメリットあるの?
どんな仕組みだとメリットあるの?
>>968
>>969
ネームスペースなんて実装じゃなく規約の問題。
ネイティブにnamespace構文が存在したとしても、命名規約が統制されなければ意味は無い。
(これはuse構文によりさらにややこしくなってるし)
また、保守的になってるつもりは無いよ。
メインはPHP5.3開発に移行していて、無名関数とか遅延バインディングとか便利だと思ってるし、
5.4のGC含めて久しぶりにPHPコードを書きまくってる。
ただし、namespaceだけは判断が微妙で、
例えば5.2以下で実装出来るロジックでも、
namespace配下に置くことで動作しなくなるというデメリットがきつい。
Redhatを代表とするサーバ系OSには今だPHP5.3はバンドルされてないし、
完全に普及するには年単位の時間がかかると思われ。
>>969
ネームスペースなんて実装じゃなく規約の問題。
ネイティブにnamespace構文が存在したとしても、命名規約が統制されなければ意味は無い。
(これはuse構文によりさらにややこしくなってるし)
また、保守的になってるつもりは無いよ。
メインはPHP5.3開発に移行していて、無名関数とか遅延バインディングとか便利だと思ってるし、
5.4のGC含めて久しぶりにPHPコードを書きまくってる。
ただし、namespaceだけは判断が微妙で、
例えば5.2以下で実装出来るロジックでも、
namespace配下に置くことで動作しなくなるというデメリットがきつい。
Redhatを代表とするサーバ系OSには今だPHP5.3はバンドルされてないし、
完全に普及するには年単位の時間がかかると思われ。
>>970
言語としてネームスペースの推奨規約が存在する(ActionScript3とか)は、
ディレクトリやファイル名を含めて綺麗に纏まるから、
擬似的に実装するより遙かに便利だとは思う。
PHP5.3のネームスペースは肝心の規約が抜けているので、
「単にアンダースコア区切りだったものをバックスラッシュに変えました。」
程度の効力しかない。
言語としてネームスペースの推奨規約が存在する(ActionScript3とか)は、
ディレクトリやファイル名を含めて綺麗に纏まるから、
擬似的に実装するより遙かに便利だとは思う。
PHP5.3のネームスペースは肝心の規約が抜けているので、
「単にアンダースコア区切りだったものをバックスラッシュに変えました。」
程度の効力しかない。
言語仕様以上の規約があるのか?
あんたの言う規約は自分の都合の良い保守的な規約じゃん
新しいものを追えない技量なら素直にそう言え
技量がないとは失敗してもバックできないのも含む
そのレベルならゴチャゴチャ言わずに後から俺等の背中追ってこいよ
あんたの言う規約は自分の都合の良い保守的な規約じゃん
新しいものを追えない技量なら素直にそう言え
技量がないとは失敗してもバックできないのも含む
そのレベルならゴチャゴチャ言わずに後から俺等の背中追ってこいよ
>>976
言語仕様以上の規約は無いかもね。
しかしPHPはその言語仕様の規約がお粗末だって話だろ。
「とりあえずnamespace構文作ったから使ってね。クラス名とかディレクトリとかファイル構成は・・・適当でいいよw」
って状況。
新しい物が本当に良い物かどうか判断も出来ない、盲目的な君の背中は遠すぎて追えないわ。
精々未来に生きて失敗事例を沢山こしらえておくれ。
言語仕様以上の規約は無いかもね。
しかしPHPはその言語仕様の規約がお粗末だって話だろ。
「とりあえずnamespace構文作ったから使ってね。クラス名とかディレクトリとかファイル構成は・・・適当でいいよw」
って状況。
新しい物が本当に良い物かどうか判断も出来ない、盲目的な君の背中は遠すぎて追えないわ。
精々未来に生きて失敗事例を沢山こしらえておくれ。
多数の名のある識者が決めた事>>>>>>>>>>分厚く高い壁>>>>>>977の考え
なんだか老害になる瞬間を見た気がする…
こうやってドンドン取り残されていくんだろうなぁ
俺も気をつけよ
こうやってドンドン取り残されていくんだろうなぁ
俺も気をつけよ
・・・PHPのnamespaceの紆余曲折っぷりを知らないのかw
ゆとりって怖いな
ゆとりって怖いな
5.2系の更新がラストだって言われてる時にネームスペースの話かよ
未だに対応出来てないとか遅れてるにも程があるだろjk
未だに対応出来てないとか遅れてるにも程があるだろjk
http://d.hatena.ne.jp/Fivestar/20101114/1289736755
こういう事だよ。
結局、名前空間だけ実装されても、使う側の命名規約が統一されないと意味が無いって事だ。
馬鹿の一つ覚えのように、PHP5.3からはnamespaceとか言うのは辞めような。
こういう事だよ。
結局、名前空間だけ実装されても、使う側の命名規約が統一されないと意味が無いって事だ。
馬鹿の一つ覚えのように、PHP5.3からはnamespaceとか言うのは辞めような。
>>982
ネームスペースは推奨でも非推奨でも無いよ。
ネームスペースを使う事で5.2以下との互換性が無くなるとしか名言されていない。
http://www.php.net/manual/ja/language.namespaces.faq.php#language.namespaces.faq.shouldicare
なんかプログラマ視点とSE視点が混ざって不毛な論議になってる気がするね。
プログラマは常に最新と向き合い吸収していく。
SEはその時々に最適な(枯れた)技術を採用する。
ネームスペースは推奨でも非推奨でも無いよ。
ネームスペースを使う事で5.2以下との互換性が無くなるとしか名言されていない。
http://www.php.net/manual/ja/language.namespaces.faq.php#language.namespaces.faq.shouldicare
なんかプログラマ視点とSE視点が混ざって不毛な論議になってる気がするね。
プログラマは常に最新と向き合い吸収していく。
SEはその時々に最適な(枯れた)技術を採用する。
SEだろうが何だろうが最新技術を追えない時点で終わってるだろ
最新という競争力のあるワードを使えないSEは今の世の中生き残れないわな
最新という競争力のあるワードを使えないSEは今の世の中生き残れないわな
そうはいうがビルド出来ないが為に脆弱性を持った環境でサービス動かしてる奴が殆どなんだぜ…
そう言う輩に最新を追えというのは無理じゃなかろうか…
そう言う輩に最新を追えというのは無理じゃなかろうか…
>>988
枯れきってバグや脆弱性がほぼ埋まったPHP5.2のコードが稼働している。
それらのPHP5.3への移行リスクやマネージメントを考えた事があるか?
「最新という競争力のあるワード」ねーよw
少なくともPHP5.2とPHP5.3に競争力は無い。
それでも5.3への対応は必要だと考えているよ。
でもnamespace化する事と5.3化する事は別レイヤーの話だ。
今までの規約で5.3へ移行する事も出来るし、過去の資産はそれでいいと思っている。
枯れきってバグや脆弱性がほぼ埋まったPHP5.2のコードが稼働している。
それらのPHP5.3への移行リスクやマネージメントを考えた事があるか?
「最新という競争力のあるワード」ねーよw
少なくともPHP5.2とPHP5.3に競争力は無い。
それでも5.3への対応は必要だと考えているよ。
でもnamespace化する事と5.3化する事は別レイヤーの話だ。
今までの規約で5.3へ移行する事も出来るし、過去の資産はそれでいいと思っている。
namespaceが最新技術とか
追っかけるとか
そういう言い回しはなんか違うと思うけどなあ
追っかけるとか
そういう言い回しはなんか違うと思うけどなあ
PHPの名前空間は、
http://www.php.net/manual/ja/language.namespaces.rationale.php
Prefix付の長いクラス名を何とかする為のアプローチに見えるな。
実際には、使用時に絶対パスで記述しないとクラス名の衝突が起こる可能性があるので、
何も解決出来ていない(結局絶対パスで記述する必要がある)
情弱は使えばいいよ。
http://www.php.net/manual/ja/language.namespaces.rationale.php
Prefix付の長いクラス名を何とかする為のアプローチに見えるな。
実際には、使用時に絶対パスで記述しないとクラス名の衝突が起こる可能性があるので、
何も解決出来ていない(結局絶対パスで記述する必要がある)
情弱は使えばいいよ。
なんでこいつは名前空間とパスを同一視してるの?
こんなんだからPHP使いはレベルが低いとか言われるんだよ…
こんなんだからPHP使いはレベルが低いとか言われるんだよ…
>>993
パス=クラス名への絶対修飾子って意味ね。
Zend_Hoge_Moge と書くのも \Zned\Hoge\Moge と書くのも同じだし、
このように絶対パスで書かないとクラス衝突は防げない。
となると本来目標にかかげていた、冗長なクラス名の廃止はどうなったのかと・・・
明らかに設計ミスだろ。
パス=クラス名への絶対修飾子って意味ね。
Zend_Hoge_Moge と書くのも \Zned\Hoge\Moge と書くのも同じだし、
このように絶対パスで書かないとクラス衝突は防げない。
となると本来目標にかかげていた、冗長なクラス名の廃止はどうなったのかと・・・
明らかに設計ミスだろ。
?
その目的の為の名前空間でありそれは達成されてるわけだが?
5.2を切り捨てて対応してるフレームワークなりなんなりみてみろよ
綺麗に切り分けられクラス名は短くなってる
その目的の為の名前空間でありそれは達成されてるわけだが?
5.2を切り捨てて対応してるフレームワークなりなんなりみてみろよ
綺麗に切り分けられクラス名は短くなってる
>>995
されてねーよ。
定義側は省略形で書けるかもしれんが、
実際に使用する側はフルパスで書かないといかんだろ。
打開策として use で別名エイリアスが付けられるが、
エイリアスが他クラスと被る可能性があるという本末転倒っぷり。
それならエイリアスなんか作らず
$className = 'Hoge\Moge\Class';
$class = new $className;
と書く方が利口。
どちらにせよ、当初の目的は果たせていない。
されてねーよ。
定義側は省略形で書けるかもしれんが、
実際に使用する側はフルパスで書かないといかんだろ。
打開策として use で別名エイリアスが付けられるが、
エイリアスが他クラスと被る可能性があるという本末転倒っぷり。
それならエイリアスなんか作らず
$className = 'Hoge\Moge\Class';
$class = new $className;
と書く方が利口。
どちらにせよ、当初の目的は果たせていない。
使いたい奴は使えばいい
Javaで言えばジェネリック拒否
C#で言えばラムダやLINQ拒否
オブジェクト指向拒否に関数型言語拒否と世の中前を向かない人間なんてザラにいる
一々そう言う奴等を説き伏せてたら時間がいくらあっても足りないでしょ
Javaで言えばジェネリック拒否
C#で言えばラムダやLINQ拒否
オブジェクト指向拒否に関数型言語拒否と世の中前を向かない人間なんてザラにいる
一々そう言う奴等を説き伏せてたら時間がいくらあっても足りないでしょ
>>997
頼むから他の言語の名前空間を使用してから言ってくれ…
エイリアスが他クラスとかぶる可能性とか何を言ってるんだと言わざるを得ない
jsですらjqueryやらprototypeやら他のライブラリつかって名前空間を表現しようって風潮なのにどんだけ取り残されてるんだよ
頼むから他の言語の名前空間を使用してから言ってくれ…
エイリアスが他クラスとかぶる可能性とか何を言ってるんだと言わざるを得ない
jsですらjqueryやらprototypeやら他のライブラリつかって名前空間を表現しようって風潮なのにどんだけ取り残されてるんだよ
類似してるかもしれないスレッド
- 【PHP】PHPフレームワーク総合スレ15 (989) - [97%] - 2013/9/27 6:00 △
- 【PHP】フレームワークPharonスレ (306) - [75%] - 2022/10/10 20:00
- 【PHP】フレームワークMapleに舌鼓 (470) - [62%] - 2017/12/31 9:31
- 【PHP】フレームワーク Akelos (129) - [59%] - 2019/5/9 7:46
- 2ch有志がPHPフレームワークを作るスレ (81) - [55%] - 2019/5/9 7:46
- 【PHP】Laravel【フレームワーク】 Part.4 (460) - [53%] - 2021/4/4 4:00
- 【PHP】Laravel【フレームワーク】 Part.11 (870) - [53%] - 2022/8/28 15:45
- 【PHP】Laravel【フレームワーク】 Part.12 (314) - [53%] - 2023/1/30 18:45
トップメニューへ / →のくす牧場書庫について