Home >PHP Framework >YII >Yii is a fast, secure and professional PHP framework
Yii is a high-performance PHP framework suitable for developing WEB2.0 applications.
Yii comes with a rich set of features, including MVC, DAO/ActiveRecord, I18N/L10N, caching, authentication and role-based access control, scaffolding, testing, etc., which can significantly shorten development time
Official website: http://www.yiiframework.com/
Yii Fast
Yii only loads the features you need. It has strong caching support. It's explicitly designed to work efficiently with AJAX.
Yii safety
Yii is safe by its standards. It includes input validation, output filtering, SQL injection and cross-site scripting prevention.
Professional
Yii helps you develop clean and reusable code. It follows the MVC pattern, ensuring a clear separation of logic and presentation layers.
Yii Framework is a component-based, high-performance PHP framework for developing large-scale web applications. Yii provides almost everything needed for today's Web 2.0 application development. Yii is one of the most efficient PHP frameworks. Yii is the brainchild of founder Xue Qiang and began development on January 1, 2008.
Yii is a high-performance component-based PHP framework for developing large-scale web applications. Yii is written in strict OOP and has complete library references and comprehensive tutorials. From MVC, DAO/ActiveRecord, widgets, caching, hierarchical RBAC, web services, to theming, I18N and L10N, Yii provides almost everything needed for today's Web 2.0 application development. In fact, Yii is one of the most efficient PHP frameworks.
Yii is a high-performance PHP5 web application development framework. A simple command line tool yiic can quickly create a web application code framework. Developers can add business logic based on the generated code framework to quickly complete application development.
Yii Advantages
Yii is easy to learn and use. You only need to know PHP and object-oriented programming, and you can get started quickly without having to learn a new architecture or template language in advance.
Development with Yii is very fast, and apart from the framework itself, very little coding needs to be written for the application. In fact it is one of the most efficient development frameworks.
Yii is highly reusable and extensible and is purely object-oriented. Everything in Yii is an independently configurable, reusable, and extensible component. What's more important is that Yii has more and more extension libraries. Composed primarily of user-contributed components, this may help significantly reduce your development time. Yii is rich in features. From MVC, DAO/ActiveRecord, to theming, internationalization and localization, Yii provides almost all the features needed for today's Web 2.0 application development.
The Yii Reference Manual is a complete documentation of Yii, with any information you need to learn and master it.
Yii was carefully designed from the beginning to accommodate complex WEB application development. It is not a by-product of some project or a third-party integration. Rather, it is the culmination of the author's rich web application development experience and excellent ideas from other popular web frameworks and applications.
Last, but not least, Yii is free and Yii follows the latest BSD license. It ensures that its third-party development also follows a BSD-compatible license. This means that you are free to use Yii to develop any open source or proprietary application, both legally and financially.
characteristic
Yii has almost all the features of today's Web 2.0 application development. Below is a short list of these features.
Model-View-Controller (MVC) design pattern: Yii adopts this mature technology in WEB programming to better separate the logic layer and presentation layer.
Database Access Object (DAO) and Active Record: Yii allows developers to model data objects in a database, thereby reducing their effort in writing long and repetitive SQL statements.
Integration with jQuery: As one of the most popular JavaScript frameworks, jQuery can write efficient and flexible JavaScript interfaces.
Form input and validation: YII makes collecting form input very easy and secure. Yii has a set of validators to ensure the validity of data. It also has helper methods and components to display errors when validation fails.
Web 2.0 Widgets: Powered by jQuery, YII comes with a set of Web 2.0 widgets such as autocomplete input fields, TreeView and more.
Authentication and Authorization: Yii has built-in authentication support. It also supports authorization through layered role-based access control (RBAC).
Theme: It can instantly change the view of a Yii application.
Web Services: Yii supports automatically generating complex WSDL service specifications and managing Web service request processing.
Internationalization (I18N) and localization (L10N): Yii supports message conversion, date and time formats, number formats and interface localization.
Hierarchical caching scheme: Yii supports data caching, page caching, fragment caching and dynamic content. A cached storage medium that can be easily changed without touching the application code.
Error handling and logging: Error handling is well presented, and log information can be classified, filtered and assigned to different locations.
Security: Yii comes with many security measures to help secure web applications to prevent network attacks. These measures include cross-site scripting (XSS) prevention, cross-site request forgery (CSRF) prevention, cookie tampering prevention, etc.
XHTML Compliant: Yii components and command line tools generate code that is XHTML compliant.
Automatic code generation: Yii provides tools that can automatically generate code according to your needs, such as generating a program skeleton, CRUD application, etc.
Completely object-oriented: Yii framework adheres to a strict object-oriented programming paradigm. It does not define any global functions or variables. Moreover, the class hierarchy it defines allows for maximum reusability and customization.
Friendly to use third-party code: Yii is carefully designed to make third-party code work very well. For example, you can use PEAR or Zend Framework code in your Yii application.
Detailed documentation: Every single method or attribute is documented very clearly. A comprehensive tutorial and some beginner tutorials are also provided.
Extension library: Yii provides an extension library composed of user-provided components, which makes the above list of functions never-ending.
About Yii
Yii is a component-based, high-performance PHP framework for developing large-scale web applications. In WEB development, Yii can maximize code reuse and greatly improve the speed of development. The name Yii (pronounced Yee or [ji:], which should be the pronunciation of "yi") represents easy, efficient and extensible
Environmental requirements
To run a Yii To drive web applications, you need a web server that supports PHP 5.1.0 or above.
For developers who plan to use Yii, it will be very helpful to understand object-oriented programming (OOP). Because Yii is a pure OOP framework.
Scope of application
Yii is a general web programming framework that can be used to develop almost all web applications. Since it is lightweight and has a mature caching solution, it is particularly suitable for developing high-traffic applications, such as portals, forums, content management systems (CMS), e-commerce systems, etc.
Comparison with similar products
Similar to most PHP frameworks, Yii is an MVC framework.
Yii outshines other frameworks with its excellent performance, rich functionality, and clear documentation. Yii was carefully designed from the ground up to be suitable for serious web application development. It is neither a derivative of other projects nor a combination of third-party work. It is the result of the author's extensive web application development experience and research and thinking on most popular web programming frameworks and applications.
performance
yiiPerformance
Yii is a high-performance framework. The following chart shows Yii's high efficiency compared with other popular PHP frameworks. In this chart, RPS stands for "Requests Per Second" and describes how many requests this framework performs per second. The higher this number, the higher the performance of this framework, and we can see that Yii outperforms the other frameworks in this comparison. The performance advantage of Yii is especially significant when the widely used APC extension is enabled.
Performance alone is not the whole story (otherwise we should all use plain HTML or PHP). With such superior performance, Yii still provides a very rich feature set which can greatly improve your development efficiency.
Why Yii is so fast
Yii is so fast because it extensively uses lazy loading technology. For example, the class will not be included until it is used for the first time; the object will not be created 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.
Standard Settings
Below we explain how to design a baseline application and get the above RPS results.
Benchmark Request
Since our goal is to compare the minimal overhead of each framework, the benchmark application for each framework should be the simplest one. We choose to display a "Hello World" text string by placing an echo statement in the default action of each application. Any additional framework features (e.g. session) are disabled to ensure fairness of the comparison. To obtain a copy of the benchmark applications, please check out the phpmark project.
Why use " Hello World”
We do the “hello world” test mainly to achieve our goals, such as: finding the minimum cost of each framework. Many people complain that "hello world" applications are pointless because real-world applications often involve more complex tasks, such as database queries. this is not right. In fact, especially in some large-scale web2.0 applications, the situation we often encounter is usually quite close to "hello world". For example: the application needs to return the current server time in response to an ajax request. The page has most of its content cached, and the application only needs to fetch the cached content and display it.
Another reason to use "hello world" is that when referencing more complex features (such as database queries), the clarity of the comparison will be difficult to ensure. For example: the framework can execute database queries very efficiently, but lacks a caching solution. While another framework is slightly slower on database queries, it has advanced caching features to mitigate system overhead. All in all there are too many factors involved to make a clear comparison.
Standard Tools and Environment
Use the command "ab -t 30 -c 10 URL" of the ApacheBench tool to obtain the RPS number (for example: run the test at the concurrency level 10 for 30 seconds). In order to obtain the number of each frame, we first stop and start the Apache WEB server to avoid interference. Also run the test program several times to "warm up" the test environment. In the phpmark project, there is a shell script called benchmark.sh that automates the benchmark process.
Credits
Yii draws many of its ideas from other well-known web programming frameworks and applications. Below is a short list.
Prado: This is the main source of ideas for Yii. Yii adopts component-based and event-driven programming models, database abstraction layer, modular application architecture, internationalization and localization, and many of its other features and functions.
Ruby on Rails: Yii inherits the idea of its configuration. Also references its Active Record ORM design pattern.
jQuery: This is a JavaScript framework integrated in Yii.
Symfony: Yii references its filtering design and plugin architecture.
Joomla: Yii cited for its modular design and information translation scheme.
The above is the detailed content of Yii is a fast, secure and professional PHP framework. For more information, please follow other related articles on the PHP Chinese website!