-
Notifications
You must be signed in to change notification settings - Fork 132
コーディング規約
baserCMSにおけるコーディングは、CakePHPコーディング規約
に準拠します。
その為、CakePHPの開発方法で、baserCMS上にアプリケーションを構築する事が可能です。
CakePHP側で定められている、コーディング規約、開発方法についてはここでは触れません。
絶対パスの情報のように環境に依存し、処理中に変更の必要のない値は、定数で宣言します。特に全体を通して参照する定数は、次のファイルに宣言します。
/lib/Baser/Config/bootstrap.php
アプリケーションの設定値は、Configureクラスで管理します。
次のファイルに配列で設定情報を記述すると、起動時に自動で読み込まれ、Configure::read()
を利用する事で、どこからでも参照する事ができます。
/lib/Baser/Config/setting.php
コントローラーを作成する際は、AppController クラスを継承します。
AppController クラスは、BcAppController
クラスを継承しており、認証の自動設定機能等、baserCMSのコアの機能を提供しています。
class DummyController extends AppController {
管理システム等にて、ログイン認証を設定したい場合は、BcAuthComponent、BcAuthConfigureComponent の2つのコンポーネントクラスを宣言します。この状態で、全てのアクションに認証がかかります。
public $components = array('BcAuth', 'BcAuthConfigure');
認証を必要としないアクションを作成する場合には、BcAuthComponent::allow() を呼び出します。
$this->BcAuth->allow('actionA', 'actionB');
認証されたユーザーの情報を取得したい場合は次のコードで取得できます。
$this->BcAuth->user();
モデルを作成する際は、AppModel クラスを継承します。
AppModel クラスは、BcAppModel クラスを継承しており、バリデーション機能の拡張等
baserCMSのコアの機能を提供しています。
class Dummy extends AppModel {
CakePHPのテンプレートの拡張子は、「ctp」となりますが、baserCMSでは、「php」となります。
これは、ドキュメントルート配下にテーマ用のテンプレートを配置した場合に、テンプレートファイルを直接参照されてしまうのを防ぐ為です。
管理システム用のアクション等、プレフィックス付のアクションのテンプレートを作成する場合、CakePHPのデフォルトの配置場所と変わり、プレフィックス名をサブフォルダとし、その配下に配置します。
(例)admin_login アクションの場合
/lib/Baser/View/[ControllerName]/admin/login.php
同じ機能を持つエレメントが複数存在する場合はフォルダに整理し、フォルダ名は複数形とします。
(例)ヘルプファイルの場合
/lib/Baser/View/Elements/admin/helps/contents_add.php
/lib/Baser/View/Elements/admin/helps/contents_index.php
ビューファイルを記述する際、リンクを作成する場合、また、画像、CSS、Javascriptファイルを参照する場合には、BcBaserHelperを利用します。
これは、baserCMSが配布する前提のパッケージの為、サブディレクトリに設置した場合等、設置箇所の階層によりリンク切れが発生してしまうのを防ぐ為です。
■ リンク
<?php $this->BcBaser->link('title', '/path/to/link') ?>
■ 画像
<?php $this->BcBaser->img('/path/to/image', array('alt' => 'title')) ?>
■ CSS
<?php $this->BcBaser->css('/path/to/css') ?>
■ Javascript
<?php $this->BcBaser->js('/path/to/javascript') ?>
基本的に、CakePHPが提供するコードは修正しない方針ですが、baserCMSの仕様を作り上げる為、どうしても変更が必要な場合があります。その際には、次のルールに則り、コメントによるマーキングを行ってください。
また、修正理由はできるだけ細かく記載をします。
これは、CakePHPがバージョンアップした際、baserCMSをそのCakePHPのバージョンに対応する際の重要な手がかりとなる為です。
// CUSTOMIZE ADD YYYY/MM/DD 修正者名
// 修正内容の説明
// >>>
追加コード
// <<<
// CUSTOMIZE MODIFY YYYY/MM/DD 修正者名
// 修正内容の説明
// >>>
// 元のコード
// ---
修正後のコード
// <<<
// CUSTOMIZE DELETE YYYY/MM/DD 修正者名
// 修正内容の説明
// >>>
// 元のコード
// <<<