3

about、productsなどのコントローラーを使用してサイトを作成しました。example.com/about/などが表示されます。

example.com/admin/aboutやexample.com/admin/productsのように、同じコントローラー名で管理セクションを作成するにはどうすればよいですか?

コントローラを整理するにはどうすればよいですか?

4

2 に答える 2

5

WebweaverDの回答を補完する2つのオプション。

  1. モジュール式分離を使用する
  2. 管理を担当する2番目のアプリケーションフォルダとインデックスファイルを作成し、それらを同じシステムフォルダに接続します。

2番目のオプションは、一度設定すると管理が非常に簡単です。バリエーションはありますが、以下の構造が一番便利だと思います。

mykewlwebsite.com
  apps/
    frontend/
      app/            frontend codeigniter application folder
      public/
        index.php
        assets/       frontend js, css, images
    backend
      app/            backend codeigniter application folder
      public/
        index.php
        assets/       backend js, css, images
  config/
    database.php
    constants.php
  system/             codeigniter system folder

database.phpファイルにはCodeIgniterのコードが含まれており、プロジェクトのすべてのアプリケーションで共有されます。config/database.phpすべてのコードを削除require_once('../../../../config/database.php');して、config/database.php

パブリックフォルダ内のindex.phpファイルには2つの重要な変数が$system_pathあり$application_folder、それらを次のように変更します。

$system_path = '../../../system/codeigniter';
$application_folder = '../app';

constants.phpENVIRONMENTファイルには、ファイルの定数index.phpやその他の定数のような定数を含めることができます。ファイルrequire_once()からそれだけ。index.php

長所と短所がありますが。

長所

ローカルホストで開発し、FTPまたは他のシステムを介してサーバーにデプロイしている場合は、1つのフォルダーをアップロードするだけで、設定appsを上書きすることを恐れずにターゲットフォルダーを上書きできdatabase.phpます(ほとんどの場合、ローカルのものとは異なるものになっていると思います) )。

アプリケーションをもう1つ追加するのは簡単です。既存のアプリケーションを複製するだけです。api、ajax、ユーザーキャビネットなど、必要な数のアプリケーションを追加できます。

短所

mykewlwebsite.comこの構造は、ドメインがあり、それにサブドメインを追加する機能がある場合に使用することを目的としているため、各ドメインのホームフォルダーを構成するだけです。

mykewlwebsite.com:path / to / mykewlwebsite.com / apps / frontend / public /

admin.mykewlwebsite.com:path / to / mykewlwebsite.com / apps / backend / public /

api.mykewlwebsite.com:path / to / mykewlwebsite.com / apps / api / public /

于 2012-08-27T17:56:08.570 に答える
4

ここにはいくつかのオプションがあります。

1)サブフォルダーの作成-コントローラーディレクトリ(application / contollers / admin / products.php内)内のadminというフォルダーにサブフォルダーを配置します。

ここでの警告は、1つのフォルダーしか深くできないか、codeigniterが動揺することです。また、最初に第1レベルのコントローラー/メソッドを使用するため、名前の競合に注意してください。たとえば、productsメソッドを含む管理コントローラーがある場合は、管理ディレクトリで製品コントローラーを探す前に呼び出されます。(example.com/admin/productsにアクセスする場合)

2)ルートファイルを使用する-心配しているURLだけの場合は、必要なコントローラーを呼び出し、application / config/routesを使用してこれらのパスを目的のコントローラーにリダイレクトできます。

コントローラー名:admin_products.php

ルートファイル:

$route['admin/products'] = "admin_products";

3)すべてのマスターコントローラーを使用する-最後のオプションは、単一の管理コントローラーを持ち、その中に名前付きメソッドを使用することです。たとえば、製品メソッドを含むadmin.phpコントローラーがある場合、これはadmin/productsによって呼び出されます。 uri(これはおそらく大きなアプリケーション/サイトでは厄介になるでしょう-お勧めしません)

私があなたのためにこれをOKに説明したことを願っています、あなたが何か説明が必要な場合は尋ねてください、そして私は詳しく説明しようとします。

于 2012-08-27T17:50:52.067 に答える