Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am planning to start learning PHP and MySQL for developing e-commerce type websites. I have 3 months of free time to start doing this, and a programming background of Java and javascript of 1 year of practical experience.

I have already selected 2 books that will get me started and get me on an intermediate level : PHP and MySQL Web Development 4th Edition and Beginning PHP and MySQL E-Commerce From Novice to Professional.

I am interested in developing e-commerce websites and I want to do it right since I will also be doing it for other people in the near future (6-8 months from the moment I start).

While I am sure about the first book that will help me achieve what I need for the second I am open to suggestions.

My first problem is that these 2 books won't be enough for what I need. I have no experience in using MVC architecture which seems to be the main architecture these days for writing big and sustainable projects and also no knowledge of any other design pattern which is used these days.

Can anybody recommend a good book or resource for understanding and writing MVC projects and getting familiar with good OOP design patterns?

My second problem is that I am undecided if I should learn a PHP framework immediately or I should try working with it as it is. If I am going to learn a framework, I decided on Codelgniter. Is it a good choice for e-commerce development?

I mostly chose it because it is considered one of the fastest frameworks. I am not seeking to start a holy war on wether is best to use a framework or not what I want is to know if it is a good idea to learn a framework immediately after I learned PHP ? If it is or not a good idea I would like some arguments so I can better decide.

I already decided I will use a framework on some point so I can increase productivity so I am not seeking a debate.

share|improve this question

closed as off topic by MainMa, Ozz, Yannis Rizos Mar 14 '12 at 14:51

Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

    
Book recommendations are off topic, unless they are on specialized subjects. –  Yannis Rizos Mar 14 '12 at 14:53

1 Answer 1

In addition to reading those books, you should find a good tutorial that is relevant to what you are wanting to build. Getting your hands dirty and actually coding is by far the best way to learn it quickly and throroughly, so I definitely would recommend you start messing with CodeIgniter and try to get a simple, basic e-commerce app up and running.

You'll be learning the ins and outs of PHP syntax along the way, but it wouldn't hurt to read up on the basics. For you, it might be a good idea to read a few articles which compare/contrast Java and PHP.

Also, Martin Fowler has written some very good information on MVC and other GUI Architectures. I highly recommend you read that and other articles on MVC so you really understand how to use it; it is very easy and common to miss the point of it and take shortcuts and misuse it.

Like you, I came from a mostly Java background and happened into a job where they wanted a PHP application built using and MVC architecture and Zend Framework. I first started reading information online and learning all about the theoretical aspects of MVC, then started learning the Zend Framework and found a "Hello World" type tutorial to get a simple Zend application up and running. A few months later, I had a pretty robust application built and I was a straight up Zend/MVC/PHP masta. ;)

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.