bugo/smf-compat
最新稳定版本:0.3.9
Composer 安装命令:
composer require bugo/smf-compat
包简介
Wrappers to work with global variables and deprecated functions in SMF
README 文档
README
Description
The package is designed to prepare current SMF 2.1 modifications for the future migration to 3.0.
The proposed utility classes eliminate the need to declare global variables in your modification code.
As a result, your modifications will be able to work in both SMF 2.1 and 3.0, with minimal changes.
Installation
In the root directory of your modification, run the command:
composer require bugo/smf-compat
Then in app.php (or other similar entry point), include autoload.php:
require_once __DIR__ . '/vendor/autoload.php';
Usage
Legacy code
<?php class Example { public function method1() { global $txt; var_dump($txt['hello_world']); } public function method2() { global $user_info, $modSettings; var_dump($user_info['name']); var_dump($modSettings); } }
New code
<?php use Bugo\Compat\Lang; use Bugo\Compat\User; use Bugo\Compat\Config; class Example { public function method1() { var_dump(Lang::$txt['hello_world']); } public function method2() { var_dump(User::$me->name); var_dump(Config::$modSettings); } }
After upgrading to SMF 3.0, it will be enough to replace the used classes. Example:
-use Bugo\Compat\Lang; +use SMF\Lang; -use Bugo\Compat\User; +use SMF\User; -use Bugo\Compat\Config; +use SMF\Config; -use Bugo\Compat\Db; +use SMF\Db\DatabaseApi as Db; // etc.
Or you can leave it as it is. In this case, your modification will support both versions of SMF.
List of suggested replacements
Below are some (not all) changes to variables and functions.
Global variables
| Legacy code (SMF 2.1.x) | New code (SMF 3.0) |
|---|---|
$board |
Board::$id |
$boards |
Board::$loaded |
board_info |
Board::$info |
$modSettings |
Config::$modSettings |
$mbname |
Config::$mbname |
$scripturl |
Config::$scripturl |
$boardurl |
Config::$boardurl |
$boarddir |
Config::$boarddir |
$sourcedir |
Config::$sourcedir |
$cachedir |
Config::$cachedir |
$db_server |
Config::$db_server |
$db_name |
Config::$db_name |
$db_user |
Config::$db_user |
$db_passwd |
Config::$db_passwd |
$db_type |
Config::$db_type |
$db_prefix |
Config::$db_prefix |
$language |
Config::$language |
$cache_enable |
Config::$cache_enable |
$db_show_debug |
Config::$db_show_debug |
$db_count |
Db::$count |
$db_cache |
Db::$cache |
$txt |
Lang::$txt |
$editortxt |
Lang::$editortxt |
$helptxt |
Lang::$helptxt |
$forum_copyright |
Lang::$forum_copyright |
$settings |
Theme::$current->settings |
$options |
Theme::$current->options |
$topic |
Topic::$id |
$user_info |
User::$me |
$user_profile |
User::$profiles |
$context |
Utils::$context |
$smcFunc |
Utils::$smcFunc |
Functions
| Legacy code (SMF 2.1.x) | New code (SMF 3.0) |
|---|---|
saveDBSettings |
ACP::saveDBSettings |
prepareDBSettingContext |
ACP::prepareDBSettingContext |
createAttachment |
Attachment::create |
removeAttachments |
Attachment::remove |
parse_bbc |
BBCodeParser::load()->parse |
cache_get_data |
CacheApi::get |
cache_put_data |
CacheApi::put |
clean_cache |
CacheApi::clean |
getBirthdayRange |
Calendar::getBirthdayRange |
getEventRange |
Calendar::getEventRange |
getHolidayRange |
Calendar::getHolidayRange |
getTodayInfo |
Calendar::getTodayInfo |
getCalendarList |
Calendar::getCalendarList |
getCalendarGrid |
Calendar::getCalendarGrid |
updateSettings |
Config::updateModSettings |
updateSettingsFile |
Config::updateSettingsFile |
create_control_richedit |
new Editor |
fatal_error |
ErrorHandler::fatal |
fatal_lang_error |
ErrorHandler::fatalLang |
log_error |
ErrorHandler::log |
add_integration_function |
IntegrationHook::add |
call_integration_hook |
IntegrationHook::call |
createList |
new ItemList |
censorText |
Lang::censorText |
getLanguages |
Lang::get |
loadLanguage |
Lang::load |
sentence_list |
Lang::sentenceList |
tokenTxtReplace |
Lang::tokenTxtReplace |
logAction |
Logging::logAction |
loadEmailTemplate |
Mail::loadEmailTemplate |
sendmail |
Mail::send |
getBoardList |
MessageIndex::getBoardList |
preparsecode |
Msg::preparseCode |
un_preparsecode |
Msg::un_preparsecode |
getNotifyPrefs |
Notify::getNotifyPrefs |
constructPageIndex |
new PageIndex |
memoryReturnBytes |
Sapi::memoryReturnBytes |
sm_temp_dir |
Sapi::getTempDir |
set_time_limit |
Sapi::setTimeLimit |
checkSubmitOnce |
Security::checkSubmitOnce |
addJavaScriptVar |
Theme::addJavaScriptVar |
addInlineCss |
Theme::addInlineCss |
addInlineJavaScript |
Theme::addInlineJavaScript |
loadCSSFile |
Theme::loadCSSFile |
loadJavaScriptFile |
Theme::loadJavaScriptFile |
loadEssentialThemeData |
Theme::loadEssential |
loadTemplate |
Theme::loadTemplate |
allowedTo |
User::$me->allowedTo |
checkSession |
User::$me->checkSession |
isAllowedTo |
User::$me->isAllowedTo |
membersAllowedTo |
User::getAllowedTo |
updateMemberData |
User::updateMemberData |
JavaScriptEscape |
Utils::escapeJavaScript |
obExit |
Utils::obExit |
redirectexit |
Utils::redirectexit |
send_http_status |
Utils::sendHttpStatus |
shorten_subject |
Utils::shorten |
smf_chmod |
Utils::makeWritable |
smf_json_decode |
Utils::jsonDecode |
get_mime_type |
Utils::getMimeType |
un_htmlspecialchars |
Utils::htmlspecialcharsDecode |
fetch_web_data |
WebFetchApi::fetch |
timeformat |
Time::stringFromUnix |
SSI functions
All functions in SSI.php that were called via ssi_function_name before 3.0 are called this way in 3.0: ServerSideIncludes::function_name.
Working with the database
In compatibility mode, you can use Utils::$smcFunc['db_query'], etc., but also introduced a new class DatabaseApi, with a static property $db containing the class of the current database engine.
The methods of this class are similar to functions in Utils::$smcFunc, but without the db_ prefix.
Let's show on the example of three popular functions:
| Legacy code (SMF 2.1.x) | New code (SMF 3.0) |
|---|---|
global $smcFunc; |
use Bugo\Compat\Db\DatabaseApi as Db; |
$result = $smcFunc['db_query']('', /* Your SQL */, []) |
$result = Db::$db->query('', /* Your SQL */, []) |
$rows = $smcFunc['db_fetch_assoc']($result) |
$rows = Db::$db->fetch_assoc($result) |
$smcFunc['db_free_result']($result) |
Db::$db->free_result($result) |
Examples of using this library
统计信息
- 总下载量: 284
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-02-03