0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

コードイグネーターを業務で使うので調べてまとめた

Posted at

はじめに

タイトルからわかるように、知見がないので調べて備忘録として残しております。
間違えなどあれば教えていただけると幸いです

簡潔に

・MVCモデルを採用
・他のフレームワークと比較して非常に軽量
・ドキュメントが充実
・データベース操作、フォームバリデーション、セッション管理、キャッシュ機能などの豊富なライブラリが標準で用意されている

同じPHPフレームワークのLaravelとは対照的で
【高速動作(軽量)】かつ【手軽さ】が魅力のフレームワーク

ライブラリについて

 

・データベースライブラリ

$this->load->database();
$query = $this->db->get('users'); // 'users'テーブルの全データ取得
foreach ($query->result() as $row) {
    echo $row->name;
}

load->db->('テーブル名')
これだけの記述でテーブルからデータを取ることが可能。
業務ではSQLを使っているためこの記述はしていないがLaravelのクエリビルダと見た感じ同じそう。

・バリデーションライブラリ

$this->load->library('form_validation');
$this->form_validation->set_rules('name', 'label', 'required|min_length[5]',[
    'required' => '「{field}」は入力必須です。',
    'min_length' => '{field}は最低5文字必要です。'
    ]);
if ($this->form_validation->run() == FALSE) {
    echo validation_errors();
} else {
    echo "入力OK!";
}

libraryの引数にform_validation
set_rulesの引数は
第一引数がinputのnameの値
第二引数がメッセージに表示するフィールド
第三引数がバリデーションルール
第四引数がバリデーションエラーのメッセージ

もしvalidation_errorsを出力した際には

「label」は入力必須です。
labelは最低5文字必要です。

のように出力される。

・セッションライブラリ

$this->load->library('session');
$this->session->set_userdata('username', 'Taro');
echo $this->session->userdata('username');

libraryの引数にsession
set_userdataの第一引数にkey,第二引数にvalueをいれたらセッションに入る。
呼び出すときはkeyを指定して出力する。

だいたいコードで理解できると思うので以下ライブラリの説明は割愛します。↓

・アップデートライブラリ(ファイル)

$config['upload_path']   = './uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$this->load->library('upload', $config);

if (!$this->upload->do_upload('userfile')) {
    echo $this->upload->display_errors();
} else {
    echo "アップロード成功!";
}

・Emailライブラリ

$this->load->library('email');
$this->email->from('your@example.com', 'Your Name');
$this->email->to('someone@example.com');
$this->email->subject('メールテスト');
$this->email->message('こんにちは!');
$this->email->send();

・ページネーションライブラリ

$this->load->library('pagination');
$config['base_url'] = 'http://example.com/index.php/test/page/';
$config['total_rows'] = 200;
$config['per_page'] = 20;
$this->pagination->initialize($config);
echo $this->pagination->create_links();

・Encryptionライブラリ(暗号化)

$this->load->library('encryption');
$plain_text = "シークレットデータ";
$cipher_text = $this->encryption->encrypt($plain_text);
echo $this->encryption->decrypt($cipher_text);

・Cartライブラリ(ショッピングカート)

$this->load->library('cart');
$data = array(
    'id'      => 'sku_123ABC',
    'qty'     => 1,
    'price'   => 39.95,
    'name'    => '商品名'
);
$this->cart->insert($data);

・Image Manipulationライブラリ

$config['image_library'] = 'gd2';
$config['source_image'] = './uploads/image.jpg';
$config['create_thumb'] = TRUE;
$config['maintain_ratio'] = TRUE;
$config['width'] = 150;
$config['height'] = 100;
$this->load->library('image_lib', $config);
$this->image_lib->resize();

などなど

ライブラリの読み込みについて

上のコードを見ての通り
データベース以外は

$this->load->library('ライブラリ名');

で呼び出し可能。
まとめて呼び出す場合には

$this->load->library(array('ライブラリ名', 'ライブラリ名', 'ライブラリ名'));

このような記述でOK

ヘルパー関数について

ヘルパーを使うためにファイルごとで読み込む必要がある。

$this->load->helper('form');
// もしくは
$autoload['helper'] = array('form');

・form_open

echo form_open('controller/method', ['id' => 'my_form', 'class' => 'form-class']);
// ↓
<form method="post" action="http://example.com/controller/method" id="my_form" class="form-class">

※CSRF保護付き

・form_close

echo form_close();
// ↓
</form>

・form_input

echo form_input([
    'name'  => 'username',
    'id'    => 'username',
    'value' => '初期値',
    'class' => 'form-control'
]);
// ↓
<input type="text" name="username" id="username" value="初期値" class="form-control">

・form_password

echo form_password('password');
// ↓
<input type="password" name="password" value="">

・form_hidden

echo form_hidden('user_id', '123');
// ↓
<input type="hidden" name="user_id" value="123">

・form_textarea

echo form_textarea('comments', 'ここに入力...');
// ↓
<textarea name="comments">ここに入力...</textarea>

・form_dropdown

$options = [
    'small' => 'Small Shirt',
    'med'   => 'Medium Shirt',
    'large' => 'Large Shirt'
];
echo form_dropdown('shirt_size', $options, 'med');
// ↓
<select name="shirt_size">
    <option value="small">Small Shirt</option>
    <option value="med" selected="selected">Medium Shirt</option>
    <option value="large">Large Shirt</option>
</select>

・form_submit

echo form_submit('submit', '送信');
// ↓
<input type="submit" name="submit" value="送信">

・form_label

echo form_label('ユーザー名', 'username');
// ↓
<label for="username">ユーザー名</label>

・form_checkbox

echo form_checkbox('agree', '1', FALSE, ['id' => 'agree']);
// ↓
<input type="checkbox" name="agree" value="1" id="agree">

・form_radio

echo form_radio('gender', 'male', TRUE, ['id' => 'male']);
echo form_radio('gender', 'female', FALSE, ['id' => 'female']);
// ↓
<input type="radio" name="gender" value="male" id="male" checked="checked">
<input type="radio" name="gender" value="female" id="female">
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?