This article is reproduced from http://www.ibm.com/developerworks/cn/opensource/os-cn-yii/
Yii is the most popular PHP framework at home and abroad today. Due to its high-performance features, it is recognized as the "most efficient PHP framework". YII provides almost everything you need for today's WEB 2.0 application development. It can quickly create a code framework for a Web application through a simple command YIIC, which enables developers to quickly develop Web applications by writing their own business logic on the generated code framework. This article will illustrate the YII framework through concrete examples, so that readers can learn how to use the YII framework to create their own WEB applications in real cases, so as to have a more realistic experience of this excellent PHP framework.
Yii Framework Overview What is YII?
Yii is a high-performance, component-based PHP framework for rapid development of WEB applications.
Yii's name comes from the acronym "Yes It is". This sentence definitely answers a number of questions about the framework: "Is it fast?" Is it safe? Is it strong? Is it suitable for our project? ”
What does Yii do for you?
Yii is a general-purpose lightweight web programming framework that can be used to develop almost any Web application. With its mature caching mechanism, especially suitable for the development of high-traffic applications, such as portals, forums, Content management systems (CMS), e-commerce systems and so on.
What are the advantages of YII compared to other software?
Like most PHP frameworks, Yii is an MVC framework that separates business logic from the user interface, making it easy for developers to make changes without affecting other parts.
Yii draws on and integrates many other well-known web programming frameworks and applications at design time, maximizing the needs of Web application development. So Yii has made it stand out from many PHP frameworks, both in terms of excellent performance, rich functionality, and clear documentation.
Installation of Yii and preparation of configuration before installation
Before installing and using YII, you need to have an environment where PHP and WEB servers are installed. Currently, there are many integrated environment software that can easily implement this part of the installation. Like the wampserver we're using here. You can download and install it from Wampserver's official website. The installation of Wampserver is very simple, double-click to execute it. During the installation, it will automatically install Apache, MySQL and PHP for you, without any additional configuration, and everything is done easily and simply.
Installation of Yii
The installation of YII is more simple than you can imagine, only to perform the following two steps to start using.
One: Download Yii framework from Yii's official website
Two: Unzip the downloaded file into a folder that can be accessed by the Web
If you want to verify that the Yii installation was successful, simply enter the following URL in the browser.
http://hostname/path/to/yii/requirements/index.php
Here are the pages we see from the browser.
Figure 1. YII Installation Successful page display
How to create a Web app using Yii use the command line tool YIIC create a web App
YIIC is a command-line tool through which you can create a complete application by simply using a command.
YIIROOT/FRAMEWORK/YIIC WebApp webroot/testdrive
For example: C:\wamp\www\yii\framework>yiic.bat webapp c:\wamp\www\abc
This command automatically creates an YII code framework named ABC for you under the WWW directory. You can access this newly created app locally using the URL below.
http://localhost/abc/index.php
Is the Web app we just created
Figure 2. Web apps created with YIIC
A case study on the implementation of the test data maintenance system based on YII
We have a simple test data maintenance system to show you how to use the YII framework to quickly develop a WEB application to meet our work needs.
Let me briefly explain the basic requirements of this Web application:
This WEB application mainly realizes the maintenance and the storage of the test data, including the basic functions such as adding and deleting and checking. The test data consists of two two-dimensional tables, and two tables are "header-detail" relationships. All data is stored in a relational database to facilitate statistical queries and future extensions.
Design and preparation of the application
Functional Requirements
The most basic function is "adding and deleting". Here is the test data of the main table and the list of two tables of the operation of the increase and deletion check.
Users are required to log in with their user and record the most recently modified person and date.
Selection and design of database
Use SQLite for data storage.
SQLite is a small embedded database, small and flexible, resource-intensive, fast processing, ideal for small and medium-sized applications of data storage. Due to its outstanding performance in all aspects, more and more developers have been favored.
To create a table:
Depending on the needs of the application, we store the test data in two tables, respectively. One is the primary table, the file information is stored, and the other is the schedule, which contains the content information (PII) in the file. Between the two tables is the "header-detail" relationship.
Listing 1. Creating SQL statements for table PII and file
CREATE TABLE file ( ID INTEGER not NULL PRIMARY KEY AutoIncrement, Package VARCHAR () is not NULL, piifile varch AR (255) not NULL, fileinserver varchar (255), Comment varchar (255) ) CREATE TABLE "PII" ( ID Integer NOT null PRIMARY KEY AutoIncrement, Piifileid INTEGER not NULL, piistr VARCHAR (+) NOT NULL, CaseN o varchar Default '-', Category VARCHAR (+), Shipment INTEGER, updatedat DATETIME, ModifiedBy varchar (+), Comment varchar (255) )
Initialization of data:
Import data using SQLite Manager. SQLite Manager is a Firefox plugin that allows you to easily manage and maintain your SQLite database.
Organize the prepared test data into CSV, TXT and other formats and import them through SQLite Manager. Data can be quickly ready. All data is stored in the embedded database SQLite. After the application framework is established, we copy the prepared database files to the directory C:\wamp\www\pii\protected\data.
Create an application framework
In the above we mentioned "creating a Web App using the command line tool YIIC", here we show you how to create an application from the command line.
C:\wamp\www\yii\framework>yiic.bat WebApp C:\wamp\www\pii
This command automatically creates a code framework for you, a Yii named PII, under the WWW directory. You can access this newly created app locally using the URL below.
http://localhost/pii/index.php
At this point, we see 4 default tabs on the Web page: "Home", "about", "contact" and "Login". Below we will add some basic features to the page implementation.
Add basic functionality
To implement the CRUD functionality of a table
First of all, we need to implement the file information additions and deletions, that is, the data in the table file operation and maintenance.
1. Connect to the database:
Place the prepared database file Pii.sqlite in the C:\wamp\www\pii\protected\data directory.
In file C:\wamp\www\pii\protected\config\main.php, define the database files that are used.
Listing 2. Defining Database Files
' DB ' =>array ( ' connectionString ' = ' = ' SQLite: '. DirName (__file__). ' /.. /data/pii.sqlite ', ),
2. Configuring the GII code generator
The GII is a powerful Web application code generator that can replace or simplify the workload of developers and automatically generate code to implement standard functional modules. Before we use it, we need to make some definitions of the file C:\wamp\www\pii\protected\config\main.php.
Listing 3. Configuring the GII code generator
' Import ' =>array ( ' application.models.* ', ' application.components.* ', ), ' modules ' =>array (' gii ' =>array ( ' class ' = ' System.gii.GiiModule ', ' password ' = ' password ', ) ,
Once defined, we can access the GII via URL http://hostname/pii/index.php?r=gii.
Figure 3. Gii code Generator
3. Modeling data sheets using the GII
In the GII, we will use model Generator to model the tables in the database. After we select Model Generator, we can see the following page.
Figure 4. Generating module code using Model Generator
Preview and generate the code, which generates the module file file.php in Protected/models.
4. Creating a CRUD code for a table
With the module files, we need to generate CRUD code for this module using the Crud Generator in the Gii.
Figure 5. Generating code using the CRUD generator
At this point, through Http://localhost/pii/index.php?r=file, you can see the file maintenance interface.
Figure 6. Generated Files Maintenance interface
Using the same method, we can also create the appropriate PHP file and maintenance page for the schedule PII.
5. Add the created functionality to the Web app
Below, we'll show you how to add the functionality you just created to your Web app. First, we need to make a little change to the file C:\wamp\www\pii_OK\protected\views\layouts\main.php.
In this file, we can customize the page that will be displayed according to our own needs. For example, looking at the code below, we made two changes: the first is to cancel the Home and contact two tab display, we added "//" commented the two lines of code. The second is the addition of two tab:files and Piis, with the addition of two lines of code that shows the two pages we created in the previous steps.
Listing 4. customizing tab pages
<div id= "MainMenu" > <?php $this->widget (' Zii.widgets.CMenu ', Array ( ' Items ' =>array ( // Array (' label ' = ' Home ', ' url ' =>array ('/site/index ')), Array (' label ' = ' Files ', ' url ' =>array ('/file /admin '), //New added Array (' label ' = ' piis ', ' url ' =>array ('/pii/admin ')), //New added Array (' label ' = ' about ', ' url ' =>array ('/site/page ', ' view ' = ' about '), //Array (' label ' = ' contact ') , ' url ' =>array ('/site/contact '), Array (' label ' = ' Login ', ' url ' =>array ('/site/login '), ' Visible ' =>yii::app ()->user->isguest), Array (' label ' = ' Logout '. Yii::app ()->user->name. ', ' url ' =>array ('/site/logout '), ' visible ' =>! Yii::app ()->user->isguest)) , ?> </div><!--MainMenu--
Now let's look at the effect. Sure enough, the Home and contact pages are missing, replacing them with the Files and Piis pages.
Figure 7. Added Web apps for Files and Piis
With this step, we have added the newly created two data sheet Drud application to our web page. We have been able to maintain the data in the table directly through these two pages.
Perfect function
So far, the main functionality of a WEB application for data table maintenance has been basically implemented. Of course, we often make some improvements to the existing functions according to the needs of our own use. For example, we need to make a record of the last person and date to modify the data, we need to hide some of the field's display, adjust the order in which some fields are displayed, and we may need to add some users to use the system. Since most of the code frameworks have been implemented through the GII, we only need to do some simple additions and modifications on this basis to achieve the functionality we require. Now, let's take a look at the last modified person and date modified to see how we can refine the desired functionality by modifying some code.
For example, we need to record the user and date information for the last modification of the PII data sheet. We'll first find the PHP file that maintains the Pii table. In this example, the file is C:\wamp\www\pii\protected\models\Pii.php. We add the following code at the end of the file:
Listing 5. Record modification date and user name
Public Function BeforeSave () { date_default_timezone_set ("Asia/shanghai"); $this->updatedat=date (' y-m-d h:i:s '); $this->modifiedby=yii::app ()->user->name; return Parent::beforesave (); }
This code sets the user name and modification date for the Updateat and ModifiedBy fields before saving the data, and then calls the BeforeSave method of the parent class. Once saved, you will find that the values of the Updated at and Modified by fields are automatically populated with the default content after you modify the PII data on the page.
Figure 8. Auto-fill Updated at and Modified by fields
Conclusion
Through this article, we learned about Yii, the most popular PHP framework today, and learned how to use the YII framework to create a WEB application by building a concrete example of a test data maintenance system. In this example, we also have a better understanding of the quick advantages of Yii in creating Web applications by using the GII code generator to automatically create a code framework for your application. We look forward to this article as a "start-up" role, in the hope that more people will understand and use the framework, and develop more and better applications.
Yii framework to create your own web App