ラベル class の投稿を表示しています。 すべての投稿を表示
ラベル class の投稿を表示しています。 すべての投稿を表示

2010年6月7日月曜日

PHPの バージョン5.xで追加された便利なクラス

PHPの5.xで組み込みオブジェクトとして提供される便利なクラス。
たまに古いPHPを使うときに、どのバージョンで何を使えるか/使えないか分からなくなるのでメモ。

バージョン追加された便利なクラス
PHP 5.0.1SimpleXML
PHP 5.1.0PDO
PHP 5.2.0DateTime, ZipArchive, JSON関数(※)

※JSON関数はクラスではないけど



PHP5.3では下記のクラスが便利そうだけど、まだきちんと使ったことはない
  • DateInterval (DateTimeの加減算等に使える)
  • DatePeriod (日時を指定した範囲でループできる)
    • 例1:7/1から7/7までの日付を出力

      $dp = new DatePeriod(new DateTime('2010-07-01'), new DateInterval('P1D'), 6);

      foreach ($dp as $dt) {
          echo $dt->format('Y/m/d') . '<br />';
      }
    • 例2:同じく、7/1から7/7までの日付を出力

      $dp = new DatePeriod(
          new DateTime('2010-07-01'),
          new DateInterval('P1D'),
          new DateTime('2010-07-08')
      );

      foreach ($dp as $dt) {
          echo $dt->format('Y/m/d') . '<br />';
      }
  • FilesystemIterator (指定したディレクトリにあるファイルをループ)



PHP5.2.0、5.3.0で追加されたクラスは、PHPマニュアルにまとめページがある。

2008年11月8日土曜日

PHP5のマジックメソッド

第2回設計勉強会に参加しました | Shin x blogを読んで初めてautoloadを知った。

ついでにマジックメソッドについてまとめてみる。


classのマジックメソッド



グローバル関数なマジックメソッド
  • __autoload()
    • 未定義のclassが参照された場合に呼ばれる
    • この関数の中でクラス名等に紐付いたファイルをインクルードさせれば、classを使う時にいちいちrequire/includeしなくてよくなる
    • newでのインスタンス生成や静的メソッドの呼び出しの他、extendsや型宣言などによるclassの参照でも呼ばれる
    • 参考:PHP: オブジェクトのオートローディング - Manual


今まで__construct, __destruct, __call, __get, __setくらいしか知らなかった。
__constructは別にすると、この中では__autoloadが特に便利。
また、__call, __get, __setはコーディングミス防止に役立つので生産性向上に寄与する。「重いので使うな」的なことが書かれていることが多いので、それなりに負荷のあるサイトでは使わないほうがよいのかも。(1ページ表示するのに__setを1000回使うサイトとか!)


参考:PHP: マジックメソッド - Manual

ブログ アーカイブ

tags