about、productsなどのコントローラーを使用してサイトを作成しました。example.com/about/などが表示されます。
example.com/admin/aboutやexample.com/admin/productsのように、同じコントローラー名で管理セクションを作成するにはどうすればよいですか?
コントローラを整理するにはどうすればよいですか?
about、productsなどのコントローラーを使用してサイトを作成しました。example.com/about/などが表示されます。
example.com/admin/aboutやexample.com/admin/productsのように、同じコントローラー名で管理セクションを作成するにはどうすればよいですか?
コントローラを整理するにはどうすればよいですか?
WebweaverDの回答を補完する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 /
ここにはいくつかのオプションがあります。
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に説明したことを願っています、あなたが何か説明が必要な場合は尋ねてください、そして私は詳しく説明しようとします。