mcpField
B
basercms4-development

basercms4-development

github.com/baserproject开发040 次安装1 周前更新
代码仓库

关于 basercms4-development

为基于 baserCMS 4、CakePHP 2 和 jQuery 的项目提供开发约定,供维护者和编码 Agent 参考。涵盖目录组织、兼容性、日志及不可修改文件等规则。

主要功能

  1. 01baserCMS 4 与 CakePHP 2 约定
  2. 02插件和主题目录规范
  3. 03PHP 与 jQuery 兼容要求
  4. 04日志和错误处理规则
  5. 05核心文件只读边界

适用场景

  1. 01维护现有 baserCMS 4 项目
  2. 02检查插件和主题代码改动
  3. 03避免修改框架核心文件

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/baserproject/baser-skills --skill basercms4-development

安装后在 Claude Code 中输入/basercms4-development确认已加载。

详细介绍

来自项目 README

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文を使用

评论

支持 Markdown