管理画面からプラグインを削除でプラグイン以外のフォルダも削除される
ouka_d > Re: 管理画面からプラグインを削除でプラグイン以外のフォルダも削除される @ 2010/12/23 10:53 |
---|
265行目を「$folder->delete($tmpPath);」の状態にして
無事に該当プラグインだけの削除になりました。 「$folder->delete();」状態のときは処理が完了するまで (IEでページが変わるまで)かなりの時間がかかっていました。 「$folder->delete($tmpPath);」に変更してからは処理が完了するまで時間はかかってません。 現象の確認のためにxammpliteもbasercmsも最低限の設定だけで行いました。 また、異なるWindowsXPsp2とsp3のPC3台でも同じでした。 basercms-1.6.7.1.zip xampplite-win32-1.7.3.zip |
ryuring > Re: 管理画面からプラグインを削除でプラグイン以外のフォルダも削除される @ 2010/12/23 16:56 |
---|
ouka_dさん、情報提供ありがとうございます。
ソースの細部までを確認しても、 $folder->delete(); で全て削除されるわけがないのですが、 ご指摘のコード修正でも特に問題ありませんので、 コアパッケージもそのように修正をかけておきますね。 次のバージョンから反映させます。 ありがとうございました。 Twitter:@ryuring |
ouka_d > Re: 管理画面からプラグインを削除でプラグイン以外のフォルダも削除される @ 2010/12/24 10:29 |
---|
修正ありがとうございます。
念のため、その後の報告です。 「$folder = new Folder($tmpPath);」して直ぐに 「var_dump($folder->pwd());」で確認。 「uninstall」フォルダがある(手動で作成)場合は、 「"Z:\xampplite\htdocs\test\app\tmp\schemas\uninstall\"」 「uninstall」フォルダがない場合は、 「NULL」になりました。 |
ryuring > Re: 管理画面からプラグインを削除でプラグイン以外のフォルダも削除される @ 2010/12/24 22:54 |
---|
ouka_dさん、こちらでも、詳細にコードを追ってみました。
おっしゃるとおり、コンストラクタでパスを指定する場合、フォルダの存在チェックを行っているようでした。 存在するかどうか保証がないフォルダの削除を行う場合、deleteメソッドで明示的な指定が必要という事ですね。 今後の開発でも気をつけていきます。 情報提供ありがとうございました m( _ _ )m Twitter:@ryuring |