<p>In theory, all plugins should be 5.3 compatible... but of course, it's up to the plugin developer to decide their own minimum requirements. 99% of publicly available plugins seem to be 5.3 compatible.</p>

<p>The biggest "gotcha" between 5.3 and 5.4 is the <strong>simplified array notation.</strong> In 5.4, you can declare arrays with simple square brackets (<code>[]</code>), instead of the more verbose <code>array()</code> syntax. That's one of the most notable changes between versions. Although, this doesn't seem to be the problem you're having. You'd at least see the plugin load, and kick up some sort of error message.</p>

<p>I'm guessing that you're testing the 5.3 vs 5.4 requirements on two separate servers? If so, you're probably running into an <strong>uppercase/lowercase</strong> problem. This actually has nothing to do with the version of PHP... Some servers care about casing, while others don't.</p>

<p>See this thread for a full explanation on casing, and why it might be causing your problem:</p>

<blockquote>
  <p><a href="https://craftcms.stackexchange.com/a/1537/45">https://craftcms.stackexchange.com/a/1537/45</a></p>
</blockquote>

CC BY-SA 3.0
2015-08-24T17:35:40.617Z
Minor note: as of [2.4.2677](http://buildwithcraft.com/updates#build2677), Craft *may* require PHP 5.3.7, which officially includes a [blowfish security fix](https://secure.php.net/security/crypt_blowfish.php), unless your *nix distribution has backported the fix to lesser PHP version. 5.3 is still a hard bottom limit, though.
Brad Bell
CC BY-SA 3.0
2015-08-25T16:50:43.050Z
Turned out it was the array notation when initialising the plugin, i was declaring an empty array as [] instead of array()
Mark Gifford
CC BY-SA 3.0
2015-08-24T17:22:44.843Z
2015-08-24T17:22:44.843Z
2017-04-13T12:51:00.253Z
Lindsey D
<p>I written a plugin which doesn't work on PHP 5.3 but does work on 5.4</p>

<p>It doesn't seem to be even routing to the function as if I I add a die("dead") to the controller function I still just get a 500 error if using ajax or a blank page if going straight to the actions URL</p>

<p>The craft requirements say PHP 5.3 and above, is this not the case for plugins?</p>

<plugin-development><php>
Plugin not working on PHP 5.3
# Plugin not working on PHP 5.3

(Asked by: username_0 on 2015-08-24)

I written a plugin which doesn't work on PHP 5.3 but does work on 5.4

It doesn't seem to be even routing to the function as if I I add a die("dead") to the controller function I still just get a 500 error if using ajax or a blank page if going straight to the actions URL

The craft requirements say PHP 5.3 and above, is this not the case for plugins?

**Tags:** plugin-development, php


---

## 1 answers

### Answer by username_1 on 2015-08-24. Score: 2 | Accepted answer

In theory, all plugins should be 5.3 compatible... but of course, it's up to the plugin developer to decide their own minimum requirements. 99% of publicly available plugins seem to be 5.3 compatible.

The biggest "gotcha" between 5.3 and 5.4 is the **simplified array notation.** In 5.4, you can declare arrays with simple square brackets (`[]`), instead of the more verbose `array()` syntax. That's one of the most notable changes between versions. Although, this doesn't seem to be the problem you're having. You'd at least see the plugin load, and kick up some sort of error message.

I'm guessing that you're testing the 5.3 vs 5.4 requirements on two separate servers? If so, you're probably running into an **uppercase/lowercase** problem. This actually has nothing to do with the version of PHP... Some servers care about casing, while others don't.

See this thread for a full explanation on casing, and why it might be causing your problem:

> <https://craftcms.stackexchange.com/a/1537/45>

> **Comments:**
> **username_2**: Minor note: as of [2.4.2677](http://buildwithcraft.com/updates#build2677), Craft *may* require PHP 5.3.7, which officially includes a [blowfish security fix](https://secure.php.net/security/crypt_blowfish.php), unless your *nix distribution has backported the fix to lesser PHP version. 5.3 is still a hard bottom limit, though.  
> **username_0**: Turned out it was the array notation when initialising the plugin, i was declaring an empty array as [] instead of array()  

---

