CodeIgniterで管理画面を作成!初心者向け実践チュートリアル
生徒
「CodeIgniterを使って、Webサイトの管理画面を作ってみたいのですが、何から始めればいいですか?」
先生
「管理画面は、Webサイトの裏側で記事を書いたり、会員情報を修正したりするための大事な場所です。まずは基本的な仕組みを理解しましょう。」
生徒
「プログラミングが初めてで、パソコンもあまり触ったことがないのですが、難しくないですか?」
先生
「大丈夫ですよ。家を作ることに例えて、一つずつ丁寧に解説していきますね。」
1. CodeIgniterの管理画面とは?
管理画面とは、Webサイトの運営者が「ブログの記事を投稿する」「画像をアップロードする」「会員情報を管理する」といった操作を行うための専用ページのことです。Webサイトを「お店」だとすると、表側の画面は「お客さんが入る売り場」、管理画面は「店長だけが入れるバックヤード」にあたります。
CodeIgniter(コードイグナイター)というフレームワークを使うと、このバックヤードを非常に効率よく作ることができます。フレームワークとは、家を建てるときに使う「柱や壁のセット」のようなものです。これを使うことで、ゼロから全部自分で作らなくても、安全で便利な機能を持った管理画面を短時間で作れるようになります。
2. MVCモデルの基本を理解しよう
CodeIgniterで開発をする上で、最も大事な考え方が「MVC」です。これは家の中を役割分担するような仕組みです。
- Model(モデル):データの倉庫番です。データベースにある情報を整理したり、取り出したりする役割です。
- View(ビュー):画面の見た目です。お客さんや管理者に見える部分のデザインを担当します。
- Controller(コントローラー):司令塔です。ユーザーからの命令を受け取り、モデルにデータを頼んで、最後にビューを表示させます。
管理画面を作るということは、この「司令塔」「倉庫番」「見た目」の3つをセットで作るということなのです。
3. 管理画面用のコントローラーを作成する
まずは、司令塔であるコントローラーを作ってみましょう。管理画面の最初のページとして「ダッシュボード」を作ります。CodeIgniterでは、app/Controllersという場所にプログラムを置きます。
namespace App\Controllers;
class Admin extends BaseController
{
public function index()
{
return view('admin/dashboard');
}
}
このコードは「Admin」という管理画面用の司令塔を用意し、indexという機能が呼ばれたら、admin/dashboardという見た目(View)を表示しなさい、という指示を出しています。
4. 管理画面の見た目(View)を作る
次に、実際に管理者が目にする画面のデザインを作ります。app/Views/admin/dashboard.phpというファイルを作成しましょう。HTMLを使って、簡単な見出しを表示させます。
<h1>管理画面ダッシュボード</h1>
<p>ようこそ、管理者さん。ここからサイトの情報を更新できます。</p>
<a href="/admin/posts">記事一覧へ</a>
このように、HTMLを記述することでブラウザ上に文字やリンクを表示できます。これだけで、管理画面の第一歩が完成しました。
5. ルーティングを設定してページにアクセスする
コントローラーを作っただけでは、まだインターネット上でそのページにたどり着けません。道案内をしてあげる必要があります。これをルーティングと呼びます。
app/Config/Routes.phpファイルを開いて、以下のように追記します。
$routes->get('admin', 'Admin::index');
これは、「Webブラウザで『/admin』にアクセスがあったら、Adminコントローラーのindexという機能を使ってね」という命令です。これで、ブラウザでアクセスできるようになります。
6. データベースから記事一覧を表示させる
管理画面では、投稿した記事の一覧を表示するのが一般的です。ここで「モデル」が登場します。データベースから情報を引き出す準備をしましょう。
namespace App\Models;
use CodeIgniter\Model;
class PostModel extends Model
{
protected $table = 'posts';
protected $allowedFields = ['title', 'content'];
}
このコードは「posts」という名前のテーブルから、記事のタイトルや内容を安全に取り出すための設定です。こうしてモデルを用意しておくことで、データベースの難しい操作を意識せずに管理画面を作れます。
7. セキュリティ対策の重要性
管理画面は、一般のユーザーからは隠しておかなければなりません。もし誰でも入れる状態だと、悪意のある人にサイトを壊されてしまう可能性があるからです。これを防ぐのが認証(ログイン機能)です。
ログインしていない場合は「ログイン画面に飛ばす」という処理をコントローラーに追加することで、管理者しか入れない秘密の場所を守ることができます。プログラミングにおいて、セキュリティは一番の優先事項です。初心者のうちから、常に「誰がこのページを見ることができるのか」を意識する癖をつけましょう。
8. 開発効率を上げる便利な仕組み
CodeIgniterには「ヘルパー」という便利な道具箱があります。例えば、日付を自動で表示したり、URLを生成したりする際に役立ちます。また、バリデーションという機能を使うと、入力されたデータが正しいかどうかを自動でチェックできます。例えば、タイトルが空欄のまま記事を投稿しようとすると「タイトルを入力してください」と教えてくれる仕組みです。これらを使うことで、より快適で壊れにくい管理画面へと進化させることができます。