名前空間.php @Nagoya.php 2013.01.19

1,356 views

Published on

PHP5.3において導入された名前空間について基礎的なことをまとめてみました。

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,356
On SlideShare
0
From Embeds
0
Number of Embeds
252
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

名前空間.php @Nagoya.php 2013.01.19

  1. 1. 名前空間.php   あさのひとし (@ts_asano) 2013.01.19 @ Nagoya.phphttp://d.hatena.ne.jp/ts_asano
  2. 2. 自己紹介株式会社トゥ・ステップ岐阜県大垣市 ソフトピアジャパン今の業務は主にFuelPHPでの      開発とサーバ管理目下の趣味は電子工作
  3. 3. 似顔絵アイコンhttp://www.faceyourmanga.com で作成まあまあ似てる(自画自賛)2年くらいまえの髪型です
  4. 4. 本題
  5. 5. お題PHP5.3で新しく追加された「名前空間(namespace)」について
  6. 6. 何がよい?名前空間が分かれていれば、同一名のクラス、関数が存在できるつまり、同一名で違う処理を実装可能
  7. 7. 意識したことない?もしそうなら、あなたが書いているクラス、関数は「グローバル空間 (Global space)」に所属PHP5.2までの領域はすべて「グローバル空間」と考えてよい
  8. 8. 名前空間のイメージグローバル空間
  9. 9. 名前空間のイメージグローバル空間 class ts_asano function get_icon()
  10. 10. 名前空間のイメージ普通にクラスを実装したら、グローバル空間次に、「名前空間A」を作って同じクラス名で内容を変えて実装すると…?
  11. 11. 名前空間のイメージグローバル空間 class ts_asano function get_icon()
  12. 12. 名前空間のイメージグローバル空間 class ts_asano function get_icon() namespace A
  13. 13. 名前空間のイメージグローバル空間 class ts_asano function get_icon() namespace A class ts_asano function get_icon()
  14. 14. 名前空間のイメージグローバル空間 class ts_asano function get_icon() namespace A class ts_asano function get_icon()
  15. 15. 名前空間のイメージ名前空間が違うので同一名で少し違う処理を実装できた次に、「名前空間B」を作って同じクラス名でぜんぜん違う実装をすると…?
  16. 16. 名前空間のイメージグローバル空間 class ts_asano function get_icon() namespace A namespace B
  17. 17. 名前空間のイメージグローバル空間 class ts_asano function get_icon() namespace A namespace B class ts_asano function get_icon()
  18. 18. 名前空間のイメージグローバル空間 class ts_asano function get_icon() namespace A namespace B class ts_asano function get_icon()
  19. 19. !?
  20. 20. 名前空間のイメージどうみても別人です。本当にありがとうございました。名前は同じ、実装は別モノにできる
  21. 21. グローバル空間から呼出グローバル空間から「別人」を呼ぶ $betsujin = new Bts_asano(); $betsujin->get_icon();  もしくは $betsujin = new Bts_asano(); $betsujin->get_icon();後者は「完全修飾名」
  22. 22. 名前空間内からグローバルを呼出 「別人」空間から      グローバル空間のクラスを呼ぶ $global = new ts_asano(); $global->get_icon(); 「」だけを使えばOK!
  23. 23. よくわからない?素直にフレームワークを使いましょうFuelPHPをおすすめしていますFuelPHPを使っていると、自然と慣れます
  24. 24. Thanks a lot!http://php.nethttp://www.faceyourmanga.comhttp://fuelphp.com/

×