2017-02-09 5 views
16

私はすなわち2つのCodeIgniterアプリケーションの統合/移行。

www.CI_App_1.com

www.CI_App_2.com

、両者が別々のサーバー上で作業している、CodeIgniterの中で開発された二つのアプリケーションを持っています

今、CI_App_2CI_App_1に統合したい私はそれ以降、CI_App_1のリンクからCI_App_2default_controllerと呼ぶことができます。

マイフォルダ構造:

htdocs : 
    -application_1 
     -application 

      -application_2 
       -application 
        -config 
         -autoload.php 
         -config.php 
         -routes.php 
        -controllers 
         -app_2_controller.php 
        -helpers 
        -libraries 
        -models 
         -app_2_model.php 
        -views 
         -app_2_view.php 
       -system 
       -.htaccess 
       -index.php 

      -config 
       -autoload.php 
       -config.php 
       -routes.php 
      -controllers 
       -app_1_controller.php 
      -helpers 
      -libraries 
      -models 
       -app_1_model.php 
      -views 
       -app_1_view.php 
     -system 
     -.htaccess 
     -index.php 

は、私は、ユーザーがCI_App_1からlogedinされた後CI_App_2にアクセスしたいです。プロセスのユーザーを認証した後、ユーザーが認証なしでアクセスしようとすると、私のCI_App_2のみ、エラーメッセージが表示されましたことのアクセスです:

を禁じ

アクセス私は、以下のリンクを参照さ:

Call Controller method of CodeIgniter outside Application directory

CodeIgniter: Load controller within controller

How to load a controller from another controller in codeigniter?

Codeigniter : calling a method of one controller from other

http://www.techsirius.com/2013/01/load-controller-within-another.html

https://www.quora.com/Can-I-call-a-controller-function-that-resides-in-another-controller-in-CodeIgniter

http://www.devnetwork.net/viewtopic.php?f=72&t=131353

how to set up two codeigniter applications running on same server

https://www.codeigniter.com/user_guide/general/managing_apps.html

しかし、上記のリンクでは、HMVCモジュール構造を使用して実行する必要があると述べましたが、両方のコントローラファイルが同じアプリケーションまたは異なるものであるという記述はありません。私はdefault_controllerに2番目のアプリケーションから最初のアプリケーションにアクセスしたいと思います。

可能ですか?

何か助けていただければ幸いです。前もって感謝します。私の質問があることを願っています。

+1

私はあなたが言いたいの例を教えてください最高が同じレベル(ネストしていない)でAPP_1とapp_2を持ち、両方の – Vickel

+0

のための新しい認証方式を作成するために少しを再構築することだと思います。私はApp2のdefault_controllerをApp1のControllerフォルダに追加しようとしたためです。そしてそれらのルートを書き直す。しかし、それは動作しませんでした。 –

+0

サーバー間での認証が必要なように聞こえます。 [カスタムセッションハンドラについては、この回答を参照してください。](0120-18752)/ /セッションのハンドラについては、この回答を参照してください。 – ourmandave

答えて

2

これは、これらをマージするのではなく、その最高です。あなたはシフトする必要があります

app2/controllers => app1/controllers/app2 
app2/views => app1/views/app2 

このようにして、いくつかのルートを追加してapp1内のapp2にアクセスできます。

app1のapp2のコードをそのままシフトしないことをお勧めします。

いいえ。

+0

しかし、 App2のURLへの直接アクセス。 App1を使用して認証せずに。いくつかのルートを追加すると、そのルート/ URLに直接アクセスするためです。 –

+0

はい、あなたは正しいです。 しかし、ルートを使用すると、app1の認証または関連するバイヤーをバイパスすることができます –

+0

実際にその認証が必要です。私はそれらをバイパスしたくありません。他の賢明なサブドメインを作成することによってそれは動作します。しかし、App1の認証がなければ、ユーザーはApp2に直接アクセスできます。それは私の実際の問題と疑問です。 –

3

次の関数をapplication_1で設定すると、default_controllerが動作する可能性があります。

public function _remap($method) { 
    $userdata = $this->session->userdata('user'); 
    if (!empty($userdata)) { 
     modules::run('application_2/controller/default_controller'); 
    } 
} 
関連する問題