0

私は非常に大きな単一のクラスファイルを持っており、この大きすぎるクラスを分割して複数のファイルにコードを配布したいのですが、このクラスには同じオブジェクトのみ使用したいので、extend メソッドを使用しません ex:

ファイル a:

class name {

    public function admin_logout(){

    if(isset($_SESSION['wcddl_admin'])) {
        unset($_SESSION['wcddl_admin']);
            session_destroy();
            header("Location:index.php");
  }

}

ファイル b:

include("a.php");

 }

私はそのようなことを試みましたが、うまくいきませんでした

何か案が?

4

2 に答える 2

1

無効な構文でphpファイルを作成することはできません。ただし、メソッドごとにファイルを含めることができます。

class name {
    public function admin_logout(){
        include('methods/admin_logout.php');
    }
    public function mymethod(){
        include('methods/mymethod.php');
    }
}

または、マジックメソッド__callを使用してクラスを作成できます

class name {
    public function __call($name, $arguments){
        include('methods/'.$name.'.php');
    }
}

ただし、そのようなことを余儀なくされた場合は、プロジェクトのアプローチを変更する必要があります。

于 2012-04-05T21:12:33.603 に答える
1

PHP では、ファイル間でクラスをネイティブに分割することはできません。ファイルを動的に構築してからロードするなどの凝ったことを行うこともできると思いますが、それは面倒です。

プレミアム クラスに関しては、通常のユーザー用の基本クラスを作成し、それをプレミアム クラスに拡張することができます。しかし、多くの場合、1 つのクラスに多くのものを入れようとしている可能性があります。

別の質問を開始して、解決しようとしている問題について説明することをお勧めします。

于 2012-04-05T20:54:50.953 に答える