473,805 Members | 2,143 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

One mans quest for a PHP IDE for Linux.

I'm sitting here staring at my favorite poster. It's a photo of a ship
that hit a reef and sunk long ago but still has its ass-end sticking
out of the water. The caption reads "It may be that your sole purpose
in life is to serve as a warning to others." (checkout despair.com for
more of these jewels.) That's how I feel right now after spending (or
rather EXpending) the entire day looking for a PHP IDE for my
mandrake linux box. All I wanted was an editor with highlighting that
would let me set breakpoints, step through my code, and watch
variables change ("... and memories of Turbo-Basic danced in their
heads.")

In a shameless effort to garner sympathy while warning others before
they take this journey, I thought I'd share my findings from the
field:

PHP plugin to eclipse:
cost: free.
relevant URLs: http://www.eclipse.org ,
http://phpeclipse.sourceforge.net/
Documentation: plenty for eclipse. none for the plugin.
Did it work?: almost.
Although the install directions were wrong, they weren't so wrong that
I couldn't figure out what to do. Afterwards I was able to start a PHP
project and edit a PHP file but I couldn't run it much less debug it.
All I got were error messages when I tried either. Another brain-dead
editor I dont need. Too bad since eclipse works fine for Java. Someday
this might be a viable option.

PHP-DBG with DDD (whilst in my BVDs):
relevant URLs: http://dd.cron.ru/dbg/ ,
http://www.gnu.org/software/ddd/
cost: free
Documentation: lots for ddd. none for php-dbg.
Did it work?: no
There's a lovely screen shot on the dbg website of dbg working within
ddd. That was as close as I got to seeing these two play together. DDD
just did not know dbg was out there and I dont see any docs on how to
hook them up. The good news is that both were available as RPMs so it
didn't take long to find out this wouldn't work.

PHPmole:
relevant URLs: http://www.akbkhome.com/
cost:free
Documentation: sparse. incoherent.
Did it work?: Hell no.
This was the one I wasted the most hours on. It requires scads of php
plugins and libraries. Each of which has their own prerequisites and
idiosyncracies. Even after successfully installing them, phpmole still
insisted that some weren't there. After hours of finagling I finally
got it running enough that I could edit a file but when I hit "Run" it
swiftly crashed every damn time. Argh!!

PHPed:
relevant URLs: http://www.phped.com
cost: $300 after 30 day trial period
Documentation: lots.
Did it work?: mostly
This is a commercial product by NuSphere. No trouble installing it. It
has a decent looking GUI. While not exactly intuitively obvious it
didn't take long to figure out how to edit a file, run, and debug it.
For some reason it started Mozilla and it appears to spawn Apache to
actually run the code rather than feeding it to an internal engine.
This is an annoying overkill and inexcusable for a $300 package. It
also means it has one fatal flaw: you cant stop an infinte loop. If
you're sloppy (and I am, or I wouldn't need an IDE) and create an
infinite loop (which I managed to do in just a blurb of test code) and
hit RUN you're stuck watching the scroll bar in the output window
shrink and shrink and shrink as you're code runs off into never-never
land. The STOP button wont stop it. The PAUSE button wont pause it.
You're only option is to quit PHPed, fire up an xterm, run top, seek
out the offending php job (it's not hard to find, it's consuming 96%
of the cpu), and kill it. This is not a good feature. Once the 30 day
trial expires it supposedly stops working altogther. So PHPed is not a
viable option for an impoverished grad student looking to get off
cheap (as a rule I wont buy any software that costs more than my car.)

Zend Studio:
relevant URLs: http://www.zend.com
cost: free 21 day evaluation, $200 or crippleware after that
documentation: lots.
Did it work?: yes
Another commercial product. No trouble installing. Nice looking GUI
though it manages to look cluttered and a little emaciated at the
same time. Again, though not exactly intuitively obvious to the
uninitiated, it was not too hard to get started, edit a file, run, and
debug it. For 21 days you get to play with the full version. After
that you can pony up $200 or live with the 'personal version' that
disables a few frivolous functions nobody uses anyway like Print. Oh
well, I can always cut and paste into kwrite. Another feature that
stops working after 21 days is the profiler. But since I dont know
what that is and the odds are I wont get that far in 3 weeks I suppose
I'll never miss it. As long as I can set breakpoints, step through the
code, and watch variables I'll be happy.

Sorry to say it, but the open source movement that gave me this great
OS has not produced a decent PHP IDE yet. It's worth keeping an eye on
the eclipse php plugin and the ddd DBG plugin. But for now, if you're
looking to get off cheap, the crippled Zend studio is the best option
I've found.
Apchar.
Jul 17 '05 #1
15 6601
On 6 Nov 2003 00:33:32 -0800, ap****@yahoo.co m (apchar) wrote:
All I wanted was an editor with highlighting that
would let me set breakpoints, step through my code, and watch
variables change ("... and memories of Turbo-Basic danced in their
heads.")


This is going to sound a little strange, but why not just stick a
constant into your script that causes output of technical data along
with the html ?

Vim and/or Textpad are all I've ever needed to work on PHP scripts...

Jul 17 '05 #2
kafooey wrote:
On 6 Nov 2003 00:33:32 -0800, ap****@yahoo.co m (apchar) wrote:
All I wanted was an editor with highlighting that
would let me set breakpoints, step through my code, and watch
variables change ("... and memories of Turbo-Basic danced in their
heads.")


This is going to sound a little strange, but why not just stick a
constant into your script that causes output of technical data along
with the html ?

Vim and/or Textpad are all I've ever needed to work on PHP scripts...


Let's just hope "Karim" doesn't lurk in this group...
http://tinyurl.com/twpg

;)

--
Justin Koivisto - sp**@koivi.com
PHP POSTERS: Please use comp.lang.php for PHP related questions,
alt.php* groups are not recommended.

Jul 17 '05 #3
kafooey (55.829% quality rating):

This is going to sound a little strange, but why not just stick a
constant into your script that causes output of technical data along
with the html ?


Or trace it on paper if you really have to.

/joe
--
In Denny's, a program from the 118 will go to SONIC. In LiveJournal, a
network cable from the ULC will go to some bastard from IS.
Jul 17 '05 #4
kafooey:
On 6 Nov 2003 00:33:32 -0800, ap****@yahoo.co m (apchar) wrote:
All I wanted was an editor with highlighting that
would let me set breakpoints, step through my code, and watch
variables change ("... and memories of Turbo-Basic danced in their
heads.")


This is going to sound a little strange, but why not just stick a
constant into your script that causes output of technical data along
with the html ?


Because that means you have to actually *write* all the code to output
technical data. The extra lines make the code less readable and less
maintainable. They lie dormant 99% of the time. They simply don't belong
there.

Profilers and debuggers are extremely valuable tools.

And Emacs is of course The One True Path :)

André Næss
Jul 17 '05 #5
Iky
<snip>

Would love to hear your comments on http://www.phpedit.net/

Jul 17 '05 #6
On Thu, 06 Nov 2003 17:20:27 +0000, André Næss
<an************ *********@ifi.u io.no> wrote:
Because that means you have to actually *write* all the code to output
technical data. The extra lines make the code less readable and less
maintainable . They lie dormant 99% of the time. They simply don't belong
there.


....but unless you are giving the source code away would you not remove
all the debug code from the release version anyway? (and obfuscate
it).
Jul 17 '05 #7
kafooey:
On Thu, 06 Nov 2003 17:20:27 +0000, André Næss
<an************ *********@ifi.u io.no> wrote:
Because that means you have to actually *write* all the code to output
technical data. The extra lines make the code less readable and less
maintainabl e. They lie dormant 99% of the time. They simply don't belong
there.


...but unless you are giving the source code away would you not remove
all the debug code from the release version anyway? (and obfuscate
it).


Even more work. So it's another argument against inserting debug output.

André Næss
Jul 17 '05 #8
André Næss wrote:
kafooey:
On 6 Nov 2003 00:33:32 -0800, ap****@yahoo.co m (apchar) wrote:
All I wanted was an editor with highlighting that
would let me set breakpoints, step through my code, and watch
variables change ("... and memories of Turbo-Basic danced in their
heads.")
This is going to sound a little strange, but why not just stick a
constant into your script that causes output of technical data along
with the html ?


Because that means you have to actually *write* all the code to output
technical data. The extra lines make the code less readable and less
maintainable. They lie dormant 99% of the time. They simply don't belong
there.


Extra lines don't necessarily make the code less readable... It depends
on how you go about it and if you have comments stating what they are for.

For instance, if you have custom catch/throw methods, why remove them?
You'll just have to add them back in later if you need to debug again.
For that matter, any dubugging code can be handled correctly... If done
correctly, you can have readable code that makes sense and still have
the debugging code there when you need it.

Something similar (over simplified for example) would be:

at top of script (or in common included file):
define('DEBUG', TRUE); (or define('DEBUG', FALSE); when not debugging)

Then you'd have (using MetaBase for instance):
<?php
$result=$metaba se->Query($query );
if(!$result){
// something went wrong
if($DEBUG){
// if in debug mode, display information
echo $metabase->Error();
}else{
// handle the failure for production server
}
}else{
// query success, continue processing
}
?>

What's so unreadable about that? Make perfect sense to me, and it's
still clean.
Profilers and debuggers are extremely valuable tools.


Only if you know how to use them correctly. Putting something like that
into just anybody's hands could prove problematic...

--
Justin Koivisto - sp**@koivi.com
PHP POSTERS: Please use comp.lang.php for PHP related questions,
alt.php* groups are not recommended.

Jul 17 '05 #9
That sure won't work under Linux.

Iky wrote:
<snip>

Would love to hear your comments on http://www.phpedit.net/


Jul 17 '05 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
2408
by: Trent | last post by:
Hello, I was wondering if anyone here could help with a Quest Central issue. I have two different hosts listed in Quest Central. Each host has a database on it, but the databases have the *same* name. I can add the database to the first host OK. But when I try to add the second host's database, I get an error saying "Database name already exists." Is there a way around this problem? Why does it matter if databases
3
1727
by: Robert Stearns | last post by:
Apparently due to an intellectual property suit by CA, Quest Central for DB2 has gone away. They can/will not sell any license extensions. In a project I am doing, we make extensive use of quest due to its ease of use and speed. If you know of a product with similar capabilities, please let me know. My license is running out this month. Inexpensive is very important since we're a dining room table startup.
1
1951
by: lewi | last post by:
How do I access data members of a parent form class and from a function of a child form class. Both classes are both in the same name space and are public classes... The child form is a Modal dialog and should setup some of these data members and validate them before OK button handler lets the dialog be dismissed by this dlg closing prevention code... //access and validate data members...
5
5692
by: cranium.2003 | last post by:
hi, Here is my code #include <iostream.h> int main() { cout <<"HI"; return 0; } and using following command to compile a C++ program g++ ex1.cpp -o ex1
1
1499
by: x taol | last post by:
tbl1..... fPum p1 p2 p3 ======================== tbl2....... fNum fDate fGoods fIn fOut fStock 1 5/6 p1 9 1 8 2 5/7 p2 7 3 4
4
2038
by: Konstantin Andreev | last post by:
Recently I was engaged in the database optimization for one big commercial application. During this business I was greatly astound by the fact that it's impossible in DB2 to get the accurate size of a table. Indeed, the disk space occupied by a table is composed from three parts: # part size information @ - ------------------ ------------------ 1) data (except LOBs) syscat.tables: (npages,fpages) - exact info 2) indexes ...
0
1527
by: Piero 'Giops' Giorgi | last post by:
Hi! I'm testing SQL Turbo (From Quest Software) Any of you guys ever used it? Impressions? Advice? P
4
1559
by: bj7lewis | last post by:
I am currently C++/Win32/MFC & C# programmer using VS.NET 2002 and jumped into VS.NET 2003 but that was a waste so I skipped VS.NET 2005 cause buying VS.NET 2003. Now after checking out VS.NET 2008 Beta2 I think VS.NET 2008 is worth the upgrade. But I want to hold off(five+ years depending on features) on more further upgrades OSs & ISEs cause of too many releases - too soon - too much money.... So now going to VS.NET 2008 I want to setup a...
0
1532
by: harley1591 | last post by:
JEWEL QUEST crack http://cracks.00bp.com F R E E
0
9718
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
10613
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10363
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10368
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
10107
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
1
7649
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5678
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
4327
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
3
3008
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.