The Yii Framework gives small businesses flexibility for managing web sites

The Yii framework can be leveraged to develop highly scalable Web 2.0 applications. It is highly flexible and allows additional functionality and enhancements on-the-fly which is best suited for small businesses looking to cut costs as they grow.

The Yii framework is a PHP software framework for Web development, similar to CodeIgniter, Ruby On Rails, CakePHP and Zend Frameworks. With Yii framework, you can create dynamic websites and applications that have common library access to databases and templates. The Yii framework is especially attractive to anyone who is looking to explicitly leverage AJAX in their application development.

For small businesses looking to progressively enhance the look and feel of their website, the Yii framework provides a highly flexible model allowing additional pages and features to be added with ease. For example, only a single line of code is needed to add a new page to the overall structure. These child pages inherit existing functionality from the parent layout, similar to themed templates, making it really easy to add progressive functionality as a business grows.

Building applications

Building website applications is usually a three-step process when using Yii. The user creates the database, Yii generates the base PHP code, and then the user customizes the generated code to his or her exact needs. The Model Generator, which is a web-based code generator, can help turn your database table definitions into model classes without writing a line of code. These model classes will make it possible to access database tables using object-oriented methods. The generated code is also highly customizable allowing you to create, read, delete and update selected tables. Customizing the code can include showing or hiding certain elements or columns from users. For example, to hide the password column, simply cross out the "password" element from the user admin view file.


The Yii framework can be downloaded from the Yii Website. Create a folder in your root directory (WebRoot) and name it Yii. This is where all the downloaded folders, most importantly, the Framework and Requirements folders, should reside.

You can check if your Web server supports the Yii framework requirements by using the link below if using a local server:


Framework folders

The Protected folder is the most important folder that you will use to edit and change the look and behavior of your site. The folder contains other code folders that you will need to edit as you add or change the site's functionality.

The Themes folder allows you to change or create variations of a site's template, similar to how Wordpress themes work.

Most configurations you will need to do will occur in the configuration file below:


The MVC model

Models in Yii allow you to store data from user input. Since each data object field, such as a row, has an attribute that represents it, they can be validated against a set of rules.

Views contain user interface elements. Views can be used to access and pull any property of a controller, such as extracting arrays or accessing local variables. Inside the Views folder in your Yii framework installation, you will find the Layout folder. This is a special view that can be used to render several views. By default, the views script below defines the site layout:


The Controller is created by the application object, upon user request, and basically represents user actions such as viewing, listing or updating records.

Yii uses many code generators that greatly decrease setup and configuration time of your applications. It's easy to extend its functionality by adding third-party libraries, templates and widgets. This is a great framework for anyone looking for highly modular rapid Web 2.0 application development. Small businesses can leverage Yii's functionality by easily adding user pages on-the-fly and running Ajax-based widgets.

By David Gitonga

David Gitonga is an avid reader and writer and has worked with various companies to design, develop, and maintain their websites. He has worked with websites as an online content marketing strategist in the field of tech, social media, design, and de...