Loading...
Loading...
Compare original and translation side by side
// ❌ PSR-12 Standard (PascalCase)
class FolderBrowser {}
// ✅ Moodle Standard (lowercase_with_underscores)
class folder_browser {}// ❌ PSR-12 标准(大驼峰命名)
class FolderBrowser {}
// ✅ Moodle 标准(下划线分隔的小写命名)
class folder_browser {}// ❌ PSR-12 Standard (camelCase)
public function getUserData() {}
// ✅ Moodle Standard (lowercase_with_underscores)
public function get_user_data() {}// ❌ PSR-12 标准(小驼峰命名)
public function getUserData() {}
// ✅ Moodle 标准(下划线分隔的小写命名)
public function get_user_data() {}// ❌ PSR-12 Standard (camelCase)
$userData = [];
// ✅ Moodle Standard (lowercase_with_underscores)
$user_data = [];// ❌ PSR-12 标准(小驼峰命名)
$userData = [];
// ✅ Moodle 标准(下划线分隔的小写命名)
$user_data = [];// ❌ Missing component prefix
function get_folder_contents() {}
class folder_browser {}
// ✅ With frankenstyle prefix
function mod_nextcloudfolder_get_folder_contents() {}
class mod_nextcloudfolder_folder_browser {}// ❌ 缺少组件前缀
function get_folder_contents() {}
class folder_browser {}
// ✅ 带有frankenstyle前缀
function mod_nextcloudfolder_get_folder_contents() {}
class mod_nextcloudfolder_folder_browser {}// ✅ Correct
function example() {
if ($condition) {
do_something();
}
}// ✅ 正确格式
function example() {
if ($condition) {
do_something();
}
}// ⚠️ Moodle allows up to 180 characters per line
$result = $DB->get_record_sql('SELECT * FROM {table} WHERE field1 = ? AND field2 = ? AND field3 = ?', [$param1, $param2, $param3]);// ⚠️ Moodle 允许每行最多180字符
$result = $DB->get_record_sql('SELECT * FROM {table} WHERE field1 = ? AND field2 = ? AND field3 = ?', [$param1, $param2, $param3]);// ✅ Correct
if ($condition) {
// code
}
// ✅ New line for functions/classes
function my_function()
{
// code
}// ✅ 正确格式
if ($condition) {
// 代码
}
// ✅ 函数/类的大括号另起一行
function my_function()
{
// 代码
}// ✅ Correct namespace with frankenstyle
namespace mod_nextcloudfolder\local;
class helper {
// ...
}// ✅ 带有frankenstyle前缀的正确命名空间
namespace mod_nextcloudfolder\local;
class helper {
// ...
}// ✅ One per line, alphabetically sorted
use mod_nextcloudfolder\local\api;
use mod_nextcloudfolder\local\helper;// ✅ 每行一个,按字母顺序排序
use mod_nextcloudfolder\local\api;
use mod_nextcloudfolder\local\helper;undefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedvendor/bin/phpcbf --standard=moodle path/to/plugin/vendor/bin/phpcbf --standard=moodle path/to/plugin/undefinedundefinedundefinedundefined// ❌ Before
function getUserFolders($userid) {
return $DB->get_records('folders', ['userid' => $userid]);
}
// ✅ After
function mod_nextcloudfolder_get_user_folders($userid) {
return $DB->get_records('nextcloudfolder', ['userid' => $userid]);
}// ❌ 修复前
function getUserFolders($userid) {
return $DB->get_records('folders', ['userid' => $userid]);
}
// ✅ 修复后
function mod_nextcloudfolder_get_user_folders($userid) {
return $DB->get_records('nextcloudfolder', ['userid' => $userid]);
}// ❌ Before
function get_folders() {
// ...
}
// ✅ After
/**
* Get all folders for current user.
*
* @return array Array of folder objects
*/
function mod_nextcloudfolder_get_folders() {
// ...
}// ❌ 修复前
function get_folders() {
// ...
}
// ✅ 修复后
/**
* 获取当前用户的所有文件夹。
*
* @return array 文件夹对象数组
*/
function mod_nextcloudfolder_get_folders() {
// ...
}// ❌ Before
class FolderApi {
// ...
}
// ✅ After
namespace mod_nextcloudfolder\local;
/**
* Folder API helper class.
*
* @package mod_nextcloudfolder
* @copyright 2024 Your Name
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class folder_api {
// ...
}// ❌ 修复前
class FolderApi {
// ...
}
// ✅ 修复后
namespace mod_nextcloudfolder\local;
/**
* 文件夹API辅助类。
*
* @package mod_nextcloudfolder
* @copyright 2024 你的名称
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 或更高版本
*/
class folder_api {
// ...
}// ❌ Before (2 spaces or tabs)
function example() {
if ($condition) {
do_something();
}
}
// ✅ After (4 spaces)
function example() {
if ($condition) {
do_something();
}
}// ❌ 修复前(2个空格或制表符)
function example() {
if ($condition) {
do_something();
}
}
// ✅ 修复后(4个空格)
function example() {
if ($condition) {
do_something();
}
}// ❌ Before (>180 chars)
$result = $DB->get_record_sql('SELECT * FROM {table} WHERE field1 = ? AND field2 = ? AND field3 = ? AND field4 = ? AND field5 = ?', [$param1, $param2, $param3, $param4, $param5]);
// ✅ After (split logically)
$sql = 'SELECT * FROM {table}
WHERE field1 = ? AND field2 = ?
AND field3 = ? AND field4 = ?
AND field5 = ?';
$params = [$param1, $param2, $param3, $param4, $param5];
$result = $DB->get_record_sql($sql, $params);// ❌ 修复前(超过180字符)
$result = $DB->get_record_sql('SELECT * FROM {table} WHERE field1 = ? AND field2 = ? AND field3 = ? AND field4 = ? AND field5 = ?', [$param1, $param2, $param3, $param4, $param5]);
// ✅ 修复后(合理拆分)
$sql = 'SELECT * FROM {table}
WHERE field1 = ? AND field2 = ?
AND field3 = ? AND field4 = ?
AND field5 = ?';
$params = [$param1, $param2, $param3, $param4, $param5];
$result = $DB->get_record_sql($sql, $params);✅ PSR-12 Moodle Compliance Check
File: mod/nextcloudfolder/lib.php
Status: ✅ PASSED (or ❌ FAILED)
Issues Fixed:
- ✓ Renamed getUserData() → get_user_data()
- ✓ Added frankenstyle prefix to class folder_browser
- ✓ Fixed indentation (27 lines)
- ✓ Added missing PHPDoc blocks (5 functions)
- ✓ Split 3 lines exceeding 180 characters
Remaining Issues: 0
Next: Run `vendor/bin/phpcs --standard=moodle mod/nextcloudfolder/` to verify.✅ PSR-12 Moodle 合规性检查
文件:mod/nextcloudfolder/lib.php
状态:✅ 通过(或 ❌ 失败)
已修复问题:
- ✓ 将getUserData()重命名为get_user_data()
- ✓ 为folder_browser类添加frankenstyle前缀
- ✓ 修复缩进问题(27行)
- ✓ 补充缺失的PHPDoc块(5个函数)
- ✓ 拆分3行超长行
剩余问题:0
下一步:运行 `vendor/bin/phpcs --standard=moodle mod/nextcloudfolder/` 进行验证。