X

An Oracle blog about NetBeans for PHP

Planning features for NetBeans next ... Continuation I

It was exactly one year ago, when we released NetBeans 6.5, the first version of NetBeans with PHP support. I know that the support is not still perfect (which software is bug free in theses days :) ), but at least NetBeans is known inside the PHP world. One of the evidence is the number of comments that you have written below my latest blog about planing features for next release. I would like to thank everyone who spent a minute and write up a suggestion or an idea.

We would like to implement all things that you mentioned, fix all problems that we know, but we always have to balance between requirements (from users, marketing, management :)) and resources, which are available. I think that almost everybody knows such situation and I don't know a solution, which will satisfied everyone. If you know it, please write me:).

Because there are many comments below the entry, I will try to answer your comments in this post.

I have mentioned the compression of CSS and JavaScript and a few of you reacted on this. I fully agree that this feature should be part of a build process  as Iván Montes wrote. This can be benefit for projects, which use Ant or Maven for building, like Java Web, Ruby or Groovy. The PHP project doesn't have a such integration yet. A PHP user can still use the Ant support and call a compressor from an Ant task, but it's not integration like in other projects, where you can find build action for example. I think that for PHP projects the building system shouldn't be required by default. 

A few of you mentioned support of Phar files. How such support should look like? A Phar file doesn't have to be such plain zip file with predefined contains. If we will create a support for Phar files, then the compressing CSS and JavaScript can be a part of the creating of such files.

Stuart's comment:

  1. compress CSS
  2. find unused CSS selectors (finding CSS selectors based on selected dom elements would also be nice)
  3. strip comments
  4. regular expression tester/generator
  5. Improved CSS and HTML palletes (see Dreamweaver)

I think that the bullet 1 and 3 belongs together and I have wrote about this above. Finding unused CSS selectors it's nice idea and it can be also a part of CSS refactoring. We talked on the meetings about the CSS refactoring, so I hope that it will be done.

Regarding regular expression tester, there was already such module for Java regular expressoin. I'm not sure whether is still available, but you are right, it would be useful. The regullar expression should be language aware, because the same expression can be written in different form in Java and JavaScript (I hope that I remember this correctly :)).

What you exactly mean by Improving CSS and HTML palletes? Dreamweaver is viasual tool and NetBeans doesn't have such editor. I always thought that the items for HTML should be a part of code completion, so it can be used without a mouse. 

Pet's comment:

"only with one tab in Firefox. Or integrate few features from YSlow directly in NetBeans."
this one is interesting, but what exactly can be done?

There are some possibilities. For example a few of rules from YSlow can be implemented as hints in the editor. Also the service that compress images can be reused in NetBeans directly. It's basically duplication a part of YSlow functionality. The question is whether it worth for it.

James Dunmore's comment:

I'd be interested in some WSDL features for code generation; both ways - i.e. creating a WSDL file form a class, and creating a class that consumes a WSDL file; although that might be a bit too "IDE" feature and not the out of the box comments you listed.

Just to be sure, do you mean PHP classes? We have similar support for Java.

Support for Selenium would be great too - built into netbeans (like selenium is built into firefox plugin) and be able to launch and control selenium (to different browsers?!) all from netbeans would be brilliant.

As Tom wrote, there is already Selenium plugin available on the autoupdate. It doesn't have probably "production" quality, but it can be useful. How many of you do you use Selenium for testing?

ignacio's comment:

I'd love to see Zend Framework support, I don't know why symfony took its place.

The support for Zend Framework is on the plan. We also plan to make a support for Cake PHP. The reazon why we implemented the Symfony support as the first one is this voting.

Trawka's comment:

- in HTML editor classes and ids completion (based on project css files)

The code completion of CSS class and ids in HTML is on the plan.


- another thing in HTML and CSS - images browser, for example in img tag.

There is already implemented a file system based code completion for some attributes. So it should be reused for all cases, where it can be useful like in img tag. And it would be useful, if there will be displayed the content of the image in such case.

Tom's comments:

"For example I use Firebug for "tuning" css and html, because it
allows to change the code directly in Firefox and see the result
instantly. Unfortunately there is no way how to save these changes back
to the sources"

You are right! This will only work for static CSS files and static
HTML files. In fact: this might be a nice addition to Firebug to enable
it to save files, where the URL starts with "file://". Firefox users
will possibly crown you king for that. But I don't think it is linked
to editing PHP files in Netbeans IDE.

I know that this is not linked to editing PHP files. I want to find out features, which will help to a web developer. It doesn't have to be only PHP developer.

BTW: better Smarty support would be great! The existing Smarty editor
doesn't work very well. It reports many valid constructs as errors and
doesn't highlight the code as expected. Also I would like to be able to
add my own modifiers and functions to the auto-completion window.

The Smarty plugin is developed by community. We need to talk about the problems with the author.

I also got a list of all currently available Smarty functions and
modifiers, including parameters, suitable for code-completion. This
list includes standard Smarty functionality and optionally Yana's
Smarty extensions alike.

If you feel like this may help you out with the Smarty editor - just drop me a line and I will send it to you.

Every help is welcome, I need to find out the status of Smarty plugin and look how hard it would be to add such code completion

However: support for Yana could be easily integrated.

All you need is just a hand full of auto-complete templates for XML files and Smarty.

I could write those templates and send them to you, if you like.

I don't know this framework. Probably I should look at this. You can send me the templates. At least we can discuss the support. 

BTW: I also got a PHP script that collects all the current class and
function definitions from the PHP manual and generates a fresh file for
code-completion any time you want with no need for updating the IDE.

Again: if you feel that this might be something you want for NetBeans - just drop me a line and I will give it to you.

(Might need a bit of work though to port it to NetBeans as it was written for ConTEXT and PSPad in the first place.)

We have similar scripts, which generates signatures files. Our script is not able to find out the documentation for some classes and function, so probably it would be useful to look at your.

Martinjn's comment:

Improved XDebug integration would be nice... doesn't really work well at the moment.

There are many bugs, which come from XDebug itself. So there has to be fixed in XDebug, but still there some problems that can be fixed on NetBeans side.

Mike's comment:

I would like to see support for git. Almost all of my projects have moved to git.

This is a requirement for the team who develop support for VCSs. There is already a version of plugin for Git on Autoupate Center. I haven't tried it yet.

I'd also like to have the code completion come up automatically, not triggered by a key combo.

Did you try a last dev build of NetBeans 6.8. In the PHP editor it is already there.

Various stability and memory improvements as well for mac - it still doesn't feel as solid as I'd like.

It would be always good to know how to reproduce the problem. You can file an issue to our database.

Benjamin's comment:

1. Create a new Class against an existing Interface and create all necesarry methods, like the Getter and Setter Creating Option

In NetBeans 6.8 there is new hint "Implements all abstract method" that does this. You have to place cursor on the line when the class keyword is located.

2. Customising the creating of the Getter and Setter Methods

Yes, this I want to do it from the time, when I implemented this feature:).  Unfortunately I haven't time to do it yet.

Kristian's comment:

I would like to see more focus on making the core editing features
more reliable. I'm using the latest dev-version and I am currently
experiencing problems the code templates. Sometimes the work sometimes
they don't. General code completion (ctrl+space) seems to work a lot
better now though.

I agree with you, the editor is the key. 

I would also like to have an option to quickly change file-encoding,
and a way to see if NetBeans is treating af file like UTF8, ANSI or
other.

JSP, XML or other files has advantage that the content can keep information about encoding. Unfortunately for PHP it's not true. If I understand correctly you have a project, where the files use different encoding?

But I guess these issues all belong in the "general editor features" category and not really what Petr was asking us about :-)

Yes, my original question was about web developer workflow and how NetBeans could simplify the workflow. I was expecting that there will be a lot of comments that don't answer the original question. But still it expresses what is important for our users.  


 Ufff, it's 2:30 AM. I need go to the bed. Continue tomorrow.

Join the discussion

Comments ( 25 )
  • Andrew Lowe Thursday, November 26, 2009

    In regards to the WSDL comment, I would also love this feature. I am mainly interested in creating php classes from a WSDL and xsd definition files. It is one of the more boring and time consuming parts of creating soap servers... creating php classes for objects for web services.


  • Vitex Thursday, November 26, 2009

    V netbeans mi chybí něco jako ruční brzda pro debug. Byl by to přepínač, kterým by se daly ignorovat všechny breakpointy i počáteční stop na první řádce kódu. Výsledkem by bylo že bych se mohl rychle proklikat stránkami projektu až tam, kde chci začít krokovat a tehdy znovu stisknout požadované tlačítko aby začaly fungovat breakpointy a podobné.

    Omlouvám se, že píšu česky, ale moje angličtina není z nejlepších.


  • Jasmo Thursday, November 26, 2009

    I would like to see some better diff software, i'm not that pleased with current diff system with Netbeans. Normally i use winmerge, but it does not work correctly with netbeans if i assign it as external diff program.

    Maybe there could be better internal diff or better support for externals.


  • Crempa Thursday, November 26, 2009

    Hi, I think support for SMARTY like template files should be usefull for a lot of people. Many new PHP frameworks (Nette for example) use it in their template engines so this feature is "multiframework". Gennerally, better support for MVC(P) coding practices will be perfect for many PHP developers (a mean some type of cooperation between presenters and templates with coding completion and so on...)

    btw: thanks for perfect product


  • Anton Friday, November 27, 2009

    For our PHP development we use the Flexy HTML Templating from PEAR.

    It would be nice if I could instruct the ide

    how to handle the flexy templates (even without

    syntax highlighting I would like to prevent netbeans

    telling me about errors in my html code which are not erros but flexy templates)

    like <p style="{mystyle:h}"> </p>)

    An other issue in NB is the missing trac support... yes there is cubeon which works but

    cubeon goes its own way:

    It is managed completly different than bugzilla etc.

    In the case of cubeon plugin you have the following:

    - Go in services->issue trackers

    - select: create a new one ...

    - and you will see bugzilla or jira (if installed) but NO trac.

    cubeon goes its own different way, but I would like to see trac handled the same way...ok its not

    such PHP related but its our main issue tracker.


  • Holl&oacute; Levente Friday, November 27, 2009

    Hi!

    - That would be great if Netbeans could find the unused includes (include(), require()) like in Java.

    - I would love to use Prado framework support in Netbeans. This is really good framework, this has a big community. One year ago, you started to implement this support (http://forums.netbeans.org/topic1202.html) Please, please continue!!!

    - I would like to see a better WSDL support, creating a WSDL form a PHP class, and creating a PHP class from a WSDL file. There are several WSDL generators in the web, like these:

    http://www.mehtanirav.com/2009/01/28/wsdl-to-php-generate-php-code-from-a-wsdl-file/


  • guest Friday, November 27, 2009

    Support for phar-Files is a good idea, as they can bring the benefit of JEEs war-Files to php. Compression makes also a lot of sense. The jQuery-Lib might be an example on that. The compressed Lib for the Projects, the uncompressed with VS-Commands as Code-Completion and Doc-Help for the Developer. Building such Units auf Doc/Completion and distributable packed lib would be great.

    Instead of supportin dozens of Frameworks (Zend,Cake,Symfony) what about Templates for modules of most commen CMS Systems. Modules for Joomla, Modules for Wordpress, Modules for Typolight... that would be great too!!!


  • Ingo Friday, November 27, 2009

    Hello!

    Thanks for the superb Netbeans IDE! The PHP support is great.

    I work at a very big project. All the PDT and Zend Studio user are so impressed by the features Netbeans provide. Specialy for QA, like codecovarge and unittest integration).

    WSDL and Soap support would very helpfull for me, too.

    But the last point for QA is open ;-), add phpcs support: https://netbeans.org/bugzilla/show_bug.cgi?id=172543

    Best Regards,

    Ingo


  • e.s.t Friday, November 27, 2009

    For me, NetBeans is already the best IDE in the world... ever :)

    If I could have more, I would choose configurable Line Breaks, and some better formatting (i.e. format of multidimensional arrays is horrible).

    I would give up trying to make support for variety of frameworks or CMS. First reason, it is never ending story. There always be someone who will want support for CMS x, template y and ect. It is straight road to feature creep. And the Netbeans becomes somehow to dependant to products you want to support, their release cycles, plans, bugs and so on. I mean, I use Netbeans every day with ZF, and there is no slightest trouble.

    Also the problem with PHP is that the is not one and only true framework, like it is with Ruby (Rails) or Python (Django). So again avoid it, and instead give the work for the community around those projects. You foucs on core IDE support, community focuses on plugins. "You wanna have support for CakePHP? Write a plugin for it, we will show you how :)". Have a Firefox for an example, it's extensions is key to success, and because of that we have great plugins like Firebug and tons of others, and they were created by community folks, not Mozilla.


  • James Dunmore Friday, November 27, 2009

    Hi

    Many thanks for the response.

    Yes WSDL PHP support, not Java ;)

    I'll go and investigate the Selenium support.

    Thanks.


  • guest Friday, November 27, 2009

    IMHO, for now, most important is Git support and Smarty, anything else can wait ;)

    BTW, in plugins menu I can't find Git support. There is project for git support with limited functionality http://code.google.com/p/nbgit/


  • Richard Le Poidevin Friday, November 27, 2009

    I'd like to be able to use Zen Coding: http://code.google.com/p/zen-coding/


  • Tom Friday, November 27, 2009

    I would like to see the code-templates integrated in the code-completion dialog (which comes up when you hit <ctrl>+<space>).

    The templates already are there, but I have to type the content of the first line of the template instead of the shortcut. This behavior is non-sense!

    Examples: My "class" template starts with a comment block, so it never pops up in the list no matter what I type. My "foreach" template happens to start with an assertion, so it is shown when I type "assert", but not when I type "foreach".

    I would like to see this changed! It should be easy to do and helps a lot.

    I also would like to be able to bind the code templates to file extensions instead of mime-types. I got specific templates for XML files that should only be used with specific DTDs.

    I have no problem with naming the files according to the underlying DTDs like "file.vdrive.xml" or "file.db.xml".

    Also I would like to be able to force NetBeans to use a code-highlighter of my choice. For example: the default extension for XLIFF-files is .xlf. Thus NetBeans does not recognize the files as XML and doesn't highlight them at all. Instead I always have to use an external XML editor.

    (I know I can associate an extension with a Mime-Type in Tools > Options > Misc > Files > File associations. But this is not a convenient and user friendly solution. Would any user really guess from this name that this functionality is actually for setting the default highlighter?)

    These two small changes would also help us out with Smarty: since Smarty templates are almost 100% HTML with just some additional function calls, telling NetBeans to handle Smarty templates (\*.tpl) as HTML files and adding Smarty's function list as code-templates would almost instantly enable Smarty support in NetBeans at no extra cost and with no need for a special plugin.

    It won't fix it all, but it would help to keep the costs of development to a minimum.


  • Tom Friday, November 27, 2009

    FYI: I checked the NetBeans Smarty editor plugin here: http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=15679

    But it is more than incomplete, was never updated and doesn't seem to be in active development anymore. It don't know if it even works in the current version of 6.7.

    In it's current stage of development the plugin seems to be unusable for real projects.


  • Benjamin Friday, November 27, 2009

    One thing really important i didn't mention in my last post:

    Thank you very much for this really great IDE. Thanks a lot!


  • Denyerec Friday, November 27, 2009

    This might sound really trivial, but it'd be really nice if @deprecated functions (indicated by a doc block comment) would show up with a different / grey / faint icon in the code navigator...


  • Bruce Friday, November 27, 2009

    I really need an easy way to run Xdebug through a proxy, so that multiple developers can debug on a remote server.

    Nice to have:

    @suppress warning comments

    IDE warnings should be minimized or suppressed, after clicking cancel. Do you really want the same person submitting the same bug reports?


  • hantsy Friday, November 27, 2009

    I can not find the wiki page about NetBeans 6.9....


  • guest Saturday, November 28, 2009

    Thanks for great IDE!

    What about one global .ini configaration file for NetBeans, where we could turn off/on all options like we do in Apache, PHP, whatever?

    NB developers could then keep GUI clean, and each user be happy to have IDE under control.

    Ivan


  • Xantiva Saturday, November 28, 2009

    First - thanks for your work!

    Second:

    A better Smarty Support would be very helpful, but I'm much more interested in an improvement of the code formatting feature!

    I work together in a team where someone works with Emacs, another one with an older ZEND IDE, ... Together with source control, it is always a big problem if I use the code formatting feature: A lot of changes in the code, without a "real change". Only the format has been changed. :(

    Ciao,

    Mike


  • Snake Saturday, November 28, 2009

    I agree to e.s.t. There are too many frameworks (over than 50+ I am confident to say so..) in PHP. It is impossible to support all frameworks and also framework itself keeps changes and developing. Even though I am very appreciated you guys have done agreat work in symfony support.

    I am not sure about ZF. ZF do bring good things to us (like Lucene) . But they try to make a standard to ask everyone follow. But I don't see why we have to use ZF's MVC implmentation...

    I am trying to make one by code template. But it need more improvements ( such as better import/export, or it stored codes and templates in a folder so I could easy to backup) and I think Bundle in TextMate is a very good example, it collects a lots of bundles of different frameworks in different languages. And it is very convenient to share a bundle to ppl ( just a folder or a zip file).

    So users from different frameworks could maintains theirs own code template (or call it bundle in Textmate).

    I think you guys could make use of these bundles built for textmate:

    code igniter bundles:

    http://www.sellersrank.com/codeigniter-textmate-bundle-download/

    zf bundles:

    http://raphaelstolt.blogspot.com/2008/02/creating-zend-framework-snippets-for.html

    So the code template should provide more power to let community easy and powerful enough to do their own job.

    Also, zen-coding is really interesting and might be a good approach to help developer to build their own templates and snippet to help himself in his favorite framework.


  • Marco Menozzi Sunday, November 29, 2009

    Zend framework is a monster.

    I repeat myself for Yii support. Many people now are using it and i think it is a really good framework with a great community


  • Tom Monday, November 30, 2009

    I agree with @Snake. Look at other editors like ConTEXT, PSPad and the like. All I need to support a certain framework or template engine is a configurable generic highlighter and good support for code templates.

    The reason is: I don't have the time to write a plug-in for NetBeans. It's far more easy with other editors. All I provide for ConTEXT is a file with code-snippets and another with highlighting rules. Just drop these two files in and you are ready to go!

    These are simple text files so I just generate them automatically during the build process. No need to write Java code and learn third-party APIs.

    To support a certain framework I don't need any palettes, syntax checks, menus or fancy plug-ins with support for more foos. All I really need is some text-coloring and auto-completion.

    Yes: this language support may be very basic, but it will cover just all you need in 80% of all cases.

    I have all the information I need and would have provided basic support for Smarty and support for some frameworks long time ago if it wasn't that time-consuming with all that Java programming just to make it work. For now it is about the same effort to support and maintain a dozen other editors as to support just NetBeans.

    I guess that this is the main issue. In comparison just look at ConTEXT: last time I counted it supported more than 150 programming languages. See the list here: http://www.contexteditor.org/highlighters

    The community could do the same for NetBeans: just give us the right tools and it will be done.


  • thinsoldier Friday, December 4, 2009

    http://blogs.sun.com/netbeansphp/entry/planning_features_for_netbeans_next

    [2. find unused CSS selectors (finding CSS selectors based on selected dom elements would also be nice)]

    Dust Me Selectors extension for firefox.

    [4. regular expression tester/generator]

    regexpal.com

    [5.Improved CSS and HTML palletes (see Dreamweaver)]

    I disagree. Many prefer just editing the html text. This is least important.

    [I would also like to have an option to quickly change file-encoding, and a way to see if NetBeans is treating af file like UTF8, ANSI or other.]

    I think they mean something like this (look at bottom of text window):

    http://img690.imageshack.us/i/20091203atdec335333pm.png/

    http://img98.imageshack.us/i/20091203atdec335355pm.png/

    http://img215.imageshack.us/i/20091203atdec335346pm.png/

    [Normally i use winmerge, but it does not work correctly with netbeans if i assign it as external diff program.]

    It's important that users can assing other applications to successfully handle some tasks like diff.

    [Also I would like to be able to force NetBeans to use a code-highlighter of my choice. For example: the default extension for XLIFF-files is .xlf. Thus NetBeans does not recognize the files as XML and doesn't highlight them at all. Instead I always have to use an external XML editor.]

    see for ideas: http://yfrog.com/5720091204atdec444119pmp

    Being able to change code highlighting on-the-fly is very very useful.

    Most "IDE" are great at integrating with your programming language, class structure and web server or compiler but they all suck at being good "text editors". Netbeans could be the first :)

    [What about one global .ini configaration file for NetBeans, where we could turn off/on all options like we do in Apache, PHP, whatever?]

    Or like about:config in firefox?


  • Pet Sunday, December 6, 2009

    "Or like about:config in firefox?"

    about:config sucks. There are no examples and comments, which good .ini file has


Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.