views:

624

answers:

11

Hi!

I'm a Engineering student and I'm attending a Database and Information Systems class this semester. It's required that I produce a website/application that uses a database, using PHP/PGSQL. My questions are:

  • which IDE would you recommend?
  • does anyone have good tips and advices for a new developer?
  • it would help me (a lot) to develop this project attending some more "academic" aspects of the subject, such as the Entity/Association Model, etc. Are there any good tools to help structure my work?

Thanks!

EDIT: A few notes:

  • I forgot to ask one last thing, I tried installing BitNami's WAPP Stack. Does anyone know how good and/or reliable it is?
  • I'm actually working under Windows Vista Business (new laptop :S ). Would you recommend develloping under Linux for any specific reason?
A: 
  • IDE: Quanta+
  • tip: don't use a template library over a template language (PHP)
  • tip: MVC is a design and mentality issue, not a library
Javier
I'm not really confortable with some lingo... What did you meant with the tips? I tried Quanta+ before, but I didn't really like it. But thanks anyway! :D
Joum
+1  A: 

My recommendations:

  • No IDE - just a basic syntax-highlighting text editor (I use jEdit)
  • Understand XSS and SQL injection
  • There are lots of good frameworks under PHP that will help
Neall
An engineering student with a class in Databases probably doesn't need to know about XSS and SQL injection.
Liam
Liam. Why is that? Never heard of a Software Engineer?
Joe Philllips
Nice point you guys! :)I'm actually an Electrical and Telecommunications Engineering student."Hardcore" concepts and/or considerations to my work aren't really mandatory, but are obviously appreciated by the teachers that will evaluate my work, so...
Joum
Everyone needs to know about SQLi and XSS. Else he shouldn't work with PHP and SQL.It's like saying "You can drive that car. You don't drive that often, you don't need a license."
maxedmelon
+2  A: 

I would recommend a plain text editor rather than an IDE. You should use one with syntax highlighting such as Notepad++.

Tips:

  • Use Firefox
  • Play around with some test databases. The biggest mistake made when teaching or learning databases is to focus on theory without actual data.
Liam
+2  A: 

A good IDE for PHP is PDT, an Eclipse plugin.

asterite
+10  A: 

This is probably the only time in your career when you have the full freedom to chose what tools to use, so make the best use of it. Learn some of the classic tools that will go with you a long long way.

So instead of using an IDE which you'll probably do all your professional life get a taste of using old school editors like vim/emacs. One advantage here is that the IDE will not hide all the details on getting your project to work, knowing the full technology stack is always a plus.

For any technology that you'll be using try and get a good broad perspective before diving in to the implementation details, so for PHP I would suggest getting a grasp of XHTML, CSS and Javascript including libraries like jQuery; Object Relational Mapping (Take a look at Ruby on Rails, CakePHP, Django and SQL Alchemy) and Model View Controller Frameworks on various platforms.

For PGSQL in addition to normalization try to get into the depths of information_schema and the transaction isolation levels and when they're useful.

Also important is understanding how the HTTP protocol works at a low level and how highly scalable websites can be built using HTTP.

Rather than relying on tools I would say that just create a reading list on the topics mentioned above and that would automatically structure your thought process to take into account these kind of issues.

Sijin
+4  A: 
  • IDE: I reccomend PSPad for its great FTP features and syntax highlighting for PHP
  • Tip: Go through the PHP documentation for mysql or whatever database you are using, the PHP documentation is the best tool you have for learning it.
  • Tip: Keep data simple, its always mutable to something else, for example, store time with unixtimestamp, since php has great functionality with the date() function to turn it into anything you want.

EDIT to add linux vs windows tips

  • I have developed on both Windows and Linux machines and i have both had a PHP server on Linux and Windows and for my type of developing (CMS's and Websites on those CMS's) i prefer developing on Windows and hosting on Linux. This is due to the stability of Linux and the Tools i can use reliably on Windows (Photoshop mainly)
Ólafur Waage
I tried PSPad and I think it looks and feels really good, but a friend told me that debbuging-wise, it wasn't so great. What do you think?
Joum
Debugging in PHP is kinda off to begin with, but as a free program i used PSPad for a long time until switched to Zend Studio. It feels like the grownup version of PSPad :P
Ólafur Waage
A: 

The best editors you get on windows are Notepad++ and Eclipse. both good, but can't hold a candle to Kate and Quanta+. for that alone, i'd ditch windows. Also, it's nice to have both the development and a real test environment on the same system, and even if most OSS is available on windows, they're always a square peg on a round hole.

Javier
+9  A: 
  • which IDE would you recommend?

Anything that supports remote debugging. You will save yourselves hours and hours and learn so much quicker if you can actually step through your code. It always amazes me that more people don't use good debugging tools for PHP. The tools are there, not using them is crazy. FWIW I've always been a devotee of Activestate Komodo - fantastic product.

  • does anyone have good tips and advices for a new developer?

    1. get test infected. It will stand you in good stead in the future, and will force you to think about design issues properly. In fact the benefits are many and the drawbacks few.

    2. learn to refactor, and make it part of your development "rhythm".

    3. related to this is: think ahead, but don't programme ahead. Be aware that something you are writing will probably need to be bubbled up the class hierarchy so it is available more generically, but don't actual do the bubbling up till you need it.

  • it would help me (a lot) to develop this project attending some more "academic" aspects of the subject, such as the Entity/Association Model, etc. Are there any good tools to help structure my work?

Learn about design patterns and apply the lessons you have learned from them. Don't programme the "PHP4" way.

  • I forgot to ask one last thing, I tried installing BitNami's WAPP Stack. Does anyone know how good and/or reliable it is?

No idea, but if you have the time I'd avoid a prebuilt stack like WAMPP. It's important to understand how the pieces fit together. However, if you're running on Windows, you may not have time and your energy could be better focused on writing good code than working out how to install PHP, PostgreSQL and Apache.

  • I'm actually working under Windows Vista Business (new laptop :S ). Would you recommend developing under Linux for any specific reason?

Yes I would. Assuming you are deploying on Linux (if you are deploying on Windows I'd be asking myself some serious questions!), then developing in the same environment is incredibly useful. I switched for that reason in 2005 and it was one of the most useful things I did development wise. However if you're a total *nix newbie and are under tight time constraints maybe stick with what you know. If you have time to try things out, you'll find it pretty easy to get up and running with a good modern Linux desktop distro and the development work will fly along.

reefnet_alex
>However if you're a total *nix newbie and are under tight time...if you're a *nix newbie into (non asp) web development, then there's no question you MUST switch totally to a *nix environment
Javier
I disagree. I use windows as my dev environment for php and all my sites would run on shared linux webservers. I find the familiar windows tools useful when developing.
Toby Allen
I worked for years on Windows for *nix deploy and it was fine, but nothing teaches you so fast as actually working in that environment. The things I am able to do now I couldn't do without the *nix experience. I avoid developing for shared hosting mind, if I can't edit the apache conf I'm not happy!
reefnet_alex
A: 

ide: vim + (firefox+firebug) using an ide with php, for the most part, is overkill

other tools: pgadmin3 design your tables so they are easy to query

if you have an extra box, i would put linux on it if you want to try it out. Ubuntu is a good started distro with a simple LAMP set up process. I wouldnt do anything to that vista laptop though, because it will allow you to test in IE and firefox.

A: 

Have you looked at Delphi for PHP (<http://www.codegear.com/products/delphi/php>) ?

Joe Stagner of Microsoft really likes Delphi for PHP.
He says it here: "[Delphi for PHP] 2.0 is the REAL DEAL and I LOVE IT !"

François
+1  A: 

I recommend you netbeans .its free. it is available for all platforms, and mostly it is good for editing php, jsp, java, css, html, ... Good for SVN, mercurial, Plus you can integrate it easyly with kenai.com...

it helps with the IntelliSense kind of pop up.

believe me, i'm using it for php development and its the best suited ide i can find...

JSixface