協力的なプロジェクトを堅牢にするためには、一貫性および安定性が必要です。
このガイドラインは、Moodleコードが目指すゴールを提示するためにあります。 間違いなく、いくつかの古いコードは少数の場所で目標基準に達していませんが、最終的に修正します。 すべての新しいコードは、これらの基準を可能な限り確実に順守してください。
ヘルプファイルを更新したい場合は:
他のスタイルを使用してきた場合、あなたのスタイルを変更することは少々面倒なことであると私は理解しています。しかし、後で人々が雑多なスタイルが使用されたMoodleコードの意味を理解する面倒さと、この面倒さのバランスを取る必要があります。人々が使用するスタイルには、明らかに良い部分もありますが、現在のスタイルはこのスタイルですので、どうか従ってください。
良い: $quiz
良い: $errorstring
良い: $assignments (for an array of objects)
良い: $i (but only in little loops)
悪い: $Quiz
悪い: $aReallyLongVariableNameWithoutAGoodReason
悪い: $error_string
define("FORUM_MODE_FLATOLDEST", 1);
function forum_set_display_mode($mode=0)
{
global $USER,
$CFG;
if ($mode)
{
$USER->mode
= $mode;
} else if (empty($USER->mode))
{
$USER->mode
= $CFG->forum_displaymode;
}
}
if ($quiz->attempts)
{
if ($numattempts >
$quiz->attempts)
{
error($strtoomanyattempts,
"view.php?id=$cm->id");
}
}
$var = 'some text without any
variables';
$var = "with special characters like a new line \n";
$var = 'a very, very long string with a '.$single.' variable in it';
$var = "some $text with $many variables $within it";
/**
* The description should be first, with asterisks laid out exactly
* like this example. If you want to refer to a another function,
* do it like this: {@link clean_param()}. Then, add descriptions
* for each parameter as follows.
*
* @param int $postid The PHP type is followed by the variable name
* @param array $scale The PHP type is followed by the variable name
* @param array $ratings The PHP type is followed by the variable name
* @return mixed
*/
function forum_get_ratings_mean($postid,
$scale, $ratings=NULL)
{
if (!$ratings)
{
$ratings
= array(); //
Initialize the empty array
if ($rates
= get_records("forum_ratings",
"post", $postid))
{
//
Process each rating in turn
foreach
($rates as $rate)
{
....etc
foreach ($objects
as $key =>
$thing) {
process($thing);
}
if ($x ==
$y)
{
$a
= $b;
} else if ($x ==
$z) {
$a
= $c;
} else {
$a
= $d;
}
良い: $quiz
悪い: $b = $a;
良い: $b = clone($a);
$a = array()
または $obj = new stdClass();
。optional_variable()
関数は使用しないでください。代わりに optional_param()
関数を使用してください。あなたが必要なデータタイプのために正しい PARAM_XXXX 値を選択してください。変数の任意の値をチェックおよびセットする場合、set_default()
関数を使用してください。require_variable()
関数を使用しないでください。代わりに required_param()
関数を使用してください。あなたが必要なデータタイプのために正しい PARAM_XXXX 値を選択してください。data_submitted()
を使用してください。データは使用される前に、さらにきれいにする必要があります。$_GET
、$_POST
または $_REQUEST
を使用しないでください。必要に応じて、適切な required_param()
または optional_param()
を使用してください。if (isset($_GET['something']))
のようなものを使用して動作をチェックしないでください。例えば $something = optional_param('something',-1,PARAM_INT)
を使用して、適切な値の幅に入っているかテストしてください。例 if ($something>=0) {...
required_param()
、optional_param()
および他の変数を各ファイルの最初で初期化してください。<input type="hidden" name="sesskey" value="<?php echo sesskey(); ?>" />
と使用します。フォームの処理を行うときは、 if (!confirm_sesskey()) {error('Bad Session Key');}
でチェックしてください。required_param()
または optional_param()
の適切な使用で「きれいにされていない」場合、すべてのファイルは clean_filename()
関数を使用して「きれいにする」必要があります。addslashes()
を適用してください。データオブジェクト全体は、addslashes_object()
で一度に処理することができます。GET
データ (例 URLラインからのデータ) とは対照的な POST
データ (method="POST"
によるフォームデータ) を使用してください。$_SERVER
からのデータを使用しないでください。これは移植性に問題があります。clean_param()
関数に通してください。Version: $Id$