オブジェクト指向PHP

最新情報

session.use_trans_sid

内部リンクおよび投稿フォームにセッションIDを埋め込むかどうかの設定をする。埋め込む場合は「1」を指定する。

session.use_trans_sid = 1

エンドユーザーからセッションクッキーを受け取らなかった時、内部リンクのURLパラメータにセッションIDを付与する。また投稿フォームにhiddenパラメータでセッションIDを埋め込む。
※クッキーが利用できない場合に発動するかのような印象を受けるかもしれないが、URLパラメータに付与するかどうかの判定は、セッションクッキーの有無でることに注意する。(詳細はPHPサイバーテロの技法)

セッションID漏洩=>セッションハイジャックというリスクが高まるため、通常は有効にすべきでは無い。携帯サイトなどで用いると便利であるが、利用する場合は細心の注意をすべきである。

なお .htaccess で設定する場合は、以下のように記述する。

php_flag session.use_trans_sid On

タグ

投稿リビジョン

WordPressでは、編集(更新)履歴を何世代か残しておく機能、投稿リビジョン機能が用意されています。

投稿リビジョンは便利な機能ですが、データベース上で新たに投稿IDが付与されるので、データベースが肥大になる、投稿IDが不連続になる、等の副作用があります。

投稿リビジョンの設定は、管理画面からは行うことができません。(本記事執筆時の最新版WordPress2.7の場合。将来的には対応するかもしれません。)WP_POST_REVISIONSという定数が用意されているので、wp-config.phpで設定可能です。


define ('WP_POST_REVISIONS', false);

デフォルトはtrue(リビジョンを保存する)ですが、false(保存しない)を指定することができます。また保存する世代数を整数値で指定することができます。

coreserver

容量15GB、マルチドメイン無制限、MYSQL無制限、cron ssh 利用可能で年間5000円(一ヶ月契約なら月500円)で利用できるレンタルサーバーです。

PHPはデフォルトでバージョン5(モジュールモード、セーフモード適用)ですが、設定によりCGIモードでも動作可能です。

.htaccessやphp.iniの編集も可能なので、いろいろとカスタマイズしたい人には向いています。ただしユーザーサポートは手薄なので、自分で調べて解決できる人むけです。

申込方法がややこしくなっています。まずドメイン取得サービスバリュードメイン(Value-Domain)に登録する必要があります。(ホスティング提供のサブドメイン利用の場合は、ドメイン取得する必要はありません。)その後、バリュードメインのIDを用いてcoreserverに申込するようになっています。

__getと__set

存在しないプロパティにアクセスした時に、実行されるメソッドを定義することができます。(private属性が付与されているプロパティをクラス外から呼び出した場合、クラス外からは見えないため、存在しないとみなされます。)そのための特殊なメソッドが、__get(アンダーバー2個)です。引数は呼び出そうとしたプロパティ名です。


class Sample {
public function __get($propName) {
return $propName . " does not exist." ;
}
}

上のソースに加えて下のように書くと、

$obj = new Sample();
echo $obj->hoge;

以下のような結果が返されます。

hoge does not exist.

タグ

WP-DB-Backup

ワードプレスのデータベースをバックアップするプラグインです。ワードプレスはMYSQLを使用しているので、PhpMyAdminを利用したり、シェルログインを利用したり、あるいはcronデーモンを利用したりしてバックアップすることが可能ですが、WP-DB-Backupを利用すると、ワードプレス管理画面からバックアップすることができます。

使いかたは、通常のプラグイン同様、解凍したファイルを/wp-content/plugin/ディレクトリにアップロードし、管理画面のプラグインで「このプラグインを使用する」を選択するだけです。プラグインを使えるようにしたら、メニューから「管理」「バックアップ」から、バックアップを行います。保存先は、サーバー上のディスクスペース、手元のコンピュータ、メール送信から選択します。また、定期的にバックアップして、データをメール送信する設定も可能です。

テンプレート読み込み順位

ワードプレスでは、テンプレートを読み込むことでトップページ、個別記事、カテゴリアーカイブ等のレイアウト編集ができます。主なテンプレートは、以下のようになっています。

トップページ

  1. home.php
  2. index.php

シングルページ(個別記事)

  1. single.php
  2. index.php

カテゴリーページ

  1. category-*.php
  2. category.php
  3. archive.php
  4. index.php

*の部分はカテゴリーIDを指定します。つまり、カテゴリー別にテンプレート設定が可能です。

日付アーカイブ

  1. date.php
  2. archive.php
  3. index.php

PAGE

  1. 任意のテンプレート名.php
  2. page.php
  3. index.php

著者ページ

  1. author.php
  2. archive.php
  3. index.php

検索結果ページ

  1. search.php
  2. index.php

404エラー(Not Found)

  1. 404.php
  2. index.php

テンプレートは、番号の若い順に適用されます。例えばトップページは home.php が存在する場合は home.php が適用されますが、存在しない場合は、index.php が適用されます。

Custom Field GUI

Custom Field GUIは、カスタムフィールドに、ラジオボタン等のフォームを導入するプラグインです。Rhymed Code Custom Field GUIで入手可能です。Wordpress2.1用となっていますが、Wordpress2.6でも利用可能です。

→この記事の続きを読む

例外処理

PHP5から、例外処理がサポートされるようになりました。エラーが発生した場合の処理が、例外オブジェクト生成→例外オブジェクトがエラーメッセージ等を返す、という形になります。例外に関する処理をまとめることができるので、スクリプトコードがすっきりし、可読性向上にも役立ちます。

→この記事の続きを読む

タグ

simpleXMLとは

PHP5の新機能として、simpleXML関数という便利な関数が実装されています。複雑なXML文書処理にはDOMを利用するほうが良いでしょうが、ブログなどで配信されるRSS(rich site summaryあるいはreally simple syndication)やアマゾンウェブサービス等の処理には手軽なsimpleXMLが重宝します。

→この記事の続きを読む

タグ

ポリモーフィズムでない例

ポリモーフィズムとはで紹介したサンプルを、ポリモーフィズムを利用しないで書いたスクリプトは、以下のようになります。

→この記事の続きを読む

タグ