FuelPHPからpChart(バージョン2)を使う


2013/02/14追記:この記事についてはpChartバージョン2についてのものであり、pChartバージョン1のものではありません。

pChartバージョン2はGPLv3と商用利用ライセンスのダブルライセンスです。
http://www.pchart.net/license
pChartバージョン1はGPLの表記がありますが、GPLv1〜3のどれに属するかははっきりしません。
http://pchart.sourceforge.net/ (Licensingの項を参照)


2013/02/14追記:pChartはGDライブラリを使用します。先にGDライブラリを有効化しておいてください。

とりあえずまずはここを参照。
https://github.com/digitales/FuelPHP-pChart

構成としては

fuel
├app
├core
└package
 ├(省略)
 └pchart
  ├pChart2.1.3
  │└(省略)
  └bootstrap.php
ということになります。

※但し実際にはbootstrap.php

Autoloader::add_core_namespace('Pchart');
の行は動作に影響を与えない(pChartが名前空間を持たないため)ので削除して構いません。


pChartをpackageとして追加したので、app/config/config.phpに以下を記述してパッケージを有効化。

<?php
(省略)
return array(
(省略)
	'always_load'  => array(
(省略)
		'packages'  => array(
(省略)
			'pchart',
		),
	),
(省略)
);

あとは以下のようにして利用する。

fuel/app/classes/controller/welcome.php

<?php
(省略)
	public function action_pchart()
	{
		// fuel/package/pchart/pChart2.1.3/examples/example.basic.php をFuelPHP対応に書き換え

		$myData = new pData();
		$myData->addPoints(array(1, 4, 3, 2, 3, 3, 2, 1, 0, 7, 4, 3, 2, 3, 3, 5, 1, 0, 7));

		$myPicture = new pImage(700, 230, $myData);
		$myPicture->setFontProperties(array("FontName" => PKGPATH."pchart/pChart2.1.3/fonts/Forgotte.ttf", "FontSize" => 11));

		$myPicture->setGraphArea(60, 40, 670, 190);
		$myPicture->drawScale();
		$myPicture->drawSplineChart();

		$myPicture->autoOutput();

		return Response::forge();
	}
(省略)

fuel/app/views/welcome/index.php

(省略)
<?php echo Html::img('welcome/pchart'); ?>
(省略)

welcome/indexを開くと、こんな感じになります。


注意点:
pChartバージョン2がGPLv3のため、FuelPHPに組み込むと成果物がGPLv3に化けます。
ASPとしてサービス供用する限りは配布にあたらないので問題はないですが、納品物とする場合は注意が必要。
(発注元が「配布しない」ならば問題はなく、配りたがるかどうか次第)
納品物の配布制限が必要なら、pChartバージョン2の別ライセンス購入が必要と思われます。

2012/02/13追記:ASPでサービス利用料金を徴収している場合は、pChartバージョン2の商用利用のライセンスが必要になると考えられます。