Basercms4 development
Skill baserproject/baser-skills/skills/basercms4-development
npx -y skills add baserproject/baser-skills --skill basercms4-developmentAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
baserCMS 4系(CakePHP 2.10ベース)+ jQuery プロジェクトの開発ルール集。「baserCMS 4 で開発」「4系のプラグインを修正」「CakePHP 2系のコードを書く」「app/Plugin 配下の Controller/Model/View」「テーマの Elements/Layouts」「BcBaserHelper/BcFormHelper/BcHtmlHelper の利用」「CakeLog でログ出力」「lib/Baser・lib/Cake はコアハック禁止」等、baserCMS 4系プロジェクトのコーディング方針・ディレクトリ構成・命名規則・ログ/エラーハンドリング・読み取り専用ファイルの扱い・サーバ制約を確認する際に参照する。baserCMS 5系の開発は basercms5-development、4→5 へのアップグレードは basercms4-to-5-upgrade スキルを参照。
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
6.1 KB, ~1.9k tokens by cl100k_base, as published. Nobody here has run it
baserCMS4系(CakePHP2系)+ jQuery プロジェクトの開発ルール
このプロジェクトでは、以下の技術スタックおよび設計方針に従って開発されています。
使用技術
- baserCMS 4系 を使用(内部的には CakePHP 2.10 ベース)
- バックエンド:PHP 7.4 〜 8.2 / CakePHP 2系
- データベース:MySQL 5.7 〜 8.0
- フロントエンド:jQuery 1.x〜3.x(プロジェクト内で複数バージョンが混在している可能性あり)
- HTTPサーバ:Apache(mod_rewrite 有効)
ディレクトリ構成のルール
- MVC構成は CakePHP 2系に準拠しつつ、baserCMSでは主にプラグイン単位で構築されている
app/Plugin/{Plugin名}/Controller/,Model/,View/にそれぞれ配置される
- 共通パーツ(ヘッダー、フッターなど)は、テーマ内の
Elements/ディレクトリに配置- 主に:
theme/{テーマ名}/Elements/ - 一部環境では:
app/webroot/theme/{テーマ名}/Elements/
- 主に:
- レイアウトもテーマ内に配置される
- 主に:
theme/{テーマ名}/Layouts/ - 一部環境では:
app/webroot/theme/{テーマ名}/Layouts/ $this->layoutにより切り替えが可能
- 主に:
- 管理画面系は
/admin/プレフィックスのURLルーティングで制御- 使用ファイル:
app/Config/core.php - 定義内容:
Configure::write('Routing.prefixes', array('admin'));
- 使用ファイル:
コーディング方針(baserCMS4固有)
共通ルールのコーディング方針も参照してください。
- クラスベースよりも関数ベース・手続き的なコードが多く採用されている
- JavaScript は Viewファイル内の
<script>タグ内または.jsファイルに記述 - Ajax通信は jQuery(
$.ajax())を用いて行う - ES6構文(Promise, fetch, import/export)は使用しない
- フロント実装に React や Vue などの SPA 技術は導入していない
- 一部、部分的に利用している箇所がある
命名規則(baserCMS4固有)
共通ルールの命名規則も参照してください。
※ baserCMSやCakePHPの命名慣習(Controller, Helper, Modelなど)はそのまま準拠する
ログ・エラーハンドリング方針(baserCMS4固有)
共通ルールのログ・エラーハンドリング方針も参照してください。
目的: /log エイリアスや、例外処理実装時の提案精度向上
baserCMS4固有の実装方法
- PHPでは
CakeLog::error()またはerror_log()を利用 - JavaScriptでは
console.error()を暫定対応とし、本実装時はサーバ送信も検討
実装例(baserCMS用で設定ファイルに記述):
/**
* 専用ログ
*/
if (!defined('PROJECT_PLUGIN_ACTION')) {
define('PROJECT_PLUGIN_ACTION', 'project_plugin_action');
CakeLog::config('project_plugin_action', [
'engine' => 'FileLog',
'types' => ['project_plugin_action'],
'file' => 'project_plugin_action',
'size' => '5MB',
'rotate' => 5,
]);
}
// ログを取りたい箇所に記述する
$this->log('Start', PROJECT_PLUGIN_ACTION);
$this->log(print_r($array, true), PROJECT_PLUGIN_ACTION);
使用ライブラリとヘルパー
BcBaserHelper,BcFormHelper,BcHtmlHelperなど baserCMS 固有ヘルパーを活用- HTML の出力は
$this->BcBaser->css(),$this->BcBaser->img()などを使用し、手書きは控えめにする
ファイル・ディレクトリに関する扱いルール
目的: AIがコードを解析・提案する際に、以下の3つの分類に基づいて適切に扱うことで、不要な提案や誤った変更を防ぎます。
- 読み取り専用:フレームワークのコアファイルなど、参照はするが変更は禁止
- 設定調査用:設定値を確認するために参照するが、変更は禁止
以下の分類に基づいて、ファイル・ディレクトリの扱いを明確に区別してください。
読み取り専用(AI/人間が参照するが改変しないこと)
lib/Baser/(baserCMS のコア)lib/Cake/(CakePHP 本体)
設定調査用(内容の把握目的。値の取得などには使うが変更禁止)
app/Config/database.php(接続設定の確認)app/Config/core.php(ルーティング・デバッグ設定などの調査)app/Console/cake(CLI の仕様確認)app/webroot/index.php,.htaccess(起動ファイル・Rewrite設定)
サーバ構成・制約(baserCMS4固有)
共通ルールのサーバ構成・制約も参照してください。
- baserCMS はドキュメントルート配下に配置(
index.phpがルート)
制約・注意点
- baserCMS の標準構成に準拠したカスタマイズが基本(コアハック禁止)
- Laravel や CakePHP 4系など、他フレームワークへの置き換え提案は不要
- モダン JS フレームワーク(Vue, React など)に関する提案も不要
- 検討や提案を行う場合は、既存構成との互換性と影響を最優先に考慮すること
- PHP 7.2の制約を考慮した実装を心がける
- jQuery 1.x〜3.xの互換性を保つ
- MySQL 5.7〜8.0の両方で動作するSQL文を使用