FuelPHP 共通部分をパッケージ化して使い回す

作成日:2018-02-28, 更新日:2018-08-10

基本

▼パッケージ化の手順
・「fuelphp/packages」にフォルダ作成
・作成したフォルダ内に「bootstrap.php」を作成
・「fuelphp/app/bootstrap.php」を修正
・必要なファイルたちを追加していく

Mypkg」としたい場合。

「fuelphp/packages」にフォルダ作成

PATHは「fuelphp/packages/mypkg」となる。

作成したフォルダ内に「bootstrap.php」を作成

▼「fuelphp/packages/mypkg/bootstrap.php」を作成。

<?php
\Autoloader::add_core_namespace('Mypkg');

「fuelphp/app/bootstrap.php」を修正

▼「fuelphp/app/bootstrap.php」の修正内容

省略:「Autoloader::register();」の下あたり
\Autoloader::add_namespace('Mypkg', PKGPATH . "mypkg/classes/");
以下、略

※ドコに記述してもいいと思うけど・・・未調査

必要なファイルたちを追加していく

共通部分なんで、「model、config、lang」の3つを対象にしたいと思う。
※「vendor」も共通になりそうな気もする。

「model、config、lang」を対象とする場合
※フォルダ構成は適当でいいかもしれないけど、大本に合わしたほうが諸々とラクだと思うので、合わせる。

model

▼「fuelphp/packages/mypkg/classes/model/〇〇〇.php」

namespace Mypkg;

class 以下略

▼呼び出し元:コントローラー(「fuelphp/app/classes/controller/〇〇〇.php」)とか

略

$test = \Mypkg\Model\〇〇〇::〇〇〇();
// var_dump($test);
以下略

config

サンプルを書いている人がいたけど・・・ソースを見る限り動く気がしなかった。
ひとまず、試してみたけど・・・やっぱり動かなかった。

▼「fuelphp/packages/mypkg/config/〇〇〇.php」

未調査

lang

▼「fuelphp/packages/mypkg/lang」

未調査

関連項目

一つのサイトでFuelPHPを複数使う(簡略版) - 使い回す箇所が少ない場合はコッチのほうが良いと思う。
FuelPHPでサービス実装後に別サービス追加 - 使い回す箇所が多い場合はコッチのほうが良いと思う。
1サイトで複数のFuelPHPを使うときのメモ - ややこしくなってきたのでまとめてみた。