Jump to content

Talk:PHP

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by SuzieDerkins (talk | contribs) at 10:27, 8 March 2008 (→‎Good article nomination). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

The {{GAN}} template should be substituted at the top of the article talk page.

WikiProject iconInternet B‑class Mid‑importance
WikiProject iconThis article is within the scope of WikiProject Internet, a collaborative effort to improve the coverage of the Internet on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
BThis article has been rated as B-class on Wikipedia's content assessment scale.
MidThis article has been rated as Mid-importance on the project's importance scale.
WikiProject iconComputing B‑class High‑importance
WikiProject iconThis article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
BThis article has been rated as B-class on Wikipedia's content assessment scale.
HighThis article has been rated as High-importance on the project's importance scale.

Templating Engines

It seems like this section is far too brief and technical. Does anyone have any objections to me quickly writing up a bit about the use of template engines to separate logic and design? —Preceding unsigned comment added by Attilitus (talkcontribs) 02:27, 10 February 2008 (UTC)[reply]

See my comment on the bottom; I think the section should be removed because template engines are not exclusive to php. There is no reason there should be a template engine section in the php article and not in other languages. Template engines have their own article. -- FatalError (talk | contribs) 04:35, 12 February 2008 (UTC)[reply]

Number of functions in Criticism

The criticism section states that PHP has some 5,000 functions. I agree that this can be an issue, but I don't understand the following sentence, "This is primarily due to the lack of namespaces support." Even if PHP had namespace support, there would still be 5,000 funcitons; they would just be in different namespaces. Also, how can functions be "due to a lack of namspace support?" Just because you have namespaces doesn't mean you will have less functions. Gutworth 02:36, 4 May 2007 (UTC)[reply]

5000+ in the global namespace. I have reworded it. Cburnett 02:51, 4 May 2007 (UTC)[reply]
No such number really exists, I recommend not specifying a number and simply stick to namespaces in general. The quickref that is referred to lists all PECL functions that are documented whereas there are hundreds more PECL extensions that are not documented. Also, most of these 5000+ are not installed by default. In theory this number could just as easily be 1,000,000 and have the same meaning. Philipolson 18:16, 1 July 2007 (UTC)[reply]

Recent changes

Both of these edits have been discussed before. It is commonplace that articles on programming languages become swamped with:

  1. huge listings of code;
  2. huge lists of criticism.

See the archives. On the comment that it isn't a tutorial, the use of second-person and the handy pointers for use would appear to indicate otherwise. On the comment that criticism is best presented in a list format, I can only say that this is obviously a stylistically poor choice for any criticism worth noting (i.e. any with any substance, as opposed to the two jotted notes referenced with blog articles that I removed).

I'm planning on reverting these again; this article has a depressing tendency to slide back into consisting of arbitrary unsourced lists, and all programming articles seem to pick up two-page long code tutorials at some point. Chris Cunningham 18:40, 10 May 2007 (UTC)[reply]

I whole heartedly disagree that things are improved by deleting the items you speak of.
  • Code sections can be trimmed and elaborated upon with respect to how the structure, etc. compares to other languages. The syntax and semantics of a programming language are subject of an encyclopedia.
  • Criticisms are criticisms. Your evaluation of the merit of the criticisms is POV. If a language has a long list of criticisms then why should that list be trimmed for the sake of being trimmed. And don't play the slippery slope card. The criticisms list has been stable (in the sense of a slippery slope not happening) for a while.
Cburnett 19:37, 10 May 2007 (UTC)[reply]
I totally agree on these points, and personally I find code examples totally uninteresting. The syntax of a programming language is best learned elsewhere, and imo should not be the focus of programming language articles on WP.
The criticisms that was removed are more a matter of quirks in the language and implementation specific details rather than actual criticisms.
Jerazol 19:39, 10 May 2007 (UTC)[reply]
Absence of late static binding isn't a quirk. And please don't revert without explaining why. It's rude and not appreciated.Cburnett 19:41, 10 May 2007 (UTC)[reply]
Sorry for not writing an explanation for the reverting. I'm a bit unfamiliar with this popups thing still, and was expecting to get the oportunity to :write an explanation before it was reverted. :-)
To avoid an revert war, we should probably agree on wether to keep, rewrite or delete the disputed sections here on the talk page instead.
Jerazol 19:43, 10 May 2007 (UTC)[reply]
Agreed. As I said above. I think syntax and semantics merit inclusion in an encyclopedia. I support trimming them down and adding in more analysis/comparison to other languages. Outright deleting them is not the right answer.
As for the criticisms. Do you have any criteria other than (my paraphrasing) "it's insignificant and it's posted on a blog" ? I think late static binding definitely should stay (it's not a minor issue by any means and I've seen many bug reports asking for it). Cburnett 19:49, 10 May 2007 (UTC)[reply]
You want to avoid a revert war so you go ahead and revert anyway? Cburnett 19:57, 10 May 2007 (UTC)[reply]
Fair enough with the late static binding criticism, which is actually a major flaw in the OO-implementation, but the note about 32bit vs 64bit integers etc sounds more like a bug, and should imo not be included here.
I think the code examples that have been added is the wrong way to go for adding a discussion on syntax and semantics, and I think it's better to start over fresh rather than elaborate on something which seems fairly arbitrary and specific.
Jerazol 19:58, 10 May 2007 (UTC)[reply]
Code sections do not help one to compare programming languages to one another when presented without comments. I'd argue that they don't help at all when said comments are in place anyway. We shouldn't have two pages of code which is essentially useless in its current form just to encourage people to improve it.
As for the criticisms, if there are better sources then please go ahead and rewrite said crits in a more fluid manner incorporating more reliable sources. I'm sceptical about their importance precisely because of their recent inclusion; most of the other criticisms have been argued over (and reworded) extensively over at least the last year.
But yeah. I'm trying to avoid edit wars in general (call it a late new years' resolution, call it an attempt to improve my community standing) so I'm happy to keep discussing this for now. Chris Cunningham 20:02, 10 May 2007 (UTC)[reply]
The issue with late static binding seems fairly accepted, and is recognised by the team developing PHP. A simple google search turns up a large amount of relevant hits, and it's possible that one could find a better reference among one of these?
Jerazol 20:24, 10 May 2007 (UTC)[reply]
The criticisms section is fairly weak. The list is a poor format and some of the references in this section are not actually criticism at all, making the points seem like OR. There also seems too little on security, which from my experience is the most widespread criticism (valid or not). Also, if things like late static binding are going to stay, it needs at least a few sentences explaining what it is (or a linked to a WP article) and why lack of it is a criticism, and preferably a reference to an actual criticism of PHP for lacking it, not a blog post explaining a patch to add it. NicM 20:20, 10 May 2007 (UTC).[reply]
Lack of late static binding essentially means that you can't override static variables or methods when extending classes. Verifying this is as simple as running the code examples presented on the reference page.
Jerazol 20:46, 10 May 2007 (UTC)[reply]
Yes, I know. My understanding and the fact that PHP doesn't include it is not the issue. The article needs to explain the term and its consequences and it needs a cite that mentions it as a criticism of PHP. NicM 22:29, 10 May 2007 (UTC).[reply]
The point is, we can't criticise PHP for lacking it, we can only say that others have, and for criticisms we really need a good cite. And since it is a relatively esoteric term it needs explanation, although other parts of the article could orobably do with that too. NicM 22:35, 10 May 2007 (UTC).[reply]
Looking again, all of the criticism cites are cites of facts (X added/removed/changed, "here's a patch to do X") or seem fairly unrelated. This section badly needs a cite for each entry justifying it as actual criticism, or it needs to go. NicM 22:43, 10 May 2007 (UTC).[reply]
Are any of these adequate as a reference then: http://www.php.net/~derick/meeting-notes.html#late-static-binding-using-this-without-or-perhaps-with-a-different-name , http://www.zend.com/lists/php-dev/200603/msg00026.html (For the late static binding thing).
As for the other criticisms, I once upon a time tried to prune down the list, but it was quickly reverted. The criticisms has been discussed on this talk page numerous times before, and there seems to have been reached a consensus on what should remain. You're welcome to try to remove it, but I'm guessing there will be other editors in here reverting any such attempts fairly quickly.
Jerazol 06:28, 11 May 2007 (UTC)[reply]
With proper wording and explanation, I think the three URLs could work to justify claiming it is a criticism. As far as the other items are concerned, consensus on what should and shouldn't appear does not justify the lack of cites. None of these claims of criticism are currently verifiable from the article. For now I'll settle for just tagging it. NicM 13:05, 11 May 2007 (UTC).[reply]
Don't let me hold you back. Feel free to do your worst with it, you won't hear any complaints from me :-) Jerazol 13:39, 11 May 2007 (UTC)[reply]
As the deleter-in-chief for a reasonable portion of this article's history, I say be bold and go for it. Removing unsourced staccato prose is fine just on policy grounds; anything notable should be easy to source, and rewriting in complete sentences isn't that difficult. Chris Cunningham 07:47, 11 May 2007 (UTC)[reply]

PHP does not need to explain late static binding, that is what late static binding is for. It may be time to create that article. Absence of late static binding is a larger issue than just overriding static functions. :) Cburnett 16:20, 11 May 2007 (UTC)[reply]

Better to redirect it to name binding and extend that article if necessary. And PHP still needs to explain the term in the context of PHP and particularly wrt to criticism of PHP. NicM 16:51, 11 May 2007 (UTC).[reply]

Web is a name, and as such, it should be captitalised

Web is a short version of the name World Wide Web, and as such, it should be capitalised. "webserver" should be "Web server" just as you would write WWW server, HTTP server, SMTP server, NNTP server, mail server, DNS server, etc. —The preceding unsigned comment was added by 220.152.112.44 (talkcontribs).

Your change broke a lot of links. If you're going to make this change then it has to be more systematic. Cburnett 04:05, 18 May 2007 (UTC)[reply]

Holy war on "spam links"

I feel that the practice of what is and isn't allowed in the external links section is very arbitrary. I may have been incorrect in removing the link to w3schools, but as for the links to the online books, I feel they both add value to the article, but keeping one and removing one on some arbitrary measure of notability is imo wrong. Jerazol¨

WP:EL makes it pretty clear that where there's doubt the prudent course of action is to remove the lot. I'm disinclined to have any tutorials on here at all because it always encourages people to add their own personal favourites; Wikipedia is not a portal site and its purpose is not to teach people how to program. We've got a wikibooks link and AFAIK wikibooks doesn't have the same attitude towards extlinks as wikipedia, so moving them all to the wikibooks article seems like the best course of action all round. Chris Cunningham 19:46, 12 June 2007 (UTC)[reply]
(edit conflict)How do you not know the difference (and added value over the other) of linking to an actual book (added online) by an accredited author with no adsense links and to one that is a non-notable wiki site with a bunch of adsense links and facts taken from other sites? I understand the book site contains a link to the author’s wiki which also contains links to his book but comparing the two as similar is ridiculous. I dont think we need to add a list of wikibooks, but if you are going to add them, add the ones created by notable editors that are actually books instead of ones own wiki. I have my own PHP wiki, can I add mine too? No. I'll either expand on our wikibook here or add notable books by notable editors. Also, http://hudzilla.org/phpwiki/index.php?title=Main_Page is not http://hudzilla.org/php/. But I can see how one can use either link to their advantage when talking spam links. -- I already forgot  talk  19:52, 12 June 2007 (UTC)[reply]
some arbitrary measure of notability... You are kidding right? -- I already forgot  talk  19:59, 12 June 2007 (UTC)[reply]

Security

It's really depressing how many of the Secunia security advisories are related to PHP code not properly sanitising text before it is sent to the database. --203.173.153.34 00:56, 3 July 2007 (UTC)[reply]


Do you have a point? :) Cburnett 03:59, 3 July 2007 (UTC)[reply]
I wonder if this is due to some lacking in the PHP architecture that could be noted in the article - or maybe there are just more PHP applications out there than anything else, and that's why there're more advisories for PHP :). --Thenickdude 12:47, 4 July 2007 (UTC)[reply]
The magic quotes section of Criticism is meant to address this. Chris Cunningham 13:10, 4 July 2007 (UTC)[reply]
That section doesn't address other more serious issues. PHP's security (and its history) isn't only depressing, it's disgusting. For a sysadmin to upgrade the install every other month, with new buffer and integer overflows and other remote exploitable holes found in PHP is ridiculous. PHP is the Sendmail of the web. That said, why isn't there a section detailing poor security and its history and mention languages and web development frameworks that do better in this regard? The web would be more secure without PHP --Strangepics (talk) 18:35, 19 February 2008 (UTC)[reply]

"Multi-paradigm language"

Posted anonymously here stated an advantage of PHP as being a "multi-paradigm[ed] language". I removed this because it doesn't make sense to me. Especially since python has list comprehensions and functions are first-class objects. I guess I'm just confused, so if someone cares to explain then I'm all ears. Cburnett 22:43, 24 July 2007 (UTC)[reply]

I agree -- I've removed "Functional" from the paradigms section in the infobox. It may have been put there by someone who has confused functional programming with procedural programming -- I get the impression that many PHP developers aren't aware of the difference and erroneously use the two terms interchangeably. — jammycakes (t)(c) 21:41, 9 August 2007 (UTC)[reply]

Code outside delimiters sent to output

I think this section is confusing:
"PHP only parses code within its delimiters, such as <?php ?>. Anything outside its delimiters is sent directly to the output and not parsed by PHP."
Consider the following code sample:

<?php
if( true )
{
    ?>
    this is true
    <?php
}
else
{
    ?>
    this is false
    <?php
}
?>

The output is "this is true", even though "this is false" is not between PHP delimiters. Therefore, I think it is untrue to say that anything outside the delimiters is sent directly to the output. Martin 01:55, 3 August 2007 (UTC)[reply]

Obvious question

I can't see anywhere in the article which says what the letters PHP do, or originally did, stand for? As someone new to the subject , surely this is the most obvious piece of information which is missing?

Rrose Selavy

Read the history section Jerazol 08:31, 4 August 2007 (UTC)[reply]

PHP Business implications

All of this technical and historical background is well and good. I would like to see a discussion of the breadth of dispersion of the language. Are there estimates on how widely it's used? What are its competitors (.NET/SQL Server vs. PHP/MySQL and what else)? How has PHP gained market share over time? What are its advantages and disadvantages, other than being free? In short, it would be good to see a discussion of the business implications of PHP.

72.82.227.56 18:58, 6 August 2007 (UTC)Clark Troy[reply]

PHP: Hypertext Preprocessor

I added a little blib about what PHP stands for and links for dynamic and weak typing. I hope no one minds. If you want a source: http://www.w3schools.com/php/php_intro.asp --DFRussia 07:33, 15 August 2007 (UTC)[reply]

Criticism sections are juvenile and laughable

I really don't see the need for "Criticism" sections in an encyclopedia. Criticisms are - by definition - opinions. Opinions don't belong to encyclopedias, facts belong to encyclopedias.

As for computer languages, every known language has critics and proponents. But Wikipedia oddly reports criticism only for some languages, and not for others.

Bias, holy wars and personal opinions: none of this stuff belongs to an encyclopedia.--88.149.232.69 13:24, 16 September 2007 (UTC)[reply]

You're saying that PHP not having late-static binding or namespaces is...not...fact?
And you need to read WP:NPOV. Policy is not absence of views but not giving any one view undue weight. Cburnett 15:34, 16 September 2007 (UTC)[reply]
If it's a fact, just report it as such. You don't need a "criticism" section for that. You don't need to say "some people[weasel words][Why should I care?] criticize X for Y". You just report "Y". Regardless of what WP:NPOV says, facts - not views - are what an encyclopedia is about.--88.149.232.69 16:45, 16 September 2007 (UTC)[reply]
Please read NPOV again: NPOV is "absolute and non-negotiable.". You're obviously new here. Some people consider the absence of namespaces a fault, some don't. Those are two separate views. Cburnett 17:04, 16 September 2007 (UTC)[reply]
If some people view it as a fault and some don't, that just goes to show how pointless a criticism section is. BTW I'm not new at all here, so try to keep your prejudices out of the discussion. The NPOV says you shouldn't give "undue weight" to one view over the others: in which way does this advocate the inclusion of "criticism" sections?--88.149.232.69 18:57, 16 September 2007 (UTC)[reply]
Criticism sections are generally best avoided; this article's one is a hangover from when the article was in a much worse state. There's too much backpush to try removing it again right now though. Chris Cunningham 10:51, 18 September 2007 (UTC)[reply]


NPOV says that those who support a criticism section can't remove a non-criticism section. That would be undue weight. NPOV is not about the absence of POV, which is what you're advocating. Bringing up the fact that you don't understand NPOV is not a prejudice. (You are hardly the first and absolutely not the last to not understand WP:NPOV.) A prejudice would be that your opinion is utterly worthless because you don't have an account or because you're <insert your race here>. That's prejudice. Cburnett (talk) 05:07, 16 January 2008 (UTC)[reply]

NPOV says that those who support a criticism section can't remove a non-criticism section

NPOV says nothing like that.

Bringing up the fact that you don't understand NPOV is not a prejudice.

I said that your presumption "you're obviously new here" is prejudice, as you know nothing about how new or old I am here. As for NPOV comprehension: I find it rather ironic that you feel competent to judge my understanding of the NPOV and then you proceed to misquote it. Enough said.--88.149.249.38 (talk) 01:23, 7 February 2008 (UTC)[reply]
Assumption != prejudice. *sigh*. Anyway, here's a quote from WP:NPOV for you that your supposed tenure here seemed to have missed:
Assert facts, including facts about opinions—but do not assert the opinions themselves. (Bolding not mine.)
The criticisms here aren't "PHP sucks because it doesn't have namespaces!" nor "why the hell is magic quotes even in PHP?!" nor "Those moronic, short-sighted developers didn't add operator overloading!" They aren't stated as opinions, but facts about the language that people criticize it for.
Does PHP support operator overloading? No. [FACT] Have people criticized it? Yes, see bug #9331. [FACT]
At the root of each of the criticisms is a fact about PHP and, as far as I can tell, none of the criticisms are stated as opinions. Please read WP:NPOV (again). Cburnett (talk) 01:54, 7 February 2008 (UTC)[reply]


Why aren't the old criticisms removed? Most of the criticisms are based on older versions of PHP that don't really apply to the current version. Some of the criticisms are based on versions released 6 years ago. —Preceding unsigned comment added by Coeus (talkcontribs) 04:35, 16 January 2008 (UTC)[reply]

I absolutely disagree with your assessment of "most". Cburnett (talk) 05:07, 16 January 2008 (UTC)[reply]
Well, we can disagree on the quantity, but the point still stands. Why are there criticisms in the article on outdated PHP versions? If they really need to have those criticisms in there, put them in the "History" section. —Preceding unsigned comment added by Coeus (talkcontribs) 01:07, 26 January 2008 (UTC)[reply]

I find it interesting the PHP article references a number of other languages within the article and has criticisms yet the three languages it links do (asp, jsp, and ruby on rails [framework]) do not have a criticism section (with the exception of asp.net) and do not have links to the PHP article.... strange I guess PHP must really suck and no one uses it *sarcasm* —Preceding unsigned comment added by 66.207.103.173 (talk) 21:13, 24 January 2008 (UTC)[reply]

What an extremely helpful comment! [/sarcasm] Cburnett (talk) 21:22, 24 January 2008 (UTC)[reply]

Okay, so summarizing, the list so has the following problems:

  1. Some items are about flaws that have been corrected a long time ago (register_globals, magic_quotes). While, as pointed out in the register_globals paragraph, some software may still use this now turned off functionality, it makes no sense to critisize PHP for flaws in software made using it that are not inherent to the usage of PHP.
  2. Several sources suck. The one for the unicode one, for example, points to a page which states that PHP indeed has no support for unicode, not to a page criticizing PHP for not supporting it. In fact, most sources do not point to sites with criticism, but to sites confirming the facts criticized; whether these facts are really a source for criticism can not be checked though.
  3. Criticisms in a separate section are discouraged by Wikipedia at a whole.

Rather than improving it, I'd propose deleting the section as a whole and incorporating a paragraph dealing with the most common criticisms in the "Usage" section. For example:

PHP has received criticism for lack of features or language design flaws. It does not support some of the features similar languages like Ruby or Python have, such as late static binding and operator overloading. There have also been some security-related issues, such as the habit to insert data received over the network directly into the global namespace, or automatic escaping of strings to avoid SQL Injection. Those issues have been resolved in current versions, however. Another point of criticism is the inconsistent naming of functions; function names do not follow a common format, so strpos()-like named functions appear alongside those of the str_replace format, which can be confusing.

Of course properly sourced and such. I do think the old security issues should be mentioned, as they were indeed a big point of criticism back then, but apart from that the paragraph shouldn't be too long and point out every single criticism you can find on the internet. Thoughts? -mrbartjens (talk) 23:45, 20 February 2008 (UTC)[reply]

Resources : Magazines

I think referencing some PHP magazines in the Resources section of the article would be useful :

What do you think ? --Goa103 17:13, 18 September 2007 (UTC)[reply]

This isn't a resource site. php|architect is aready used as a source in the article anyway. We should try to avoid treating the external links section as a way to promote things readers would like to read: it's intended to be a minimal section for links to sites directly applicable to the subject matter (preferably officially). Chris Cunningham 09:17, 19 September 2007 (UTC)[reply]

I just removed a dead link to http://www.corephp.co.uk/archives/19-Prepare-for-PHP-6.html from the "Future development" section (references). The one link left is to meeting notes from 2005. Does anyone else have any good links to more recent PHP 6 information? --Matt Schwartz (talk) 22:26, 7 December 2007 (UTC)[reply]

Apache group reference

Sorry, but this is obviously false, reference or no reference. Have a look around the Apache project website and see if you can come up with a single ref which backs this up. It's obviously rather hard for those of use who believe that PHP is not under the auspices of the ASF because of the difficulties in proving a negative.

Regardless, this is not the most important thing about the language, and should not be the very first clause in the article. The correct place, if additional information is going in, is that the start of the second paragraph, which currently reads "The main implementation is produced by The PHP Group".. Chris Cunningham (talk) 12:28, 21 December 2007 (UTC)[reply]

I ask you kindly to read up on very notable technology book publisher O'Reilly. Have you got a better source for the PHP group than a book by a notable publisher, which contains this same quote in it's second revision (but updates the percentage of the install base from 40% to 53%, indicating the sentence was re-looked at and verified)? Until you do, I'll point you to Wikipedia:Verifiability, and it's first paragraph. Thanks. --TIB (talk) 21:07, 21 December 2007 (UTC)[reply]
It is difficult to prove a negative. It would be hard for me to, say, find a source which definitively states that elephants have never visited the moon, but this does not make it true until proven otherwise. In this case, a detailed look at the Apache Software Foundation's website would reveal that nowhere do they claim to be the copyright holders or developers of PHP, nor does a detailed look at php.net reveal any indication that the Apache Software Foundation runs the project. So I would dispute that a single reference from a source which really should know better is grounds for inclusion. I would strongly dispute that, even if it were to be true, tacking it onto the very start of the introduction like you've done is good for the article, in any case. Chris Cunningham (talk) 09:56, 22 December 2007 (UTC)[reply]
Personally, I too was surprised to learn that the ASF had done it. But this is O'Reilly, the (arguably) definitive programming book publisher, and the statement has survived all revisions of this book. I had thought Zend was responsible all these years, but then again, they are a corporation and would probably take credit for anything. SCO sued a variety of companies affiliated with Linux for doubting that SCO owned linux, didn't they? Also, thank you for the compliment on the location of the statement. I believe that might be one of the reasons it is used to start "Web Database Applications with PHP and MySQL". --TIB (talk) 11:49, 25 December 2007 (UTC)[reply]
I'm sorry, is that comment made with tongue in cheek? If so, I'd appreciate it if you'd remove the text in question, as this would seem to be disrupting Wikipedia to make a point. If I've misunderstood you then I apologise, but I'd like you to clarify why we should continue to keep this text when it is obviously false but difficult to categorically prove the negative statement. Chris Cunningham (talk) 13:16, 25 December 2007 (UTC)[reply]
You say I cannot, I say the rules conflict. But I don't love wikipedia enough to check it religiously, so I cannot maintain my correct edit. Wikipedia is written by those who are more attentive than those who plant the truth, I guess. --TIB (talk) 08:12, 27 December 2007 (UTC)[reply]
In response to TIB's first question above, yes, there is a better source. The PHP source code, etc. is all copyrighted to "The PHP Group 1999-2006". See any of the source files, which direct you to the PHP license. No mention of Apache whatsoever. Oli Filth(talk) 16:33, 25 December 2007 (UTC)[reply]

From WP:SEEALSO:

The "See also" section provides an additional list of related internal links to other articles in Wikipedia. As with all advice in guidelines, whether a link belongs in the "See also" section should be approached with common sense. The section should not link to pages that do not exist, and a good rule of thumb is that it should not repeat links already present in the article.

Italics mine. In this edit, User:Cburnett declared removal on such grounds to be "invalid". On the contrary, this is one of the most pertinent reasons to exclude links from said section. Anyway, planning on removing these again, as they're easily accessible from their relevant sections and the seealso section should not be a dumping ground for arbitrary links. Chris Cunningham (talk) 15:56, 26 December 2007 (UTC)[reply]

Article lead - "reflective"?

The article lead currently opens with "PHP is a reflective computer programming language ...". Is the use of "reflective" here appropriate? Whilst I don't dispute that PHP has reflection capability, the use of this adjective in the opening sentence implies that a great deal of importance and notability is associated with this fact.

I find it hard to believe that PHP is commonly primarily categorised as "reflective", versus, for instance, "object oriented", "imperative" or "dynamically typed". My gut feeling is to remove the use of "reflective" from the lead. Oli Filth(talk) 13:39, 27 December 2007 (UTC)[reply]

Would also help reduce link congestion in the first sentence. Go for it. Chris Cunningham (talk) 13:58, 27 December 2007 (UTC)[reply]
FWIW, I'd have to disagree with replacing reflective with object oriented since it's OO-ness (compared to other languages) is minimal and quite subpar which is the reason you have a problem with reflective. Cburnett (talk) 14:07, 27 December 2007 (UTC)[reply]
I'm not suggesting that we replace the adjective with anything. I was merely using "object oriented", etc. as examples of categorisations which (I think) are more commonly associated with PHP than "reflective" is. Oli Filth(talk) 14:10, 27 December 2007 (UTC)[reply]
I know. That's why I prefaced it with "FWIW". :) Cburnett (talk) 14:37, 27 December 2007 (UTC)[reply]

What is over 20 million?

Of course I know what 20 million is, literally... but I am referring to the following sentence: As of April 2007, over 20 million Internet domains were hosted on servers with PHP installed. I don't think this number is worth anything without the number of all domains hosted (? hosted domains... yeah right ?) or of coarse as a percentage. GreatMagicalHat (talk) 00:44, 3 January 2008 (UTC)[reply]

Duck typing

Saw a recent removal and undo about whether or not PHP has duck typing.

Does it?

Compared to, say, Python then PHP does not have duck typing. For example, you can't have anything walk and quack like an integer that is anything but an integer. Ditto for every other type other than arrays and classes. I think "weak typing" sums up PHP much better than duck typing. Cburnett (talk) 03:53, 21 January 2008 (UTC)[reply]

Possibly, and it's certainly a nicer term. I restored the deletion as the deleter was incorrect in their justification, and not just because you can handle calls to undefined methods in a useful way if desired, but because doing so is not a requirement of DT anyway AFAIK; e.g. A class in Smalltalk will say that it does not understand if receiving an unimplemented selector, but does support DT. The DT entry in WP states: In a duck typed language, the equivalent function would take an object of any type and call that object's walk and quack methods. If the object does not have the methods that are called then the function signals a run-time error. This is possible and is the behaviour of PHP. Similarly, if said function is passed a non-object and a method lookup is made then a runtime error would occur, albeit because the value was not an object rather than an object which did not understand a request. Certainly the language is limited by not having operator overloading and by it not being possible to extend the behaviour of primitive types, but that aside and for good or (IMHO) bad, support for the DT style of programming where there is no requirement for an object instance to belong to any particular class hierarchy or to implement any specific interface in order to code and attempt a particular method call would seem to be in place.
Agreed. The implication was that duck typing was simply the union of dynamic and weak typing. This isn't really the case. Chris Cunningham (talk) 11:58, 21 January 2008 (UTC)[reply]

online sandbox

There seems to be no online PHP sandbox anywhere, for learning/testing. This may partly be because of security issues. But it seems like some other group that wants to brag about how their version is more secure would see this as a challenge/opportunity?

Anyway, most Linux distributions include the AMP software by default. This includes most of the full Linux LiveCDs, so anyone can easily try this software. But the smaller "lite" Linux LiveCD versions do not include this software bundle by default. And it seems that no other major OS includes this software by default?

So, for Windows people, it seems like the best easy way to play with PHP is perhaps to get one of the portable AMP packages, which are summarized at http://www.portablefreeware.com/?sc=125 -69.87.199.127 (talk) 16:00, 30 January 2008 (UTC)[reply]

hello-world template

Folks, I suggest you change the 'hello world' template into more appropriate form of function. The 'echo' shorthand gives a wrong impression of how fucntions are stated in that language, especially while being the first bit of code that reader sees. I think the print("Hello World!"); would be more informative, even if echo is more common to use. 217.168.89.152 (talk) 07:20, 6 February 2008 (UTC)[reply]

I wrote a section on functions to address your concern. Is this acceptable? Cburnett (talk) 14:48, 6 February 2008 (UTC)[reply]

echo function?

The section PHP#Functions detailing functions suggests to the reader that "echo" (although commonly used to output plain-text data) is a function, this is not the case. Php.net itself outlines this fact "echo() is not actually a function (it is a language construct), so you are not required to use parentheses with it."[1].

The following conflicts with the above :"All functions must be called with parentheses unlike, say, Ruby. One exception is the echo function..." —Preceding unsigned comment added by 124.177.101.51 (talk) 06:13, 7 February 2008 (UTC)[reply]

You are welcome to change it yourself but I changed it to something I think is correct now. If not, feel free to change it!  :) Cburnett (talk) 06:32, 7 February 2008 (UTC)[reply]

Templating Engines

Is that section really necessary? There are only a couple sentences that don't really say much. There is a separate article on template engines, so I suggest removing the one in the php article because the engines are not exclusive to the php programming language. -- FatalError (talk | contribs) 04:32, 12 February 2008 (UTC)[reply]

If User:Attilitus (see top) wants to expand it then let him/her do it. Just because it's not exclusive to PHP doesn't mean it can't be discussed. Cburnett (talk) 04:50, 12 February 2008 (UTC)[reply]

Added the PHP logo. If anyone is aganist this, please let me know. Spdaniel91 (talk) 14:05, 19 February 2008 (UTC)[reply]

Unexplained criticism

I removed three items from the "criticism" list today, because they were not accompanied with any reasons for why these items are actually a bad thing, nor did they have any sources pointing to places where they are actualyl critized. Within minutes this was reversed (http://en.wikipedia.org/w/index.php?title=PHP&diff=192809937&oldid=192804706) because "All three (especially the last two) hinder you as a programmer and if you have a clue what they mean then it should be obvious that they speak for themselves.".

While I went probably too far in removing the late static binding-item, I still think the other two have no place in this list (whether a criticism list has a place in this article at all is another question). Not only do those two (non-initialized variables can have operations performed on them, and lack of operator overloading) lack aforementioned sources or reasons for being a bad thing, I think the reversal reason is fairly derogatory and wrong. I have a clue about what both mean, being a web programmer/scripter myself, and I do not think they hinder me. Even if they did, we can not assume the reader of this article is a programmer to whom it "[is] obvious that they speak for themselves". At the very least, said explanation of why these things are worth being critisized is absolutely required here, and so are sources. -mrbartjens (talk) 15:34, 20 February 2008 (UTC)[reply]

The "lack of operator overloading" does have a source, of course, but I think a feature request phrased as "It would be nice to have operator overloading available for classes." doesn't really qualify as "criticism", now does it? -mrbartjens (talk) 15:39, 20 February 2008 (UTC)[reply]
Take it as derogatory or an insult if you want, that's your deal. Not having operator overloading nor late static binding do hinder (I welcome evidence that shows the presence of them would be anything but helpful). Just because you personally don't have a need is irrelevant.
Your reasoning for deleting is that there is no "why are they criticisms" when I contend that is not necessary since they speak for themselves, as anyone who understands what they mean should understand the why. I am not contending that the why can't be added just that the condition of the why being present dictates if they can be present in the list (which was your rationale for deleting them). To better inform: yes include them. To require them to even be mentioned: no, I completely disagree. Cburnett (talk) 16:13, 20 February 2008 (UTC)[reply]
The fact that I understand what they are and yet do not "understand the why" kind of renders your point null then, doesn't it? Of course, I am only one individual, but I doubt I'm the only one thinking like I do. Note that I already said removing the late static binding criticism was a mistake. Furthermore, the fact that "the presence of them would be anything but helpful" is not something I contest; there is a big difference between saying the addition of a certain feature would be nice (as in the "source" for the operator overloading criticism) and actually criticizing the lack of this feature in the current version, though. -mrbartjens (talk) 16:59, 20 February 2008 (UTC)[reply]
Instead of dancing around: absence of "why" is reason to expand not to delete. Cburnett (talk) 23:56, 20 February 2008 (UTC)[reply]
If this section is to serve any real purpose, I think it would be preferable (if not mandatory) that all items on the list were cited to a reliable + notable source as criticism; otherwise, we could all add our own pet peeves ad hoc. Oli Filth(talk) 19:03, 20 February 2008 (UTC)[reply]
WP:V says absolutely nothing about the "notability" of sources. Reliable? Yes. Notable? No. Cburnett (talk) 23:56, 20 February 2008 (UTC)[reply]


I would say that any "substantial" criticisms should be based on true flaws in the language's design or functions (E_NOTICE being off by default, or more generally, the language not having as much safeguards against user mistakes as most, could be valid), not feature requests (operator overloading - which has its own controversies anyways) --Frank Quist (talk) 23:13, 20 February 2008 (UTC)[reply]
"Substantial" is meaningless. Please point out "substantial" in WP:V, WP:NPOV, or WP:NOR.
(Addressing more than just Frank) Look, I'm clearly in the minority here because I seem to be the only one arguing for the criticisms and keeping them. Wanting to weed "non-substantial" criticisms, or wanting "notable" sources, or demanding "the why" are all absolutely absurd.
  • Cherry picking criticisms against some undefinable criterion based on your personal opinion violates NPOV.
  • "Notable" sources is making up policy.
  • Nowhere is "the why" in policy. If it passes WP:V then it stays. It would absolutely make WP a better encyclopedia to include "the why".
All-in-all, I think this article would be worse off for removing criteria for the reasons outlined in this section. Cburnett (talk) 23:56, 20 February 2008 (UTC)[reply]
I think what Oli Filth means with "notable" is that sources pointing to some random blog of a hobby PHP scripter (for example) are not really enough to warrant inclusion in the list, correct me if I'm wrong. I agree with this if this was his point; adding all criticisms that we can find a source for would make the list unnecessarily long and does not accurately reflect what criticisms are really addressing language design flaws and which are just annoyances. I made a proposal in the "Criticism sections are juvenile and laughable" section above, could you take a look at that?
And of course it does not matter that you are the minority. As long as your arguments make sense, you can expect the discussion to be fair too :-) -mrbartjens (talk) 00:26, 21 February 2008 (UTC)[reply]
Yes, that is what I meant. "Notable" was indeed the wrong word, but I was attempting to paraphrase the spirit of things such as WP:SPS. My statement should also have been broken into two sections:
  • All criticisms should be sourced (as opposed to unsourced)
  • Ideally, all sources should be reliable, verifiable, etc.
Oli Filth(talk) 09:54, 21 February 2008 (UTC)[reply]
I've taken the liberty of removing all items not accompanied by a source that describes them as a criticism (I don't think a feature request counts as "criticism"). Feel free to add any back that you can find a reliable source for (although I see debate still remains about the validity of this section's existence at all). Oli Filth(talk) 22:05, 21 February 2008 (UTC)[reply]

Outdated criticisms

I've removed several criticisms I consider quite outdated from the article. I mistakenly thought this would be an uncontroversial edit that did not warrant extensive discussion. These were reverted (twice... why not mention the real reason at once instead of making me re-do work?).

The reason for one revert was that outdated criticisms should be kept for "the aspect of historical interest". I'm under the impression that the article has a "criticisms" section, not a "historical criticisms" section. When does a criticism become void? Why aren't there any criticisms of PHP 1 in the article? PHP 4 has been abandoned by now and is unsupported. Most of the criticisms I removed were of things that were rectified years and years ago. None of these are levelled against current versions of php, obviously. Should the criticisms list just get longer and longer over the years, with every version that has ever been released extensively covered? Don't these criticisms just become trivia after a while?

One argument would be that some of the criticisms related to php breaking older versions, which is a destructive thing. But again, most of this was ages and ages ago. Recent examples should be cited to prove that this is a trait of the language's developers, and not a historical mistake. --Frank Quist (talk) 00:22, 21 February 2008 (UTC)[reply]

Format the references

Could someone please help me format the references in this article, using the {{cite web}} template? Gary King (talk) 20:07, 22 February 2008 (UTC)[reply]

Good Article nomination for PHP

Frankly, considering the popularity of PHP, I'm surprised that the quality of this article isn't higher than what it is high. I'm going to do my best and try to improve the article to pass a Good Article nomination with flying colors, and then eventually try and get a Featured Article status. I would suggest to whoever wants to help out to take a look at Python (programming language) because it is a very well written article about another programming language. Gary King (talk) 22:45, 22 February 2008 (UTC)[reply]

Good article nomination

GA review (see here for criteria)

This is a nice piece of work, but it still has some shortcomings with respect to the good article criteria. The lead section should be expanded to cover most of the subjects covered in the rest of the article.

  1. It is reasonably well written.
    a (prose): b (MoS):
  2. It is factually accurate and verifiable.
    a (references): b (citations to reliable sources): c (OR):
    The number of references is too low. Compare it with Python (programming language) which is about the same length. Several portions (eg, the first paragraph in Server-side scripting section) don't have any citations. Also, I'm not certain about the reliability of TIOBE's ranking of programming languages.
  3. It is broad in its coverage.
    a (major aspects): b (focused):
  4. It follows the neutral point of view policy.
    Fair representation without bias:
    Mmh... there is not a single mention of the security issues with PHP (eg 29% or all vulnerabilites in 2005, 43% in 2006, 26% in 2007...). I haven't found a single piece of criticism in the article, or a pointer to some criticism, although this discussion page seems to talk about such a section... I've just added a paragraph about these issues, just to see how long it stays there before being cleaned up by some zealous hand. --SuzieDerkins (talk) 09:50, 8 March 2008 (UTC)[reply]
  5. It is stable.
    No edit wars etc.:
  6. It is illustrated by images, where possible and appropriate.
    a (images are tagged and non-free images have fair use rationales): b (appropriate use with suitable captions):
  7. Overall:
    Pass/Fail:
    Not ready for the GA status yet.

hujiTALK 11:11, 25 February 2008 (UTC)[reply]

{{tooshort}} tag

I think the tag should stay, because people have been mentioning that the introduction to this article is too short and does not give enough information on the subject. Let's try and expand the introduction instead of playing around with the tag, shall we? It'll help this article out in the long run, anyways. Gary King (talk) 21:54, 27 February 2008 (UTC)[reply]

Can you make some suggestions on what should be included? Cburnett (talk) 21:57, 27 February 2008 (UTC)[reply]
Just get a little bit of information from every section and include it into the introduction. It should give a brief overview of the subject. I would suggest to get information from sections that have a good amount of info, such as History, Popularity (talk about how popular it is and use references to back it up), and talk about Resources and how extensible the language is. Gary King (talk) 22:45, 27 February 2008 (UTC)[reply]
Yes. That is exactly what I was thinking when I readded the {{tooshort}} tag. As you may know, we expect the lead section to follow this guideline. hujiTALK 08:12, 28 February 2008 (UTC)[reply]
Basically, I think we need to make the introduction show why PHP is so popular for people who are not programmers. Quite often, the term PHP is seen on the web but people have no idea why that is so (such as in file extensions; lots of people assume that .html is the only file extension you can have for a website.) Gary King (talk) 16:37, 28 February 2008 (UTC)[reply]
And for that, a very short summary of praises and criticisms should appear in the lead. hujiTALK 19:59, 28 February 2008 (UTC)[reply]
Only add that if you can make it as neutral as possible and as non-technical as possible. When this article had a Criticisms section, it was too technical for a layperson. If you add something negative to say about PHP, then add something positive to balance it out. Gary King (talk) 20:05, 28 February 2008 (UTC)[reply]
THAT IS NOT NPOV! Cburnett (talk) 20:21, 28 February 2008 (UTC)[reply]
WP:CALM. Also, There are a lot of articles solely discussing criticisms of different topics, though. Plus, we haven't put anything in yet. I actually removed the entire Criticisms and Support sections from this article because they were both very technical so they did not add anything to the article; whether they were NPOV or not is up to debate, but from what I recall, they were NPOV because they referenced other sites that discussed these criticisms. Gary King (talk) 20:37, 28 February 2008 (UTC)[reply]
I was referencing the "one negative for one positive" bit is not NPOV. Cburnett (talk) 20:42, 28 February 2008 (UTC)[reply]
The articles I pointed out include primarily negative things to say about their subjects, and pretty much nothing positive to say about them. For instance, I consider saying that "PHP is one of the most widely used programming languages" (referenced, of course) to be a 'positive' statement, whereas "This company was the central figure of a major accounting scandal" to be a negative statement. Gary King (talk) 20:44, 28 February 2008 (UTC)[reply]
"If you add something negative to say about PHP, then add something positive to balance it out." is not NPOV. Tit-for-tat is not NPOV. Cburnett (talk) 20:52, 28 February 2008 (UTC)[reply]
I am referring to WP:CRIT#Neutral point of view where it says "If there are valid counter-arguments to the criticisms, then these must be fairly included." Gary King (talk) 20:58, 28 February 2008 (UTC)[reply]