HITTOBITO

仕事

独自 CMS を作る vol.5 – index.php を書く

2017年10月17日 

Framework

はじめに

ざっくり開発環境ができてきたので、少しコードを書き始めます。

これからは、A がないと B が書けない。B を書くには、A が必要といった、こと出てくるのですが、とりあえず、書けるところから書いていきます。

まずは、index.php を書きます

極力小さいコードを書きたいと思います。

  • composer の Autoloder の利用を宣言
  • セッションを開始
  • 動作モードを設定
  • 定数の設定
  • コントローラーを読込
  • アクションを実行

といわけで、こんな感じにします。

https://github.com/yorozuone/chopstick/blob/master/public/index.php

composer の Autoloder の利用を宣言

require_once __DIR__ . "/../chopstick/vendor/autoload.php";

たった、これだけで、クラスの Autoloader が利用可能になります。

例えば、route クラスを利用したい場合を想定します。route クラスを chopstick/core/classes/route.php に置いた場合、以下のように require する必要があります。

require_once('chopstick/core/classes/route.php');

しかし、事前に使いたいクラスが決まっているわけでもなく、大量にクラスを利用する場合、この定義を毎度書くのは面倒です。

なので、composer の設定で、以下のように書いておくだけで、クラスを実際に利用するときに、例えば、core/route クラスの get() メソッドを利用するなどした場合、自動的にクラスが読み込まれるようにできます。

      "core\\":         "chopstick/core/classes",

この場合ですと、$route = \core\route::get(); と書いた時点で、core\route クラスが読み込まれます。

また、最初に、use \core\route; としておくことで、$route = route::get(); とまで、短縮することも可能です。

超便利

class の書き方に少し手順が必要です。

Autoloder で読み込むクラスには、少しお作法が必要です。例えば、route クラスは、具体的には以下のように書かれています。

<?php
namespace core;

class route {
    public static function get()
    {
    }
}

こんな感じで、namespace を設定しておく必要があります。名前が一致しないと、Autoload に失敗するので、名前部分は、よーっく見ておきましょう。

セッションの開始

ほとんどの場合で、セッションは使うとおもうので、とりあえず、最初に宣言しておきます。

動作モードの設定

以下の 3 モードを設定できるようにします。

動作モード パラメーター 説明
開発 development 開発中の動作モード
ステージング staging 公開前のチェック用の動作モード
本番 production 実際の本番利用の動作モード

動作モードを見て、読み込むデータベースを変更したり、出力するCSSを変えるプログラムを書いたりして、モードによって動作を変更することを可能にするようにしたいと思います。

実際の利用は、CS_ENV_MODE 定数を見る形を想定します。

定数の設定

フォルダ関係をここで設定します。

コントローラーの起動

アクセスしてきたらURLをみて、起動するコントローラーを起動する仕組みとします。

core/route クラスで、URL から利用するコントローラーを特定して、core/dispatch クラスで、実行するという感じにしました。

次の記事で、このあたり詳しく書いてみます。

さいごに

PHP 色々便利な機能が用意されているので、自分で作る部分がほとんどないですね。

  • このエントリーをはてなブックマークに追加
  • このエントリーをはてなブックマークに追加

この記事を書いた人

  • よっしー

    よっしー

    ディレクター (東京支社)

    ディレクター

    (東京支社)

    田畑では愛車トラクターを乗りこなし、米も作る農家が本業というIT系ファーマー、いや、ファーマー系エンジニア? こだわりのあるモノ作りが得意。野菜とWEBの旬な情報はお任せ! 新しい技術やサービスは、まず自ら使ってみる事をモットーにしているプロジェクトマネージャー。WEB制作だけではなく、ネットワーク/サーバー、システム開発まで幅広く網羅。

    田畑では愛車トラクターを乗りこなし、米も作る農家が本業というIT系ファーマー、いや、ファーマー系エンジニア? こだわりのあるモノ作りが得意。野菜とWEBの旬な情報はお任せ! 新しい技術やサービスは、まず自ら使ってみる事をモットーにしているプロジェクトマネージャー。WEB制作だけではなく、ネットワーク/サーバー、システム開発まで幅広く網羅。

この人が最近書いたものを見る

一覧

これを読んだ人にオススメ

ひっとびととは?

WEB制作・プロデュース会社『フューチャーヒット』の人々が趣味などをゆるく紹介するサイトです。
フューチャーヒットの「人々」が自由に、でも真剣に取り組んでいく様子をこの「ひっとびと」を通してお届けしていければと思います。

詳細はこちらから