A4 WORKS Official BLOG

A4 WORKS オフィシャルブログ

PHPの名前空間を実際に使ってみた。

      2015/10/01

A4 WORKS 新人の池田です。

“ブログを書くことで学べる事も多くある”という教えのもと、ブログ初挑戦です。
読みにくい部分も多分にあるかとは思いますが最後までおつきあい頂けますと幸甚です。


今回はPHPのバージョン5.3から新しく使えるようになった名前空間を練習の意味も含め実際に使ってみようと思います。

名前空間って何???

まず、名前空間とはなんなのか、という言う事で簡単に説明させていただきます。
名前空間はフォルダとにたような概念で、名前が同じでも別々の名前空間に定義してあれば別々のものと扱われ同じ名前の衝突を避けることができます。
名前空間がないパージョン5.3以前では、アンダーバーで区切ってroot_sub_name1_class1などと長い名前を付ける事により同じ名前の衝突を避けていたようです。

名前空間を使う時意識する事3つ

次に、実際に名前空間を使うにあたっての意識する点を軽く確認したいと思います。

1.名前空間はクラス、関数、定数に影響する。

2.ある名前からどの名前空間の名前かを決定していく順番(名前解決)は、useによるインポート、現在の名前空間、グローバル空間となる。

3.同じファイルに複数の名前空間を定義する場合、次の定義の部分にいったら名前空間が切り替わる。 h3:見落としがちな点 ディレクトリは/(スラッシュ)で区切るが、名前空間は\(バックスラッシュ)で区切る

名前空間を実際に使ってみる

実際に簡単にコードを書いて検証をおこなってみます。

difin.php

 output.php

実際、名前空間が使われている一例として、直近のプロジェクトで導入されているZend Framework2フレームワーク内ではオートロードと一緒に使うことによりファイルのインポート文を書くことなく名前空間のインポート文だけで済むようになっています。
名前空間が採用された事で、これからphpのフレームワークを使う方はもっと恩恵を受けられると感じました。


 

最後までお付き合い頂き有難うございました!

まだまだ未熟ではありますが、ブログを書くこと通して皆様のお役に立てます様に精進してまいります!

 - PHP

STINGERレクタングル大

STINGERレクタングル大

Comment

  1. いの山 より:

    名前空間を学ぼうと思いこちらにたどり着きました。
    大変丁寧な説明で分かりやすく、お陰で理解する事ができました。ありがとうございます。
    一つ質問なのですが、output.phpでrequire_onceしている namespace1.php は、difin.phpの事でしょうか?

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

  関連記事

bitbucket-slack
BitbucketのPull RequestをSlackに通知するWeb API

BitbucketのWebhookと、SlackのWebAPIを組み合わせせる事 …

php_icon
file_get_contensでPOSTリクエスト

file_get_contensでファイルパスの代わりにURLを指定することで、 …

fuelPHP_icon
FuelPHPを使ってみる

ゲーム開発プロジェクトのサーバー側(アプリと連携させるAPIとか管理機能とか)を …

php_icon
PHPでAPCを有効にするとclass not foundになる現象

最近はLINEスタンプのネタばかりだったので、久々の技術ネタです。 4年ほど前に …

fuelPHP_icon
FuelPHPのとっかかりの際に目を通してほしいスライド

公式のドキュメントも分かりやすく整理されているとはおもいますが、このスライドが要 …

Google Developers PageSpeed Insights_icon
Google Developers PageSpeed Insightsを活用してパフォーマンスチューニング

PageSpeed Insightsのトップページに書いてあるんですが「あらゆる …

php_icon
memcachedのインストールとPHPの対応

AWSのサーバーにmemcachedをインストールしたので備忘録。 memcac …

fuelPHP_icon
FuelPHPでSmartyを使う

以前のエントリ「FuelPHPを使ってみる」の続きです。 Twigを導入するか迷 …