CodeIgniter(こーどいぐにたー) †
CodeIgniter3.0.3から †
base_urlを未設定の場合、IPアドレスに設定される。
system/core/Config.php(3.0.2)
if (isset($_SERVER['HTTP_HOST']) && preg_match('/^((\[[0-9a-f:]+\])|(\d{1,3}(\.\d{1,3}){3})|[a-z0-9\-\.]+)(:\d+)?$/i', $_SERVER['HTTP_HOST'])) { $base_url = (is_https() ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'] .substr($_SERVER['SCRIPT_NAME'], 0, strpos($_SERVER['SCRIPT_NAME'], basename($_SERVER['SCRIPT_FILENAME']))); }
↓ system/core/Config.php(3.0.3)
if (isset($_SERVER['SERVER_ADDR'])) { $base_url = (is_https() ? 'https' : 'http').'://'.$_SERVER['SERVER_ADDR'] .substr($_SERVER['SCRIPT_NAME'], 0, strpos($_SERVER['SCRIPT_NAME'], basename($_SERVER['SCRIPT_FILENAME']))); }
CodeIgniter3.x †
- CodeIgniter 3のユーザーガイド(User Guide)まとめ
- Codeigniter ユーザガイド 日本語翻訳について
- CodeIgniter3 ユーザーガイド
- CodeIgniter3 User Guide
Codeigniter2.x⇒Codeigniter3.x †
Composerでインストール †
composer create-project kenjis/codeigniter-composer-installer codeigniter
- CodeIgniter 3.0をコマンド一発でインストールするCodeIgniter Composer Installer
- [初心者向け] Codeigniter3をComposerを使ってインストールして動かすまで
言語ファイルのインストール
php bin/install.php translations develop
SESSIONを使う †
Codeigniter2.xと違い、クッキーではなくdatabaseを使う
$config['sess_driver'] = 'database'; $config['sess_table_name'] = 'ci_sessions';
DBのセッションテーブル
CREATE TABLE IF NOT EXISTS `ci_sessions` ( `id` varchar(40) NOT NULL, `ip_address` varchar(45) NOT NULL, `timestamp` int(10) unsigned DEFAULT 0 NOT NULL, `data` blob NOT NULL, PRIMARY KEY (id), KEY `ci_sessions_timestamp` (`timestamp`) );
Database Driver|Session Library:
使い方 †
登録
$_SESSION['hoge'] = 'piyo';
読み込み
echo $_SESSION['hoge'];
Codeigniter3 で PHPExcelを使う †
罠(わな) †
codeigniter2.xと同じ感覚でコントローラー名に「Index」とかつけると30分くらいはまる。
DB †
MySQL関数対応表 †
MySQL | CodeIgniter |
---|---|
mysql_num_rows($result) | $query->num_rows() |
1行目のみ返す †
$query = $this->db->get(); $ret = $query->row_array();
複数のレコードを返すプロシージャを使う方法 †
$this->load->library('mydb'); $arr = $this->mydb->GetMultiResults("CALL GetReferrals()");
Mydb.php
class Mydb { private $CI, $Data, $mysqli, $ResultSet; /** * The constructor */ function __construct() { $this->CI =& get_instance(); $this->Data = ''; $this->ResultSet = array(); $this->mysqli = $this->CI->db->conn_id; } public function GetMultiResults($SqlCommand) { /* execute multi query */ if (mysqli_multi_query($this->mysqli, $SqlCommand)) { $i=0; do { if ($result = $this->mysqli->store_result()) { while ($row = $result->fetch_assoc()) { $this->Data[$i][] = $row; } mysqli_free_result($result); } $i++; } while ($this->mysqli->next_result()); } return $this->Data; } }
CodeIgniter2.x †
CodeIgniter3.0が最新版です。(2015年6月16日現在) †
この記事では主に Ver.2.2 系を扱っていきます。
Ver.2.2 系はCodeIgniter2.2.2が最新版です(2015年6月16日現在)
CodeIgniterの互換性 †
- CodeIgniter3.0 はPHP 5.2.4以上で使用できます。
- CodeIgniter2.2 はPHP 5.1.6以上で使用できます。
CodeIgniter のバージョンの調べ方 †
CodeIgniter のバージョンの調べ方(A Day in Serenity @ kenjis)
この定数は、CodeIgniter 2.0 以降は、 system/core/CodeIgniter.php で、CodeIgniter 1.7.3 以前は、 system/codeigniter/CodeIgniter.php で定義されています。
Codeigniter2.x系でMySQLのストアドプロシージャの呼び出しでエラーが出るのを回避する †
エラー
mysqli_num_rows() expects parameter 1 to be resource, boolean given
参考URL:Trying to 'call' stored procedures with CodeIgniter
Googleトレンドで各PHPフレームワーク人気調査 †
2013年頃から、Laravelが伸びてきてますが、下のベンチマークでは重いそうです。
思いのほかCakePHPが伸びてませんね。
CodeIgniterは日本では人気無いようです。
fuelphpは日本以外では人気無いようです。
2015年最新PHPフレームワーク(9つ)のベンチマーク †
Phalconが最速で、SlimとCodeIgniterが続きます。 FuelPHP、Silex、BEAR.Sundayが同じようなパフォーマンスです。