PHP FuelPHPの外からModelなどを使う(oilの複製)
既存サイトにFuelPHPを追加してから、既存サイトからFuelPHPで用意した何かを使いたいとき。
作成日:2018-11-22, 更新日:2019-11-25
基本
1.OILをコピペして修正
2.呼び出したい元ファイルからコピペしたOILをinclude
3.「\Model\〇〇〇::〇〇〇()」が使えるようになる
構成例
FuelPHPのバージョンや運用方針によってファイルの構成が異なる場合もある
▼経緯と希望
・「//example.com」で運用中に「//example.com/fuel_contents/」を追加することになった
・「//example.com/test.php」から「\Model\〇〇〇::〇〇〇()」などを使いたい。
▼内容
・OILをコピペして修正→「oil.php」を作る
・呼び出したい元ファイルからコピペしたOILをinclude→「test.php」で「oil.php」をincludeする
▼初期の構成
public_html
├ index.html
├ fuel_contents/
│├ index.php
│├ fuel/
││├ oil
││├ app/
│││├ classes/
││││├ controller/
││││└ model/ ←この中のヤツらを使いたい
│~ 省略 ~
▼最終構成
public_html
├ index.html
├ fuel_contents/
│├ index.php
│├ fuel/
││├ oil
││├ app/
│││├ classes/
││││├ controller/
││││└ model/
├ oil.php
├ test.php
│~ 省略 ~
oil.php:OILをコピペして修正
・「public_html/fuel_contents/oil」をコピペ・リネームして「public_html/oil.php」に用意する
・「public_html/oil.php」の「APPPATH、PKGPATH、COREPATH」を修正(※DOCROOTは・・・使わないなら放置で大丈夫)
・「public_html/oil.php」のoilの読込みをコメント
▼修正1
// define('APPPATH', realpath(__DIR__.'/app/').DIRECTORY_SEPARATOR); define('APPPATH', realpath(__DIR__.'/fuel_contents/fuel/app/').DIRECTORY_SEPARATOR)
※他同様。
▼修正2(oilの読込みをコメント)
// \Package::load('oil'); // \Oil\Command::init($_SERVER['argv']);
test.php:呼び出したい元ファイルからコピペしたOILをinclude
▼public_html/test.php
<?php require_once dirname(__FILE__) . "/oil.php"; \Model\〇〇〇::〇〇〇();