noodlehaus/dispatch

Parse error: syntax error '['

Closed this issue · 13 comments

Hi,
there is a problem with php 5.3 and Array declaration in Dispatch. Especially at line 22 and line 490 you define an array variable with '[]' but this cause an error in PHP < 5.4. Can you fix this?
Great Job!
Thank you

hi giordanovi. i've looked through the code and i can't find any array declaration that uses the 5.4 array syntax, even on the line numbers you gave (22 and 490).

Really?!
I've installed Dispatch through composer. At line 22 i've this code:
static $error_callbacks = [];

a i see. let me check. the tag referenced by composer may have not been updated.

i've just updated the github tags, should reflect on composer in a few minutes.

I still can not see the change. Re-installing the package not solve and still download the incorrect version.

the version version it should download is 4.0.9. i've just tried it and the correct version got downloaded. but I didn't have a composer.lock file to begin width so composer got the latest for me.

Composer downloads version 1.1.6. If I force download version 4.*, It say me that dispatch/dispatch 4.0.9 requires php >= 5.4.0.

Sorry for the mix up. Yes, dispatch has always required 5.4 if being installed via composer. Code-wise, it can run in 5.3 though if you manually include the source or point to a fork with the updated composer.json.

scan commented

Though I wonder why not just set the php-version to 5.3 in the composer.json if you support it anyway?

my reason for requiring 5.4 is i was really hoping to stop supporting 5.3 :D but yeah, it doesn't really make sense since 5.3 is very much mainstream, and we have already put in every effort to make sure this works in 5.3, barring the tests. ok guys, i'll update and make this require 5.3 instead.

Everyone should bump up to 5.4+ because of the numerous optimizations and security plugs the PHP team has rolled out since 5.3. Also bracket style array syntax! :D

scan commented

The problem is most servers (like ours) use Ubuntu 12.04 LTS, which comes with PHP 5.3. It's not easy to change that.

As long as 14.04 isn't mainstream, supporting PHP 5.3 officially will help dispatch become more popular for production, in my opinion.

Going a bit off-topic, but it's not too hard to get 5.4/5.5 on 12.04 using a PPA:

sudo add-apt-repository ppa:ondrej/php5
# or ppa:ondrej/php5-oldstable for 5.4
sudo apt-get update
sudo apt-get upgrade

These are produced by the same people who maintain the Debian upstream PHP package.