カテゴリー ‘ CodeIgniter

有力なPHPフレームワークのGoogle Insights結果 (FuelPHP,Laravel,CodeIgniter,Symfony,CakePHP)


たくさんあるPHPフレームワークの注目度ってどうなんだろうと思って「Google Insights for Search」を使用して調べてみました。

対象としたフレームワークは、

です。

フィルタ:ウェブ検索、全ての国、2012年

意外だったのが「CodeIgniter」の検索数がトップだったことです。

5年位前に「CodeIgniter 1.6」を使い出した頃には、日本では猫も杓子も「CakePHP」だったように思います。

ということで、

フィルタ:ウェブ検索、全ての国、2004年〜2012年9月

やっぱりSymphonyCakePHPが5年前には大人気CodeIgniterも人気が出てきた所ですね。

FuelPHPLavarelは最近人気が出てきているフレームワークですが3大フレームワークが邪魔をしてよく分かりません。

今年の検索量に戻して、それぞれ何処の地域で検索されているのか見てみると

FuelPHP

アメリカと日本です。

日本の検索ボリュームが実は一番あるようです。これは、意外です。

Laravel

もうアメリカでしか検索されていない…。

実は、私は最近FuelPHPよりLaravelの方を利用しています。

で、最初のグラフ良く見てください。

実はこの1ヶ月くらいはFuelPHPの検索量をLaravelが抜いています。

CodeIgniter

東南アジアで人気なんですね。なんでだろ???

Symfony

東ヨーロッパで人気なのかな。

CakePHP

おっインドすげぇ、やっぱり日本でも安定の検索量w

ちょっと思考を変えて「FuelPHP」と「Laravel」を比較してみます。

FuelPHPとLaravelの比較

先ほども言ったのですが、注目度でLaravelFuelPHPを抜いています。

Laravel大注目です!!

検索量がアメリカ日本でしか無いので、2つの国それぞれどんな検索量なのか見てみます。

アメリカ

日本

おお、残念w日本ではLaravelというフレームワークは全く人気なし。

FuelPHPが凄い人気だ。

でも、アメリカではFuelPHPに変わって、人気が出てきているLaravel

日本でも何かで火がつくと一気に追い抜く人気のポテンシャルは持っていると思います。

Laravel 大注目です。

最後に日本で他のフレームワークも含めた検索量を見てみます。

日本のフレームワーク検索量

日本では、CakePHPが大人気です。

ついでSymfonyCodeIgniterFuelPHP

Laravelは全く人気なし。

これを見るとFuelPHPは短期間でどれだけ注目されているのかがよく分かる結果になっており凄いです!

でもやっぱり、Laravelが大注目ですよ!!

検索量からの結果なので一概には言えないですが、これが「Goolge Insights for Search」から見たフレームワークの人気度です。

気になる事柄があったら検索してみても面白いと思います。

CodeIgniterを参考に作った本当に簡易なフレームワーク


 

簡易PHPフレームワークの公開です。

CodeIgniterの設定をするのも大げさすぎるサイトを作ってたりするので

その時に使用している自作フレームワークを公開します。

大元は「CodeIgniter」でも本当に必要な機能を参考に作成しているものです。

とりあえず機能としては、

MVCの分離
DB接続(PDO)

くらいかも、

セキュリティも何も考慮にいれていないので

そのあたりは必要に応じて機能拡張で対応しています。

学習コストは、すこぶる低いです。

とりあえず「sample.php」を動作させた画面です。

こんな感じ、これを動作させる為のソースは

1.config.phpの修正

まず、config/config.phpを自分の環境に合わせて修正

<?php
// config設定
$config['db_name'] = 'dbname';
$config['db_host'] = 'localhost';
$config['db_user'] = 'dbuser';
$config['db_password'] = 'dbpassowrd';
$config['db_dns'] = "mysql:host={$config['db_host']}; dbname={$config['db_name']}";
$config['libDir'] = './libs/';
$config['viewDir'] = './views/';

core/gen.phpの9行目にあるconfig.php読み込み先の設定修正する

<?php
/**
 * 共通処理
 * 全てこのソースを一度requireしてから処理する
 */
ob_start();

// 読み込むconfigの設定を環境によって修正してください。
$config['configDir'] = './config/';

2.controllerの作成

とりあえず「core/gen.php」をrequireしてから全ては始まります。

<?php
require_once('core/gen.php');
// 表示データを格納
$data = array();

// 処理
$data['title'] = 'これはサンプルです';
$data['q1'] = $gen->http->getParam('q1', 'q1はありませんでした');

// ライブラリを読み込み
$gen->load('sample');
$data['sample'] = $gen->sample->get_sample();

// 表示するHTMLの呼び出し
$gen->view->load('sample', $data);

3.viewの作成

普通のphpです、$dataという変数に値が格納されて渡ってきます。

これは$gen->view->loadの呼び出し時の第2引数がそのまま渡されます。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<div>title:<?php echo $data['title'] ?></div>
<div>q1($_GET['q1']):<?php echo $data['q1'] ?></div>
<pre>sample:<?php var_dump($data['sample']); ?></pre>
<div>now:<?php echo nowstr(); ?></div>

<div><a href="./sample.php?q1=aaa">q1テスト(aaa)</a></div>
<div><a href="./sample.php">q1テスト(値なし)</a></div>
</body>
</html>

機能拡張

1.libsの作成

contollerでの「$gen->load(‘sample’)」のようにすることで、

$config[‘libDir’]に作成した同一名称のPHPをrequireして「ucfirst」の規約に則ったクラス名のクラスを自動生成します。

<?php

class Sample {
	var $gen;
	function __construct() {
		$this->gen =& get_instance();
	}

	function get_sample() {
		$sql = 'SELECT * FROM sample';
		$stmt = $this->gen->pdo->prepare($sql);
		$stmt->execute();
		$ret = $stmt->fetchAll(PDO::FETCH_ASSOC);
		return $ret;
	}

}

2.helperの作成

$config[‘libDir’]に作成した、helper.phpの中に記述されている関数はviewのどの場所からでも呼び出しが可能です。

views/sample.phpの9行目で使用例を記述しています。

<?php
function nowstr() {
	$str_time = date('Y-m-d H:i:s');
	return $str_time;
}
function isIphone() {
	$gen =& get_instance();
	return $gen->http->isIphone();
}

 

以上がフレームワークの機能です。

ソースコードはgithubで公開しています。

githubのリポジトリはこちらになります。

機能は本当にないので勝手に拡張して使って下さい。

ライセンスなどマズイ場合は連絡もらえたらと思います。

return top