作成日:2018-02-28, 更新日:2018-08-10
基本
サイト自体をFuelPHPで構築しているならいいんだけど、構築されたサイトにFuelPHPを追加。
その後、別コンテンツでもFuelPHPを追加しなくちゃいけない・・・そんなとき。
2018/02/28時点
「model、utilなど一部だけどうにかしたい・・・」ってトコが微妙。
- ▼サイト構成
-
http://〇〇〇 http://〇〇〇/user ← FuelPHPで管理 http://〇〇〇/admin ← FuelPHPで管理
- ▼フォルダ構成
-
・/home ・/fuelphp ← ベースになるFuelPHP ・/fuelphp_admin ← 追加するFuelPHP ・/htdocs ・/user ← 「/home/fuelphp」を使うWebページ ・/admin ← 「/home/fuelphp_admin」を使うWebページ
- /home/fuelphp
- ベースになるFuelPHPで、特に何かする必要は無い。
- /home/fuelphp_admin
- 追加するFuelPHPでベースになるFuelPHPを複製してゴニョゴニョする。
・「/home/fuelphp/app」を複製して「/home/fuelphp_admin/app」
・「/home/fuelphp/.htaccess」を複製して「/home/fuelphp_admin/.htaccess」 - /home/htdocs/user
- ベースになるFuelPHPを使うWebページで、特に何かする必要は無い。
- /home/htdocs/admin
- 追加するWebページでベースになるWebページを複製してゴニョゴニョする。
・「/home/htdocs/user」を複製して「/home/htdocs/admin」
▼「/home/htdocs/admin/index.php」
略 $slfPath = '/../../fuelphp_admin'; $cmnPath = '/../../fuelphp'; // 使い回したいFuelPHPのpath。 // 使い回さない「app」のpath。 define('APPPATH', realpath(__DIR__.$slfPath.'/app/').DIRECTORY_SEPARATOR); // 使い回したい「app」のpath。 define('APPPATH_COMMON', realpath(__DIR__.$cmnPath.'/app/').DIRECTORY_SEPARATOR); // 使い回したい「packages、core」のpath。 define('PKGPATH', realpath(__DIR__.$cmnPath.'/packages/').DIRECTORY_SEPARATOR); define('COREPATH', realpath(__DIR__.$cmnPath.'/core/') .DIRECTORY_SEPARATOR); 略
「/fuelphp_admin」で「/fuelphp」内の「model/〇〇〇」を使う
同一のファイルを作り、インクルードして使う
・「/home/fuelphp/app/classes/model/hoge.php」を複製して「/home/fuelphp_admin/app/classes/model/hoge.php」
▼「/home/fuelphp_admin/app/classes/model/hoge.php」の中身
<?php // include_once (APPPATH_COMMON . '/classes/model/hoge.php'); // ←2018/03/01 コメント。ファイルごとにファイル名を指定するのが面倒だから。 include_once (str_replace(APPPATH, APPPATH_COMMON, __FILE__)); // ←コピペしやすいように置き換えをする
※「util/〇〇〇」等も同様な感じでOK。
「/home/fuelphp_admin/app/bootstap.php」でクラスを追加したほうがラク。
でも、メンテ時に「ファイルが無い!」とプチパニックになりそうだから面倒だけどインクルードする方が良さげ。
/config内のファイルの使い回し
出来ないかも。
includeしてざっくりと試したらダメだった。他の影響があったかもしれない。
注意
下記の場合。
・「/user」でFuelPHPを作る
・「/admin」でFuelPHPを作り、「/user」を「include」させる
\uri::create()
ビューファイルを使い回すときは注意が必要。
※ビューに限らず「\uri::create()」を使うとき。
▼「\uri::create('hoge')」で作られるURLが違うかもしれない。
FuelPHP | 「echo \uri::create('hoge');」の結果 |
---|---|
/user | http://〇〇〇/user/hoge |
/admin | http://〇〇〇/admin/hoge |
セッション
「config/session.php」内で「'path' => APPPATH . '/tmp'」等の記述を合わせる必要あり。
※authなどセッションが絡まないなら気にしなくていい。
▼「path」を合わせない場合:「/user」でログイン。
FuelPHP | 「var_dump(\Auth::check());」の結果 |
---|---|
/user | true |
/admin | false |
関連項目
・FuelPHPを一つのサイトで複数使いたい
・FuelPHPでサービス実装後に別サービス追加 - 使い回す箇所が多い場合はコッチのほうが良いと思う。
・1サイトで複数のFuelPHPを使うときのメモ - ややこしくなってきたのでまとめてみた。