1

私は現在、CodeIgniterを使用して、編集可能な複数のテーブルキットテーブルを表示し、それらを編集したときに到着するAJAXを処理することを主な目的とする1つのサイトをサポートしています。PHPMyAdmin[VERY]Liteの一種。これには、サイトの主要な機能を実行する多数のコアヘルパーとコントローラーがあり、いくつかのサイト固有のコントローラーとヘルパーが混在しています。

別のサイトでコアコードベースを再利用できるように、サイトを再構築したいと思います。ただし、同じコントローラー内にいくつかのデフォルトのコントローラー関数といくつかのcutsom関数を使用したいと思います。つまり、どこかのシステムファイル内:

class My_core extends Controller{
    /*
      Lots of base functions
    */
}

そして1つのサイトで:

class site_1 extends My_Core{
    /*
       Site specific functions
    */
}

次に、他のサイトで:

class site_2 extends My_Core{
    /*
       Site specific functions
    */
}

誰かが私がこれを行う方法について何かガイダンスがありますか?

ありがとう、

レミアント

4

2 に答える 2

3

CodeIgniter 2.0を使用している場合は、パッケージを使用してこれのほとんどを実現できます。ヘルパー、ライブラリ、モデルをどこからでもロードできるため、各アプリケーションで、その共有フォルダーからロードするようにパッケージを構成するだけです。

コアライブラリ(MY_Controllerになります)に関しては、独自の__autoload()関数を実装する必要があります。

http://php.net/manual/en/language.oop5.autoload.php

config.phpの下部にオートローダーを配置できます。正しいフォルダ(最初にローカル、次に共有フォルダ構造)をチェックしている限り、すべてがうまく機能するはずです。

于 2010-11-16T11:04:34.157 に答える
1

これがまだあなたに役立つかどうかはわかりませんが、私がやったことはここにあります。

私は2つのウェブサイト、palada.comとosmium.comを持っていると言います。

私のファイルツリーは次のようになります

/var/www/system/ (the CI system folder)

/var/www/palladium/application
/var/www/palladium/public/index.php

/var/www/osmium/application
/var/www/osmium/public/index.php

これらのindex.phpファイル内には、/system/が格納される場所を定義する行があります。私はそれをに設定しました

$system_folder = "../../system";

/ var / www / system / libraries内に、MY_TestClassという名前のファイルがあります。

<?php

class MY_TestClass {
    public function MY_TestClass() {
        echo "this is a test of the emergency broadcast system";
    }
}

パラジウム.comとオスミウム.comの両方の中からどこからでも電話できます

$this->load->library('MY_TestClass');

「これは緊急放送システムのテストです」と表示されます。

于 2010-11-17T14:14:59.213 に答える