PHP beginner design patterns and frameworks
<p>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. </p>

<p>I have already selected 2 books that will get me started and get me on an intermediate level : <a href="http://rads.stackoverflow.com/amzn/click/0672329166" rel="nofollow">PHP and MySQL Web Development 4th Edition</a> and <a href="http://www.apress.com/9781590598641" rel="nofollow">Beginning PHP and MySQL E-Commerce
From Novice to Professional</a>.</p>

<p>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). </p>

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

<p>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. </p>

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

<p>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?</p>

<p>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.</p>

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