SlideShare une entreprise Scribd logo
1  sur  24
名前空間.php

     あさのひとし (@ts_asano)
       2013.01.19 @ Nagoya.php

http://d.hatena.ne.jp/ts_asano
自己紹介
株式会社トゥ・ステップ



岐阜県大垣市 ソフトピアジャパン

今の業務は主にFuelPHPでの
      開発とサーバ管理

目下の趣味は電子工作
似顔絵アイコン



http://www.faceyourmanga.com で作成

まあまあ似てる(自画自賛)

2年くらいまえの髪型です
本題
お題


PHP5.3で新しく追加された
「名前空間(namespace)」について
何がよい?


名前空間が分かれていれば、
同一名のクラス、関数が存在できる

つまり、同一名で違う処理を実装可能
意識したことない?

もしそうなら、あなたが書いているクラス、
関数は「グローバル空間 (Global space)」
に所属

PHP5.2までの領域はすべて
「グローバル空間」と考えてよい
名前空間のイメージ
グローバル空間
名前空間のイメージ
グローバル空間
 class ts_asano
         function get_icon()
名前空間のイメージ


普通にクラスを実装したら、グローバル空間

次に、「名前空間A」を作って
同じクラス名で内容を変えて実装すると…?
名前空間のイメージ
グローバル空間
 class ts_asano
         function get_icon()
名前空間のイメージ
グローバル空間
 class ts_asano
         function get_icon()
 namespace A
名前空間のイメージ
グローバル空間
 class ts_asano
         function get_icon()
 namespace A

   class ts_asano
           function get_icon()
名前空間のイメージ
グローバル空間
 class ts_asano
         function get_icon()
 namespace A

   class ts_asano
           function get_icon()
名前空間のイメージ


名前空間が違うので同一名で
少し違う処理を実装できた

次に、「名前空間B」を作って
同じクラス名でぜんぜん違う実装をすると…?
名前空間のイメージ
グローバル空間
 class ts_asano
         function get_icon()
 namespace A
  namespace B
名前空間のイメージ
グローバル空間
 class ts_asano
         function get_icon()
 namespace A
  namespace B

   class ts_asano
           function get_icon()
名前空間のイメージ
グローバル空間
 class ts_asano
         function get_icon()
 namespace A
  namespace B

   class ts_asano
           function get_icon()
!?
名前空間のイメージ

どうみても別人です。
本当にありがとうございました。



名前は同じ、実装は別モノにできる
グローバル空間から呼出
グローバル空間から「別人」を呼ぶ
 $betsujin = new Bts_asano();
 $betsujin->get_icon();
  もしくは
 $betsujin = new Bts_asano();
 $betsujin->get_icon();

後者は「完全修飾名」
名前空間内からグローバルを呼出


  「別人」空間から
       グローバル空間のクラスを呼ぶ
  $global = new ts_asano();
  $global->get_icon();

  「」だけを使えばOK!
よくわからない?


素直にフレームワークを使いましょう

FuelPHPをおすすめしています

FuelPHPを使っていると、自然と慣れます
Thanks a lot!

http://php.net


http://www.faceyourmanga.com


http://fuelphp.com/

Contenu connexe

Similaire à 名前空間.php @Nagoya.php 2013.01.19

Web技術勉強会 20110723
Web技術勉強会 20110723Web技術勉強会 20110723
Web技術勉強会 20110723
龍一 田中
 
Web講座 第9回
Web講座 第9回Web講座 第9回
Web講座 第9回
nanametown
 
関数型志向Python - LLまつり2013
関数型志向Python - LLまつり2013関数型志向Python - LLまつり2013
関数型志向Python - LLまつり2013
Esehara Shigeo
 
Phpではじめるオブジェクト指向(公開用)
Phpではじめるオブジェクト指向(公開用)Phpではじめるオブジェクト指向(公開用)
Phpではじめるオブジェクト指向(公開用)
VOYAGE GROUP
 
Haxeとtype scriptの比較
Haxeとtype scriptの比較Haxeとtype scriptの比較
Haxeとtype scriptの比較
西田 慎吾
 

Similaire à 名前空間.php @Nagoya.php 2013.01.19 (20)

Web技術勉強会 20110723
Web技術勉強会 20110723Web技術勉強会 20110723
Web技術勉強会 20110723
 
夏だからJava再入門
夏だからJava再入門夏だからJava再入門
夏だからJava再入門
 
Web講座 第9回
Web講座 第9回Web講座 第9回
Web講座 第9回
 
Ruby on Rails 入門
Ruby on Rails 入門Ruby on Rails 入門
Ruby on Rails 入門
 
PHPのnamespace・useについて
PHPのnamespace・useについてPHPのnamespace・useについて
PHPのnamespace・useについて
 
PHPとJavaScriptにおけるオブジェクト指向を比較する
PHPとJavaScriptにおけるオブジェクト指向を比較するPHPとJavaScriptにおけるオブジェクト指向を比較する
PHPとJavaScriptにおけるオブジェクト指向を比較する
 
関数型志向Python - LLまつり2013
関数型志向Python - LLまつり2013関数型志向Python - LLまつり2013
関数型志向Python - LLまつり2013
 
デザイナーのためのPHP講座 for WordPress (初級)
デザイナーのためのPHP講座  for WordPress (初級)デザイナーのためのPHP講座  for WordPress (初級)
デザイナーのためのPHP講座 for WordPress (初級)
 
あらためてPHP5.3
あらためてPHP5.3あらためてPHP5.3
あらためてPHP5.3
 
仕事でも Groovy を使おう!
仕事でも Groovy を使おう!仕事でも Groovy を使おう!
仕事でも Groovy を使おう!
 
Phpではじめるオブジェクト指向(公開用)
Phpではじめるオブジェクト指向(公開用)Phpではじめるオブジェクト指向(公開用)
Phpではじめるオブジェクト指向(公開用)
 
Haxeとtype scriptの比較
Haxeとtype scriptの比較Haxeとtype scriptの比較
Haxeとtype scriptの比較
 
From Java To Clojure
From Java To ClojureFrom Java To Clojure
From Java To Clojure
 
Rawlerフレームワーク(全体)
Rawlerフレームワーク(全体)Rawlerフレームワーク(全体)
Rawlerフレームワーク(全体)
 
Functional JavaScript with Lo-Dash.js
Functional JavaScript with Lo-Dash.jsFunctional JavaScript with Lo-Dash.js
Functional JavaScript with Lo-Dash.js
 
WordPress テーマ作成&PHP超入門
WordPress テーマ作成&PHP超入門WordPress テーマ作成&PHP超入門
WordPress テーマ作成&PHP超入門
 
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
 
PHP基礎勉強会
PHP基礎勉強会PHP基礎勉強会
PHP基礎勉強会
 
ATN No.2 Scala事始め
ATN No.2 Scala事始めATN No.2 Scala事始め
ATN No.2 Scala事始め
 
JavaScript 非同期処理 入門
JavaScript非同期処理 入門JavaScript非同期処理 入門
JavaScript 非同期処理 入門
 

名前空間.php @Nagoya.php 2013.01.19