34
Yii Yii [ [ easy, efficient and extensible easy, efficient and extensible php php framework] framework] Honeyson Joseph D Honeyson Joseph D Roll no : 511 Roll no : 511 MCA MCA TKMCE KOLLAM TKMCE KOLLAM http://www.facebook.com/ honeydev

Yii php framework_honey

Embed Size (px)

DESCRIPTION

not full covered..its just intro from its tutorial

Citation preview

Page 1: Yii php framework_honey

YiiYii

[ [easy, efficient and extensibleeasy, efficient and extensible php framework] php framework]

Honeyson Joseph DHoneyson Joseph DRoll no : 511Roll no : 511

MCAMCATKMCE KOLLAMTKMCE KOLLAM

http://www.facebook.com/honeydev

Page 2: Yii php framework_honey

introductionintroduction

- Yii is a high-performance component-based

PHP framework for developing large-scale

Web applications- Yii is a generic Web programming

framework, used for developing virtually all

sorts of Web applications

- Yii is a Model View Controller framework

http://www.facebook.com/honeydev

Page 3: Yii php framework_honey

FUNDAMENTALS OF YiiFUNDAMENTALS OF Yii

- Model-View-Controller (MVC)- Entry Script- Debug Mode- Application- Application Base Directory- Application Component- Controller- Action - Filters- Model - View- Layout- Widget etc….

http://www.facebook.com/honeydev

Page 4: Yii php framework_honey

FUNDAMENTALS OF YiiFUNDAMENTALS OF YiiModel-View-Controller (MVC)

MVC separate business logic from user interface considerations to easily change each part without affecting the other.

In MVC ,model represents the data and the business rules; view contains elements of the user interface such as text, form inputs; and the controller manages the communication between the model and the view.

Yii uses a front-controller, called application, which represents the execution context of request processing.

http://www.facebook.com/honeydev

Page 5: Yii php framework_honey

FUNDAMENTALS OF YiiFUNDAMENTALS OF Yii

Entry Script 

Entry script is the bootstrap PHP script that handles user requests initially. It is the only PHP script that end users can directly request to execute

Debug Mode

Yii application can run in either debug or production mode according to the constant value YII DEBUG.

By default, this constant value is defined as false, meaning production mode. To run in debug mode, define this constant as true before including the yii.php file

http://www.facebook.com/honeydev

Page 6: Yii php framework_honey

FUNDAMENTALS OF YiiFUNDAMENTALS OF Yii

Application 

Application represents the execution context of request processing. The application singleton can be accessed at any place via Yii::app().

Application Base Directory

Application base directory refers to the root directory that contains all security-sensitive PHP scripts and data. By default, it is a subdirectory named protected that is located under the directory containing the entry script

http://www.facebook.com/honeydev

Page 7: Yii php framework_honey

FUNDAMENTALS OF YiiFUNDAMENTALS OF Yii

Controller

A controller is an instance of CController or its child class created by application . When a controller runs, it performs the requested action which usually brings in the needed models and renders an appropriate viewAn action can be defined as a method whose name starts with the word action.

An action class and ask the controller to instantiate tasks when requested

Action

http://www.facebook.com/honeydev

Page 8: Yii php framework_honey

FUNDAMENTALS OF YiiFUNDAMENTALS OF Yii

Filter

Filter is a piece of code that is configured to be executed before and/or after a controller action executes.

Example, an access control filter may be executed to ensure that the user is authenticated before executing the requested action; a performance filter may be used to measure the time spent in the action execution.

http://www.facebook.com/honeydev

Page 9: Yii php framework_honey

FUNDAMENTALS OF YiiFUNDAMENTALS OF Yii

Model A model is an instance of CModel or its child class.

Models are used to keep data and their relevant business rules. A model represents a single data ob ject. It could be a row in a database table or a form of user inputsView

A view is a PHP script consisting of mainly elements of user interface. View contain PHP statements, but it is recommended that these statements should not alter data models and should remain relatively simple.

http://www.facebook.com/honeydev

Page 10: Yii php framework_honey

FUNDAMENTALS OF YiiFUNDAMENTALS OF Yii

LayoutsLayout is a special view that is used to decorate views. It usually contains portions of user interface that are common among several views

Widget

A widget is an instance of CWidget or its child class. It is a component mainly for presentational purpose. Widgets enable better reusability in user interface. Widgets are usually embedded in a view script to generate some complex yet self-contained user interface. For example, a calendar widget can be used to make a complex calendar user interface.

http://www.facebook.com/honeydev

Page 11: Yii php framework_honey

Static structure of an Yii Static structure of an Yii applicationapplication

http://www.facebook.com/honeydev

Page 12: Yii php framework_honey

A Typical Workflow OF YiiA Typical Workflow OF Yii

http://www.facebook.com/honeydev

Page 13: Yii php framework_honey

Workflow OF Workflow OF Yii(contd..)Yii(contd..)1. A user makes a request with the URL

http://www.example.com/index.php?r=post/show&id=1 and the Web server handles the request by executing the bootstrap script index.php.

2. The bootstrap script creates an application instance and runs it.

3. The application obtains the detailed user request information from an application component named request.

4. The application determines the requested

controller and action with the help of an application component named URL Manager.

http://www.facebook.com/honeydev

Page 14: Yii php framework_honey

Workflow OF Workflow OF Yii(contd..)Yii(contd..)5. The application creates an instance of

the requested controller to further handle the user request. The controller determines that the action show refers to a method named action show in the controller class. It then creates and executes filters (e.g. access controls, benchmarking) associated with this action. The action is executed if it is allowed by the filters.

6. The action reads a Post model whose ID is 1 from

the database.

7. The action renders a view named show with the

Post model.http://www.facebook.com/honeydev

Page 15: Yii php framework_honey

Workflow OF Workflow OF Yii(contd..)Yii(contd..)

8. The view reads and displays the attributes of the

Post model.

9. The view executes some widgets.

10. The view rendering result is embedded in a layout.

11. The action completes the view rendering and

displays the result to the user.

http://www.facebook.com/honeydev

Page 16: Yii php framework_honey

CREATING AN Yii CREATING AN Yii APPLICATIONAPPLICATIONFor creating Web application we use a

powerful yiic

tool which can be used to automate code creation for

certain tasks.

For simpliy, we assume that YiiRoot

is the directory where Yii is installed, and WebRoot is

the document root of our Web server.

http://www.facebook.com/honeydev

Page 17: Yii php framework_honey

CREATING AN Yii CREATING AN Yii APPLICATION(contd..)APPLICATION(contd..)

Step 0. Preparation

After downloading and installing the Yii framework, run a simple console command “% YiiRoot/framework/yiic webapp WebRoot/testdrive “ to generate a skeleton Web application built with Yii. The application is fully functional, with nice features including user login and contact form. It is a good starting point for implementing more sophisticated features.  

This will create a skeleton Yii application under the directory WebRoot/testdrive.

http://www.facebook.com/honeydev

Page 18: Yii php framework_honey

CREATING AN Yii CREATING AN Yii APPLICATION(contd..)APPLICATION(contd..)

http://www.facebook.com/honeydev

Page 19: Yii php framework_honey

CREATING AN Yii APPLICATION(contd..)CREATING AN Yii APPLICATION(contd..)Step 1. You Create the Database

While Yii can virtually eliminate most repetitive coding tasks, you are responsible for the real creative work. This often starts with designing the whole system to be built, in terms of some database schema.

http://www.facebook.com/honeydev

Page 20: Yii php framework_honey

CREATING AN Yii APPLICATION(contd..)CREATING AN Yii APPLICATION(contd..)

Step 2a. Yii Generates the Model Classes

Using the built-in Web-based code generator, you can turn database table definitions into model classes instantly, without writing a single line of code.

The model classes will allow you to access the database tables in an object-oriented fashion.

http://www.facebook.com/honeydev

Page 21: Yii php framework_honey

CREATING AN Yii APPLICATION(contd..)CREATING AN Yii APPLICATION(contd..)

http://www.facebook.com/honeydev

Page 22: Yii php framework_honey

CREATING AN Yii APPLICATION(contd..)CREATING AN Yii APPLICATION(contd..)

Step 2b. Yii Generates the CRUD Code

Using the code generator, we can further generate code that implements the typical CRUD (create, read, update, delete) features for the selected database tables. The generated code is highly usable and customizable, following the well-adopted MVC (model-view-controller) design pattern.

http://www.facebook.com/honeydev

Page 23: Yii php framework_honey

CREATING AN Yii APPLICATION(contd..)CREATING AN Yii APPLICATION(contd..)

http://www.facebook.com/honeydev

Page 24: Yii php framework_honey

CREATING AN Yii APPLICATION(contd..)CREATING AN Yii APPLICATION(contd..)Step 3. You customize the code to fit your exact needs Finally we customize the code to fit our exact needs. For example, to hide the password column on the user administration page, simply cross out the 'password' element shown in the following user admin view file:

<?php $this->widget('zii.widgets.grid.CGridView', array( 'id'=>'user-grid', 'dataProvider'=>$model->search(), 'filter'=>$model, 'columns'=>array( 'id', 'username', 'password', 'email', array('class'=>'CButtonColumn'), ))); ?>

http://www.facebook.com/honeydev

Page 25: Yii php framework_honey

CREATING AN Yii APPLICATION(contd..)CREATING AN Yii APPLICATION(contd..)

http://www.facebook.com/honeydev

Page 26: Yii php framework_honey

features of features of YiiYii

- Database Access Objects (DAO),

Query Builder

Yii allows developers to model

database data in terms of objects and

avoid the deadliness and complexity of

writing repetitive SQL statements.

- Model-View-Controller (MVC) design

pattern

Yii adopts the proven MVC

architecture, which allows for clean separation

of concerns.

http://www.facebook.com/honeydev

Page 27: Yii php framework_honey

features of features of Yii(contd..)Yii(contd..)

- Form input and validation

Yii makes collecting form input

extremely easy and safe. It comes with a

set of validates as well as numerous

helper methods and widgets to simplify

the task for form input and validation.

- Authentication and authorization

Yii has built-in authentication

support. It also supports authorization via

hierarchical role-based access controlhttp://www.facebook.com/honeydev

Page 28: Yii php framework_honey

features of features of Yii(contd..)Yii(contd..)- Skinning and theming

Yii implements a skinning

and theming mechanism that allows you

to quickly switch the outlook of a Yii-power

website.- Layered caching scheme

Yii supports data caching, page

caching, fragment caching and dynamic

content. The storage medium of caching can

be changed easily without touching the

application code.http://www.facebook.com/honeydev

Page 29: Yii php framework_honey

features of features of Yii(contd..)Yii(contd..)- Automatic code generation

Yii provides a set of intuitive

and highly extensible code generation

tools that can help you quickly generate

the code you need for features such as

form input, CRUD.- Purely object-oriented

Yii framework sticks to strict OOP

paradigm. It does not define any global

function or variable. And the class hierarchy

that it defines allows maximum reusability and

customization.http://www.facebook.com/honeydev

Page 30: Yii php framework_honey

features of features of Yii(contd..)Yii(contd..)

- Error handling and logging

Errors are handled and

presented more nicely, and log messages

can be categorized, filtered and routed to

different destinations.- Security

Yii is equipped with many security

measures to help prevent your Web

applications from attacks such as SQL

injection, cross-site scripting (XSS), cross-site

request forgery (CSRF), and cookie tampering.http://www.facebook.com/honeydev

Page 31: Yii php framework_honey

Advantages of Yii frameworkAdvantages of Yii framework

•Component based•MVC•DOA/Active record•Form validation/re-population•Theming•Authentication and role-based access control•Strict OOP (PHP5 only to make full use of PHP object functionality)•Great documentation•Active community•Example project

http://www.facebook.com/honeydev

Page 32: Yii php framework_honey

Disadvantages of Yii frameworkDisadvantages of Yii frameworkIt is written in approach that does not support the most innovative, modern advantages brought to PHP development world with release of PHP 5.3 and soon – PHP version 6. Differences are so big that Yii developers decided that to fulfil PHP 5.3/6.0 needs the entire framework had to be rewritten from scratch.

Due to complexity of this task, it is not scheduled to be achieved earlier than at the beginning of 2012

http://www.facebook.com/honeydev

Page 33: Yii php framework_honey

ConclusionConclusionYii does not need to be installed under a Web-accessible directory.

An Yii application has one entry script which is usually the only file that needs to be exposed to Web users.

Other PHP scripts, including those from Yii, should be protected from Web access since they may be exploited for hacking.

http://www.facebook.com/honeydev

Page 34: Yii php framework_honey

ReferencesReferences

 [1] www.code.google.com/yii/

[2] Wikipedia – Yii

[3] http://www.yiiframework.com

http://www.facebook.com/honeydev