ive seen many 3rd party mvcs or frameworks for example codeignitor , cakephp, and so forth. what i wish to know is exactly what are their reasons? ive produced my very own framework refer to it as an mvc or framework (for me their the same). during my framework i've all of the classes in a single folder known as classes and all sorts of functions in another. its all organized so when a brand new project is available in i can complete it fast. i've checked out the programs which i pointed out also it appears to possess huge articles and lessons to review. what's the purpose? why don't you study the primary language for example php, javascript/ajax or jquery, and so forth build something you be aware of the inner workings of to ensure that any project you come accross guess what happens to complete. ive known many people who use cakephp as well as for every project they find yourself in trouble and want to determine how to proceed. another guy i understood labored with joomla and each fundamental company website that came his way he'd reverse engineer joomla to really make it use the website. are people with such programs simply because they lack understanding within the languages? or sometimes don't have any choice but to create a site while missing language and set something together.

ps: i shouldn't say what's best or argue, i wish to understand and find out if im missing anything.

Standardized frameworks allow it to be simple to change and reuse blocks of code. Using a framework for example Zend, Cake, Joomla, etc. you'll find databases of pre-made scripts and components that simply plug to your existing site.

In addition frameworks will (generally) handle lots of complicated, repetitive tasks which are standard across most websites. Frameworks will generally scaffold CRUD classes against your database instantly and support a clean separation of logic and examine.

Frameworks aren't for everybody and that i would really suggest that beginners to programming or PHP discover the fundamental syntax and object structure. Doing this provides you with a more powerful knowledge of the way your framework reacts making it simpler that you should modify/override the present structure. Every framework differs, plus some be more effective suited than the others for particular tasks. You want to do research and testing to determine what one meets your needs.

Another benefit that has not been pointed out yet is the fact that utilizing a standard framework gives some shared understanding between designers. Should you develop a project together with your home-grown "framework" after which another person needs to keeping it later on, they need to totally learn your techniques on your own. However, should you have had used CakePHP, and they have knowledge about CakePHP, they are going to possess a very good base to begin with. That can produce a massive difference in how long it requires these to get comfortable with a brand new system.

If you wish to setup a task rapidly, without needing to know an excessive amount of about everything underneath, using one of these simple frameworks can be quite helpful. You realize, to some degree a minimum of, that they are pretty much built and reliable, also it helps you save considerable time in opposition to creating everything yourself. Many of them will also be easily extension to include functionality you will need.

But you are right, it certainly is a positive thing to discover all of the fundamentals. This way it is a lot simpler to be aware what these frameworks exactly do, and most importantly, why and just how. And understanding that causes it to be simpler to find the right framework for you and extend it inside a proper and efficient way.

But ultimately you'll study from both approaches, the main difference since by having an existing framework you will get start using a site (almost) immediately.

I too use my very own home-built framework that required many several weeks to build up, however for every project I still weigh the benefits and drawbacks of utilizing a third party framework. Your decision usually comes lower towards the more knowledge about what I wish to achieve. For instance, in database-centric programs, I personally use my very own framework since the ORM solutions of the majority of the well-known frameworks are simply completely terrible and inefficient, however for something simple just like a Blog, Codeigniter may be my choice (simply because I personally don't like Wordpress, which is not a framework but I must mention here how horrible it's).

But bear in mind that although you realize the the inner workings of your framework, if other people needs to keep your project afterwards it will likely be difficult particularly if you don't document. Large frameworks like CakePHP, Kohana, Symfony, etc. are fairly well-known and it's not hard to find other people who have knowledge about them. Plus if you want help, all you want do is publish on their own forums and odds are you will have a good answer.