作成日:2018-08-10, 更新日:2018-08-10
基本のフォルダ構成
最初にフォルダ構成が決まっているならいいんだけど、後から後へとコンテンツを追加させなくちゃいけないコトがある
▼以下で、使う各フォルダたち
フォルダ名 | 内容 |
---|---|
/fuelphp | fuelphpのプログラム本体(appフォルダたち) |
/fuelhtml | 「http://example.com/fuelhtml」でアクセスしたときに表示するフォルダ |
/fuelhtml2 | 「http://example.com/fuelhtml2」でアクセスしたときに表示するフォルダ |
/index.html | 静的HTML |
/wp | wordpressのフォルダ |
/wp-admin | wordpressで使われているフォルダ |
/wp-content | wordpressで使われているフォルダ |
▼前提条件
・「/fuelphp」は共有(「/fuelhtml/index.php」も「/fuelhtml2/index.php」も「/fuelphp」を使うというルール)
・「/public_html」の中に「fuelphpのプログラム本体(appフォルダたち)」を置く(※サーバによっては外に置けないコトがあるため)
・「/fuelphp」は基本「/fuelhtml」の中に入れない
「既存サイト:FuelPHP」のみ
今回だけ「/public_html」の外にfuelphpの本体を置く場合の構成を書いておく。
▼「/public_html」の外にfuelphpの本体を置く場合
├/fuelphp │├/app │├/core │└ ~略~ ├/public_html │├/assets │├ ~略~ │└index.php
▼「public_html」の中にfuelphpの本体を置く場合
├/public_html │├/assets │├ ~略~ │├index.php │├/fuelphp ││├/app ││├/core ││└ ~略~
「既存サイト:FuelPHP」に「HTMLファイル」を追加
▼「/public_html」配下
├/assets ├ ~略~ ├index.php ├〇〇〇.html ├/fuelphp │├/app │├/core │└ ~略~
※「/fuelphp」の「.htaccess」のおかげで「/〇〇〇.html」を読み込んでくれる
「既存サイト:HTML」に「FuelPHP」を追加
▼「/public_html」配下 ├/index.html ├ ~略~ ├/fuelhtml │├/assets │└index.php ├/fuelphp │├/app ││├/core ││└ ~略~
「既存サイト:FuelPHP」に「FuelPHP」を追加
▼「/public_html」配下 ├/assets ├ ~略~ ├index.php ├/fuelphp │├/app │├/core │└ ~略~ ├/fuelhtml2 │├/assets │├ ~略~ │├index.php
「既存サイト:Wordpress」に「FuelPHP」を追加
▼「/public_html」配下 ├/wp-admin ├/wp-content ├ ~略~ ├/fuelhtml │├/assets │└index.php ├/fuelphp │├/app │├/core │└ ~略~
※wordpressの「.htaccess」のおかげで「/〇〇〇.html」を読み込んでくれる
「既存サイト:HTML+Wordpress」に「FuelPHP」を追加
├/index.html ├ ~略~ ├/wp │├/wp-admin │├/wp-content │└ ~略~ ├/fuelhtml │├/assets │└index.php ├/fuelphp │├/app │├/core │└ ~略~
「既存サイト:HTML+Wordpress」に「FuelPHP」を追加後、さらに「FuelPHP」を追加
├/index.html ├ ~略~ ├/wp │├/wp-admin │├/wp-content │└ ~略~ ├/fuelhtml │├/assets │└index.php ├/fuelhtml2 │├/assets │└index.php ├/fuelphp │├/app │├/core │└ ~略~
fuelPHPの設定
▼アクセスするFuelPHPのURL
・http://example.co.jp/fuelhtml
・http://example.co.jp/fuelhtml2
▼ベースになる構成:「/public_html」配下
├/index.html ├ ~略~ ├/fuelhtml │├/assets │└index.php ├/fuelhtml2 │├/assets │└index.php ├/fuelphp │├/app │├/core │└ ~略~
▼上述をベースにした場合、修正対象フォルダ
・/fuelhtml
・/fuelhtml2
・/fuelphp
色々とあるだろうけど、省略できる部分も記載するにようにしておく。
「fuelphp/app/classes/controller」内の下準備
「/fuelhtml」「/fuelhtml2」のそれぞれの「controller」を準備しておく
・「fuelphp/app/classes/controller/fuelhtml」
・「fuelphp/app/classes/controller/fuelhtml2」
※「fuelphp/app/classes/controller1」「fuelphp/app/classes/controller2」だと面倒なので「controller」内でそれぞれのフォルダを用意しておく。
「fuelphp/app/config/routes.php」を読み込ませる準備
▼「/fuelhtml/index.php」で「routes.php」に代わる別ファイルを指定
define('PATH_CONFIG_ROUTES', 'routes_1.php');
▼「/fuelhtml2/index.php」で「routes.php」に代わる別ファイルを指定
define('PATH_CONFIG_ROUTES', 'routes_2.php');
「fuelphp/app/config/routes.php」に割り振りの処理を記載
▼「fuelphp/app/config/routes.php」を複製して2ファイル用意
・fuelphp/app/config/routes_1.php
・fuelphp/app/config/routes_2.php
▼「fuelphp/app/config/routes.php」の内容を書換える
<?php if ( !defined('PATH_CONFIG_ROUTES') ) { $path = 'routes_1.php'; } else { $path = PATH_CONFIG_ROUTES; } return include APPPATH . 'config/' . $path;
※「/fuelhtml/index.php」と「/fuelhtml2/index.php」で設定した「PATH_CONFIG_ROUTES」を元に割り振る。
▼「fuelphp/app/config/routes_1.php」の内容
<?php return array( '_root_' => 'fuelhtml/top/index', // The default route '(:any)' => 'fuelhtml/$1', );
▼「fuelphp/app/config/routes_2.php」の内容
<?php return array( '_root_' => 'fuelhtml2/top/index', // The default route '(:any)' => 'fuelhtml2/$1', );
_root_や_404_、他は必要に応じて追加するなりする。
「'(:any)' => 'fuelhtml/$1'」「'(:any)' => 'fuelhtml2/$1'」について
・「http://example.co.jp/fuelhtml/〇〇〇」はすべて「controller/fuelhtml」内を読み込ませる
・「http://example.co.jp/fuelhtml2/〇〇〇」はすべて「controller/fuelhtml2」内を読み込ませる
という設定。
「http://example.co.jp/fuelhtml/fuelhtml2/XXXX」でアクセスしたとき
「'(:any)' => 'fuelhtml/$1'」の設定が・・・
・無い→「controller/fuelhtml2/XXXX.php」を読み込む。
・ある→「controller/fuelhtml/fuelhtml2/XXXX.php」内を読み込む→無ければ、失敗:404に飛ばされる
セッション
「/fuelhtml」でログイン→「/fuelhtml2」でもログイン状態が続く→これがOKなら、設定不要。
▼「fuelphp/app/config/session.php」を修正
if ( !defined('PATH_CONFIG_ROUTES') ) { $iniChar = ''; } else { $iniChar = str_replace('.php', '', PATH_CONFIG_ROUTES); } ~略~ 'cookie' => array( 'cookie_name' => $iniChar.'fuelcid', // name of the session cookie for cookie based sessions ~以下、同様(使うものだけ指定すればいいけど、考えるのが面倒なら全部指定)~ ~以下、略~
注意
\Uri::create()の内容
・「/fuelhtml」で「\Uri::create(〇〇〇)」→「http://example/fuelhtml/〇〇〇」
・「/fuelhtml2」で「\Uri::create(〇〇〇)」→「http://example/fuelhtml2/〇〇〇」
「/fuelhtml」で「/fuelhtml2」のURLが欲しい場合は別途考える。
▼絶対PATHにする
<a href="/fuelhtml2/〇〇〇">
▼ルートのURLを別途指定+PATH指定
$baseUrl = str_replace('/fuelhtml', '', \Uri::create()); $url = '<a href="' . $baseUrl . '/fuelhtml2/〇〇〇">'
関連項目
・FuelPHP 共通部分をパッケージ化して使い回す
・FuelPHPを一つのサイトで複数使いたい
・一つのサイトでFuelPHPを複数使う(簡略版)
・FuelPHPでサービス実装後に別サービス追加