Monday, March 29, 2010

CakePHP? Why Use it?

CakePHP is a free, open-source, rapid development framework for PHP. It’s a foundational structure for programmers to create web applications. Our primary goal is to enable you to work in a structured and rapid manner–without loss of flexibility.

CakePHP takes the monotony out of web development. We provide you with all the tools you need to get started coding what you really need to get done: the logic specific to your application. Instead of reinventing the wheel every time you sit down to a new project, check out a copy of CakePHP and get started with the real guts of your application.

CakePHP has an active developer team and community, bringing great value to the project. In addition to keeping you from wheel-reinventing, using CakePHP means your application’s core is well tested and is being constantly improved.

Here’s a quick list of features you’ll enjoy when using CakePHP:

* Active, friendly community
* Flexible licensing
* Compatible with versions 4 and 5 of PHP
* Integrated CRUD for database interaction
* Application scaffolding
* Code generation
* MVC architecture
* Request dispatcher with clean, custom URLs and routes
* Built-in validation
* Fast and flexible templating (PHP syntax, with helpers)
* View Helpers for AJAX, JavaScript, HTML Forms and more
* Email, Cookie, Security, Session, and Request Handling Components
* Flexible ACL
* Data Sanitization
* Flexible Caching
* Localization
* Works from any web site directory, with little to no Apache configuration involved

what is Model, View, Controller, MVC

Model–View–Controller (MVC) is a software architecture[1], currently considered an architectural pattern used in software engineering. The pattern isolates "domain logic" (the application logic for the user) from input and presentation (GUI), permitting independent development, testing and maintenance of each.

The model is the domain-specific representation of the data upon which the application operates. Domain logic adds meaning to raw data (for example, calculating whether today is the user's birthday, or the totals, taxes, and shipping charges for shopping cart items). When a model changes its state, it notifies its associated views so they can refresh.

Many applications use a persistent storage mechanism such as a database to store data. MVC does not specifically mention the data access layer because it is understood to be underneath or encapsulated by the model. Models are not data access objects; however, in very simple apps that have little domain logic there is no real distinction to be made. Also, the ActiveRecord is an accepted design pattern which merges domain logic and data access code - a model which knows how to persist itself.

The view renders the model into a form suitable for interaction, typically a user interface element. Multiple views can exist for a single model for different purposes.

The controller receives input and initiates a response by making calls on model objects.

An MVC application may be a collection of model/view/controller triplets, each responsible for a different UI element.

MVC is often seen in web applications where the view is the HTML or XHTML generated by the app. The controller receives GET or POST input and decides what to do with it, handing over to domain objects (i.e. the model) that contain the business rules and know how to carry out specific tasks such as processing a new subscription.

Scaffolding

Scaffolding is a temporary structure used to support people and material in the construction or repair of buildings and other large structures. It is usually a modular system of metal pipes (termed tubes in Britain), although it can be made out of other materials. Bamboo is still used in some Asian