PHP 5.6.0 Released 118
An anonymous reader writes The PHP team has announced the release of PHP 5.6.0. New features include constant scalar expressions, exponentiation using the ** operator, function and constant importing with the use keyword, support for file uploads larger than 2 GB, and phpdbg as an interactive integrated debugger SAPI. The team also notes important changes affecting compatibility. For example: "Array keys won't be overwritten when defining an array as a property of a class via an array literal," json_decode() is now more strict at parsing JSON syntax, and GMP resources are now objects. Here is the migration guide, the full change log, and the downloads page.
It's powerful, but.. (Score:5, Funny)
Have they come up with another way to calculate the number of days between any given day and Easter yet? I've been waiting for years for a third function to be added to easter_days and easter_date.. a sort of holy trinity, if you will.
Yes it's easy, with this code: (Score:1)
you just use the baby_jesus_butthole function
or was it jesus_baby_butthole? fuck ima need to check the manual
Re:Yes it's easy, with this code: (Score:5, Funny)
It's baby_jesus_real_butthole(first_half_of_needle, haystack, last_half_of_needle), duh. But don't blame php for that, that's the name of the function straight from libjesus [mysql.com].
Re: (Score:1)
Ahh understood, because without baby_jesus_real_butthole , hit butthole could be prone to SQL injections.
Sanitize your buttholes.
It's powerful, but.. (Score:2)
Re: (Score:2)
Nope! I don't code at all, but I had friends who coded pretty heavily in PHP and tried to learn it once. I spent a few hours one day looking at the list of functions included with PHP, and sure enough those two are in the official PHP documentation. To this day, I have no idea why they needed two built-in functions to determine when Easter was, or who it was they were expecting would use them... or why Easter, of all days.
Re: (Score:3)
I assume it is an ironic joke.
Historically calculating the date of Easter was a hugely difficult and complicated task for medieval scholastic monks - one that involved a huge amount of time and controversy.
Re:It's powerful, but.. (Score:4, Insightful)
Can you really not figure it out?
First off, would it be quite easy for you to tell me off the top of your head what the date of Easter will be in 2021? How about just next year? The date it falls on it fairly complicated and not exactly simple to write an algorithm for.
Ok, but who will use it? I guess it comes as a surprise that it is a fairly important holiday for religious reasons and that a number of other holidays' dates are intertwined with Easter.
If you really see no practical application for that, well I guess you're just not trying hard enough.
Re: (Score:2)
Re: (Score:2)
Sure, why not part of the core language? Think about it ...
Out of all the holidays that I'm thinking of off the top of my head, Easter is the one that stands out as being of significant importance as well as being rather awkward to figure when it occurs. If you couple this with the fact that PHP is a web language (an environment where knowing when Easter is can come in rather handy) I think it makes perfect sense.
I suppose if you're griping because there is no core method `ramadan_date` or `chinese_new_ye
Re: (Score:1)
Re: (Score:2)
I actually like coding in PHP. You can create some really nice applications using it. Then again, you can create really nice applications with just about any server side language if you know what you are doing.
My main beef with PHP is the inconsistency with built-in function names. If you want to replace within a string, you use "str_replace", if you want to split a string into an array, you use "str_split". However, if you want to get part of the string, you use "substr". And if you want to compare tw
Re: (Score:2)
Maybe because it's a public holiday in some countries. Enterprisey stuff likes to know things like that.
As to there being two, I understand that the benighted heathens of the Byzantine persuasion calculate it differently to the bead-jigglers in Rome.
Then again, it's PHP so all bets are off.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
is any more readable than
To anybody with sufficient knowledge of math and programming, the second is actually more readable, because it's easier to discern what the values are and where the operators are. Assuming you aren't using simple variable names, but rather more descriptive terms, look at the following.
and
In the first option, everything is a word, making it hard for your eyes to pic
Re: It's powerful, but.. (Score:2)
Omg I am a professional php developer I didn't even know these functions existed, I thought you were joking and had to look it up. Don't think I would ever have a use for them
Re: (Score:1)
easter_days() plus fixed offset will get you a given years Ascension Day (easter_days+39, Withsunday (+49) etc.
strictly speaking easter_date() is indeed redundant as you could as well use easter_days()+0, but its there as convenience function ...
but as far as I remember the main reason for having both was that the C library the calendar extension relies on has both, too ...
You can get into trouble for using PHP (Score:1)
Student Suspended Over Suspected Use of PHP [bbspot.com]
Re: (Score:1)
+1 point for linking to the ghost town that is bbspot.
Re: (Score:2)
Yeah, I was surprised to see that the site still exists.
Re: (Score:3)
For a split second, I was going to voice my outrage over such a thing happening before my brain kicked in and I remembered that BBSpot is a humor website.
In my defense, though, when a teen can be arrested for writing a story in which he uses a gun to kill his neighbor's pet dinosaur [nydailynews.com], the humor/satire stories can be hard to separate from the true stories.
Re: (Score:2)
That's not likely in a weakly typed language. Because the only overloads can be number of args.
My only question (Score:1)
Great, what got deprecated? [goes to RTFA]
Still no Unicode? (Score:2)
... but, hey, we've got this major feature: you can now multiply two constants, and the result is also a constant! It's almost like C had in, what, 1985? Except that you don't actually need it because this is a dynamic weakly typed language, but who cares. PHP! PHP!
Re: (Score:2)
Re: (Score:2)
iconv lets you convert things, but what are you going to convert it to? UTF-8? Sure, and how many libraries (including core PHP ones) are UTF-8 aware? Most won't use mbstring, they'll just treat strings as arrays of bytes, and you're really lucky if they don't assume byte = char anywhere.
Treating strings as 8-bit clean works well in some cases, but fails pathetically in so many others. Yet that is the game that PHP is trying to play.
It's not the knife... (Score:5, Insightful)
it's the cook that prepares the food. It's not the camera, it's the photographer that shoots the picture. It's not the racing car, it's the driver that wins the race. It's not the programming language, it's the programmer that creates the application.
All you whiners can bash PHP like you want. But a PHP website will still beat your Perl website if the PHP programmer is better than you. So, unless your coding skills are 100% perfect, you better start looking at your own flaws instead of wasting time at whining about a programming language that simply isn't your pick of choice. Please, it's time to grow up.
Re:It's not the knife... (Score:5, Insightful)
"... if the PHP programmer is better than you."
For every good-to-excellent PHP programmer there is a small army of mediocre-to-bad PHP programmers. You get chefs that deep-fry rubber boots, photographers that can't tell the lens from the viewfinder, and drivers that can't put a car in gear without breaking something.
But it also doesn't help when the programming language tells them that someone somewhere likes to eat overcooked footwear, or hands them a camera which is a featureless cube with two identical holes on either side, or takes away the gear shift and replaces it with a button labelled "Crash".
Re: (Score:1)
Thank you for proving my point.
If you don't like PHP, that's fine. But please, stop wasting other people's time with your whining about it. Really, nobody cares!
Re: (Score:3)
"Other" people's time? As far as I can tell, the only other person's time I'm wasting is yours. Want to go ballooning this weekend? We don't even need to bring fuel.
Re: (Score:2)
Re: (Score:2)
It's not a bad knife. It's just that *you* think that it's a bad knife. I think it's a fine knife. I'm not saying perfect, but no knife is. I know its good sides, I know its bad sides, which allows me to handle it well. The things I create with it are really up any challenge.
But tell me, how's your cooking?
Re: (Score:2)
Re: It's not the knife... (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
It used to be a spoon. Okay, a blog/CMS (Score:2)
I code in PHP for my day job. There's almost nothing I can't do in PHP. Millions of people use my PHP code. I also know several other languages, so I have some basis of comparison to say PHP 5.0 kinda sucked as a general purpose programming language, and I can tell you exactly WHY it sucked.
PHP was originally a blog / CMS script written in Perl. It was designed to be a blog, not language for general programming. In fact, it wasn't even supposed to be used by programmers at all. It was designed for web
No, PHP is a hammer (Score:2)
https://www.flickr.com/photos/... [flickr.com]
Re: (Score:2)
Nah, that's part of its charm. PHP is C with dollar signs.... :-)
Re: (Score:3)
Re: (Score:2)
it's the cook that prepares the food. It's not the camera, it's the photographer that shoots the picture. It's not the racing car, it's the driver that wins the race. It's not the programming language, it's the programmer that creates the application.
Yes but a good cook will do better with a good knife, a good photog will be better with a good camera, and a good programmer will perform better with a well designed language.
Re: (Score:1)
Take a look at this page, and no, it's not an anti-php rant, but an overview of actual facts about PHP:
http://eev.ee/blog/2012/04/09/... [eev.ee]
I made a few PHP projects myself, but since I discovered Python and Django Framework, I would never go back to PHP again.
Re: (Score:2)
24 CVE fixes in one language system release (Score:4, Interesting)
Here are the lines matching for grep -P 'CVE-\d{4}-\d+':
Fixed bug #67390 (insecure temporary file use in the configure script). (CVE-2014-3981)
Fixed bug #66060 (Heap buffer over-read in DateInterval). (CVE-2013-6712)
Fixed bug #67716 (Segfault in cdf.c). (CVE-2014-3587)
Fixed bug #67705 (extensive backtracking in rule regular expression). (CVE-2014-3538)
Fixed bug #67327 (fileinfo: CDF infinite loop in nelements DoS). (CVE-2014-0238)
Fixed bug #67328 (fileinfo: fileinfo: numerous file_printf calls resulting in performance degradation). (CVE-2014-0237)
Fixed bug #67326 (fileinfo: cdf_read_short_sector insufficient boundary check). (CVE-2014-0207)
Fixed bug #67410 (fileinfo: mconvert incorrect handling of truncated pascal string size). (CVE-2014-3478)
Fixed bug #67411 (fileinfo: cdf_check_stream_offset insufficient boundary check). (CVE-2014-3479)
Fixed bug #67412 (fileinfo: cdf_count_chain insufficient boundary check). (CVE-2014-3480)
Fixed bug #67413 (fileinfo: cdf_read_property_info insufficient boundary check). (CVE-2014-3487)
Fixed bug #66731 (file: infinite recursion). (CVE-2014-1943)
Fixed bug #66820 (out-of-bounds memory access in fileinfo). (CVE-2014-2270)
Fixed bug #66946 (fileinfo: extensive backtracking in awk rule regular expression). (CVE-2013-7345)
Fixed bug #67060 (sapi/fpm: possible privilege escalation due to insecure default configuration). (CVE-2014-0185)
Fixed bug #67730 (Null byte injection possible with imagexxx functions). (CVE-2014-5120)
Fixed bug #66901 (php-gd 'c_color' NULL pointer dereference). (CVE-2014-2497)
Fixed bug #66356 (Heap Overflow Vulnerability in imagecrop()). (CVE-2013-7226)
Fixed bug #66815 (imagecrop(): insufficient fix for NULL defer). (CVE-2013-7327)
Fixed bug #67717 (segfault in dns_get_record). (CVE-2014-3597)
Fixed bug #67432 (Fix potential segfault in dns_get_record()). (CVE-2014-4049)
Fixed bug #67539 (ArrayIterator use-after-free due to object change during sorting). (CVE-2014-4698)
Fixed bug #67538 (SPL Iterators use-after-free). (CVE-2014-4670)
Fixed bug #67492 (unserialize() SPL ArrayObject / SPLObjectStorage Type Confusion). (CVE-2014-3515)
That's not the applications written in PHP, mind you. That's the language system.
Re: (Score:2)
Yeah, impressive list. True. But ... (Score:2)
... consider this:
How many people and projects use PHP? How many use another PL? How many fixes and updates would be in line for that other PL if it would have the same userbase. ... When did Ruby finally become UTF8 safe again?
Make it work, then make it beautiful.
If any PL incorporates this philosophy, it's PHP.
And AFAICT they're doing pretty well following it, don't you think?
My 2 cents.
Re: (Score:2)
Exactly. 24 were reported and fixed in just this release cycle.
PHP making great progress (Score:2, Informative)
Re: (Score:3)
Re: (Score:2, Informative)
But more seriously, though. Most of these new features are straight up things that python already does.
Const expressions? Since at least 2.0.
** syntax since forever.
integrated debuggers since 2.5ish
file size restrictions since never?
I mean... these are really kinda bad things to just now be getting to.
Re: (Score:2, Interesting)
Re: (Score:3, Informative)
For what it's worth getArray()[3] was working two years ago (it's been working since PHP 5.4)
Re: (Score:2)
... and yet the parent still gets modded up. That should tell you something about relationship between what PHP is perceived as being and what it actually is.
Re: (Score:2)
There are other similar expressions that are still not working, though. If you read their todo list for the next major release, cleaning up the parser to allow for arbitrary expressions like that is a major work item. Apparently, they don't even have an AST.
Re: (Score:2)
Outdated PHP in RHEL (Score:2)
it's been working since PHP 5.4
And guess where Red Hat Enterprise Linux stopped. The only things they backport from new versions are the security fixes.
Re:Now almost as useful as python was 5 years ago! (Score:5, Insightful)
PHP is a horrible programming language, but I know why people like PHP applications -- the ability to install an application on a LAMP stack by just untarring a single archive into the deployment directory is priceless.
Last time I tried to install a Python web application, I had to give the installer root privileges to install a bunch of junk in some system-wide module directory. No thanks.
Last time I tried to install a Ruby web application, I ran into a bunch of snafus related to newer versions of Ruby not being backwards compatible with older code, and discovered that the "right" way to do it was to install a whole new package management system that wasn't in sync with my OS's own package manager. No thanks to that, either.
Re: (Score:1)
PHP is a horrible programming language, but I know why people like PHP applications -- the ability to install an application on a LAMP stack by just untarring a single archive into the deployment directory is priceless.
Last time I tried to install a Python web application, I had to give the installer root privileges to install a bunch of junk in some system-wide module directory. No thanks.
Last time I tried to install a Ruby web application, I ran into a bunch of snafus related to newer versions of Ruby not being backwards compatible with older code, and discovered that the "right" way to do it was to install a whole new package management system that wasn't in sync with my OS's own package manager. No thanks to that, either.
Maybe now you finally understand why every year is still the Year of the Windows Desktop?
Re: (Score:1)
Re: (Score:2)
Every time I update PHP on my Windows dev box, I have to re-arrange the order of the extensions in the config file to get PHP to start. Apparently, if you use any extensions that aren't enabled in a vanilla install, the default order of the extensions results in dependency issues. The helpful, paraphrased error message I get is something like, "PHP can't load this extension".
Yes, I know I'm talking about the Windows version, but installing PHP still isn't as simple as just unzipping an archive.
Then again,
Re: (Score:2)
How has PHP been given a monopoly on the entire industry? There are other languages out there and many of them are used quite a bit. PHP may or may not be the most popular (I honestly have no stats to tell either way), but even if it was vastly more popular than any other web programming language, it would be far from a monopoly.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
This is one of many reasons why PHP wins out over alternatives.
If you really hate PHP, find a better solution. I'm seeing a lot of talk here about Python and Ruby, but both completely fall flat where PHP excels. Let me know when the catch-up.
Re: (Score:2)
Re: (Score:2)
Umbraco, Orchard? Both mainstream, both mature and both a worthwhile replacement for Wordpress et al.
Re: (Score:2)
Re: (Score:1)
Re: (Score:2, Insightful)
That's because PHP doesn't require anything extra except tuning max_execution_time and the memory limits to make it work for everyone. I'd demand extra money if I had to babysit your rails process and kill it when it consumes a gig of ram on a shared host.
Re: (Score:1)
Yes, it's actually really common.
I started looking into myself recently, since it's basically like a tweaky syntax of Perl (to me, anyhow) but with a simpler web output.
Still seems pretty lame though.
Re: (Score:1)
Re: (Score:2)
I see the mods are still not bothering to read the moderation guidelines after all these years. /. jumped the shark when Rob left. I think it's time I take the hint and bail myself.
I think it's time for some *real* flamebait -
Re: (Score:1)
... until one day someone gets food poisoned and the restaurant shuts down.