RIGHT:&size(12){Category:[[:Plugin]] [[:CategoryDev]]}; *プラグイン開発者向け [#v936221e] >プラグインを開発してみようと思う方へのページです。(まだ目次にしかなっていません^_^;) ----- #contents ----- **関連 [#gc343d2e] -[[PukiWiki/技術資料]] --[[PukiWiki/Plug-inの仕様]] --[[PukiWiki/CSSのclass一覧]] --[[PukiWiki/関数一覧表]] -[[PukiWiki/1.4/プラグイン開発を便利に]] -[[PukiWiki/1.4/Proxy]] -[[BugTrack/779]] : (PHPのコードの)クリンナップのまとめ **各種命名規則 [#n5c6aa2f] ***プラグイン名 [#a8535462] -[[PukiWiki/Plug-inの仕様]] ***プラグインファイル名 [#q14eace5] -[[PukiWiki/Plug-inの仕様]] ***関数名 [#zfd2c104] -[[PukiWiki/Plug-inの仕様]] ***定数名 [#lb1c6171] -[[BugTrack2/29#zd28eeb6]] ***関数名・グローバル変数名(案) [#k017d75b] プラグインは、PukiWiki 配下で稼動するため、本体に影響を及ぼさないために、 関数名およびグローバル変数名の命名には、注意が必要となる。 プラグイン内で利用するプライベート関数であっても、プラグインを開発する 際には、無用な混乱や、今後の本体開発・プラグイン開発の負荷を軽減する上でも、 これら命名には、プラグイン名をプレフィックスとして付加することを推奨する。 1つの PHP のシステムとしては、命名規則を明確に定めないと、これら名前においては、 コンフリクトし、稼動しないこととなる。 -非互換ついでに、PukiWiki/1.4でプラグインをクラス化してしまおうかと考えています。 class Plugin_xxx { var $... /* define()していた定数やその他の変数など */ function Plugin_xxx() { /* plugin_xxx_init() */ } function action() { /* plugin_xxx_action() */ } function convert() { /* plugin_xxx_convert() */ } function inline() { /* plugin_xxx_inline() */ } こうしておけば名前空間が独立するので、本体とのしがらみを多少軽減できるかな、と。 -- [[ぱんだ]] SIZE(10){2003-02-24 (月) 18:39:59} **リンク集 [#za754bcb] -[http://www.pat.hi-ho.ne.jp/dimension/tips/tips_phpxref.shtml PHPXref - クロスリファレンスドキュメントの自動生成] **&aname(changes);1.3から1.4で変更されている箇所 [#zc1e39f5] ***UTIME [#l5b11d6b] 1.3までは、UTIMEは、ローカルタイムを示していたが、1.4では、UTCとなっている。 UTIMEを利用しているプラグインは、注意して下さい。 -[[BugTrack/169]] -[[BugTrack2/76]] ***インラインプラグイン [#s0ec5068] -[[PukiWiki/1.4/InlinePlugin]] -[[PukiWiki/Plug-inの仕様]] *** Plugin開発者向け、主な内部関数 [#v4d76a2e] とりあえず、使ったときに調べたものから。 - get_source($page) -- ページの内容をソース状態で取得 - is_editable($page) -- ページが編集可能かどうか - is_page($page,$reload=FALSE) -- ページが存在するかどうか。$page がページ名かどうかのチェックはなさげ。 - is_pagename($str) -- 文字列がページ名かどうか - make_pagelink($page,$alias='',$anchor='',$refer='') -- ページへのリンクを作成 - strip_bracket($str) -- [[ と ]] で囲まれたページ名から、Bracket部分を取り除く - exist_plugin(plugin-name) -- pluginが存在すればrequire_once。require回数制限チェックあり。&br;自作プラグイン等から既存のプラグインをrequire_onceやinclude_onceしているものがちょくちょくあるが、代わりにこのexist_pluginを使うべきか。&br;(関連話題: [[BugTrack2/116]]) -詳細: [[PukiWiki/関数一覧表]] **補足情報 [#n0c3f832] -[[BugTrack2/213>BugTrack2/213#hb0abc89]] グローバル変数 $scriptは参照せず、get_script_uri() を使用することを推奨 -ファイル所有者の自動修正について --[[BugTrack2/55]]