I'm a PHP developer and now I use Notepad++ for code editing, but lately I've been searching for an IDE to ease my work.
I've looked into Eclipse, Aptana Studio and several others, but I'm not really decided, they all look nice enough but a bit complicated. I'm sure it'll all get easy once I get used to it, but I don't want to waste my time.
This is what I'm looking for:
SVN support would be great
Are you sure you're looking for an IDE? The features you're describing, along with the impression of being too complicated that you got from e.g. Aptana, suggest that perhaps all you really want is a good editor with syntax highlighting and integration with some common workflow tools. For this, there are tons of options.
I've used jEdit on several platforms successfully, and that alone puts it above most of the rest (many of the IDEs are cross-platform too, but Aptana and anything Eclipse-based is going to be pretty heavy-weight, if full-featured). jEdit has ready-made plugins for everything on your list, and syntax highlighting for a wide range of languages. You can also bring up a shell in the bottom of your window, invoke scripts from within the editor, and so forth. It's not perfect (the UI is better than most Java UIs, but not perfect yet I don't think), but I've had good luck with it, and it'll be a hell of a lot simpler than Aptana/Eclipse.
That said, I do like Aptana quite a bit for web development, it does a lot of the grunt work for you once you're over the learning curve.
Extremely likely because PHP executable that is used to execute phpcs has xdebug enabled -- execution takes longer.
Two possible solutions:
Make sure that PHP executable that is used to execute phpcs has no xdebug enabled. E.g. you may disable xdebug altogether .. or have multiple PHP installations on your computer where default one (that will be used if you type php in terminal) does not have xdebug.
Try increasing timeout in PhpStorm's settings (Settings/Preferences | Languages & Frameworks | PHP | Code Sniffer). On certain systems/setups even increasing timeout to 20+ seconds (which is a lot) may still unable to resolve the issue.
Solution described in #1 is preferred from performance point of view and more reliable (but more difficult to implement, especially if you actually need xdebug locally).
Generally, there are two strategies to handle a situation like this:
1. Use Exclusive FKs
Essentially, each of the possible parent tables will have its own, separate foreign key in the child table, and there is a CHECK enforcing exactly one of them is non-NULL. Since FKs are only enforced on non-NULL fields, only one of the FKs will be enforced.
(relationship between user and group omitted)
(group_id IS NOT NULL AND user_id IS NULL)
OR (group_id IS NULL AND user_id IS NOT NULL)
2. Use Inheritance
Inherit user and group from a common supertype and then connect the setting to the supertype:
For more information on inheritance (aka. category, subclassing, subtype, generalization hierarchy etc.), take a look at "Subtype Relationships" chapter of ERwin Methods Guide. Unfortunately, modern DBMSes don't natively support inheritance - for some ideas about physically implementing it, take a look at this post.
This is a heavy-duty solution probably not justified for just two tables (groups and users), but can be quite "scalable" for many tables.
For 'native' BlackBerry app development (i.e. Java app development), there are basically 4 options:
RIM's JDE - pretty much a terrible
editor, but the most stable, most
feature-full (from a BlackBerry
RIM's JDE Plugin for Eclipse - you get all the
niceties of the Eclipse environment,
but there are a lot of problems.
Netbeans with the Mobility Pack - I haven't really seen anyone use this for a while, but a few developers swore by it a couple of
environment - using ant scripts and
RIM's JDWP debugger interface (the component package section on that page). This
used to be the only way to go for
Eclipse development for BlackBerry
before the JDE Plugin
Options 3 and 4 I haven't seen used for a long time, not sure if they're still viable - though I don't see why #4 wouldn't be.
I used #4 for a long time, until RIM put out their plugin. While there are still a lot of problems with it, for me the productivity gains of working with something like Eclipse outweigh them.
So either 1 or 2, with the caveat that you should chose one or the other for your whole team, as they're really not compatible with each other (differences in project structure and how they handle resources). You can move from 1 to 2 easily, but not really the other way around.