ラボ > PHPFuelPHP:OIL

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\〇〇〇::〇〇〇();