【PHP】初めてのCodeIgniterを使って開発を行う方法・手順

みなさんPHPのCodeIgniterの知識はありますか?
この記事はCodeIgniterを触ったことない方や、CodeIgniterを触ったことはあるけど、CodeIgniterについてよく分かってない方にCodeIgniterの開発方法ついての紹介です。
この記事でわかること
- CodeIgniterのダウンロード
- CodeIgniterの初期設定
この記事を最後まで読めば「CodeIgniterのダウンロード」から「CodeIgniterの初期設定」までの理解が深まりますので、最後まで読んで「CodeIgniter」についてマスターしましょう。

それでは順に見ていきましょう。
【PHP】初めてのCodeIgniterを使って開発を行う方法・手順の全体の流れ

【PHP】初めてのCodeIgniterを使って開発を行う方法・手順を行うには次の流れになります。
- CodeIgniterのダウンロード
- CodeIgniterの初期設定
- config.phpで公開ページの設定
- routes.phpでデフォルトのControllerの指定
- controllersにClassを作成する
- autoload.phpでデータベースのロード設定
CodeIgniterをダウンロード
CodeIgniterをダウンロード
CodeIgniterの公式からダンロードを行います。

まずはダウンロードページに飛びます。

ダウンロードしたいバージョンを選択してダウンロードしましょう。
スポンサードサーチ
CodeIgniterのディレクトリ・ファイル構造
CodeIgniterのディレクトリ・ファイル構造
webapp/ |- application/ | |- cache/ | |- config/ | |- controllers/ | |- core/ | |- errors/ | |- helpers/ | |- hooks/ | |- language/ | |- libraries/ | |- logs/ | |- models/ | |- third_party/ | |- views/ | |- index.html | |- system/ | |- core/ | |- database/ | |- fonts/ | |- helpers/ | |- language/ | |- libraries/ | |- index.html | | - - - - |- composer.json |- index.php |- license.txt |- readme.rst
CodeIgniterの初期設定

CodeIgniterの初期設定のです。
config.phpで公開ページの設定
config.phpのパス
application/config/config.php
公開ページのURL
$config['base_url'] = '';
インデックスページ情報を変更する
application/config/config.php
// $config['index_page'] = 'index.php'; $config['index_page'] = '';
routes.phpでデフォルトのControllerの指定
routes.phpのパス
application/config/routes.php
$route['default_controller’]のを編集します。
$route['default_controller'] = 'welcome';
controllerにClassを作成する
先ほど、routers.phpのroute['default_controller’]で指定したクラスを作成して、以下のコードを記述します。
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class welcome extends CI_Controller { function __construct() { parent::__construct(); } $data['text'] = 'CodeIgniter Test!'; $this->load->view("index", $data); }
autoload.phpでデータベースのロード設定
autoload.phpのパス
application/config/autoload.php
CodeIgniter には「オートロード」機能があります。
システムが実行されるたびにライブラリー、 ヘルパー、モデルなどが自動的に初期化することができます。
以下の項目をオートロードすることができます:
オートリロードできるもの
- libraries/ ディレクトリにある class
- helpers/ ディレクトリにあるヘルパーファイル
- config/ ディレクトリにある設定ファイル
- system/language/ ディレクトリにある言語ファイル
- models/ フォルダにあるモデル
// $autoload['libraries'] = array(); $autoload['libraries'] = array('database');
$autoload['libraries’] をコマンアウトして、array('database’)にしてください。
$autoload['libraries'] = array('database', 'email', 'session');
データベース以外に、複数のライブラリを指定したい時は、上記のようにしてしてください。
database.phpでDBの設定
database.phpのパス
application/config/database.php
データベースを利用する場合には、database.phpを開いて、データベースの情報を記載します。
$db['default'] = array( 'dsn' => '', 'hostname' => 'localhost', 'username' => 'hoge', 'password' => '1234', 'database' => 'hoge', 'dbdriver' => 'mysqli', 'dbprefix' => '', 'pconnect' => FALSE,。 'db_debug' => (ENVIRONMENT !== 'production'), 'cache_on' => FALSE, 'cachedir' => '', 'char_set' => 'utf8', 'dbcollat' => 'utf8_general_ci', 'swap_pre' => '', 'encrypt' => FALSE, 'compress' => FALSE, 'stricton' => FALSE, 'failover' => array(), 'save_queries' => TRUE )
- dsn:データソース名(データベースの接続情報につけれられている識別名)
- hostname:ネットワーク上で使うコンピューター名
- username:データベースに接続時に使用するユーザー名
- password:データベースに接続する
- database:接続したいデータベース名
- dbdriver:データーベースの種類
- dbprefix:オプションのテーブル名プリフィックス
- pconnect:永続的な接続を行うかどうか
- db_debug:データベースのエラー表示
- cache_on:データーベースのキャッシュの有効
- cachedir:データベースクエリのキャッシュディレクトリへの絶対パス
- char_set:データベース通信に使用する文字セット
- dbcollat:データベース通信に使用する照合順序
- swap_pre:デフォルトのテーブル接頭辞が dbprefix と置き換えられる
- encrypt:暗号化接続
- compress:クライアンド圧縮(MySQLのみ)
- stricton:「Strict Mode」の接続
- failover:システム障害などの時の緊急用時に同等のシステムの切り替え
- save_queries:実行したクエリを保存するか
MySQL利用の場合の例
'hostname' => 'DB ホスト名' 'username' => 'MySQLのユーザー名' 'password' => 'MySQLのパスワード' 'database' => 'データベース名' 'dbdriver' => 'mysqli'
MySQLを利用する場合は、dbdriverを「mysqli」にして、db設定を行います。
スポンサードサーチ
実装やエラーが解決できない場合
プログラミングの実装やエラーでどうしてもわからない場合はメンターに相談するのが一番です。
考えている、見えている範囲が狭くなり、解決から遠くに行って何時間も、何日も経っていることなんてよくある話です。
そういう時は聞ける先輩や、メンターに相談することが大事です。
僕にも相談可能なので気軽に相談してください。

Twitterからの連絡だと確実ですよ。
オンラインスクールやプログラミングスクールといったプログラミングを学べる方法もあるので、そちらもぜひ活用してもいいと思います。
Web開発で分からない時
オンライン完結型スクール DMM WEBCAMP PROアプリ開発で分からない時
プログラミング×稼げる副業スキルはテックキャンププログラミングについて分からない時
【コエテコ様限定】※ご案内を受けた以外のメディアが使用しても成果は承認されません。
僕への個人でもメンターでも、スクールでもお好きな方を活用ください。