ところでいくつかあるXMLの設定ファイルで、どうするのかなぁと感じていたことがある。
特定のディレクトリを絶対パスで指定したい場合に、配置するサーバーの状態によっては、ディレクトリ名を変えないといけないこともあるだろう。そうしたときに、XML内の該当箇所を全て置き換えていかないといけないのかなぁ。とちょっと不便に思っていた。
ところが、ここのソースを見て解決した。
要は、ColdFusion レベルの手法ではなく、XMLレベルの手法で解決すればいいのだ。
例えば、作成したアプリケーションを配置するディレクトリ名を開発中は shopping としていたのに、いざ、本番環境に配置しようとしたら shopping というディレクトリがすでにあったとしよう。すると、ColdSpring.xml のCFコンポーネントの完全限定名を全ての箇所で変える
必要が出てくる。
そんなときに、以下のように設定しておけば、変更は一箇所で完了する。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans [
<!ENTITY topOfPackage "shopping">
]>
<beans>
<bean id="itemArrayBean" class="&topOfPackage;.model.ItemArrayBean" autowire="byType" />
……
</beans>
ここで例えば、ENTITY の topOfPackage を shopping から shoppingcart とすれば、ItemArrayBean は、shoppingcart.model.ItemArrayBean を参照するように変更できる。
やはり、世の中、「知っている」と「知らない」では、大きく違うんだな。
そして、そのアプリケーションのソースを見ていて知った、オープンソースプロジェクト。
Image CFC
ColdFusion8 から、画像を扱うことが簡単にできるようになったらしいけど、このコンポーネントを使えば、8じゃなくても、ある程度の画像ファイルの操作ができるようだ。アップロードした画像のサムネイルを作るとか、画像サイズの一律化とか、8にアップグレードできないときに重宝しそうだ。