2017-02-06 8 views
1

私はかなり新しいPHPで、論理的にクラスを分割する方法を理解しようとしています。ここには非常に基本的なセットアップがあります。PHPをクラス分割する

  1. index.php - トップページ。ログインボタンを押すと、外部認証サーバが呼び出されます。
  2. callback.php - 認証サーバがここでコールバックを送信します。私はユーザーのログイン名を保存します。
  3. game.php - 私はここで

をcallback.phpするPOSTリクエストは、私は他のオブジェクト指向言語から「正しい」実践で考えたものである可能ウェブゲームを持っている場所です。

  1. 私はデータをcallback.phpで受信し、別の場所(data.php)に保存したいと考えています。これを行う方法を理解できる唯一の方法は、callback.phpでセッションを使用し、data.phpでセッションを読み取ることです。これを行う良い方法はありますか?または、データをcallback.phpに保存しておく必要があります(また、data.phpの代わりにcallback.phpにPOSTリクエストを行います)。
  2. callback.phpが認証サーバからデータを取得した後、私はリダイレクトを使ってgame.phpに行きます。ユーザーがgame.phpにまっすぐ行ってログインしていない場合は、リダイレクトも使用します。より良い方法がありますか?

header("Location: http://www.mypage.com/game.php");

私は、任意のコードを投稿して幸せだが、私はそれが質問のこれらのタイプのために必要はありません推測しています。私に教えてくれてありがとう!

答えて

0

OOの目的は、相対モジュールを一緒にバンドルするときにコードをできるだけモジュールとして保持するようにプログラミングすることです。

例: ユーザオブジェクト - ユーザー ゲームオブジェクトへのすべてのコードの相対が含まれている - のゲームにすべてのコードの相対が含まれています

あなたが特定のオブジェクトに属していないコードを持っていることはまだ非常に可能性があり、しかし、特定の一連のアクションに対しては、しかし、OOプログラミングはこれらにも適用できます。

例: アクションページ:特定のグループタイプのアクションを扱うためのコードです(特定のフロントエンドページからのすべてのアクション/コールバックを処理するようなもの)。

言われているように、3つの異なるファイルに分かれているというあなたの最初の声明は問題ありません。

私は、index.phpがユーザが対話していると言われている前向きのものだと仮定しているので、それをバックエンドのプロセスやコントローラから分離することは良いことです。 require_once( "data.php")を使用してネットワーク経由でデータを送信する方が良いでしょう。この方法で、セッション変数を使用せずにそのインスタンスにデータを保存してアクセスできます。私はあなたが望むようにデータを処理することができます。希望の結果が得られたら、あなたのheader()リダイレクトを行うことができます。

+1

ありがとうございました!したがって、リダイレクトはページを切り替え、require_onceを使用してデータを別のクラスに格納する正しい方法です。 –