index.phpから,自作のミニ掲示板やアクセスカウンターなどを呼び出す構成でサイトを構成しようとしていますが,
同じ名前の関数があって,エラーになってしまいます.
関数の名前を変更する以外に,普通はどういった方法で名前の衝突を回避しているのでしょうか?
PHP5.3には名前空間が実装されたみたいですけど,使っているサーバーはしばらく5.2のままのようです.
【現在の状態】
■index.phpの一部
include ('./minibbs/minibbs.php');
include ('./counter/counter.php');
■minibbs.phpの一部
function getData(){
//掲示板のデータを取得する処理
}
■counter.phpの一部
function getData(){
//アクセスカウンターの値を取得する処理
}
しかし,今私が求めている事は,少ない変更で済ます事ではなく美しいソースのあるべき姿です.
了解です。
それでしたら、クラスにメンバ関数としてカプセル化するのが定石です。private / public の使い分けを行うことで、衝突することはほとんどなくなるはずです。
接頭字をつけるのが一般的でしょうか。
bbs_getData()やcnt_getDataなどとしてみてはいかがでしょうか。
回答ありがとうございます.
しかし,関数の名前を変える以外の方法について知りたかったです.
クラスを使う,定義した関数を無かったことにする等...
とりあえず,現在は接尾辞をつけて動かしてます.
ご質問のようなケースでは、関数名を変えるしか手段はないでしょう。
includeの代わりに、file_get_contentsでいったん変数に読み込んで、置換関数で関数名を置き換え、evalを実行すれば、ソースを変えずに関数名を変えることはできますが、安全性の保証はしません。
回答ありがとうございます.
そのような方法があるのですね.
しかし,今私が求めている事は,少ない変更で済ます事ではなく
美しいソースのあるべき姿です.
言葉足らずですみません.
しかし,今私が求めている事は,少ない変更で済ます事ではなく美しいソースのあるべき姿です.
了解です。
それでしたら、クラスにメンバ関数としてカプセル化するのが定石です。private / public の使い分けを行うことで、衝突することはほとんどなくなるはずです。
ありがとうございます.
今,クラス化して書き直してます.
美しいソースは一日にしてならずですね
ありがとうございます.
今,クラス化して書き直してます.
美しいソースは一日にしてならずですね