Nói chung, việc sử dụng các ký tự viết hoa trong tên máy mô-đun không tạo ra vấn đề: PHP không tạo ra sự khác biệt giữa myModule_get_value()
, và mymodule_get_value()
, $value = myModule_get_value()
sẽ gọi một trong hai myModule_get_value()
, hoặc mymodule_get_value()
.
Mặc dù, có một trường hợp sử dụng các ký tự chữ hoa trong tên máy của mô-đun sẽ gây ra sự cố: khi xác định móc cập nhật cho mô-đun. drupal_get_schema_versions()
, hàm trả về danh sách các bản cập nhật có sẵn, chứa mã sau đây.
// Prepare regular expression to match all possible defined hook_update_N().
$regexp = '/^(?P<module>.+)_update_(?P<version>\d+)$/';
$functions = get_defined_functions();
// Narrow this down to functions ending with an integer, since all
// hook_update_N() functions end this way, and there are other
// possible functions which match '_update_'. We use preg_grep() here
// instead of foreaching through all defined functions, since the loop
// through all PHP functions can take significant page execution time
// and this function is called on every administrative page via
// system_requirements().
foreach (preg_grep('/_\d+$/', $functions['user']) as $function) {
// If this function is a module update function, add it to the list of
// module updates.
if (preg_match($regexp, $function, $matches)) {
$updates[$matches['module']][] = $matches['version'];
}
}
Dòng cuối cùng được thực hiện từ drupal_get_schema_versions()
là dòng sau.
return empty($updates[$module]) ? FALSE : $updates[$module];
Nếu tên mô-đun là myModule.module, drupal_get_schema_versions('myModule')
sẽ chỉ trả về các hàm có tên bắt đầu bằng myModule_update và kết thúc bằng một số; các hàm như mymodule_update_7120()
sẽ không được bao gồm vì biểu thức chính quy được sử dụng drupal_get_schema_versions()
là phân biệt chữ hoa chữ thường. Điều này vẫn áp dụng cho Drupal 8, vì biểu thức chính quy vẫn được sử dụng tương tự trong Drupal 7.