[Invalid]: CASE tools - question for seasoned developers [Invalid]: CASE tools - question for seasoned developers
 

News:

CPG Release 1.6.26
Correct PHP8.2 issues with user and language managers.
Additional fixes for PHP 8.2
Correct PHP8 error with SMF 2.0 bridge.
Correct IPTC supplimental category parsing.
Download and info HERE

Main Menu

[Invalid]: CASE tools - question for seasoned developers

Started by electrode, November 24, 2006, 06:59:03 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

electrode

What CASE tools (along the lines of Rational Rhapsody Ecilpse Poseidon or other UML tools) with reverse engineering, full support for PHP SQL css javascript ajax etc., would you suggest for being able to comprehensively capture the design and logic for a package such as Coppermine?  Lets say cost no object. What's the state of the art and something that would make design, extension, and maintenance of a Coppermine-like package a lot easier in a distributed development environment?




donnoman


electrode

Have spent a bit of time looking at ZEnd. While at first, the glossy hype looked interesting for a PHP editor/debugger, but my impression is that it looks like a nightmare to use. No tutorials, very complicated, non-inituitive, not obvious what packages you need to debug, etc.  I guess that it would double or triple the effort requred on your first project as you came up to speed on the tool, especially if you weren't in a shop already using it. The forum is full of people who have pulled their hair out just trying to do basic things. In the hands of a seasoned Zend expert, I'm sure it would be magic, but maybe not save development time or effort. But it may take years to get to that expert level, but worth it if PHP programming is your whole life.

A good editor/debugger is an essential compnent in an overall design & implementation strategy. And while we are on the subject of editor/debuggers, what good alternatives are there to Zend that permit step-by-step debugging and examination of state variables in a multi-form LAMP environment?

donnoman

Zend is the best editor I have found bar none. I'm not an uber programmer, but it is the only package that has made it EASY to begin profiling and debugging code.  I keep being amazed at how seamless it makes it. 

The main reason I chose zend is that it had the most powerful code completion and templating engine, not perfect but far better than any of the other editors I had tried.

With other packages, particularly for debugging and profiling, I've been mired in PHP versions not matching extension versions and everything in between.

PHP-ED is probably the only other top notch option. I found it's editor and code completion sub-par compared to Zend.

I'm not sure what you mean by nightmare to use.  I've found it to be fairly straightforward. In my opinion Eclipse is more difficult to use.  Any advanced IDE is going to have more options and require a larger investment of your time to learn than your basic editor. I took that into account when I was reviewing the apps for my use.

I had a couple things I wanted the app to do. Code Completion, Code Folding, Line Numbering, PHP / HTML highlighting, php templates.

php templates are like when you want to do a switch/case but don't remember the syntax, Several good editors support templates which work like code completion; so you would type "swi" then your code completion key and it would paste:


switch (key) {
case value:

break;

default:
break;
}


Zend's implementation takes you a bit further and actually guides your keystrokes through setting up the switch. You start with "key" selected, and you just type the name; press enter and it highlights "value", you type it in, hit enter again and it puts you correctly indented right above the first break.  That's slick.

It gives you the ability to create your own templates if it doesn't have a canned one.

One thing that I couldn't find in any editor even Zend was proper context switching for highlighting and code completion within PHP processor directives.

for example most could properly highlight and code complete the following:

<html>

<select

but none could properly highlight and code complete as html in heredoc or string quotes which is a shame and a stupid oversight IMHO.

<?php
echo <<<EOT
     <html>
     <select
EOT;
?>

Zend has excellent search abilities, and includes the ability to catalog and index your code and use it in code completion.  All of your user defined functions will come up for code completion, and if you've documented your code with php-doc it will include that in the code completion tool-tips.  You can right click a function call and it will automatically find the functions definition, even if its down in another include file.  Thats slick!

QuoteThe forum is full of people who have pulled their hair out just trying to do basic things. In the hands of a seasoned Zend expert, I'm sure it would be magic, but maybe not save development time or effort.

phhhtt. I've never been to the forum, never needed to and wouldn't waste my time.  Most likely they are the whinings of wholly incompetent beginners who don't even know the basics of what an IDE should be.  They are under the mistaken impression that if you use an IDE it will somehow teach you to program, or somehow provide training wheels while you learn. Any IDE will fail given this expectation.   An IDE will help a competent programmer produce a lot more code because of it's time saving features.  If you are clueless that the programming construct you need for a particular situation is a switch statement, your IDE has no ability to suggest it to you.  If you know to ask for a switch statement the IDE will help you write that statement faster.

I've tested a few Editors/IDE's before settling on Zend.

Maguma Open Studio
NuSphere PHP-ED
Active State's Komodo
Waterproof PHPEdit
DEV-PHP

...and probably others, those are just the ones I haven't uninstalled yet.

Prior to using Zend, I used Eclipse (PHP-ECLIPSE), and prior to that (and still do for some tasks) tswebeditor.

Do what I did, download an eval of each one, and try 'em out using them as you would want to use them.  Keep the best one of the lot that works how you want to work.

You owe it to yourself to download zend and at least try their debugging demo.  Mucking up your code with var_dumps is a thing of the past once you start using the debugger.

electrode

Thanks for your feedback. It's useful to talk with people who've been down that road before and have tried just about all the tools available. I have managed to get cpg going under Zend, and do some profiling and make some mods. I'm most interested in tools that help you come up to speed quickly on a packages like cpg, so you can make reliable mods and extensions. I'm not too worried about features such as code completion at this stage. The question now is it worth trying PHP-ED. There seems to be few development tools around more than editors in the PHP world.

donnoman

"I'm most interested in tools that help you come up to speed quickly on a packages like cpg"

Nothing is magic, your brain is going to need to do most of the work. A package like Zend Studio can only make it so you spend less time searching the code to find what you are looking for.

In that respect tswebeditor has almost the same search functions and has served me well for quite a long time.

"The question now is it worth trying PHP-ED."

Why the heck not, you only have to invest a couple hours of your time.  If it doesn't meet your needs uninstall and forget it.

Don't be afraid to try new packages, I didn't learn of all the features I wanted until I saw some of them and practiced with them in the different IDE's... There was a lot of ... I didn't know you could do that... that's cool. or that's nice... but not two hundred dollars nice.

Then I just kept wheedling the list down by the applications that had the features I wanted.

bmn

Quote from: electrode on November 24, 2006, 06:59:03 PM
What CASE tools (along the lines of Rational Rhapsody Ecilpse Poseidon or other UML tools) with reverse engineering, full support for PHP SQL css javascript ajax etc., would you suggest for being able to comprehensively capture the design and logic for a package such as Coppermine?  Lets say cost no object. What's the state of the art and something that would make design, extension, and maintenance of a Coppermine-like package a lot easier in a distributed development environment?

maybe you can try here: http://case-tools.org/tags/php.html and here http://case-tools.org/free.html

kind regards,

Joachim Müller

Not related to Coppermine, as the initial question was irrelevant in the first place. You shouldn't have tried to post in this ancient thread. Locking.