Movable Typeのextlib利用に関する補足
「MTのextlibを利用したPerlモジュールの利用」について記述したところ、いつもお世話になっているToI企画のタクさんからメッセージをもらいました。
タクさんは、ToI企画のブログ上で、種々様々なMT向けプラグインを提供している凄腕開発者です。いつも勉強をさせていただいております。
以下、extlibの利用について、ご指摘をいただいたのは
・MT4.2からは、プラグインディレクトリ内にextliというディレクトリを作成して、モジュールを配置することによって、利用可能となる。これは、アメリカのMovableTpe.orgに書かれている。
http://www.movabletype.org/documentation/developer/other-common-directories.html
・extlibにPerlもモジュールを入れていると、優先的にそのディレクトリを読みにいってしまう。つまり、サーバー自体のPerlモジュールがアップデートされて最新版に更新されても、Mt自体はextlib配下の古いモジュールを読みにいってしまう可能性があるため要注意
(例:File::Tempが2.0だったとして、 extlibに入れたFile::Tempが1.0だったすると、プラグイン内での利用に限らずMT全体で、1.0のFile::Tempが優先で使われてしまうようになる)
とのことでした。タクさん、いつもありがとうございます!
これらを考慮すると、extlibへPerlのモジュールを配置するのは、諸々注意した上で行う必要がありそうです。extlibディレクトリの利用については
・まず、サーバーおよびMTのextlibがデフォルトで持っているモジュール類を確認した上で
・必要な場合のみ、最小限のモジュールを各プラグイン内にextlibディレクトリを作成して利用する
のがベターといえそうです。
皆様におかれましても、extlibディレクトリの利用についてはご留意ください。
コメント(2)
oscar
にっくさん、ご無沙汰してます。
これ、以前はまった事があります。
というのも、あるプラグインのextlibに最新バージョンのCPANモジュールが入っていたのですが、それが読み込まれると、標準のMTの機能が動作しなくなる(JSONのモジュールだったんですが)ケースに遭遇したんです。
しかもextlib内のモジュールは、管理画面でプラグインを無効化していても、読み込み対象になっているようでした。
原因がさっぱり解らなくて苦労しました。
にっく
oscarさん
こんにちは、にっくです。こちらこそご無沙汰しております。コメントありがとうございました!
extlibは便利ですね。このディレクトリに気がついたときは「なんと隅々まで考えられているのだろう」と感動しました。
一方で、oscarさんがご苦労されたようなことも往々にしてありそうなので要注意ですね・・・。
コメントする