Interview Questions for Yii

What is Yii Framework?

=>Yii is a high-performance component-based PHP framework best for Web 2.0 development.

What Yii is so FAST?

=> Yii is so much faster because it is using the lazy loading technique extensively. For example, it does not include a class file until the class is used for the first time; and it does not create an object until the object is accessed for the first time. Other frameworks suffer from the performance hit because they would enable a functionality (e.g. DB connection, user session) no matter it is used or not during a request.

Can you Remember what is directory structure when you downloaded Yii?

params-local.php *


main-local.php *
params-local.php *
yiic.php *
main-local.php *
params-local.php *

index.php *

What is the first file that gets loaded when you run a application using Yii?   


What is model,view,controller?                                                                     
=> Models represent the underlying data structure of a Web application. Models are often shared among different sub-applications of a Web application. For example, a LoginForm model may be used by both the front end and the back end of an application; a News model may be used by the console commands, Web APIs, and the front/back end of an application. Therefore, models
·         should contain properties to represent specific data;
·         should contain business logic (e.g. validation rules) to ensure the represented data fulfills the design requirement;
·         may contain code for manipulating data. For example, a SearchForm model, besides representing the search input data, may contain a search method to implement the actual search.
=> Views are responsible for presenting models in the format that end users desire. In general, views
·         should mainly contain presentational code, such as HTML, and simple PHP code to traverse, format and render data;
·         should avoid containing code that performs explicit DB queries. Such code is better placed in models.
·         should avoid direct access to $_GET, $_POST, or other similar variables that represent the end user request. This is the controller’s job. The view should be focused on the display and layout of the data provided to it by the controller and/or model, but not attempting to access request variables or the database directly.
·         may access properties and methods of controllers and models directly. However, this should be done only for the purpose of presentation.
=>Controllers are the glue that binds models, views and other components together into a runnable application. Controllers are responsible for dealing directly with end user requests. Therefore, controllers
·         may access $_GET, $_POST and other PHP variables that represent user requests;
·         may create model instances and manage their life cycles. For example, in a typical model update action, the controller may first create the model instance; then populate the model with the user input from$_POST; after saving the model successfully, the controller may redirect the user browser to the model detail page. Note that the actual implementation of saving a model should be located in the model instead of the controller.
·         should avoid containing embedded SQL statements, which are better kept in models.
·         should avoid containing any HTML or any other presentational markup. This is better kept in views.


What is the naming convention inYii?                                                        
=> You can define table prefix when using Gii. In your case you need to set it to tbl_. Then it should  generate UserController instead of TblUserController.
=> The Yii Framework employs a class naming convention whereby the names of the classes directly map to the directories in which they are stored. The root level directory of the Yii Framework is the “framework/” directory, under which all classes are stored hierarchically.
Class names may only contain alphanumeric characters. Numbers are permitted in class names but are discouraged. Dot (.) is only permitted in place of the path separator.

What is the component,helper and why are they used,is there other way we can do same thing,what is better?

=> A component is an independent piece of code written for specific task that can be used by calling in controllers (example : email component), helper is used for helping yii in rendering the data to be shown to user with views, these only adds to modularity in code otherwise same coding can be implemented in controllers.

How do you proceed when you have to use Yii for any application?
=> take the framework either from Yii site or if you have changed according to your needs start from there. Proceed with basic software engg. concepts as requirement gathering etc..

This is a basic Understanding Concept in yii
1.    Yii-based apps are driven by data logic. When I build an app, I always start by making sure that my database schemes are well-designed and optimised to fit the business flow of the app. Therefore, my codes are automatically generated based on my database design. And, yes…
2.    … Yii can generate the whole shebang of PHP codes for you automatically! Just define which database you want to use, and with a few clicks it will create a CRUD (create-read-update-delete) app for you. It looks so cute, I tell you! Speaking of automatic…
3.    … Yii can generate a skeleton app for you automatically. This skeleton app include a view page, a login page, contact page and basic navigation, all wrapped within a completely organized folder tree based on the standard MVC programming model.
4.    The extensive choice of Yii functions makes sense. As a self-taught web programmer, I was able to map out its functions to all of the RESPONSE and REQUEST tasks I most often use when building webapps within a matter of minutes. It also doesn’t hurt that the Yii community has kindly provided cheat sheets for the functions so that I can do a quick reference when I need to.
5.    The Definitive Guide to Yii document that comes with the Yii install is actually quite easy to go through, at least for me. I don’t know why, though. I thought CakePHP docs were more user-friendly and attractive, but surprisingly I was able to go through Yii documentation and tutorial in just two hours and not get cross-eyed by the end of it.
6.    Yii uses MySQL and SQLite as its choice database types. Of course, you can run any other type of databases as long as you have its PDO enabled in your php.ini file. I develop using MySQL most of the time, but my fondness for SQLite is increasing, due to the fact that SQLite is so darn lightweight and easy to use.
7.    Yii is integrated with jQuery, which means that many of the necessary validation functions I use can easily be plugged within the Yii function calls itself, which is usually only a line of code or two.
8.    Yii is open-source, and it’s free. Open-source products turn me on.

What is the first function that gets loaded from a controller?               
=> index

 what is habtm?                                                                                                 
=>has and belongs to many is a kind of associations that can be defined in models for retrieving associated data across different entities.

11. How can we use ajax in Yii?                                                                                             
=>by calling ajax helper and then using it in controller for rendering.

12.If you have to validate a registrations module for a user, what all can be possible ways, which one is the best?
=>can be done on submission in controller, or using javascript/ajax while user is still filling the data. Second option is better.

13. can you list some database related functions in Yii?                                 
=> find, findAll , findByPk , find By ,query

14. How can you include a javascript menu throught the site? Give Steps…     
=>By adding the javascript files in webroot and call them in default views if needed everywhere or just in the related views.

Features of Yii
Whether you are one developer building a fairly simple Web site, or a team of distributed developers building an extremely complex Web application, using Yii is like augmenting your development team with additional experienced, professional, and efficient resources. All for free!
You can stay focused on the tasks specific to your business requirements, and let Yii provide an implementation strategy for all of the following:

Model-View-Controller (MVC) design pattern Yii adopts the proven MVC architecture, which allows for clean separation of concerns (SoC).
Database Access Objects (DAO), Query Builder, Active Record, DB Migration Yii allows developers to model database data in terms of objects and avoid the tedium and complexity of writing repetitive SQL statements.
Form input and validation Yii makes collecting form input extremely easy and safe. It comes with a set of validators as well as numerous helper methods and widgets to simplify the task for form input and validation.
AJAX-enabled widgets Integrated with jQuery, Yii comes with a set of AJAX-enabled widgets, such as auto-complete input field, treeview, data grid, which enables writing highly efficient and versatile user interface extremely simple.
Authentication and authorization Yii has built-in authentication support. It also supports authorization via hierarchical role-based access control (RBAC).
Skinning and theming Yii implements a skinning and theming mechanism that allows you to quickly switch the outlook of a Yii-power website.
Web services Yii supports automatic generation of complex WSDL service specifications and management of Web service request handling.
Internationalization (I18N) and localization (L10N) Yii supports message translation, date and time formatting, number formatting, and interface localization.
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.
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.
Unit and functionality testing Yii provides support for writing and running unit tests as well as functionality tests, based on PHPUnit and Selenium.
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.
Compliance to XHTML HTML code produced by Yii components and code generators complies to the XHTML standard.
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.
Friendly with third-party code Yii is carefully designed to work well with third-party code. For example, you can use code from PEAR or Zend Framework in your Yii application.
Detailed documentation Every single method or property is clearly documented. A book and comprehensive tutorials are also available for you to systematically learn Yii.
Extension library Yii provides an extension library consisting of user-contributed components. This makes the above feature list never ending.

You might initially try Yii for its speed, security, feature richness, and superb engineering. But you’ll stick with it because it is just so intuitive, flexible and fun. Don’t take our word for it. Dive in deeper and see for yourself: Take the tour. And when your ready to get your hands a little dirty, download the framework and follow the tutorials.


One comment

  1. Hi it’s me, I am also visiting this site daily, this web page is really fastidious and the users are in fact sharing nice thoughts.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s