CS-Cartの構成

開発用設定ファイル

CS-Cartでは、config.local.phpを変更せずに開発用に個別の設定を行うことのできる開発用の設定ファイルを作成できます。
このファイルはlocal_conf.phpと呼ばれます。

📘

TIPS

local_conf.phpで指定された設定はconfig.local.phpよりも優先されます。

開発用の設定ファイルについては、以下の手順で行ってください。

  • CS-Cartをインストールしたルートディレクトリにlocal_conf.phpを作成します。
  • local_conf.phpを開き、次のコードを追加します。
<?php

//ライブストアで作業する必要がある場合は、以下の設定を特定のIPのみに適用して、ショップのお客様が影響を受けないようにすることができます。127.0.0.1の代わりにIPアドレスを指定してください。
if ($_SERVER['REMOTE_ADDR'] == '127.0.0.1') {

    // 管理パネルおよびストアフロントのデバッグモードをオンにする
    // define('DEBUG_MODE', true);

    // 開発モードを使用してエラーを表示する
    define('DEVELOPMENT', true);

    // SMARTYおよびPHPエラーを表示
    error_reporting(E_ALL);
    ini_set('display_errors', 'on');
    ini_set('display_startup_errors', true);

    //  PHPブロックキャッシュを無効にする
    $config['tweaks']['disable_block_cache'] = true;

}

// config.local.phpを変更せずに構成を変更できます。

/*
$config['db_host'] = '%DB_HOST%';
$config['db_name'] = '%DB_NAME%';
$config['db_user'] = '%DB_USER%';
$config['db_password'] = '%DB_PASSWORD%';

$config['http_host'] = '%HTTP_HOST%';
$config['http_path'] = '%HOST_DIR%';

$config['https_host'] = '%HTTPS_HOST%';
$config['https_path'] = '%HOST_DIR%';
*/

// キャッシュとストレージのバックエンドも設定することができます

/*
// Cache backend
// 利用可能なキャッシュバックエンド: file, sqlite, database, redis, xcache, apc
// sqliteキャッシュを使用するには、「sqlite3」PHPモジュールをインストールする必要があります
// xcacheキャッシュを使用するには、「xcache」PHPモジュールをインストールしてください
// apcキャッシュを使用するには、「apc」PHPモジュールをインストールしてください
$config['cache_backend'] = 'file';
$config['cache_redis_server'] = 'localhost';
$config['cache_redis_global_ttl'] = 0; // キャッシュサイズがRedisサーバーのメモリサイズに達した場合、設定してください

// セッションのストレージバックエンド。利用可能なバックエンド: database, redis
$config['session_backend'] = 'database';
$config['session_redis_server'] = 'localhost';
$config['cache_apc_global_ttl'] = 0;
$config['cache_xcache_global_ttl'] = 0;
*/

設定の詳細

IPアドレスの制限

local_conf.phpで指定した設定を特定のIPアドレスのみに制限できます。ライブストアで作業する場合にこの設定をしておくと、エラーメッセージとデバッガが表示されるため便利です。
IPアドレスの制限は、以下を参考にしてください。

<?php
if ($_SERVER['REMOTE_ADDR'] == '127.0.0.1'){

}

👍

ライブストア(公開されているストア)で作業している場合は、127.0.0.1をあなたの環境のIPアドレスに置き換えてください。ストアがまだ一般公開されていない場合は、この条件を使用しなくても問題ありません。

デバッグモード

CS-Cartには、以下の値を確認できる組み込みデバッガーがあります。

  • サーバーとPHPの設定
  • 現在のページで実行されたSQLクエリーのリスト
  • ページの構築に使用されているテンプレート
  • リクエストパラメーター
  • ページが表示される際に使用された時間とメモリーの量

デバッガーにアクセスするには、CS-Cartの管理パネルに移動し、URLにdebugパラメーターを追加します。

http://example.com/admin.php?debug

Bug(虫)のアイコンは、ページの右上に表示されます。デバッガーはサイドバーをクリックして開閉することができます。または、Ctrl + Alt + Dを押すことでも開閉が可能です。

📘

TIPS

debugパラメーターを使用すると、現在のブラウザーセッションのショップフロント(カスタマーエリア)でデバッガーが使用可能になります。

2058

ストアフロントと管理パネルの両方でデバッガーを常時有効にするには、local_conf.phpの下記の箇所をコメントアウトします。

<?php
define('DEBUG_MODE', true);

❗️

注意

一般のお客様がデバッグデータにアクセス可能になるため、
ライブストアでは絶対にdefine('DEBUG_MODE', true);は使用しないでください。

開発モード

PHPコード、Smartyテンプレート、またはSQLクエリーにエラーがある場合、通常はSmartyおよびPHPのエラーが発生した場合は空白のページになります。

間違ったSQLクエリーが原因のデータベースエラーの場合は、次のメッセージが表示されます:
申し訳ございません。当ショップはメンテナンスのため一時クローズ中です。
再開まで今しばらくお待ちください。

2338

実際のエラーメッセージを表示するには、開発モードを使用します。
local_conf.phpで下記の設定を使用することで有効化できます:

<?php
define('DEVELOPMENT', true);

何か問題が発生した場合、エラーの原因となったファイルへのパスを含むエラーメッセージが表示されます。

945

開発モードには、アドオン開発者にとって便利な機能がもう一つあります。

CS-Cartは、インストールされたアドオンのCSSおよびTPLファイルをdesign/themesディレクトリに保存します。通常、アドオンがアンインストールされると、CS-Cartはこれらのファイルを削除します。

また、アドオンが再度インストールされると、これらのファイルはvar/themes_repositoryから取得されます。

よって開発中にdesign/themesディレクトリでアドオンの.cssファイルと.tplファイルを変更し、管理パネルでそのアドオンをアンインストールすると、変更が失われてしまいます。

しかし、開発モードを有効にした場合は、アドオンをアンインストールしても、design/themesディレクトリ内のアドオンのファイルは削除されません。

❗️

注意

もしvar/themes_repository.css.tplファイルを含んだ状態でアドオンをインストールした場合はdesign/themes内のファイルは上書されます。

SmartyおよびPHPエラーの画面表示

エラーメッセージを表示するには、PHPやWebサーバーの設定を再定義する必要がある場合もあります。そのため次のコードをlocal_conf.phpに追加します。

<?php
error_reporting(E_ALL);
ini_set('display_errors', 'on');
ini_set('display_startup_errors', true);

PHPブロックキャッシングを無効にする

CS-Cartのキャッシュはページの読み込み時間を短縮します。ただし、開発中のプロジェクトでは変更箇所を都度確認する必要があります。その際は、次のコードをlocal_conf.phpに追加して、PHPブロックキャッシュを無効にしてください。

<?php
$config['tweaks']['disable_block_cache'] = true;

データベースとホストの設定

データベースの接続情報とストアのHTTPホストを再定義できます。
これは既存のストアのローカルコピーで作業し、config.local.phpを変更したくない場合に便利です。
この機能を利用するにはlocal_conf.phpでこれらの設定をコメントアウトしてください。

<?php
$config['db_host'] = '%DB_HOST%';
$config['db_name'] = '%DB_NAME%';
$config['db_user'] = '%DB_USER%';
$config['db_password'] = '%DB_PASSWORD%';

$config['http_host'] = '%HTTP_HOST%';
$config['http_path'] = '%HOST_DIR%';

$config['https_host'] = '%HTTPS_HOST%';
$config['https_path'] = '%HOST_DIR%';

キャッシュおよびセッションバックエンド

local_conf.phpを使用して、ストレージバックエンドなどを再定義できます。
次のコードから以下の部分をコメントアウトし、設定をしてください。

<?php
$config['cache_backend'] = 'file';
$config['cache_redis_server'] = 'localhost';
$config['cache_redis_global_ttl'] = 0; // キャッシュサイズがRedisサーバーのメモリサイズに達した場合、設定してください

👍

キャッシュは、file, sqlite, database, redis, xcache、およびapcが利用可能です。
Sqlite、apc、およびxcacheを使用するには、対応するPHPモジュールをサーバーにインストールする必要があります。

セッションのストレージバックエンドを変更することもできます。
次のコードの部分をコメントアウトし、目的の設定行ってください。

<?php
$config['session_backend'] = 'database';
$config['session_redis_server'] = 'localhost';
$config['cache_apc_global_ttl'] = 0;
$config['cache_xcache_global_ttl'] = 0;

📘

databaseとRedisは、セッションで利用可能です。