Yii Basic Interview Question




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?  

    backend/
    common/
        components/
        config/
            params.php
            params-local.php *
        lib/
            Pear/
            yii/
            Zend/
        migrations/
        models/
            Comment.php
            Extension.php
            ...
    console/
        commands/
            SitemapCommand.php
            ...
        config/
            main.php
            main-local.php *
            params.php
            params-local.php *
        runtime/
        yiic.php *
    frontend/
        components/
        config/
            main.php
            main-local.php *
            params.php
            params-local.php *
        controllers/
            SiteController.php
            ...
        lib/
        models/
            ContactForm.php
            SearchForm.php     
        runtime/
        views/
            layouts/
            site/
        www/
            assets/
            css/
            js/
            index.php *
    yiic
    yiic.bat

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

=>index.php

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?                                                                                                 
=>HasAndBelongsToMany
=>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.





19 comments:

  1. Thats a great information.
    If we follow the above directory structure, Should I actually change "frontend" to something else? or should I have to write url rules?
    How to deploy it to serever, so that www.MYSITE.com will be available?

    ReplyDelete
    Replies
    1. Yes you can write a url rules.

      In this structure I created the separate front-end and Back-end module so if we write the url like

      Front-end : www.MYSITE.com
      Back-end : www.MYSITE.com/index.php/admin

      Delete
  2. not so much important .

    ReplyDelete
    Replies
    1. Its about basic structure and initial understanding towards yii2. if you'd like to acquire more information about yii then emphasis your queries here.

      Delete
  3. Report Bugs Topic tells about the bug reports of this blogs....


    Yii Development Company India

    ReplyDelete
  4. Thnx fr valuable infotmation

    ReplyDelete
  5. Information is valuable but there should be more explanation about yii2 as users will ameliorate their knowledge.

    ReplyDelete
  6. Great work!The information is more valuable.Its about basic structure and initial understanding towards yii2.If you really searching about yii2,Have a look on yii2 development company,

    ReplyDelete
  7. This comment has been removed by the author.

    ReplyDelete
  8. This comment has been removed by the author.

    ReplyDelete
  9. This comment has been removed by the author.

    ReplyDelete
  10. This comment has been removed by the author.

    ReplyDelete
  11. May I basically say what an alleviation to find somebody that really understands what they are discussing on the web. You really realize how to expose an issue and make it significant. Much more individuals should take a gander at this and comprehend this side of the story. It's astounding you're not more mainstream given that you certainly have the blessing.
    live

    ReplyDelete
  12. Nice blog...Very useful information is providing by ur blog..here is a way to find.
    PHP Developer In India

    ReplyDelete