2013-09-23 8 views
5

私たちのWebサイトはカスタムphp mvcフレームワークの上に構築されており、各フロー(例:signups)をLaravelにゆっくりと変換したいと考えました。はlaravelとbackのセッション情報を共有します

本質的に、既存のコードとlaravelを使用する新しいコードが共存する必要があります。しかし、私たちは、laravelによって設定されたセッション情報は、他のmvcには利用できず、その逆もあります。

たとえば、カスタムmvcでは次のものが使用されます。

$_SESSION['AUTH']='TRUE'; 

Laravelはこのようなものを使用していますが、

Session::put('AUTH', 'TRUE'); 

私は$ _SESSION ['AUTH'] = 'TRUE'をlaravelクラスで設定しようとしました。しかし、コントロールが古いMVCに渡されたときにアクセスすることはできません。

私はその複雑さを知っています。コードベース全体をLaravelに変換して完了するまで待つべきです。しかし、私たちは最小のリソースを持つ小さな会社です。だから、Laravel Exclusivelyを使って機能の開発をやめ、時間をかけて書き直すという贅沢はありません。

私の質問はこれです。どんな仕組みであれ、どうすればこれを達成することができますか?

グローバル変数?

他の提案はありますか?

+0

こんにちは、あなたがこの問題を解決しましたか?私も同じ問題に悩まされています。私はあなたがどんなアプローチをしているか聞いてもらいたいです。前もって感謝します。 – gvsrepins

+0

以下に投稿してください。それが役に立てば幸い。 – tven

答えて

1

あなたは次のフォルダを持っている場合oldMvC/main.phpに私たちがした後、次の

require '../Laravel/bootstrap/autoload.php'; 
require_once '../Laravel/bootstrap/start.php'; 

を含ま

projectFolder/oldMVC

projectFolder/Laravel

stuctures Laravel以外のMVCからLaravelで設定されたセッションやその他の設定変数にアクセスできることを確認しました。

2

LaravelのAuth -Classをここで使用し、auth.loginイベントに耳を傾け、手作業でセッションフラグを設定することをお勧めします。

Event::listen('auth.login', function($user) 
{ 
    $_SESSION['AUTH']='TRUE'; 
}); 

これは最も簡単な方法で、Laravelに完全移行したときにイベントリスナーを削除するだけです。

私はこれがすばやく汚れていることは知っていますが、フルマイグレーション後には$_SESSIONを再度使用して認証を管理することは望ましくありません;)これはあなたの新しいものと古いものコードベース。例えば

+0

こんにちは@Jan P.どのようにcakePHP 2.5とLaravel 5.1を統合するためにあなたのコードを使用できますか?詳細を教えてください。またはステップ? suposing cakephpはlaravelに移行され、ユーザーはcakephpからログインしてlaravelアプリケーションにアクセスできます。 –

1

実際にはbootstrap/autoload.phpbootstrap/start.phpが必要な場合のみ、実際のLaravelセッションにアクセスすることはできません。もはやApplication::boot()と呼んでも。

私はLaravelのセッションを共有し、外部プロジェクトからの認証をチェックすることが可能となりギスト、作成しました:

https://gist.github.com/frzsombor/ddd0e11f93885060ef35

+0

どうしたら、この要点を使ってcakePHP 2.5アプリをLaravel 5.1に統合できますか?あなたのコードはどこに置かれますか? –

関連する問題