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

2023年1月6日CodeIgniter,PHP

kamiです。
TwitterYoutubeもやってます。

みなさんPHPのCodeIgniterの知識はありますか?
この記事はCodeIgniterを触ったことない方や、CodeIgniterを触ったことはあるけど、CodeIgniterについてよく分かってない方にCodeIgniterの開発方法ついての紹介です。

この記事でわかること

  • CodeIgniterのダウンロード
  • CodeIgniterの初期設定

この記事を最後まで読めば「CodeIgniterのダウンロード」から「CodeIgniterの初期設定」までの理解が深まりますので、最後まで読んで「CodeIgniter」についてマスターしましょう。

それでは順に見ていきましょう。

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

icon

【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

アプリ開発で分からない時

プログラミング×稼げる副業スキルはテックキャンプ

プログラミングについて分からない時

【コエテコ様限定】※ご案内を受けた以外のメディアが使用しても成果は承認されません。
ミニマリスト_カミ

僕への個人でもメンターでも、スクールでもお好きな方を活用ください。

CodeIgniter,PHPCodeIgniter

Posted by kami