Home > Article > Backend Development > Yii fast, safe, professional PHP framework, yii professional php framework_PHP tutorial
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 Security
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 requires very little coding to be written for the application other than the framework itself. 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 all the 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.
Features
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 enables writing 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 cyber 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 it work very well with third-party code. For example, you can use PEAR or Zend Framework code in your Yii application.
Detailed documentation: Every single method or property 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 list of above 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 needs
To run a Yii-powered web application, 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 know 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.
Compare with similar products
Like 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
yii performance
Yii is a high-performance framework. The following chart shows Yii's high efficiency compared to 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 setwhich can greatly improve your development efficiency.
Why is Yii so fast
Yii is so fast because it uses lazy loading technology extensively. 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 the benchmark application and obtain 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 "hello world" testing 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), clarity of 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 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 into Yii.
Symfony: Yii references its filtering design and plugin architecture.
Joomla: Yii cited for its modular design and information translation scheme.
It depends on your level
It is best to look at things like frameworks while using them
Otherwise it will be difficult to truly master
Look for a few projects to look at
1. Yii
Yii is a component-based, high-performance 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 principalization, I18N and L10N, Yii provides almost everything needed for today's Web 2.0 application development. And the price of this frame is not too high. In fact, Yii is one of the most efficient PHP frameworks.
2. CodeIgniter
CodeIgniter is an application development framework - a toolkit designed for people who build PHP websites. Its goal is to develop projects quickly: it provides a rich set of libraries to complete common tasks, as well as a simple interface and a well-organized structure to access these libraries. Developing with CodeIgniter can inject more creativity into your projects because it saves a lot of coding time.
3. CakePHP
CakePHP is a framework for rapid development of PHP, which uses some common design patterns such as ActiveRecord, Association Data Mapping, Front Controller and MVC. Its main goal is to provide a framework that enables PHP developers of any level to quickly develop web applications, and this rapid implementation does not sacrifice the flexibility of the project.
4. PHPDevShell
PHPDevShell is an open source (GNU/LGPL) rapid application development framework for developing pure PHP without Javascript. It has a complete GUI administrator backend interface. Its main goal is to develop management-based applications such as plug-ins, where speed, security, stability and flexibility are the top priorities. It's designed to have an easy learning curve, so PHP developers don't need to learn complex new terminology. The arrival of PHPDevShell meets developers' needs for a lightweight but fully functional GUI that can be configured without restrictions.
5. Akelos
Akelos PHP framework is a web application development platform based on the MVC design pattern. Based on good usage habits, you can use it to complete the following tasks:
◆Conveniently use Ajax to write views
◆Manage requests and responses through controllers
◆Manage internationalized applications
◆Use simple protocols to communicate with models and databases
Your Akelos application can run on most shared hosting providers because Akelos is server-friendly The only requirement is support for PHP. Therefore, the Akelos PHP framework is ideal for publishing stand-alone web applications because it does not require non-standard PHP configuration to run.
6. Symfony
Symfony is a web application framework for developing PHP5 projects.
The purpose of this framework is to speed up the development and maintenance of web applications and reduce repetitive coding work.
Symfony has low system requirements and can be easily installed on any setup: all you need is a Unix or Windows server with PHP5 installed on it. It is compatible with almost all databases. The price of Symfony is not high, much lower than the cost of a host.
For PHP developers, using Symfony is a natural thing, and the learning curve is only one day. Clean design and code readability will shorten development time. Developers can apply the principles of agile development (such as DRY, KISS or XP, etc.) and focus on the application logic level without spending a lot of time writing endless XML configuration files.
Symfony is designed to build complete enterprise-level applications. That is, you have control over the entire setup: from path structure to external libraries, almost everything can be customized. In order to comply with enterprise development regulations, Symfony also bundles some additional tools to facilitate project testing, debugging, and archiving.
7. Prado
The PRADO team is made up of some PRADO fanatics... The rest of the story>>