<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
        <title>[PHP-DEV] Complete case-sensitivity in PHP</title>
        <description> Hi,

This post is about bug #18556 (https://bugs.php.net/bug.php?id=18556) 
which is a decade old.

As the recent comments on that page indicate, there's not a 
deterministic way to resolve this issue, apart from eliminating 
tolower() calls for function/class names during lookup. Hence totally 
case-sensitive PHP.

Before opposing with &amp;quot;No, this will break a lot of existing code!&amp;quot;, note 
that I'm not suggesting a static permanent change in the engine; rather 
a runtime option that will need to be enabled (cli option, INI setting), 
without which PHP will work as before.

Since I'm not well versed in the workings of Zend engine, I solicit the 
wisdom/experience of people in this list: Is this doable in a practical 
way, without making grand changes in Zend?

best regards,




-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php</description>
        <link>http://www.serverphorums.com/read.php?7,483074,483074#msg-483074</link>
        <lastBuildDate>Mon, 20 May 2013 05:43:22 +0200</lastBuildDate>
        <generator>Phorum 5.2.18</generator>
        <item>
            <guid>http://www.serverphorums.com/read.php?7,483074,484159#msg-484159</guid>
            <title>Re: [PHP-DEV] Complete case-sensitivity in PHP</title>
            <link>http://www.serverphorums.com/read.php?7,483074,484159#msg-484159</link>
            <description><![CDATA[ On 4/22/2012 11:32 PM, Galen Wright-Watson wrote:<br />
&gt; 2012/4/22 C.Koy&lt;can5koy@gmail.com&gt;<br />
&gt;<br />
&gt;&gt; On 4/21/2012 4:37 AM, Galen Wright-Watson wrote:<br />
&gt;<br />
&gt;&gt; But, I did not start this thread to discuss such bug fix, because:<br />
&gt;&gt;<br />
&gt;&gt; 1. It does not take a genius to figure it out, and should take minutes to<br />
&gt;&gt; implement for someone experienced in the internals. Given the 10 year span<br />
&gt;&gt; and dozens of comments/complaints on the bug's entry, it's hard to say this<br />
&gt;&gt; issue went unnoticed. So I had to conclude that such fix has quietly been<br />
&gt;&gt; overruled for performance and/or other undisclosed reasons.<br />
&gt;&gt;<br />
&gt;<br />
&gt; Why does it matter if a solution is simple?<br />
<br />
It doesn't matter, you've misunderstood.<br />
On the contrary, common sense dictates a simple solution should be <br />
applied (considering how deep in the PHP stack we're talking about).<br />
And that's what makes me curious and confused about why this bug still <br />
exists. See, I'm drawing a conclusion with what little information I <br />
have, and stating the reasonings it's based on (first two statements).<br />
Overall, that and the item following it were an explanation of &quot;why I'm <br />
suggesting a major feature change in solution to a specific bug&quot;, <br />
although noone directly asked me to.<br />
<br />
&gt;<br />
&gt; If it's already been rejected privately, it's time to bring the reasons<br />
&gt; into the open (which is why I asked). If not, it should be considered<br />
&gt; publicly.<br />
<br />
A comment dated 2002-09-26 on bug's page states the bug is fixed. The <br />
next comment dated 2006-02-17 states it reappeared.<br />
I don't know who did what 10, 6 years ago but it's been revoked. Why?<br />
That was the main reason I deemed this bug not fixable, hence suggest <br />
other ways to resolve.<br />
<br />
&gt;&gt;<br />
&gt;&gt; The abstract property that makes a locale problematic is obvious. I was<br />
&gt; looking for specific locales, as they need to be identified for a complete<br />
&gt; solution.<br />
&gt;<br />
<br />
I'm not locale expert. Given the public complaints/bugs we can, in <br />
practice, assume this affects Turkish and Azerbaijani only. (I don't <br />
know about Kurdish)<br />
<br />
best regards,<br />
<br />
<br />
<br />
<br />
<br />
-- <br />
PHP Internals - PHP Runtime Development Mailing List<br />
To unsubscribe, visit: <a href="http://www.php.net/unsub.php" target="_blank"  rel="nofollow">http://www.php.net/unsub.php</a>]]></description>
            <dc:creator>C.Koy</dc:creator>
            <category>php-internals</category>
            <pubDate>Mon, 23 Apr 2012 12:30:02 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.serverphorums.com/read.php?7,483074,483920#msg-483920</guid>
            <title>Re: [PHP-DEV] Complete case-sensitivity in PHP</title>
            <link>http://www.serverphorums.com/read.php?7,483074,483920#msg-483920</link>
            <description><![CDATA[ Hi,<br />
<br />
2012/4/23 Galen Wright-Watson &lt;ww.galen@gmail.com&gt;:<br />
&gt;&gt; 2. Absent bug #18556, case-sensitive PHP has merits as I stated in other<br />
&gt;&gt; post and several people voiced opinions in favor. Case-sensitive PHP is<br />
&gt;&gt; worth considering.<br />
&gt;&gt;<br />
&gt;&gt; It is, but it's also a major BC break, hence perhaps better suited for<br />
&gt; PHP6. Case-sensitivity is also a much bigger issue than this bug. A custom<br />
&gt; conversion function, on the other hand, produces the minimum impact of any<br />
&gt; option I've read. As such, it's hopefully a solution for this bug that<br />
&gt; everyone can agree on.<br />
<br />
Conversion script may be provided.<br />
It's a rather simple script with tokenizer.<br />
<br />
Anyway, if we are going to change function name rule, consistent module<br />
function names should better be considered at the same time.<br />
 createimage() htmlentities(), etc should be create_image()/html_entities().<br />
There is alias system. This is just a matter of defining aliases for them.<br />
<br />
Regards,<br />
<br />
--<br />
Yasuo Ohgaki<br />
<a href="mailto:&#121;&#111;&#104;&#103;&#97;&#107;&#105;&#64;&#111;&#104;&#103;&#97;&#107;&#105;&#46;&#110;&#101;&#116;">&#121;&#111;&#104;&#103;&#97;&#107;&#105;&#64;&#111;&#104;&#103;&#97;&#107;&#105;&#46;&#110;&#101;&#116;</a><br />
<br />
-- <br />
PHP Internals - PHP Runtime Development Mailing List<br />
To unsubscribe, visit: <a href="http://www.php.net/unsub.php" target="_blank"  rel="nofollow">http://www.php.net/unsub.php</a>]]></description>
            <dc:creator>Yasuo Ohgaki</dc:creator>
            <category>php-internals</category>
            <pubDate>Sun, 22 Apr 2012 23:20:02 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.serverphorums.com/read.php?7,483074,483910#msg-483910</guid>
            <title>Re: [PHP-DEV] Complete case-sensitivity in PHP</title>
            <link>http://www.serverphorums.com/read.php?7,483074,483910#msg-483910</link>
            <description><![CDATA[ 2012/4/22 C.Koy &lt;can5koy@gmail.com&gt;<br />
<br />
&gt; On 4/21/2012 4:37 AM, Galen Wright-Watson wrote:<br />
&gt;<br />
&gt;&gt; What about instead creating a special-purpose Zend function to normalize<br />
&gt;&gt; class names (zend_normalize_class_name, or zend_classname_tolower)? This<br />
&gt;&gt; function would examine the current locale and, if it's a problematic one,<br />
&gt;&gt; convert the string to lower case on its own (calling zend_tolower on<br />
&gt;&gt; non-problematic characters). Alternatively, zend_normalize_class_name<br />
&gt;&gt; could<br />
&gt;&gt; switch LC_CTYPE to an appropriate locale (e.g. &quot;UTF-8&quot;; the locale could<br />
&gt;&gt; be<br />
&gt;&gt; determined at compile time), call zend_str_tolower_copy, then switch back<br />
&gt;&gt; before returning. Then, any appropriate function (e.g.<br />
&gt;&gt; zend_resolve_class_name, zend_lookup_class_ex, class_exists,  class_alias)<br />
&gt;&gt; would call zend_normalize_class_name instead of zend_str_tolower_copy/<br />
&gt;&gt; zend_str_tolower_dup.<br />
&gt;&gt;<br />
&gt;<br />
&gt; In plain words/pseudo-code, adding an &quot;if statement&quot; at a certain step<br />
&gt; should suffice, like:<br />
&gt;<br />
&gt; 1. lowercase the name;<br />
&gt; 2. if the effective locale is tr_XY, then replace every &quot;ı&quot; with &quot;i&quot;;<br />
&gt; 3. look up the name;<br />
&gt;<br />
&gt; For those who have nothing to do with Turkish locales, that should incur<br />
&gt; the overhead of an &quot;if&quot; condition only.<br />
&gt;<br />
&gt; The fix would need to be applied to at least four functions, so adding a<br />
new function would be more maintainable. Also, there are locales that don't<br />
begin with &quot;tr_&quot; or have &quot;TR&quot; in the locale name, so the condition would<br />
need to be more complex.<br />
<br />
Converting &quot;I&quot; or &quot;ı&quot; separately from lowercase conversion is less<br />
performant than either option I describe, as it requires an extra loop,<br />
which is why I didn't bother suggesting it. I suspect switching the locale<br />
is most performant, as it doesn't require additional tests, though I<br />
haven't examined the cost of setting the locale.<br />
<br />
<br />
&gt; But, I did not start this thread to discuss such bug fix, because:<br />
&gt;<br />
&gt; 1. It does not take a genius to figure it out, and should take minutes to<br />
&gt; implement for someone experienced in the internals. Given the 10 year span<br />
&gt; and dozens of comments/complaints on the bug's entry, it's hard to say this<br />
&gt; issue went unnoticed. So I had to conclude that such fix has quietly been<br />
&gt; overruled for performance and/or other undisclosed reasons.<br />
&gt;<br />
<br />
Why does it matter if a solution is simple? If anything, that a fix &quot;does<br />
not take a genius&quot; is an argument in its favor, if it also solves the<br />
problem.<br />
<br />
If it's already been rejected privately, it's time to bring the reasons<br />
into the open (which is why I asked). If not, it should be considered<br />
publicly.<br />
<br />
<br />
&gt; 2. Absent bug #18556, case-sensitive PHP has merits as I stated in other<br />
&gt; post and several people voiced opinions in favor. Case-sensitive PHP is<br />
&gt; worth considering.<br />
&gt;<br />
&gt; It is, but it's also a major BC break, hence perhaps better suited for<br />
PHP6. Case-sensitivity is also a much bigger issue than this bug. A custom<br />
conversion function, on the other hand, produces the minimum impact of any<br />
option I've read. As such, it's hopefully a solution for this bug that<br />
everyone can agree on.<br />
<br />
<br />
&gt;&gt; Does this bug pop-up for locales other than Turkish, Azerbaijani and<br />
&gt;&gt; Kurdish<br />
&gt;&gt; ?<br />
&gt;&gt;<br />
&gt;<br />
&gt; Theoretically, this problem occurs for any locales sharing a letter<br />
&gt; lowercase of which is different from each other's, and the PHP script<br />
&gt; changes its locale among these locales throughout its execution.<br />
&gt;<br />
&gt; The abstract property that makes a locale problematic is obvious. I was<br />
looking for specific locales, as they need to be identified for a complete<br />
solution.]]></description>
            <dc:creator>Galen Wright-Watson</dc:creator>
            <category>php-internals</category>
            <pubDate>Sun, 22 Apr 2012 22:40:02 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.serverphorums.com/read.php?7,483074,483826#msg-483826</guid>
            <title>Re: [PHP-DEV] Complete case-sensitivity in PHP</title>
            <link>http://www.serverphorums.com/read.php?7,483074,483826#msg-483826</link>
            <description><![CDATA[ On 4/21/2012 4:37 AM, Galen Wright-Watson wrote:<br />
&gt; What about instead creating a special-purpose Zend function to normalize<br />
&gt; class names (zend_normalize_class_name, or zend_classname_tolower)? This<br />
&gt; function would examine the current locale and, if it's a problematic one,<br />
&gt; convert the string to lower case on its own (calling zend_tolower on<br />
&gt; non-problematic characters). Alternatively, zend_normalize_class_name could<br />
&gt; switch LC_CTYPE to an appropriate locale (e.g. &quot;UTF-8&quot;; the locale could be<br />
&gt; determined at compile time), call zend_str_tolower_copy, then switch back<br />
&gt; before returning. Then, any appropriate function (e.g.<br />
&gt; zend_resolve_class_name, zend_lookup_class_ex, class_exists,  class_alias)<br />
&gt; would call zend_normalize_class_name instead of zend_str_tolower_copy/<br />
&gt; zend_str_tolower_dup.<br />
<br />
In plain words/pseudo-code, adding an &quot;if statement&quot; at a certain step <br />
should suffice, like:<br />
<br />
1. lowercase the name;<br />
2. if the effective locale is tr_XY, then replace every &quot;ı&quot; with &quot;i&quot;;<br />
3. look up the name;<br />
<br />
For those who have nothing to do with Turkish locales, that should incur <br />
the overhead of an &quot;if&quot; condition only.<br />
<br />
<br />
But, I did not start this thread to discuss such bug fix, because:<br />
<br />
1. It does not take a genius to figure it out, and should take minutes <br />
to implement for someone experienced in the internals. Given the 10 year <br />
span and dozens of comments/complaints on the bug's entry, it's hard to <br />
say this issue went unnoticed. So I had to conclude that such fix has <br />
quietly been overruled for performance and/or other undisclosed reasons.<br />
2. Absent bug #18556, case-sensitive PHP has merits as I stated in other <br />
post and several people voiced opinions in favor. Case-sensitive PHP is <br />
worth considering.<br />
<br />
&gt;<br />
&gt; Does this bug pop-up for locales other than Turkish, Azerbaijani and Kurdish<br />
&gt; ?<br />
<br />
Theoretically, this problem occurs for any locales sharing a letter <br />
lowercase of which is different from each other's, and the PHP script <br />
changes its locale among these locales throughout its execution.<br />
<br />
best regards,<br />
<br />
<br />
<br />
<br />
<br />
<br />
-- <br />
PHP Internals - PHP Runtime Development Mailing List<br />
To unsubscribe, visit: <a href="http://www.php.net/unsub.php" target="_blank"  rel="nofollow">http://www.php.net/unsub.php</a>]]></description>
            <dc:creator>C.Koy</dc:creator>
            <category>php-internals</category>
            <pubDate>Sun, 22 Apr 2012 11:00:01 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.serverphorums.com/read.php?7,483074,483759#msg-483759</guid>
            <title>Re: [PHP-DEV] Complete case-sensitivity in PHP</title>
            <link>http://www.serverphorums.com/read.php?7,483074,483759#msg-483759</link>
            <description><![CDATA[ Hi,<br />
<br />
I'm just curious if anyone took benchmark.<br />
PoC would be simple enough.<br />
<br />
Some figures are needed for decision.<br />
<br />
Regards,<br />
<br />
--<br />
Yasuo Ohgaki<br />
<a href="mailto:&#121;&#111;&#104;&#103;&#97;&#107;&#105;&#64;&#111;&#104;&#103;&#97;&#107;&#105;&#46;&#110;&#101;&#116;">&#121;&#111;&#104;&#103;&#97;&#107;&#105;&#64;&#111;&#104;&#103;&#97;&#107;&#105;&#46;&#110;&#101;&#116;</a><br />
<br />
-- <br />
PHP Internals - PHP Runtime Development Mailing List<br />
To unsubscribe, visit: <a href="http://www.php.net/unsub.php" target="_blank"  rel="nofollow">http://www.php.net/unsub.php</a>]]></description>
            <dc:creator>Yasuo Ohgaki</dc:creator>
            <category>php-internals</category>
            <pubDate>Sat, 21 Apr 2012 23:00:02 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.serverphorums.com/read.php?7,483074,483726#msg-483726</guid>
            <title>Re: [PHP-DEV] Complete case-sensitivity in PHP</title>
            <link>http://www.serverphorums.com/read.php?7,483074,483726#msg-483726</link>
            <description><![CDATA[ On 04/21/2012 01:56 AM, Johannes � wrote:<br />
&gt; On Sat, 2012-04-21 at 01:16 +0200, Stefan Neufeind wrote:<br />
&gt;&gt; I think we might possibly add a<br />
&gt;&gt; special kind of &quot;deprecation&quot; where the non-matching case would still<br />
&gt;&gt; work but (if you activate those deprecation-warnings) would trigger<br />
&gt;&gt; warnings so you can clean up your code.<br />
&gt; <br />
&gt; yay - two lookups instead of one ;-)<br />
&gt; <br />
&gt; and what would you do in this strange, but possible case:<br />
&gt; The functions Foo() and FOO() exist but the user calls foo()?<br />
<br />
Tell him it doesn't exist and suggest to go fix his code ...<br />
<br />
PS: That was a rethorical question? :-)<br />
<br />
<br />
Regards,<br />
 Stefan<br />
<br />
-- <br />
PHP Internals - PHP Runtime Development Mailing List<br />
To unsubscribe, visit: <a href="http://www.php.net/unsub.php" target="_blank"  rel="nofollow">http://www.php.net/unsub.php</a>]]></description>
            <dc:creator>Stefan Neufeind</dc:creator>
            <category>php-internals</category>
            <pubDate>Sat, 21 Apr 2012 19:00:02 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.serverphorums.com/read.php?7,483074,483716#msg-483716</guid>
            <title>Re: [PHP-DEV] Complete case-sensitivity in PHP</title>
            <link>http://www.serverphorums.com/read.php?7,483074,483716#msg-483716</link>
            <description><![CDATA[ On 12-04-20 07:56 PM, Johannes Schlüter wrote:<br />
&gt; On Sat, 2012-04-21 at 01:16 +0200, Stefan Neufeind wrote:<br />
&gt;&gt; I think we might possibly add a<br />
&gt;&gt; special kind of &quot;deprecation&quot; where the non-matching case would still<br />
&gt;&gt; work but (if you activate those deprecation-warnings) would trigger<br />
&gt;&gt; warnings so you can clean up your code.<br />
&gt;<br />
&gt; yay - two lookups instead of one ;-)<br />
&gt;<br />
&gt; and what would you do in this strange, but possible case:<br />
&gt; The functions Foo() and FOO() exist but the user calls foo()?<br />
<br />
Cry! :)<br />
<br />
Cheers,<br />
Rob.<br />
-- <br />
E-Mail Disclaimer: Information contained in this message and any<br />
attached documents is considered confidential and legally protected.<br />
This message is intended solely for the addressee(s). Disclosure,<br />
copying, and distribution are prohibited unless authorized.<br />
<br />
-- <br />
PHP Internals - PHP Runtime Development Mailing List<br />
To unsubscribe, visit: <a href="http://www.php.net/unsub.php" target="_blank"  rel="nofollow">http://www.php.net/unsub.php</a>]]></description>
            <dc:creator>Robert Cummings</dc:creator>
            <category>php-internals</category>
            <pubDate>Sat, 21 Apr 2012 16:20:02 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.serverphorums.com/read.php?7,483074,483557#msg-483557</guid>
            <title>Re: [PHP-DEV] Complete case-sensitivity in PHP</title>
            <link>http://www.serverphorums.com/read.php?7,483074,483557#msg-483557</link>
            <description><![CDATA[ On Fri, Apr 20, 2012 at 3:20 AM, C.Koy &lt;can5koy@gmail.com&gt; wrote:<br />
<br />
&gt;<br />
&gt; As the recent comments on that page indicate, there's not a deterministic<br />
&gt; way to resolve this issue, apart from eliminating tolower() calls for<br />
&gt; function/class names during lookup. Hence totally case-sensitive PHP.<br />
&gt;<br />
&gt;<br />
What about instead creating a special-purpose Zend function to normalize<br />
class names (zend_normalize_class_name, or zend_classname_tolower)? This<br />
function would examine the current locale and, if it's a problematic one,<br />
convert the string to lower case on its own (calling zend_tolower on<br />
non-problematic characters). Alternatively, zend_normalize_class_name could<br />
switch LC_CTYPE to an appropriate locale (e.g. &quot;UTF-8&quot;; the locale could be<br />
determined at compile time), call zend_str_tolower_copy, then switch back<br />
before returning. Then, any appropriate function (e.g.<br />
zend_resolve_class_name, zend_lookup_class_ex, class_exists,  class_alias)<br />
would call zend_normalize_class_name instead of zend_str_tolower_copy/<br />
zend_str_tolower_dup.<br />
<br />
The two problems with this approach are<br />
1) additional time-cost. However, if done right, this should have little<br />
impact.<br />
2) break class names using words in the locale-language. For example, a<br />
class named &quot;IzgaraGörünümü&quot; would be converted to &quot;izgaragörünümü&quot;, rather<br />
than &quot;ızgaragörünümü&quot;. However, this impact should be less than that caused<br />
by the current bug.<br />
<br />
Does this bug pop-up for locales other than Turkish, Azerbaijani and Kurdish<br />
?]]></description>
            <dc:creator>Galen Wright-Watson</dc:creator>
            <category>php-internals</category>
            <pubDate>Sat, 21 Apr 2012 03:40:03 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.serverphorums.com/read.php?7,483074,483518#msg-483518</guid>
            <title>Re: [PHP-DEV] Complete case-sensitivity in PHP</title>
            <link>http://www.serverphorums.com/read.php?7,483074,483518#msg-483518</link>
            <description><![CDATA[ On Sat, 2012-04-21 at 01:16 +0200, Stefan Neufeind wrote:<br />
&gt; I think we might possibly add a<br />
&gt; special kind of &quot;deprecation&quot; where the non-matching case would still<br />
&gt; work but (if you activate those deprecation-warnings) would trigger<br />
&gt; warnings so you can clean up your code.<br />
<br />
yay - two lookups instead of one ;-)<br />
<br />
and what would you do in this strange, but possible case:<br />
The functions Foo() and FOO() exist but the user calls foo()?<br />
<br />
johannes<br />
<br />
<br />
-- <br />
PHP Internals - PHP Runtime Development Mailing List<br />
To unsubscribe, visit: <a href="http://www.php.net/unsub.php" target="_blank"  rel="nofollow">http://www.php.net/unsub.php</a>]]></description>
            <dc:creator>Johannes Schlüter</dc:creator>
            <category>php-internals</category>
            <pubDate>Sat, 21 Apr 2012 02:00:02 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.serverphorums.com/read.php?7,483074,483512#msg-483512</guid>
            <title>Re: [PHP-DEV] Complete case-sensitivity in PHP</title>
            <link>http://www.serverphorums.com/read.php?7,483074,483512#msg-483512</link>
            <description><![CDATA[ On 04/20/2012 08:48 PM, C.Koy wrote:<br />
&gt; On 4/20/2012 8:57 PM, Kris Craig wrote:<br />
&gt;&gt;<br />
&gt;&gt; Turkish localization notwithstanding (I confess that I know absolutely *<br />
&gt;&gt; nothing* about that lol), one possible use-case could be if you're<br />
&gt;&gt; including an external library/framework that contains a function with the<br />
&gt;&gt; same name but different case.  I'm not sure how likely that is, mind you,<br />
&gt;&gt; but I can see that as one potential benefit.  Either way, I guess my<br />
&gt;&gt; point<br />
&gt;&gt; is that the arguments for/against this seem to parallel the arguments for<br />
&gt;&gt; Windows-style fso case-insensitivity vs. Unix-style fso case-sensitivity.<br />
&gt; <br />
&gt; Java, C#, Python, Ruby... are all case-sensitive. This is not a feature<br />
&gt; to be (mis-)used so that one can have a function named myfunc() and<br />
&gt; MyFunc() in the same code base.<br />
&gt; Case-insensitive class/function/interface names is a confusion for<br />
&gt; everyone with non-PHP development experience. There's not a modern OO<br />
&gt; platform that defines an interface named 'IDispatch' and later allows it<br />
&gt; to be referenced as 'idispatch' or 'iDispatch'. And PHP is becoming more<br />
&gt; OO with every major release.<br />
&gt; Overall, full case-sensitivity seems to be a natural step in PHP's<br />
&gt; evolution.<br />
<br />
I also have the feeling that cleaner code with consistent case would be<br />
a benefit. While I admit we can't change that from one day to the other<br />
(as we couldn't with other changes) I think we might possibly add a<br />
special kind of &quot;deprecation&quot; where the non-matching case would still<br />
work but (if you activate those deprecation-warnings) would trigger<br />
warnings so you can clean up your code.<br />
<br />
Various projects that I work on take explicit care of the case when<br />
auto-creating classnames etc. - not because they must but because they<br />
want to be consistent. And that's the thing I like about it.<br />
<br />
<br />
Regards,<br />
 Stefan<br />
<br />
-- <br />
PHP Internals - PHP Runtime Development Mailing List<br />
To unsubscribe, visit: <a href="http://www.php.net/unsub.php" target="_blank"  rel="nofollow">http://www.php.net/unsub.php</a>]]></description>
            <dc:creator>Stefan Neufeind</dc:creator>
            <category>php-internals</category>
            <pubDate>Sat, 21 Apr 2012 01:20:03 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.serverphorums.com/read.php?7,483074,483419#msg-483419</guid>
            <title>Re: [PHP-DEV] Complete case-sensitivity in PHP</title>
            <link>http://www.serverphorums.com/read.php?7,483074,483419#msg-483419</link>
            <description><![CDATA[ Hi there,<br />
<br />
Out of curiosity, how would one migrate a codebase for full case<br />
sensitivity in PHP? They would need to rewrite their calls of core<br />
functions, plus PECL functions. Those are easy enough to spot, but there<br />
are also custom extensions. True, one could maybe parse the .h files to get<br />
the functions, classes, interfaces etc. as long as there are .h files or<br />
similar, and rewrite everything based on that. However, there are also<br />
userland functions, classes and other identifiers that could be defined<br />
anywhere, from files on disk to an encrypted database somewhere. Plus, as<br />
Matthew pointed out, identifiers are not always fully written in the code:<br />
they can be concatenated or aliased, and these calls would need to be<br />
rewritten too (and good luck finding them all).<br />
<br />
I am sure I have not listed here all the challenges in migrating for this<br />
new functionality, but I hope it will be enough that we do _not_ get case<br />
sensitivity for functions/classes/interfaces/etc. in PHP. The cost truly<br />
outweights the benefits. I can understand why bug #18556 should be fixed,<br />
but I don't understand why the solution should be to make PHP a fully case<br />
sensitive language.<br />
<br />
@C.Koy: until now, tools have been able to cope with PHP's case<br />
insensitivity just fine. I have no idea how difficult it is to do, but<br />
obviously they can do it. And anyway, I use tools _because_ they do some of<br />
the work for me, so that's just a tribute to their usefullness, isn't it?<br />
Regarding other languages, it has been stated before on this list that PHP<br />
is its own language.<br />
<br />
Regards,<br />
<br />
--<br />
Guillaume Rossolini]]></description>
            <dc:creator>Guillaume Rossolini</dc:creator>
            <category>php-internals</category>
            <pubDate>Fri, 20 Apr 2012 23:20:05 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.serverphorums.com/read.php?7,483074,483343#msg-483343</guid>
            <title>Re: [PHP-DEV] Complete case-sensitivity in PHP</title>
            <link>http://www.serverphorums.com/read.php?7,483074,483343#msg-483343</link>
            <description><![CDATA[ On 4/20/2012 9:48 PM, C.Koy wrote:<br />
&gt;<br />
&gt; Java, C#, Python, Ruby... are all case-sensitive. This is not a feature<br />
&gt; to be (mis-)used so that one can have a function named myfunc() and<br />
&gt; MyFunc() in the same code base.<br />
&gt; Case-insensitive class/function/interface names is a confusion for<br />
&gt; everyone with non-PHP development experience. There's not a modern OO<br />
&gt; platform that defines an interface named 'IDispatch' and later allows it<br />
&gt; to be referenced as 'idispatch' or 'iDispatch'. And PHP is becoming more<br />
&gt; OO with every major release.<br />
&gt; Overall, full case-sensitivity seems to be a natural step in PHP's<br />
&gt; evolution.<br />
&gt;<br />
<br />
Let me add this: case-insensitivity is a burden for tool developers.<br />
For example, any ctags-based editor/IDE out there won't find the <br />
definition of myfunc() when you request &quot;Goto tag's definition&quot; if it's <br />
defined as MyFunc().<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
-- <br />
PHP Internals - PHP Runtime Development Mailing List<br />
To unsubscribe, visit: <a href="http://www.php.net/unsub.php" target="_blank"  rel="nofollow">http://www.php.net/unsub.php</a>]]></description>
            <dc:creator>C.Koy</dc:creator>
            <category>php-internals</category>
            <pubDate>Fri, 20 Apr 2012 21:00:02 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.serverphorums.com/read.php?7,483074,483342#msg-483342</guid>
            <title>Re: [PHP-DEV] Complete case-sensitivity in PHP</title>
            <link>http://www.serverphorums.com/read.php?7,483074,483342#msg-483342</link>
            <description><![CDATA[ On 4/20/2012 8:57 PM, Kris Craig wrote:<br />
&gt;<br />
&gt; Turkish localization notwithstanding (I confess that I know absolutely *<br />
&gt; nothing* about that lol), one possible use-case could be if you're<br />
&gt; including an external library/framework that contains a function with the<br />
&gt; same name but different case.  I'm not sure how likely that is, mind you,<br />
&gt; but I can see that as one potential benefit.  Either way, I guess my point<br />
&gt; is that the arguments for/against this seem to parallel the arguments for<br />
&gt; Windows-style fso case-insensitivity vs. Unix-style fso case-sensitivity.<br />
&gt;<br />
<br />
Java, C#, Python, Ruby... are all case-sensitive. This is not a feature <br />
to be (mis-)used so that one can have a function named myfunc() and <br />
MyFunc() in the same code base.<br />
Case-insensitive class/function/interface names is a confusion for <br />
everyone with non-PHP development experience. There's not a modern OO <br />
platform that defines an interface named 'IDispatch' and later allows it <br />
to be referenced as 'idispatch' or 'iDispatch'. And PHP is becoming more <br />
OO with every major release.<br />
Overall, full case-sensitivity seems to be a natural step in PHP's <br />
evolution.<br />
<br />
<br />
<br />
<br />
<br />
-- <br />
PHP Internals - PHP Runtime Development Mailing List<br />
To unsubscribe, visit: <a href="http://www.php.net/unsub.php" target="_blank"  rel="nofollow">http://www.php.net/unsub.php</a>]]></description>
            <dc:creator>C.Koy</dc:creator>
            <category>php-internals</category>
            <pubDate>Fri, 20 Apr 2012 21:00:02 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.serverphorums.com/read.php?7,483074,483337#msg-483337</guid>
            <title>Re: [PHP-DEV] Complete case-sensitivity in PHP</title>
            <link>http://www.serverphorums.com/read.php?7,483074,483337#msg-483337</link>
            <description><![CDATA[ &gt; Could you elaborate?  Aside from making PHP forgiving of typos and overall<br />
&gt; laziness on the part of the coder, and of course BC notwithstanding, I'm not<br />
&gt; sure I understand what benefit there is to preserving this inconsistent<br />
&gt; behavior.<br />
&gt;<br />
<br />
Kris,<br />
<br />
Sorry, first to be clear I made a typo there, but what I'm saying is<br />
PHP currently doesn't care if you do the following:<br />
<br />
&lt;?php<br />
<br />
function Foo() { }<br />
<br />
/* these all work the same obviously */<br />
foo(); Foo(); FOO();<br />
<br />
?&gt;<br />
<br />
However, it does care if you do the following:<br />
<br />
&lt;?php<br />
<br />
$foo = 'bar';<br />
$Foo = 'baz';<br />
$FOO = 'quix';<br />
<br />
?&gt;<br />
<br />
I'm not saying I'm in favor of making PHP case-insensitive. I think<br />
it's fine that it is case-sensitive since it deals with mostly<br />
everything on a binary level. I think the fact that it currently does<br />
allow ASCII case-insensitivity for method/function/class/(and<br />
partially constant) names is somewhat confusing though. It should<br />
probably be either all case-sensitive or not. As you can argue that<br />
there seems to be little reasoning behind wanting $foo and $FOO to be<br />
two different things, but hey that's the arguable part.<br />
<br />
I can't see much reason to breaking any of this now though. I don't<br />
know about others, but I've rarely ever written or worked with PHP<br />
code where function/method names were in anything other than ASCII and<br />
me or anyone else cared about case-sensitivity there. I say it's fine<br />
the way it is and I don't really see anyone presenting a valid use<br />
case for why it should change.<br />
<br />
Just my two cents.<br />
<br />
-- <br />
PHP Internals - PHP Runtime Development Mailing List<br />
To unsubscribe, visit: <a href="http://www.php.net/unsub.php" target="_blank"  rel="nofollow">http://www.php.net/unsub.php</a>]]></description>
            <dc:creator>Sherif Ramadan</dc:creator>
            <category>php-internals</category>
            <pubDate>Fri, 20 Apr 2012 20:50:02 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.serverphorums.com/read.php?7,483074,483320#msg-483320</guid>
            <title>Re: [PHP-DEV] Complete case-sensitivity in PHP</title>
            <link>http://www.serverphorums.com/read.php?7,483074,483320#msg-483320</link>
            <description><![CDATA[ On 2012-04-20, Kris Craig &lt;kris.craig@gmail.com&gt; wrote:<br />
&gt; On Fri, Apr 20, 2012 at 8:44 AM, Sherif Ramadan &lt;theanomaly.is@gmail.com&gt; wrote:<br />
&gt; &gt; &gt; But in order to be case insensitive, PHP needs to know that<br />
&gt; &gt; &gt; strtolower(&quot;A&quot;) == 'a'. So if you use Cyrilic for userland<br />
&gt; &gt; &gt; functions/classes, php needs a cyrillic aware strtolower function.<br />
&gt; &gt; &gt; Then the problem is that core classes/functions need to use a<br />
&gt; &gt; &gt; plain ASCII strtolower for case insensitivity. So you cannot both<br />
&gt; &gt; &gt; write code in cyrillic and interface with plain ASCII internals.<br />
&gt; &gt; &gt; One possible, but less than optimal solution is to first try a<br />
&gt; &gt; &gt; locale aware strtolower, then try a plain ascii strtolower when<br />
&gt; &gt; &gt; looking up symbols.<br />
&gt; &gt;<br />
&gt; &gt; I can see the confusion about PHP's case-sensitivity and how it mixes<br />
&gt; &gt; and matches between case-insensitive functions/classes/(arguably even<br />
&gt; &gt; constants), and case-sensitive variable names, for example.<br />
&gt; &gt;<br />
&gt; &gt; Its naming rules are a little bit inconsistent in that regard. I just<br />
&gt; &gt; don't see a point in making it completely locale aware. The fact that<br />
&gt; &gt; you can do soefunc() and SOMEFUNC() and still invoke the same function<br />
&gt; &gt; is a benefit.<br />
&gt;<br />
&gt; Could you elaborate?  Aside from making PHP forgiving of typos and overall<br />
&gt; laziness on the part of the coder, and of course BC notwithstanding, I'm<br />
&gt; not sure I understand what benefit there is to preserving this inconsistent<br />
&gt; behavior.<br />
<br />
To make extensible and flexible systems, it's not uncommon to<br />
dynamically determine class and function or method names. This task<br />
is far simpler and less expensive if you don't need to worry about the<br />
casing of these names.<br />
<br />
As an example, I often see code like the following:<br />
<br />
    public function setOptions(array $options)<br />
    {<br />
        foreach ($options as $key =&gt; $value) {<br />
            $method = 'set' . $key;<br />
            if (!method_exists($this, $method)) {<br />
                continue;<br />
            }<br />
<br />
            $this-&gt;$method($value);<br />
        }<br />
    }<br />
<br />
This is trivial to implement and understand, and requires no need to<br />
transform the value of $key to an appropriately cased value in order to<br />
ensure the method name exists.<br />
<br />
Making method names case sensitive would break a ton of code, and<br />
require a ton of computational overhead as well as validation to make<br />
code like the above work.<br />
<br />
<br />
-- <br />
Matthew Weier O'Phinney<br />
Project Lead            | <a href="mailto:&#109;&#97;&#116;&#116;&#104;&#101;&#119;&#64;&#122;&#101;&#110;&#100;&#46;&#99;&#111;&#109;">&#109;&#97;&#116;&#116;&#104;&#101;&#119;&#64;&#122;&#101;&#110;&#100;&#46;&#99;&#111;&#109;</a><br />
Zend Framework          | <a href="http://framework.zend.com/" target="_blank"  rel="nofollow">http://framework.zend.com/</a><br />
PGP key: <a href="http://framework.zend.com/zf-matthew-pgp-key.asc" target="_blank"  rel="nofollow">http://framework.zend.com/zf-matthew-pgp-key.asc</a><br />
<br />
-- <br />
PHP Internals - PHP Runtime Development Mailing List<br />
To unsubscribe, visit: <a href="http://www.php.net/unsub.php" target="_blank"  rel="nofollow">http://www.php.net/unsub.php</a>]]></description>
            <dc:creator>Matthew Weier O'Phinney</dc:creator>
            <category>php-internals</category>
            <pubDate>Fri, 20 Apr 2012 20:20:01 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.serverphorums.com/read.php?7,483074,483316#msg-483316</guid>
            <title>Re: [PHP-DEV] Complete case-sensitivity in PHP</title>
            <link>http://www.serverphorums.com/read.php?7,483074,483316#msg-483316</link>
            <description><![CDATA[ On Fri, Apr 20, 2012 at 8:44 AM, Sherif Ramadan &lt;theanomaly.is@gmail.com&gt;wrote:<br />
<br />
&gt; &gt; But in order to be case insensitive, PHP needs to know that<br />
&gt; strtolower(&quot;A&quot;)<br />
&gt; &gt; == 'a'. So if you use Cyrilic for userland functions/classes, php needs a<br />
&gt; &gt; cyrillic aware strtolower function. Then the problem is that core<br />
&gt; &gt; classes/functions need to use a plain ASCII strtolower for case<br />
&gt; &gt; insensitivity. So you cannot both write code in cyrillic and interface<br />
&gt; with<br />
&gt; &gt; plain ASCII internals. One possible, but less than optimal solution is to<br />
&gt; &gt; first try a locale aware strtolower, then try a plain ascii strtolower<br />
&gt; when<br />
&gt; &gt; looking up symbols.<br />
&gt; &gt;<br />
&gt; &gt; John<br />
&gt;<br />
&gt; I can see the confusion about PHP's case-sensitivity and how it mixes<br />
&gt; and matches between case-insensitive functions/classes/(arguably even<br />
&gt; constants), and case-sensitive variable names, for example.<br />
&gt;<br />
&gt; Its naming rules are a little bit inconsistent in that regard. I just<br />
&gt; don't see a point in making it completely locale aware. The fact that<br />
&gt; you can do soefunc() and SOMEFUNC() and still invoke the same function<br />
&gt; is a benefit.<br />
<br />
<br />
Could you elaborate?  Aside from making PHP forgiving of typos and overall<br />
laziness on the part of the coder, and of course BC notwithstanding, I'm<br />
not sure I understand what benefit there is to preserving this inconsistent<br />
behavior.<br />
<br />
<br />
&gt; And I suppose for those using UTF-8 encoded function<br />
&gt; names it might be convenient to make them case-sensitive as well. I'm<br />
&gt; not going to argue that it's not. I'm just going to say that it<br />
&gt; doesn't seem to be a significant problem.<br />
&gt;<br />
<br />
When I was at Microsoft, I got into a little argument with some folks from<br />
the Windows division about this very issue-- except, in this case, it was<br />
about case-sensitivity in the filesystem.  They essentially made the same<br />
argument; i.e. &quot;Why would you want 'Find.exe' and 'find.exe' to be two<br />
separate things?!&quot;  I countered that I may want to add a library to the<br />
PATH that contains a file with the same name, such as UnxUtils.  &quot;Why would<br />
you want to do that?!  Windows' find.exe is way better than the Unix one,<br />
anyway!&quot;....  And then my brain exploded.<br />
<br />
Turkish localization notwithstanding (I confess that I know absolutely *<br />
nothing* about that lol), one possible use-case could be if you're<br />
including an external library/framework that contains a function with the<br />
same name but different case.  I'm not sure how likely that is, mind you,<br />
but I can see that as one potential benefit.  Either way, I guess my point<br />
is that the arguments for/against this seem to parallel the arguments for<br />
Windows-style fso case-insensitivity vs. Unix-style fso case-sensitivity.<br />
<br />
--Kris<br />
<br />
<br />
&gt; --<br />
&gt; PHP Internals - PHP Runtime Development Mailing List<br />
&gt; To unsubscribe, visit: <a href="http://www.php.net/unsub.php" target="_blank"  rel="nofollow">http://www.php.net/unsub.php</a><br />
&gt;<br />
&gt;]]></description>
            <dc:creator>Kris Craig</dc:creator>
            <category>php-internals</category>
            <pubDate>Fri, 20 Apr 2012 20:00:02 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.serverphorums.com/read.php?7,483074,483310#msg-483310</guid>
            <title>Re: [PHP-DEV] Complete case-sensitivity in PHP</title>
            <link>http://www.serverphorums.com/read.php?7,483074,483310#msg-483310</link>
            <description><![CDATA[ On 4/20/2012 6:44 PM, Sherif Ramadan wrote:<br />
&gt;<br />
&gt; Its naming rules are a little bit inconsistent in that regard. I just<br />
&gt; don't see a point in making it completely locale aware. The fact that<br />
&gt; you can do soefunc() and SOMEFUNC() and still invoke the same function<br />
&gt; is a benefit. And I suppose for those using UTF-8 encoded function<br />
&gt; names it might be convenient to make them case-sensitive as well. I'm<br />
&gt; not going to argue that it's not. I'm just going to say that it<br />
&gt; doesn't seem to be a significant problem.<br />
&gt;<br />
<br />
The lowercase of a multi-byte character is not the lowercase of <br />
individual bytes comprising it.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
-- <br />
PHP Internals - PHP Runtime Development Mailing List<br />
To unsubscribe, visit: <a href="http://www.php.net/unsub.php" target="_blank"  rel="nofollow">http://www.php.net/unsub.php</a>]]></description>
            <dc:creator>C.Koy</dc:creator>
            <category>php-internals</category>
            <pubDate>Fri, 20 Apr 2012 19:40:02 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.serverphorums.com/read.php?7,483074,483245#msg-483245</guid>
            <title>Re: [PHP-DEV] Complete case-sensitivity in PHP</title>
            <link>http://www.serverphorums.com/read.php?7,483074,483245#msg-483245</link>
            <description><![CDATA[ &gt; But in order to be case insensitive, PHP needs to know that strtolower(&quot;A&quot;)<br />
&gt; == 'a'. So if you use Cyrilic for userland functions/classes, php needs a<br />
&gt; cyrillic aware strtolower function. Then the problem is that core<br />
&gt; classes/functions need to use a plain ASCII strtolower for case<br />
&gt; insensitivity. So you cannot both write code in cyrillic and interface with<br />
&gt; plain ASCII internals. One possible, but less than optimal solution is to<br />
&gt; first try a locale aware strtolower, then try a plain ascii strtolower when<br />
&gt; looking up symbols.<br />
&gt;<br />
&gt; John<br />
<br />
I can see the confusion about PHP's case-sensitivity and how it mixes<br />
and matches between case-insensitive functions/classes/(arguably even<br />
constants), and case-sensitive variable names, for example.<br />
<br />
Its naming rules are a little bit inconsistent in that regard. I just<br />
don't see a point in making it completely locale aware. The fact that<br />
you can do soefunc() and SOMEFUNC() and still invoke the same function<br />
is a benefit. And I suppose for those using UTF-8 encoded function<br />
names it might be convenient to make them case-sensitive as well. I'm<br />
not going to argue that it's not. I'm just going to say that it<br />
doesn't seem to be a significant problem.<br />
<br />
-- <br />
PHP Internals - PHP Runtime Development Mailing List<br />
To unsubscribe, visit: <a href="http://www.php.net/unsub.php" target="_blank"  rel="nofollow">http://www.php.net/unsub.php</a>]]></description>
            <dc:creator>Sherif Ramadan</dc:creator>
            <category>php-internals</category>
            <pubDate>Fri, 20 Apr 2012 17:50:01 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.serverphorums.com/read.php?7,483074,483244#msg-483244</guid>
            <title>Re: [PHP-DEV] Re: Complete case-sensitivity in PHP</title>
            <link>http://www.serverphorums.com/read.php?7,483074,483244#msg-483244</link>
            <description><![CDATA[ On Fri, 2012-04-20 at 09:21 -0400, Tom Boutell wrote:<br />
&gt; Yup - a one time transition would be preferable to that.<br />
<br />
Then the question is: Why? What's the benefit from a break? Is there a<br />
need to have imagecreatefrompng() next to a ImageCreateFromPNG()? Or is<br />
the reason to be a tiny bit faster? Or is the reason to break<br />
&quot;everything&quot; &quot;just&quot; for consistency?<br />
<br />
johannes<br />
<br />
<br />
<br />
-- <br />
PHP Internals - PHP Runtime Development Mailing List<br />
To unsubscribe, visit: <a href="http://www.php.net/unsub.php" target="_blank"  rel="nofollow">http://www.php.net/unsub.php</a>]]></description>
            <dc:creator>Johannes Schlüter</dc:creator>
            <category>php-internals</category>
            <pubDate>Fri, 20 Apr 2012 17:50:01 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.serverphorums.com/read.php?7,483074,483228#msg-483228</guid>
            <title>Re: [PHP-DEV] Complete case-sensitivity in PHP</title>
            <link>http://www.serverphorums.com/read.php?7,483074,483228#msg-483228</link>
            <description><![CDATA[ On Fri, Apr 20, 2012 at 9:01 AM, Sherif Ramadan &lt;theanomaly.is@gmail.com&gt;wrote:<br />
<br />
&gt; &gt;&gt;Because you can write a function name, say, in Cyrilic and it will just<br />
&gt; work.<br />
&gt; &gt;<br />
&gt; &gt; PHP deals with strings on a binary level though. To PHP a function<br />
&gt; &gt; name of Áãç, for example is just a set of 256 bit encoded bytes. So<br />
&gt; &gt; &quot;\xc3\x81\xc3\xa3\xc3\xa7&quot; is all it sees, right? I'm not sure I<br />
&gt; &gt; follow what the problem is.<br />
&gt;<br />
&gt;<br />
But in order to be case insensitive, PHP needs to know that strtolower(&quot;A&quot;)<br />
== 'a'. So if you use Cyrilic for userland functions/classes, php needs a<br />
cyrillic aware strtolower function. Then the problem is that core<br />
classes/functions need to use a plain ASCII strtolower for case<br />
insensitivity. So you cannot both write code in cyrillic and interface with<br />
plain ASCII internals. One possible, but less than optimal solution is to<br />
first try a locale aware strtolower, then try a plain ascii strtolower when<br />
looking up symbols.<br />
<br />
John]]></description>
            <dc:creator>John LeSueur</dc:creator>
            <category>php-internals</category>
            <pubDate>Fri, 20 Apr 2012 17:30:02 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.serverphorums.com/read.php?7,483074,483210#msg-483210</guid>
            <title>Re: [PHP-DEV] Complete case-sensitivity in PHP</title>
            <link>http://www.serverphorums.com/read.php?7,483074,483210#msg-483210</link>
            <description><![CDATA[ &gt;&gt;Because you can write a function name, say, in Cyrilic and it will just work.<br />
&gt;<br />
&gt; PHP deals with strings on a binary level though. To PHP a function<br />
&gt; name of Áãç, for example is just a set of 256 bit encoded bytes. So<br />
&gt; &quot;\xc3\x81\xc3\xa3\xc3\xa7&quot; is all it sees, right? I'm not sure I<br />
&gt; follow what the problem is.<br />
<br />
Sorry this might not have been sent to the list properly in my last reply.<br />
<br />
-- <br />
PHP Internals - PHP Runtime Development Mailing List<br />
To unsubscribe, visit: <a href="http://www.php.net/unsub.php" target="_blank"  rel="nofollow">http://www.php.net/unsub.php</a>]]></description>
            <dc:creator>Sherif Ramadan</dc:creator>
            <category>php-internals</category>
            <pubDate>Fri, 20 Apr 2012 17:10:02 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.serverphorums.com/read.php?7,483074,483161#msg-483161</guid>
            <title>Re: [PHP-DEV] Complete case-sensitivity in PHP</title>
            <link>http://www.serverphorums.com/read.php?7,483074,483161#msg-483161</link>
            <description><![CDATA[ Because you can write a function name, say, in Cyrilic and it will just<br />
work.<br />
<br />
20 апреля 2012 г. 16:47 пользователь Nikita Popov &lt;nikita.ppv@googlemail.com<br />
&gt; написал:<br />
<br />
&gt; On Fri, Apr 20, 2012 at 12:20 PM, C.Koy &lt;can5koy@gmail.com&gt; wrote:<br />
&gt; &gt; Hi,<br />
&gt; &gt;<br />
&gt; &gt; This post is about bug #18556 (https://bugs.php.net/bug.php?id=18556)<br />
&gt; which<br />
&gt; &gt; is a decade old.<br />
&gt; &gt;<br />
&gt; &gt; As the recent comments on that page indicate, there's not a deterministic<br />
&gt; &gt; way to resolve this issue, apart from eliminating tolower() calls for<br />
&gt; &gt; function/class names during lookup. Hence totally case-sensitive PHP.<br />
&gt; &gt;<br />
&gt; &gt; Before opposing with &quot;No, this will break a lot of existing code!&quot;, note<br />
&gt; &gt; that I'm not suggesting a static permanent change in the engine; rather a<br />
&gt; &gt; runtime option that will need to be enabled (cli option, INI setting),<br />
&gt; &gt; without which PHP will work as before.<br />
&gt; &gt;<br />
&gt; &gt; Since I'm not well versed in the workings of Zend engine, I solicit the<br />
&gt; &gt; wisdom/experience of people in this list: Is this doable in a practical<br />
&gt; way,<br />
&gt; &gt; without making grand changes in Zend?<br />
&gt; I'm not sure whether I really get the issue, but as it seems the<br />
&gt; problem seems to be that PHP is using locale-aware lowercasing<br />
&gt; functions in the core. Couldn't the issue be fixed by replacing those<br />
&gt; with local-unaware functions? Why does one have to change PHPs general<br />
&gt; case sensitivity handling for that?<br />
&gt;<br />
&gt; Nikita<br />
&gt;<br />
&gt; --<br />
&gt; PHP Internals - PHP Runtime Development Mailing List<br />
&gt; To unsubscribe, visit: <a href="http://www.php.net/unsub.php" target="_blank"  rel="nofollow">http://www.php.net/unsub.php</a><br />
&gt;<br />
&gt;]]></description>
            <dc:creator>Arvids Godjuks</dc:creator>
            <category>php-internals</category>
            <pubDate>Fri, 20 Apr 2012 16:00:01 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.serverphorums.com/read.php?7,483074,483158#msg-483158</guid>
            <title>Re: [PHP-DEV] Complete case-sensitivity in PHP</title>
            <link>http://www.serverphorums.com/read.php?7,483074,483158#msg-483158</link>
            <description><![CDATA[ On Fri, Apr 20, 2012 at 12:20 PM, C.Koy &lt;can5koy@gmail.com&gt; wrote:<br />
&gt; Hi,<br />
&gt;<br />
&gt; This post is about bug #18556 (https://bugs.php.net/bug.php?id=18556) which<br />
&gt; is a decade old.<br />
&gt;<br />
&gt; As the recent comments on that page indicate, there's not a deterministic<br />
&gt; way to resolve this issue, apart from eliminating tolower() calls for<br />
&gt; function/class names during lookup. Hence totally case-sensitive PHP.<br />
&gt;<br />
&gt; Before opposing with &quot;No, this will break a lot of existing code!&quot;, note<br />
&gt; that I'm not suggesting a static permanent change in the engine; rather a<br />
&gt; runtime option that will need to be enabled (cli option, INI setting),<br />
&gt; without which PHP will work as before.<br />
&gt;<br />
&gt; Since I'm not well versed in the workings of Zend engine, I solicit the<br />
&gt; wisdom/experience of people in this list: Is this doable in a practical way,<br />
&gt; without making grand changes in Zend?<br />
I'm not sure whether I really get the issue, but as it seems the<br />
problem seems to be that PHP is using locale-aware lowercasing<br />
functions in the core. Couldn't the issue be fixed by replacing those<br />
with local-unaware functions? Why does one have to change PHPs general<br />
case sensitivity handling for that?<br />
<br />
Nikita<br />
<br />
-- <br />
PHP Internals - PHP Runtime Development Mailing List<br />
To unsubscribe, visit: <a href="http://www.php.net/unsub.php" target="_blank"  rel="nofollow">http://www.php.net/unsub.php</a>]]></description>
            <dc:creator>Nikita Popov</dc:creator>
            <category>php-internals</category>
            <pubDate>Fri, 20 Apr 2012 15:50:02 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.serverphorums.com/read.php?7,483074,483152#msg-483152</guid>
            <title>Re: [PHP-DEV] Complete case-sensitivity in PHP</title>
            <link>http://www.serverphorums.com/read.php?7,483074,483152#msg-483152</link>
            <description><![CDATA[ In past years such switches where deprecated and removed (in 5.3 most of<br />
them, in 5.4 finally all that stuff is gone for good). So any solution,<br />
involving a switch that modifies how code is executed will hit a wall of<br />
resistance. It's the lesson that was learned the hard way.<br />
<br />
So it may be the case to make PHP case-sensetive. There will be code<br />
broken, probably a lot. But that can be fixed, and I personally always<br />
write with respect to char case, so that will be no problem for me.<br />
<br />
20 апреля 2012 г. 13:20 пользователь C.Koy &lt;can5koy@gmail.com&gt; написал:<br />
<br />
&gt; Hi,<br />
&gt;<br />
&gt; This post is about bug #18556 (https://bugs.php.net/bug.php?**id=18556<a href="https://bugs.php.net/bug.php?id=18556" target="_blank"  rel="nofollow">https://bugs.php.net/bug.php?id=18556</a>)<br />
&gt; which is a decade old.<br />
&gt;<br />
&gt; As the recent comments on that page indicate, there's not a deterministic<br />
&gt; way to resolve this issue, apart from eliminating tolower() calls for<br />
&gt; function/class names during lookup. Hence totally case-sensitive PHP.<br />
&gt;<br />
&gt; Before opposing with &quot;No, this will break a lot of existing code!&quot;, note<br />
&gt; that I'm not suggesting a static permanent change in the engine; rather a<br />
&gt; runtime option that will need to be enabled (cli option, INI setting),<br />
&gt; without which PHP will work as before.<br />
&gt;<br />
&gt; Since I'm not well versed in the workings of Zend engine, I solicit the<br />
&gt; wisdom/experience of people in this list: Is this doable in a practical<br />
&gt; way, without making grand changes in Zend?<br />
&gt;<br />
&gt; best regards,<br />
&gt;<br />
&gt;<br />
&gt;<br />
&gt;<br />
&gt; --<br />
&gt; PHP Internals - PHP Runtime Development Mailing List<br />
&gt; To unsubscribe, visit: <a href="http://www.php.net/unsub.php" target="_blank"  rel="nofollow">http://www.php.net/unsub.php</a><br />
&gt;<br />
&gt;]]></description>
            <dc:creator>Arvids Godjuks</dc:creator>
            <category>php-internals</category>
            <pubDate>Fri, 20 Apr 2012 15:30:02 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.serverphorums.com/read.php?7,483074,483151#msg-483151</guid>
            <title>Re: [PHP-DEV] Re: Complete case-sensitivity in PHP</title>
            <link>http://www.serverphorums.com/read.php?7,483074,483151#msg-483151</link>
            <description><![CDATA[ Yup - a one time transition would be preferable to that.<br />
<br />
On Fri, Apr 20, 2012 at 9:13 AM, Matthew Weier O'Phinney<br />
&lt;weierophinney@php.net&gt; wrote:<br />
&gt; On 2012-04-20, &quot;C.Koy&quot; &lt;can5koy@gmail.com&gt; wrote:<br />
&gt;&gt; This post is about bug #18556 (https://bugs.php.net/bug.php?id=18556)<br />
&gt;&gt; which is a decade old.<br />
&gt;&gt;<br />
&gt;&gt; As the recent comments on that page indicate, there's not a<br />
&gt;&gt; deterministic way to resolve this issue, apart from eliminating<br />
&gt;&gt; tolower() calls for function/class names during lookup. Hence totally<br />
&gt;&gt; case-sensitive PHP.<br />
&gt;&gt;<br />
&gt;&gt; Before opposing with &quot;No, this will break a lot of existing code!&quot;,<br />
&gt;&gt; note that I'm not suggesting a static permanent change in the engine;<br />
&gt;&gt; rather a runtime option that will need to be enabled (cli option, INI<br />
&gt;&gt; setting), without which PHP will work as before.<br />
&gt;&gt;<br />
&gt;&gt; Since I'm not well versed in the workings of Zend engine, I solicit<br />
&gt;&gt; the wisdom/experience of people in this list: Is this doable in a<br />
&gt;&gt; practical way, without making grand changes in Zend?<br />
&gt;<br />
&gt; It's not just about changes to the engine. If you introduce a runtime<br />
&gt; option that switches behavior, you then get a portability problem --<br />
&gt; code runs fine in one context, but not the other.<br />
&gt;<br />
&gt; --<br />
&gt; Matthew Weier O'Phinney<br />
&gt; Project Lead            | <a href="mailto:&#109;&#97;&#116;&#116;&#104;&#101;&#119;&#64;&#122;&#101;&#110;&#100;&#46;&#99;&#111;&#109;">&#109;&#97;&#116;&#116;&#104;&#101;&#119;&#64;&#122;&#101;&#110;&#100;&#46;&#99;&#111;&#109;</a><br />
&gt; Zend Framework          | <a href="http://framework.zend.com/" target="_blank"  rel="nofollow">http://framework.zend.com/</a><br />
&gt; PGP key: <a href="http://framework.zend.com/zf-matthew-pgp-key.asc" target="_blank"  rel="nofollow">http://framework.zend.com/zf-matthew-pgp-key.asc</a><br />
&gt;<br />
&gt; --<br />
&gt; PHP Internals - PHP Runtime Development Mailing List<br />
&gt; To unsubscribe, visit: <a href="http://www.php.net/unsub.php" target="_blank"  rel="nofollow">http://www.php.net/unsub.php</a><br />
&gt;<br />
<br />
<br />
<br />
-- <br />
Tom Boutell<br />
P'unk Avenue<br />
215 755 1330<br />
punkave.com<br />
window.punkave.com<br />
<br />
-- <br />
PHP Internals - PHP Runtime Development Mailing List<br />
To unsubscribe, visit: <a href="http://www.php.net/unsub.php" target="_blank"  rel="nofollow">http://www.php.net/unsub.php</a>]]></description>
            <dc:creator>Tom Boutell</dc:creator>
            <category>php-internals</category>
            <pubDate>Fri, 20 Apr 2012 15:30:02 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.serverphorums.com/read.php?7,483074,483146#msg-483146</guid>
            <title>[PHP-DEV] Re: Complete case-sensitivity in PHP</title>
            <link>http://www.serverphorums.com/read.php?7,483074,483146#msg-483146</link>
            <description><![CDATA[ On 2012-04-20, &quot;C.Koy&quot; &lt;can5koy@gmail.com&gt; wrote:<br />
&gt; This post is about bug #18556 (https://bugs.php.net/bug.php?id=18556) <br />
&gt; which is a decade old.<br />
&gt;<br />
&gt; As the recent comments on that page indicate, there's not a<br />
&gt; deterministic way to resolve this issue, apart from eliminating<br />
&gt; tolower() calls for function/class names during lookup. Hence totally<br />
&gt; case-sensitive PHP.<br />
&gt;<br />
&gt; Before opposing with &quot;No, this will break a lot of existing code!&quot;,<br />
&gt; note that I'm not suggesting a static permanent change in the engine;<br />
&gt; rather a runtime option that will need to be enabled (cli option, INI<br />
&gt; setting), without which PHP will work as before.<br />
&gt;<br />
&gt; Since I'm not well versed in the workings of Zend engine, I solicit<br />
&gt; the wisdom/experience of people in this list: Is this doable in a<br />
&gt; practical way, without making grand changes in Zend?<br />
<br />
It's not just about changes to the engine. If you introduce a runtime<br />
option that switches behavior, you then get a portability problem --<br />
code runs fine in one context, but not the other. <br />
<br />
-- <br />
Matthew Weier O'Phinney<br />
Project Lead            | <a href="mailto:&#109;&#97;&#116;&#116;&#104;&#101;&#119;&#64;&#122;&#101;&#110;&#100;&#46;&#99;&#111;&#109;">&#109;&#97;&#116;&#116;&#104;&#101;&#119;&#64;&#122;&#101;&#110;&#100;&#46;&#99;&#111;&#109;</a><br />
Zend Framework          | <a href="http://framework.zend.com/" target="_blank"  rel="nofollow">http://framework.zend.com/</a><br />
PGP key: <a href="http://framework.zend.com/zf-matthew-pgp-key.asc" target="_blank"  rel="nofollow">http://framework.zend.com/zf-matthew-pgp-key.asc</a><br />
<br />
-- <br />
PHP Internals - PHP Runtime Development Mailing List<br />
To unsubscribe, visit: <a href="http://www.php.net/unsub.php" target="_blank"  rel="nofollow">http://www.php.net/unsub.php</a>]]></description>
            <dc:creator>Matthew Weier O'Phinney</dc:creator>
            <category>php-internals</category>
            <pubDate>Fri, 20 Apr 2012 15:20:02 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.serverphorums.com/read.php?7,483074,483074#msg-483074</guid>
            <title>[PHP-DEV] Complete case-sensitivity in PHP</title>
            <link>http://www.serverphorums.com/read.php?7,483074,483074#msg-483074</link>
            <description><![CDATA[ Hi,<br />
<br />
This post is about bug #18556 (https://bugs.php.net/bug.php?id=18556) <br />
which is a decade old.<br />
<br />
As the recent comments on that page indicate, there's not a <br />
deterministic way to resolve this issue, apart from eliminating <br />
tolower() calls for function/class names during lookup. Hence totally <br />
case-sensitive PHP.<br />
<br />
Before opposing with &quot;No, this will break a lot of existing code!&quot;, note <br />
that I'm not suggesting a static permanent change in the engine; rather <br />
a runtime option that will need to be enabled (cli option, INI setting), <br />
without which PHP will work as before.<br />
<br />
Since I'm not well versed in the workings of Zend engine, I solicit the <br />
wisdom/experience of people in this list: Is this doable in a practical <br />
way, without making grand changes in Zend?<br />
<br />
best regards,<br />
<br />
<br />
<br />
<br />
-- <br />
PHP Internals - PHP Runtime Development Mailing List<br />
To unsubscribe, visit: <a href="http://www.php.net/unsub.php" target="_blank"  rel="nofollow">http://www.php.net/unsub.php</a>]]></description>
            <dc:creator>C.Koy</dc:creator>
            <category>php-internals</category>
            <pubDate>Fri, 20 Apr 2012 12:30:02 +0200</pubDate>
        </item>
    </channel>
</rss>
