mcpField
B
basercms5-development

basercms5-development

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

关于 basercms5-development

面向 baserCMS 5 系项目开发者的通用开发规则技能,涵盖环境、目录结构、命名、日志及服务器约束。它将插件、主题和 4→5 迁移的具体实现模式指向各自的专门技能。

主要功能

  1. 01baserCMS 5 与 CakePHP 基础
  2. 02项目目录及文件规则
  3. 03jQuery 使用约束
  4. 04日志与错误处理指引
  5. 05核心文件只读约定
  6. 06服务器及数据库约束

适用场景

  1. 01了解项目目录与文件职责
  2. 02按项目约束编写 PHP 和 jQuery
  3. 03检查日志和错误处理方式
  4. 04避免修改核心及配置调查文件

安装

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

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

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

详细介绍

来自项目 README

baserCMS5系(CakePHP 5.0.5 系)+ jQuery プロジェクトの開発ルール

このプロジェクトでは、以下の技術スタックおよび設計方針に従って開発されています。

5系スキルは3層構造になっており、本スキルは**共通ベース(環境・ディレクトリ構成・命名・ログ・コアハック禁止・サーバ制約)**を扱う。実装パターンは分野別スキルが正本: プラグイン開発・改修 → basercms5-plugin-development、テーマ開発・改修 → basercms5-theme-development、4→5 移行作業 → basercms4-to-5-upgrade(配下の分野別移行スキル含む)。

推奨: 5系の開発に着手する前に一度 basercms5-claude-workflow-setup(環境セットアップ)を参照し、進め方の環境(設計=superpowers brainstorming/権限整理=permissions-audit/その上での Auto mode/spec・plan の Markdown プレビュー)を整える。提案ベースで、整っていればスキップ。


使用技術

  • baserCMS 5系 を使用(内部的には CakePHP 5.0.5 ベース)
  • バックエンド:PHP 8.1.5 〜 8.2 / CakePHP 5.0.5
  • データベース:MySQL 5.7 〜 8.0
  • フロントエンド:jQuery 1.x〜3.x(プロジェクト内で複数バージョンが混在している可能性あり)
  • HTTPサーバ:Apache(mod_rewrite 有効)

ディレクトリ構成のルール

  • MVC構成は CakePHP 5.0.5 に準拠しつつ、baserCMSでは主にプラグイン単位で構築されている
    • htdocs/plugins/{Plugin名}/Controller/, Model/, View/ にそれぞれ配置される
  • 共通パーツ(ヘッダー、フッターなど)は、テーマ内の Elements/ ディレクトリに配置
    • 主に:htdocs/{テーマ名}/templates/element/
  • レイアウトもテーマ内に配置される
    • 主に:htdocs/{テーマ名}/templates/layout/
    • $this->layout により切り替えが可能
  • 管理画面系は /admin/ プレフィックスのURLルーティングで制御
    • 使用ファイル:htdocs/config/.env
    • 定義内容:export ADMIN_PREFIX="admin"

コーディング方針(baserCMS5固有)

共通ルールのコーディング方針も参照してください。

  • クラスベースよりも関数ベース・手続き的なコードが多く採用されている
  • JavaScript は Viewファイル内の <script> タグ内または .js ファイルに記述
  • Ajax通信は jQuery($.ajax())を用いて行う
  • ES6構文(Promise, fetch, import/export)は使用しない
  • フロント実装に React や Vue などの SPA 技術は導入していない
    • 一部、部分的に利用している箇所がある

命名規則(baserCMS5固有)

共通ルールの命名規則も参照してください。

※ baserCMSやCakePHPの命名慣習(Controller, Helper, Modelなど)はそのまま準拠する


ログ・エラーハンドリング方針(baserCMS5固有)

共通ルールのログ・エラーハンドリング方針も参照してください。

目的: /log エイリアスや、例外処理実装時の提案精度向上

baserCMS5固有の実装方法
  • 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() などを使用し、手書きは控えめにする

実装パターンの正本は分野別スキルへ

具体的な実装パターン(要点・落とし穴を含む)は、分野別の正本スキルに集約している。

  • プラグイン開発(Table/Entity・コントローラ・管理画面フォーム・イベント・Vue/JS 等)→ basercms5-plugin-development
  • テーマ開発(layout/element・ウィジェット・メールフォームテンプレ・アセット)→ basercms5-theme-development

4→5 移行作業そのものは basercms4-to-5-upgrade / basercms-plugin-4-to-5-upgrade / basercms-theme-4-to-5-upgrade を参照。


ファイル・ディレクトリに関する扱いルール

目的: AIがコードを解析・提案する際に、以下の3つの分類に基づいて適切に扱うことで、不要な提案や誤った変更を防ぎます。

  • 読み取り専用:フレームワークのコアファイルなど、参照はするが変更は禁止
  • 設定調査用:設定値を確認するために参照するが、変更は禁止

以下の分類に基づいて、ファイル・ディレクトリの扱いを明確に区別してください。

読み取り専用(AI/人間が参照するが改変しないこと)
  • htdocs/vendor/baserproject/(baserCMS のコア)
  • htdocs/vendor/cakephp/(CakePHP 本体)
設定調査用(内容の把握目的。値の取得などには使うが変更禁止)
  • htdocs/config/install.php(接続設定の確認)
  • htdocs/config/.env.php(ルーティング・デバッグ設定などの調査)
  • htdocs/bin/cake(CLI の仕様確認)
  • htdocs/webroot/index.php, .htaccess(起動ファイル・Rewrite設定)

サーバ構成・制約(baserCMS5固有)

共通ルールのサーバ構成・制約も参照してください。

  • baserCMS はドキュメントルート配下に配置(index.php がルート)

制約・注意点

  • baserCMS の標準構成に準拠したカスタマイズが基本(コアハック禁止)
  • Laravel や CakePHP 5系など、他フレームワークへの置き換え提案は不要
  • モダン JS フレームワーク(Vue, React など)に関する提案も不要
  • 検討や提案を行う場合は、既存構成との互換性と影響を最優先に考慮すること
  • PHP 8.1.5の制約を考慮した実装を心がける
  • jQuery 1.x〜3.xの互換性を保つ
  • MySQL 5.7〜8.0の両方で動作するSQL文を使用
  • CakePHP4系準拠。Table / Entity の責務分離を意識。
  • バリデーションは Table クラスに定義。
  • データベース変更は Migration (phinx) を利用。

评论

支持 Markdown