I have an interview with a possible employer next monday, I'll code friday, saturday and sunday, just because I need the job (first one) and I like to code. The thing is I need a good project idea that I could show to him. I know OOP, design patterns, good practices, etc., but I have not a portfolio since it is my first job; most of my code is for learning purposes. Any suggestions in what a programmer could show to an employer to get the job? A PHP minimal framework (MVC)? A simple CMS? What do you evaluate when hiring a new php programmer?
A simple CMS should do the trick. Personally, I would look at source code (variable names, exception handling, comments, enough abstraction, extensibility, ...), and demand a good understanding of what the user would want - often this means using AJAX to keep the number of post-backs low.
A recommendation would be libraries. Something that would help you on other projects and also looks good when you can think about more than just the project at hand. Maybe using other libraries to create some addons of your own.
A couple of ideas:
A blog engine (Wordpress clone).
A task management system (Fogbugz clone).
If you're not very good with HTML/CSS and Javascript (although you really need to be), then as someone else suggested, it might be better to write a library.
I'd recommend something related to what your employer does- show them that your skills can be applied for their business.
An alternative would be to make contributions to a PHP open source project if you can't think of a project to start on your own. You can talk at your interview about the features you worked on, or parts of the design/code you could do better. Though it could take time for you to get recognition and start checking things in.
Good places to start:
Most likely your employer will not ask to see a demo. Typically employers will line up some engineers that will ask you technical questions, design as well as development methodologies questions.
The tech questions might require you to write some code (on a computer or whiteboard).
You might also get to talk with managers that will typically evaluate your ability to work within a team and your fit with the existing team.
If I was interviewing, I'd much rather see real code written for a real client than something you just whipped up quickly for the interview. If you haven't had a job before, and no side projects to show either, then I'd certainly consider a programming project from uni/college.
Programming is not just about what code you can write, but also about how well you can translate real-world requirements provided by another person into code.
A minimal microblogging/Twitter-clone app could be a good idea. A lot of interviews have you program on the fly, though. In this case, you'll have to rely more on your off-the-cuff proficiency, without having a weekend to build something fancy.
The app you do is irrelevant. The cool thing will be to hit a project for three days straight and be able to talk about what kinds of challenges you faced and how you managed to work around them (or not). Plan the coding and see how close to your timeline you can get. If you're far off and very far behind (most likely), this would be very interesting to talk about the interview.
Make interesting, risky architectural choices to see how they work (e.g., a new AJAX framework), what kinds of advantages they give you, etc. The point is to have stuff to talk about that will make you sound like you are interested in coding and can handle problems as they come up.
Just find some code that looks good and claim it as your own.
They'll never know the difference!