MantisBT: master-2.0.x 6a165ba5

Author Committer Branch Timestamp Parent
Paul Richards Paul Richards master-2.0.x 2012-10-28 15:27 master-2.0.x 82d615b8
Changeset

Replace PHP UTF-8 library with PHP's mbstring extension

Git Commit ID: beb4c5b8381c0f0eca99de23e1021fcebdc51c7a

For MantisBT 1.2.x, the PHP UTF-8 library at [1] was selected to provide
proper Unicode support to MantisBT. This library wraps around PHP's
mbstring extension and provides an alternative implemented-in-PHP
approach where the mbstring extension is not available on a server
running MantisBT. mbstring is a PHP extension that is not bundled with
PHP by default. Linux distributions already package the extension and it
is trivial to install. The extension is also bundled with the Windows
.zip distribution of PHP for Windows users and is also trivial to
install.

The need to support platform configurations where mbstring isn't
available and can't be installed stems from the days when shared hosting
was popular. With the popularisation of virtualisation (virtual private
servers) as a cheap replacement to shared hosting, administrators once
again have control over their own platform, allowing them to install PHP
extensions whenever they please. Popular Linux distributions have been
packaging and making the mbstring PHP extension available for a long
time. Installation on Windows platforms is also trivial (relative to the
complexity of Windows platforms due to a lack of software package
management functionality).

Removal of the PHP UTF-8 wrapper simplifies MantisBT's code base and
likely improves performance (no need to wrap function calls and compile
and load an entire UTF-8 library into memory). More importantly,
MantisBT no longer depends on a small library that hasn't seen updates
since 2007. Reliance on mbstring is a less risky option because it is
more widely used and ties in with PHP's official infrastructure and
support/documentation system.

MantisBT's documentation has been updated and expanded to reflect the
new installation requirement. Links to external documentation on php.net
have also been provided to guide new users in performing the simple
action of adding the mbstring extension.

[1] http://sourceforge.net/projects/phputf8/

mod - bug_actiongroup_ext_page.php Diff File
mod - bug_actiongroup_page.php Diff File
mod - bugnote_view_inc.php Diff File
mod - changelog_page.php Diff File
mod - core/authentication_api.php Diff File
mod - core/cfdefs/cfdef_standard.php Diff File
mod - core/classes/MantisUser.class.php Diff File
mod - core/columns_api.php Diff File
mod - core/custom_field_api.php Diff File
mod - core/custom_function_api.php Diff File
mod - core/database_api.php Diff File
mod - core/date_api.php Diff File
mod - core/email_api.php Diff File
mod - core/file_api.php Diff File
mod - core/filter_api.php Diff File
mod - core/form_api.php Diff File
mod - core/install_helper_functions_api.php Diff File
mod - core/lang_api.php Diff File
mod - core/plugin_api.php Diff File
mod - core/print_api.php Diff File
mod - core/relationship_api.php Diff File
mod - core/session_api.php Diff File
mod - core/string_api.php Diff File
mod - core/tag_api.php Diff File
mod - core/user_api.php Diff File
mod - core/version_api.php Diff File
mod - core/xmlhttprequest_api.php Diff File
add - js/jquery.iviewer.min.js Diff File
add - js/jquery.mousewheel.min.js Diff File
add - js/jquery.panzoom.js Diff File
add - js/jquery.splitter.js Diff File
add - js/jquery.tools.min.js Diff File
add - js/jquery.treeview.js Diff File
add - js/menu.js Diff File
add - js/prettify/lang-apollo.js Diff File
add - js/prettify/lang-clj.js Diff File
add - js/prettify/lang-css.js Diff File
add - js/prettify/lang-go.js Diff File
add - js/prettify/lang-hs.js Diff File
add - js/prettify/lang-lisp.js Diff File
add - js/prettify/lang-lua.js Diff File
add - js/prettify/lang-ml.js Diff File
add - js/prettify/lang-n.js Diff File
add - js/prettify/lang-proto.js Diff File
add - js/prettify/lang-scala.js Diff File
add - js/prettify/lang-sql.js Diff File
add - js/prettify/lang-tex.js Diff File
add - js/prettify/lang-vb.js Diff File
add - js/prettify/lang-vhdl.js Diff File
add - js/prettify/lang-wiki.js Diff File
add - js/prettify/lang-xq.js Diff File
add - js/prettify/lang-yaml.js Diff File
add - js/prettify/prettify.min.js Diff File
add - js/sidebar.js Diff File
add - js/template.js Diff File
rm - library/utf8/ChangeLog Diff
rm - library/utf8/LICENSE Diff
rm - library/utf8/README Diff
rm - library/utf8/TODO.tsk Diff
rm - library/utf8/exp/regexunicode.php Diff
rm - library/utf8/index.html Diff
rm - library/utf8/mbstring/core.php Diff
rm - library/utf8/native/core.php Diff
rm - library/utf8/ord.php Diff
rm - library/utf8/readme_mantis.txt Diff
rm - library/utf8/str_ireplace.php Diff
rm - library/utf8/str_pad.php Diff
rm - library/utf8/str_split.php Diff
rm - library/utf8/strcasecmp.php Diff
rm - library/utf8/strcspn.php Diff
rm - library/utf8/stristr.php Diff
rm - library/utf8/strrev.php Diff
rm - library/utf8/strspn.php Diff
rm - library/utf8/substr_replace.php Diff
rm - library/utf8/trim.php Diff
rm - library/utf8/ucfirst.php Diff
rm - library/utf8/ucwords.php Diff
rm - library/utf8/utf8.php Diff
rm - library/utf8/utils/ascii.php Diff
rm - library/utf8/utils/bad.php Diff
rm - library/utf8/utils/patterns.php Diff
rm - library/utf8/utils/position.php Diff
rm - library/utf8/utils/specials.php Diff
rm - library/utf8/utils/unicode.php Diff
rm - library/utf8/utils/validation.php Diff
mod - manage/proj_cat_update.php Diff File
mod - manage/proj_edit_page.php Diff File
mod - manage/tags_page.php Diff File
mod - manage/user_page.php Diff File
mod - news_rss.php Diff File
mod - plugins/MantisGraph/pages/bug_graph_bystatus.php Diff File
mod - print_all_bug_options_update.php Diff File
mod - print_all_bug_page_word.php Diff File
mod - print_bugnote_inc.php Diff File
mod - return_dynamic_filters.php Diff File
mod - roadmap_page.php Diff File
mod - search.php Diff File
mod - signup.php Diff File