FuelPHPでconfig::get()とarray地獄を逃れて定数クラスを作成する

FuelPHP で config::get() と array 地獄を逃れ、定数クラスをまとめたファイルを作成する方法です。

config::get() も便利なのですが、指定文字列を書き間違えたりわかりにくかったりするので別案を考えました。

  

fuel/app/classes/constant.php を作成

<?php
/**
 * システム定数
 */
namespace My\Constant 
{
    /**
     * サイト情報
     */
    class Site
    {
        /** @var string バージョン */
        const VERSION = '1.0.0';
        
        /** @var string サイト名 */
        const NAME = 'WebCake';
    }
  
    /**
     * メッセージ
     */
    class Msg
    {
        /** @var string 訪問メッセージ */
        const WELCOME = 'ようこそ';
    }
}

namespace を使用して、namespace 内にクラスを複数定義します。

※ namespace は PHP5.3 から使用可能。

fuel/app/bootstrap.php を編集

require APPPATH . ‘classes/constant.php’; を追記し、作成したファイルを読み込むように変更。

<?php
// Bootstrap the framework DO NOT edit this
require COREPATH.'bootstrap.php';

\Autoloader::add_classes(array(
    // Add classes you want to override here
    // Example: 'View' => APPPATH.'classes/view.php',
));

// Register the autoloader
\Autoloader::register();

/**
 * Your environment.  Can be set to any of the following:
 *
 * Fuel::DEVELOPMENT
 * Fuel::TEST
 * Fuel::STAGING
 * Fuel::PRODUCTION
 */
\Fuel::$env = \Arr::get($_SERVER, 'FUEL_ENV', \Arr::get($_ENV, 'FUEL_ENV', \Fuel::DEVELOPMENT));

// Initialize the framework with the config file.
\Fuel::init('config.php');

// 定数用の PHP ファイルをロードする
require APPPATH . 'classes/constant.php';

追加したのはこの部分です。

// 定数用の PHP ファイルをロードする
require APPPATH . 'classes/constant.php';

使い方

\My\Constant\Site::NAME といったように名前空間つきで指定し、使用する。

NetBeans などの IDE を使えば補完も出てくるし、Ctrl を押しながら定数にカーソルを当てると値もわかるので便利です。
fuelphp-const-class-01

  

共有やブックマークなど