At 19:29 08-09-01, Rasmus Lerdorf wrote:
> > At 09:36 08-09-01, Rasmus Lerdorf wrote:
> > > > Using obscure single character operators is simply something that
> we don't
> > > > do in PHP, it's totally inconsistent with the language.
> > >
> > >You know I hate magic more than most. I have lobbied against it forever.
> >
> > Well, you did in certain occasions, but you encouraged certain degrees of
> > magic in the past.
>
>As did you. You don't call <?= magic? You lobbied hard to make that
>active by default. I wouldn't call <?="Whoa"?> pure, would you? If you
>don't know what it does, where do you start looking?
I don't consider <?= magic anymore than <?. It should be documented in the
list of PHP's special tags. You could argue the same about <? itself,
they're equally fundamental. _() is magic, magic quotes is magic. <?= is
some trick, at best :)
>There is a heck of a lot more to gettext than just knowing the gettext()
>function. Anybody who inherits code which uses gettext is going to have
>to read up on textdomain, .po files and the other related crud and
>understand the conventions. One of these conventions, like it or not, is
>_(). None of this stuff is covered in the PHP documentation. Just like
>anybody who inherits PHP code with regular expressions or complex SQL are
>going to have to read up on the conventions of those technologies which
>also aren't covered in the PHP docs.
You still don't see the point. People don't have the faintest clue that
_() is even related to gettext! It doesn't look like a function but as
some form of an internal operator.
>Exactly the same goes for <?= unless you happen to stumble across the
>one-line footnote on the php.net/echo page.
So that's a documentation bug. It clearly belongs in the documentation
about PHP's various special tags, just next to <?php, <?, <%, <%= <script
language="php">, etc. There's a logical place to look for that entry.
> > Cris showed a trivial way of doing that, if users actually want to do
> > it. function _($str) { return gettext($str); }. You don't need any new
> > mechanisms or magic to do this.
>
>We both know that this is going to affect performance. Just for kicks I
>tested this on one of my gettext pages. I picked a relatively simple one
>that didn't have any SQL or LDAP queries in it. With the _() calls it
>managed 110 requests/second. With:
>
> function g($str) { return gettext($str); }
>
>it got 81 requests/second. To me that is not a trivial workaround. And
>like I mentioned before, if we had some way of installing this function in
>the namespace dynamically, I would be all for it.
We could have a way of aliasing functions.
> > At least give the user the option to decide whether he wants to pollute his
> > namespace. At least give the code readers a chance to figure out what's
> > going on by grepping the PHP source code. Sending them to the C source
> > code or to debuggers is the old style thinking of PHP. Most new comers to
> > PHP today have no C knowledge.
>
>And most have ASP knowledge? And where is my option to not pollute PHP
>with <?= ? Even with asp_tags set to off <?= is still active.
You're right that <?= is not self explanatory. FWIW, it still falls in a
very clear category of language-level features, right next to <? and <?php,
which you have to learn anyway (and again, if it's missing, so that's a
documentation bug that can be fixed). This is not something you could say
about _().
Zeev
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]