Home > PHP > CodeIgniter

CodeIgniter Archive

CodeIgniter 2.0.3 で TCPDF

CodeIgniter 2.0.1ja以上2.0.3jaなら全部OK。
2.0.1jaでインストールして今2.0.3jaで使ってるから

  1. TCPDFのダウンロード
    http://sourceforge.net/projects/tcpdf/files/
    ここから最新のzip アーカイブをダウンロードする。
  2. Codeigniterへのインストール
    執筆時点のバージョンは5.9.158なんで
    tcpdf_5_9_158.zipをダウンロード。
    ダウンロードしたファイルを展開。
    展開すると「tcpdf」フォルダがあります。

    この「tcpdf」フォルダを「/application/third_party」フォルダにコピーします。
    今回は「third_party」へのコピーという方法をとっていますが、「/application/libraries」にコピーする方法もあるかと

  3. ユーザーライブラリの作成
    「/application/libraries」にユーザーライブラリファイルを作成。
    「pdf.php」というファイルを追加しました。
    ファイルの内容は次のとおり

    これで、使用する準備は完了。
    あとはコントローラーで、呼び出して使うだけ。

  4. 呼び出しサンプル

Codeigniter で PHPExcel

Codeigniterの使用バージョン 2.0.3 ja

PHPExcelをサイトからダウンロード
PHPExcel
PEAR版もあるが、使っていないので通常版 PHPExcel 1.7.6 (ダウンロード時のバージョン)

ダウンロードファイルを解凍し、以下のファイルをCodeigniterの application/libraries にコピー
PHPExcel1.7.6\Classes\PHPExcel
PHPExcel1.7.6\Classes\PHPExcel.php

とあるサイトには、

とこのように書かれていましたが、動きません。エラーとなります。
PHPExcelのバージョンも1.7.6と書かれていますが・・・

まず、「PHPExcel/IOFactory」ですが
ファイルの中を見るとクラス名は、「PHPExcel_IOFactory」となっています。
また、「__construct」は「private」です。
ロードできるわけがない。
たぶん、動かしてないんだろう。

実際ダウンロードしたファイルにサンプルが入っているんだが
「IOFactory」をロードする必要なんかないし・・・

実際Codeigniterで動作させたサンプルコードは以下。
ダウンロードするのが目的なんで
test\01simple-download-xls.php を Codeigniter に組み込みました。

これをVIEWからリンクなどで呼び出すと「01simple.xls」ファイルとしてダウンロードできます。
日本語テストも兼ねてます。

Codeigniter 2.0.1 でxajaxを使用する

以前、xajaxCodeigniter 1.7.1に組み込んだのだが
その時はpluginとして組み込んでみたのだが
2.0でpluginは無くなっているのでlibraryとして組み込む。

xajaxのバージョンは「0.5 Final」
0.6では、PHP 5.3に対応しているようだが
今回のPHPは、5.2系なので「xajax 0.5 Final」を使用する。

xajax-projectのダウンロードページから「xajax 0.5 minimal」をダウンロード。(これはおこのみやね)

ダウンロードして圧縮ファイルを展開
展開された「xajax_core」フォルダごと「/application/libraries」へコピー。
「xajax_core」フォルダを「xajax」へリネーム
「xajax」フォルダの中にある「xajax.inc.php」を「xajax.php」にリネーム。
「xajax_js」フォルダはドキュメントルートへフォルダごとコピー。

これで準備は完了。

あとは、コントローラーファイルでライブラリをロードするだけ。

Codeigniterの「クロスサイトリクエストフォージェリ (CSRF)」をconfigで有効にしている
xajaxは動作しません。
configでは「FALSE」に設定し、各コントローラーで個別に実装する必要があります。

jqueryでは、対応サンプルが公開されているようですが。
AJAX with CSRF Protection in Codeigniter 2.0

今回は、「クロスサイトリクエストフォージェリ (CSRF)」に関しては自動化ではなく、個別実装の方法をとっています。

PHPでExcel

Excel出力の案件があったんでCodeIgniterに組み込んでおく。
今は、暗礁にのりあげてるけどなぁ。

全文を読む

CodeIgniterで複数ファイルを同時アップロード

イメージファイルや文書ファイルを複数同時にアップロードする機能が必要なので
調べたら、あっさりと見つかった。
やっぱ、いるよなぁ、複数ファイルのアップロードって

日本CodeIgniterユーザ会のメーリングリストにログがあって
KuniTsujiのPHP開発日記 サイトにソースがあった。
対象記事はCodeIgniterで複数のファイルをアップする

MY_Upload.phpファイルをsystem/application/libraries/に作成し、こちらのソースをコピーしてクラス名を「MY_Upload」に変更。

で、サンプルフォームを作成して動かしてOKだった。
サンプルソースは、めんどいので$_FILESなんかを使って確認しただけなんで、載せれんな。
それにサムネイル機能もサンプルでやってるんで長いしなぁ。

イメージファイルのサムネイル化なんやけど、KuniTsujiのPHP開発日記にもイメージファイルのリサイズに関する記事が載ってた。
もう既に phpThumbnailer を組み込んだあとに知った・・・・。

TCPDFのインストール

TCPDFxajaxと同じようにpluginで組み込む
その他の方法は、wikiか検索すればでてくる

全文を読む

xajaxのインストール

とりあえず、xajaxCodeIgniterに組み込む。

全文を読む

必要な機能

今度の案件では、必要な機能は次の通り

  1. ファイルアップロード
  2. PDF出力
  3. AJAX(あればちょっと便利)
  4. Excel(ついでに)

これらの機能をCodeIgniterで実装する。

1.のファイルアップロード機能はCodeIgniterに標準である。
けど、どうも1ファイルのアップロードっぽい。
必要なのは複数ファイルの同時アップロード。

2のPDF出力は、「tcPDF」の予定

3のAJAXは探して試したところ、簡単だった「xajax

4は・・・まあ、今のところたち消えたけど、とりあえずライブラリを組み込んでおくことにしよう。
Excel_Reviser or PHPExcel

CodeIgniterで開発

PHPのフレームワークは過去にEthnaだけ使ったことあり。
んで、軽量フレームワークを探しててCodeIgniterにたどり着いた。

Kohanaも併せて試用したけど、CodeIgniterに決定。
次はKohanaでやってみるか

ホーム > PHP > CodeIgniter

検索
フィード
メタ情報

Return to page top