私はPHPでかなりの量の経験をしています(いくつかのWebサイトと2つのブラウザゲームで約5年の経験があります)。 Joomlaのようなプラグインやモジュールを開発するのではなく、コアエンジンを使いこなすのは初めてです。私は他のオブジェクト指向言語(Javaなど)で豊富な経験を持っています。Codeigniterゲームを開発する
私の質問は、自分自身が通常のサイトのようにサイトを開発していることですが、私はそれよりも柔軟性がありたいと思っています。ある意味では、CMSの半分を構築しているような気がします。
たとえば、現在表示されているビューを制御するコントローラを介してメインページが設定されています。ビューファイル自体に
<?php $this->load->view("headerview"); ?>
<?php $this->load->view($contentview); ?>
<?php $this->load->view("footerview"); ?>
(私は動的に他の人が本当に変わらない、contentviewをロードすることができます):メインビューページには、次のようになります。これは私の主な制御ファイルを通してすべての制御を行うので、これは私の最初の質問です、これは正しいですか?
私のインデックス関数は、 "contentview"と "gameview"の変数をロードするビューとしてメインビューを設定します。 「contentview」がゲームの場合、スプリットペインが表示され、1つは選手の統計情報を表示し、もう1つはプレイヤーが現在行っているページ(商店、戦闘、世界の探索など)を示します。何がここに表示されているかを決めるのは、 "gamecontent"変数です( "メイン"コントローラにも渡されます)。要するに、現在、すべてのビュー処理は、主コントローラ、すなわち1つの単一コントローラ内で行われている。
$data['title'] = "Experimental Page";
$data['maincontent'] = "gameview";
if($page == 1) {
$data['gamecontent'] = "townview";
} else if ($page == 2) {
$data['gamecontent'] = "merchantview";
} else if ($page == 3) {
$data['gamecontent'] = "explorationview";
} else if ($page == 4) {
$data['gamecontent'] = "hospitalview";
} else if ($page == 5) {
$data['gamecontent'] = "fightview";
} else if ($page == 6) {
$data['gamecontent'] = "adminview";
}
$this->load->helper(array('form','url'));
$this->load->library('form_validation');
$this->load->view('mainview', $data);
私はまだ戦闘と買い物機能を追加し始めていませんが、このコントローラーが非常に大きく、非常に高速になっているのがわかります。これは私には間違っているようですが、何とかコア・セットアップを正しく配置する方法を定式化することはできません。
私の目標は、癒し、戦い、探索などのように、それぞれが別々のゲーム機能を扱うように(うまくいけば)コントローラーを分割し、私のモデルが(ユーザー、等。)。
誰でもこのプロジェクトを適切に配置する方法を理解できますか?
多少関係はありませんが、すべての条件をルックアップテーブル、つまり '$ table = array(" townview "、" merchantview "、" explorationview "、...)に置き換えることができます。 $ data ['gamecontent'] = $ table [$ page-1];またはそれらの行に沿ったもの。ゲームコンテンツを独自の「設定ファイル」に分けることもできますし、PHPで解析してキャッシュすることもできますが、保守するデータがあまりない場合は、余計かもしれません。 –
これはかなりのデータ量ですが、私はいくつかの方法でページを保存することができたことを認識していますが、これは実際に何かをするだけです:) – Organiccat
コードイグナイター(ポーカー、それ以下)でゲームを開発しました自分が見つけたのと同じ道。振り返ってみると、symfonyはこれに対してはるかに優れたアーキテクチャを提供します。 – Dolph