*requireのパスチェックを修正してほしい(pukiwiki.phpと他のファイルの分離) [#vfcd916b] - 元タイトル: requireのパスチェックを修正してほしい。(LANG.lngファイル) -ページ: BugTrack -投稿者: [[しげ♪>official:しげ♪]] -優先順位: 低 -状態: 完了 -カテゴリー: 本体新機能 -投稿日: 2002-09-11 (水) 00:02:18 -バージョン: 1.4 - 関連: [[BugTrack/509]] **メッセージ [#nbc48be1] ディレクトリ構成を変えたとき、requireのチェックがカレントディレクトリだけなのは制限がきつい。 [[しげ:メモ/PukiWikiコンフィギュレーション>http://shige.oops.jp/?%5B%5B%A5%E1%A5%E2%2FPukiWiki%A5%B3%A5%F3%A5%D5%A5%A3%A5%AE%A5%E5%A5%EC%A1%BC%A5%B7%A5%E7%A5%F3%5D%5D]]に書いてるんですが、標準の構成じゃないとき、requireのチェックがカレントディレクトリだけでなくrequireしているファイルのカレントディレクトリもチェックしてほしいです。 というか、requireの前でチェックするより、requireの解釈にまかせてエラーハンドラで処理した方がスマートかもしれません。 ------------------------ -ご要望のものとは少々異なるかもしれませんが、pukiwiki.php を標準とは異なるディレクトリに設置可能にしてみました。 -- [[三浦克介]] &new{2003-06-29 (日) 18:37:00}; pukiwiki.php の最初に define('PUKIWIKI_DIR', './'); というのを追加し、require で他のソースを読み込んだり、スキンや画像ファイル等を読んだりしている所に、片っ端から PUKIWIKI_DIR を付けました。例えば、pukiwiki.php のみをサーバーのトップディレクトリ / に置き、他のファイルは /pukiwiki/ の下に置きたい場合、 define('PUKIWIKI_DIR', './pukiwiki/'); とすれば大丈夫なはずです。 スキンやプラグインなど、変更点は多岐にわたります。まだ、忘れているところがあるかもしれません。適用は慎重に。自作のプラグイン等があり、ファイルを参照している場合は、その変更も忘れずに。 #ref(BugTrack-147a.diff) ------------------------ -[[BugTrack/509]] にて、func.php などに SUB_DIR というdefineを割り当てることができました。後は DATA_DIR, DIFF_DIR, *.lng など、一本のPukiWikiに必要なデータ一揃いのためのdefine (上で言う PUKIWIKI_DIRですが、ユーザーが管理するPukiWikiが一本限定である必要はないので、もう少し抽象的な表現を探しています) を用意し、SKIN_DIR に外部から参照されるべきファイルとそうでないファイルが混在している問題をどうにかすれば、解決すると思います。 -- [[henoheno]] &new{2004-06-27 (日) 12:44:48}; // Webサーバーの外部には必要最小限のファイルのみ露出する htdocs/index.html <= 案内でも何でも htdocs/foo.php <= PukiWikiの入り口 htdocs/bar.php <= 別のPukiWikiへの入り口 htdocs/images/ <= 共有データ htdocs/skin/ (*.css, *.js) <= 共有データ htdocs/hoge/index.php <= さらに別のPukiWikiへの入り口 htdocs/hoge/images/ <= 専用のデータ htdocs/hoge/skin/ (*.css, *.js) <= 専用のデータ // SUB_DIR: 複数のWikiで同じライブラリを共有(してもよい) pukiwiki/*.php (func, make_link, ...) pukiwiki/skin/*.skin.*.php // SUB_DIR: PukiWikiのグループごとに別のライブラリを共有(してもよい) pukiwiki_test/*.php (func, make_link, ...) pukiwiki_test/skin/*.skin.*.php // DATA_HOME for foo.php data/foo/*.ini.php data/foo/*.lng data/foo/wiki/ data/foo/diff/ data/foo/backup/ data/foo/cache/ data/foo/trackback/ data/foo/plugin/ // DATA_HOME for bar.php data/bar/(略) // DATA_HOME for hoge.php data/hoge/(略) -このような配置が将来的に可能であればと思っています。現状の実装をベースにしているため、ご提案のものと多少異なるのはご了承ください。 -- [[henoheno]] &new{2004-06-27 (日) 12:50:19}; -(SKIN_DIRはもう少し大変かもしれないなぁ・・・) -- [[henoheno]] &new{2004-06-27 (日) 13:04:58}; -[[PukiWiki/WikiFarm]] って議論があります。最近、議論が止まってますけど。&ref(BugTrack-147a.diff); は、かなり以前のバージョンをベースにしていますので、現在では、たぶん、使い物にならないでしょう。オブジェクティブな PukiWiki/WikiFarm ができたら、汎用的で良いのかなーと思ってます。つまり、DATA, SKIN, PLUGINなど任意の項目を継承 or オーバーライドして、新たなWikiを作れるという感じ。って、作る暇がぁ・・・。 -- [[三浦克介]] &new{2004-06-27 (日) 13:05:10}; -DATAHOME_DIR、略してDATA_HOMEというのは良さそうですね。 -- [[henoheno]] &new{2004-06-27 (日) 13:23:40}; -ちょっとたたき台になりそうな物を作って、[[PukiWiki/WikiFarm]]に載せてみました。 -- [[三浦克介]] &new{2004-07-04 (日) 15:41:29}; -1.4にDATA_HOMEの定義を実装しました。 ([[開発日記/2004-07-05]]) -- [[henoheno]] &new{2004-07-05 (月) 20:30:38}; #comment //#comment