2007年9月アーカイブ
Movable Type を4系にえいやっと更新してみました。
メジャーなバージョンアップなので以前からのサイトデザインも捨てる勢いでテンプレート関連情報も一斉初期化してみました。なんだかカスタムテンプレート扱いでなかなか初期化できずに困りましたが。
テンプレート情報を全て消去して「システムメニュー」の「ブログ一覧」から「テンプレートの初期化」で何とかデフォルトテンプレートが適応されたものの、エントリ毎のアーカイブファイルなどの出力設定が空っぽの状態だったので、その部分だけは最終的に手動設定にて対応。過去のエントリのアーカイブへリンクを貼っている方なども多数おられるので、その部分は同じファイル名となるように。
ともかくテンプレートまわりが偉い変わっててビックリ。「モジュールテンプレート」として細かいパーツがひたすら外出しされているのが標準的に利用されてます。
まだ全部読んでないですが、MTSetVar / MTGetVar をトップ(レイアウト部に該当するテンプレート)で利用して変数値設定、その内容に応じてモジュールテンプレートの利用可否を決定しているといった感じで、より玄人向けな内容になってます。プログラムをやってる人ならばすぐ理解できますし面白い機構なのですが、なかなか大変だなあ。
ひとまず StyleCatcher で見た目の変更ということで、躊躇なく三沢のタイツでいくことにしました。
例えば PEAR の場合だと、Linux のパッケージによる導入を行った場合などは /usr/share/pear, Windows 環境などでは PHP 実行環境直下の pear ディレクトリといった具合にグローバルなスペースにライブラリが格納されます。php.ini による include_path の設定もこのグローバルなスペースを指定しているので、皆さんが使用、もしくは開発している Web アプリケーションにおいても、この一箇所にまとめられているライブラリを利用しているかと思います。
これらライブラリを更新する場合、この一箇所を変更するだけで全ての Web アプリケーションが Ver.UP されることになるため効率がよいその一方で、全てに影響するとあってそうあっさりと更新ができない場合があったり、権限の問題で簡単に書き換えることができない(そもそも権限がない)、また Web アプリケーションそのものがサーバの環境や状態に依存してしまうものとなってしまいます。
そこ私はタイトルにあるように、プロジェクトごとに外部ライブラリ格納場所を準備することで、プロジェクト単位で PEAR ライブラリを個別管理するようにしています。開発および稼動後の運用を行う上もなかなか便利でよい方法だと思うので簡単に紹介します。
なお以下に紹介する方法は、自身の開発環境に PHP および PEAR が既に導入されていることを前提としています。PHP は 4, 5 問いません。また PEAR はインストーラが実行できる環境、すなわち PEAR Core と依存するパッケージのみで動作します。
まずプロジェクト用ディレクトリ以下に、そのプロジェクトに応じたツリーを構成するのとあわせて外部ライブラリ格納用ディレクトリを作ります。例えば以下のような感じ。ここでは /path/to/Project/imports が外部ライブラリ格納用ディレクトリです。PEAR ライブラリはこの imports 以下に pear ディレクトリを作成し、この内部にインストールしていくようにします。
- Project - imports 外部ライブラリ格納用ディレクトリ - pear PEARディレクトリ - web - content-A - htdocs コンテンツA用ドキュメントルート - webapp コンテンツA用Webアプリケーション - content-B - htdocs コンテンツB用ドキュメントルート - webapp コンテンツB用Webアプリケーション
実際に pear ディレクトリへ PEAR ライブラリを導入するための準備、および実行を行っていきます。
まずは imports ディレクトリへ移動し、pear config-create コマンドを使用してディレクトリ情報の設定ファイルを作成します。
$ cd /path/to/Project/imports $ pear config-create `pwd` .pearrc
ちなみに pear config-create コマンドで指定することのできるディレクトリ情報はルートからのパスである必要があるらしく、./ といった形で指定することができません。
作成された設定ファイルは、-c オプションを使用して pear コマンドを実行すれば指定することができます。以下のコマンドで設定内容を確認することができます。ディレクトリ情報以外は、PEAR インストーラの初期設定値が適応されます。
$ pear -c .pearrc config-show
余談ですが、PEARインストーラにて発生するテンポラリなファイル群がプロジェクト内に貯まっていくのは本意ではないため、以下のように微妙に変更することもオススメです。
$ pear -c .pearrc config-set cache_dir /tmp/pear/cache $ pear -c .pearrc config-set download_dir /tmp/pear/cache $ pear -c .pearrc config-set temp_dir /tmp/pear/temp
以後は -c オプションを付与しながら PEAR ライブラリをどんどん導入していきます。手始めに PEAR 本体をば。
$ pear -c .pearrc channel-update pear.php.net (これは始めだけ) $ pear -c .pearrc install pear/PEAR
一方、Web アプリケーション側では、この PEAR ディレクトリをメインの include_path として設定するようにします。例えば、htdocs 内にある PHP ファイルの先頭で以下のように設定します。アプリケーションの設置場所(ローカル、テスト環境、本番環境)に依存しないよう、相対パスで指定するようにします。
ini_set('include_path',
dirname(__FILE__) . '/../../../imports/pear' . PATH_SEPARATOR .
get_include_path()
);
あとは Project ディレクトリ単位で開発し、rsync などによるコピーも Project ディレクトリ丸々行うようにします。リバーシブルなメディアに Project ディレクトリと Apache の VirtualHost 情報を含めて他の環境に持っていっても動作させることができます。
ソースコード管理のリポジトリも当然ながら Project ディレクトリから。すなわち、imports ディレクトリも管理内となるわけです。
なお、.pearrc 設定ファイルの内容だけはルートからのパスが含まれ環境に依存する情報となるため、ソースコード管理外になるようにするのも良いでしょう。subversion ならば以下のように ignore 設定を行います。
$ cd /path/to/imports $ svn propset svn:ignore ".pearrc" .
近所に住んでいる同級生がドラゴンフルーツなるものを脇に抱えてやってきては置いてゆきました。

なんという南国植物。

花びらのような皮は簡単にむけて、中から黒いツブツブを大量に抱えた白い実が。
キウイフルーツをダイナミックにしたような食感と甘さ。非常においしかったですありがとうございました。
今ちょうど書いてる PHPPro! 向けの原稿でさらっと使おうとしたけども結局消した没ネタ。3画面モードを再現するワイド液晶ってすげー。
どうしてこのネタを使おうとしたかは、今月末に掲載予定の PEAR 講座で全てが明らかになるだろう…。(実は大したことない) あと今日締め切りですが普通にまだ出来てません。
昨年9月頭に禁煙し始めてからついに一年が経過しました。あっさりさくっと一周年。
もはや普段の生活では一切吸いたいとは思わないし、お酒の場ではたまーーーに欲しい感覚に襲われるものの 2, 3秒ですぐその気ではなくなるくらいの状態。
やっぱり決め手は、禁煙後にはじめて風邪をひいたタイミングで無理やり残ってたタバコを吸ったことか。もうそりゃ超まずい。自分にとって毒であることを体と精神ともに叩きつける目論見が見事成功した感じ。
元々は腹痛に悩まされていたのを改善したくて食生活を100%自炊にシフトするのと合わせてタバコもやめたのですけれども、今になって考えれば、(自分の作った)飯はうまいし、若干の節約にもなるし、喫煙場所を探すといった行動は必要なくなるし、と良いこと尽くめだと思うので、まあなんだかんだで経験者として禁煙はやっぱりオススメしときます。
Wii用のスティックコントローラの一発目が8月末に発売されたみたい。土台やボタン配置など一見良さそうに見えるけれどもどうなんだろう。と思ったらもう分解を含めてのレビューが。
やっぱり同社発売のリアルアーケードプロと比べるとそこまでってレベルの模様。ボタンも基盤に直で半田付けしてるってことで、もしパーツ交換するのならば再配線が必要だろうし多分天板〜基盤間の隙間を広げる改造も出てきそう。
今月ついにバーチャルコンソールで NeoGeo が来るってことで多分需要が一気に高まることになりそうだけども、これはちょっとしばらく様子見かもなあ。
ついでながら、今月はSFC版グラディウスIIIも来るので超楽しみ。
