Edit report at https://bugs.php.net/bug.php?id=18556&edit=1
ID: 18556
Comment by: cankoy at ymail dot com
Reported by: spud at nothingness dot org
Summary: Setting locale to 'tr_TR' lowercases class names
Status: Assigned
Type: Bug
Package: Scripting Engine problem
Operating System: Linux (RedHat 7.2)
PHP Version: 5CVS, 4CVS (2005-10-04)
Assigned To: dmitry
Block user comment: N
Private report: N
New Comment:
> This will probably break a lot of existing PHP Code.
Existing code is already broken for those suffering from this problem, don't
you get it?
I'm not suggesting a permanent turn-off, I'm suggesting a command-line option/a
php.ini directive/whatever fits the design of Php engine to implement this as
an option.
> Why not performing the lookup case-sensitive and if not found fall back to
> case-insensitive? And if found case-insensitive throw a deprecation warning.
You're suggesting more ceremony, where I suggest optionally skipping a
ceremony. Php is an interpreter, performance is important.
Previous Comments:
------------------------------------------------------------------------
[2011-12-07 20:01:07] gerd dot katzenbeisser at gmail dot com
This will probably break a lot of existing PHP Code. Why not performing the
lookup
case-sensitive and if not found fall back to case-insensitive? And if found
case-
insensitive throw a deprecation warning.
------------------------------------------------------------------------
[2011-12-07 18:01:37] cankoy at ymail dot com
This, practically, can't be fixed. Mainly because there's no way to know if 'I'
is uppercase of 'i' or 'ı' since there's not a separate place for Turkish 'I'
in code tables. The same holds for 'i' (can't be known if it's lowercase of 'I'
or 'İ').
I told 2 years ago and will say it again: PHP should provide a way to turn off
case-insensitive function/class name lookup. No good programmer uses this Basic
language feature since identifiers are case-sensitive in all real languages
like Python, Ruby, C#, Java.
------------------------------------------------------------------------
[2011-12-03 22:08:24] sg at facelift-bbt dot com
This bug was first reported 9 years ago? This definetly got to be fixed. This
is a total stopper. I can reproduce it exactly it is shown below.
------------------------------------------------------------------------
[2011-11-06 19:29:44] gerd dot katzenbeisser at gmail dot com
here is a simple test case using the internal class PharFileInfo
<?
$class = 'PharFileInfo';
echo 'Locale: '.setlocale(LC_ALL, '0')."\n";
echo "$class exists? ".var_export(class_exists($class), true)."\n";
echo 'Locale: '.setlocale(LC_ALL, 'tr_TR.UTF-8')."\n";
echo "$class exists? ".var_export(class_exists($class), true);
?>
Output:
Locale: C
PharFileInfo exists? true
Locale: tr_TR.UTF-8
PharFileInfo exists? false
------------------------------------------------------------------------
[2011-09-16 14:18:21] robin dot bussiek at googlemail dot com
@sweiss-at-stylesight thanks for your explanation.
Big +1 for any solution to this topic.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=18556
--
Edit this bug report at https://bugs.php.net/bug.php?id=18556&edit=1