When comparing Yii vs Lumen, the Slant community recommends Lumen for most people. In the question“What are the best web frameworks to create a web REST API?” Lumen is ranked 10th while Yii is ranked 16th. The most important reason people chose Lumen is:
Since it's basically just a minimal version of Laravel, it can be upgraded to a full Laravel app if the need arises. No need for code changes, just import the code to a new Laravel install.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Rapid development through code scaffolding
Yii takes care of repetitive tasks through Gii, a web-based scaffolding tool. Gii takes care of code generation and creating code templates for:
- Models
- Controllers
- Forms
- Modules
- Extensions
- CRUD controller actions and views
- There are a lot of scaffolding templates made by community for Gii, that improve generated code functionality by a lot.
- Gii is very easy to extend yourself.
Pro Comes with important security standarts
Since security is a crucial part of any application, Yii comes with great security features out of the box to help developers create a secure and reliable application. These security features contain but are not restricted to:
- Input validation
- Output filtering
- Features against SQL injection
- Cross-site scripting prevention
Pro Highly extensible
Yii is built to be extremely extensible. Virtually every component of the framework can be extended programmatically. For example, if you want to add a unique id to your views, it's very easy to do:
namespace app\components;
class View extends yii\web\View {
public $bodyId;
/* Yii allows you to add magic getter methods by prefacing method names with "get" */
public function getBodyIdAttribute() {
return ($this->bodyId != '') ? 'id="' . $this->bodyId . '"' : '';
}
}
Pro Integrated with a testing framework
Yii makes use of Codeception, a great PHP testing framework that helps developers run their tests. They can be unit, functional or acceptance tests since Codeception supports them all.
Pro Lots of plugins available
Yii has about 2000 addons hosted on Yii's official website. These addons significantly decrease development time and increase the developer's efficiency.
Pro License
Yii is free and open source and is distributed under the BSD License.
Pro Strong community support
Yii has a strong and rather large community behind it. This is proven by the great number of blog posts, tutorials, guides and reviews on the Yii framework as well as the great number of extensions developed for it.
Pro Easy to install
Yii uses Composer to handle it's dependency installation. This is rather easy and not very time consuming, although it should be noted that Composer is very resource-intensive considering what it's job is. But that is not really Yii's fault.
Pro Best framework for CRUD operation
Yii Framework Provides most of features require for crud functionalities like GridView, Listview and DetailView (with jquery search and validation functions) by generating using GII.
Pro Highly extensible without effort
Pro Easily upgradable to Laravel
Since it's basically just a minimal version of Laravel, it can be upgraded to a full Laravel app if the need arises. No need for code changes, just import the code to a new Laravel install.
Pro Feature rich
Pro Highest performing PHP micro-Framework
Lumen is benchmarked at 100/rps (Requests Per Second) faster than Slim v3, which used to be considered the fastest and most performant micro-Framework to date with the ability to handle 1800/rps. (1900/rps vs 1800/rps respectively).
Pro Easy to use
Cons
Con Can be hard for beginners
Since Yii requires developers to write code following certain rules, or in other words, it requires developers to follow the "Yii way of doing things" it can be hard for beginners to warm up to it and start using it right away.
Con Not very good at many to many relations
(but there is a good plugin, namely CAdvancedArBehavior extension to do this)
Con Built for smaller tasks like APIs
Con It's based off Laravel and inherits its shortcomings
Lumen inherits many shortcomings of Laravel, such as static proxy classes.
Con Made to work alongside Laravel
Lumen as a framework is at it's full potential when used alongside it's older brother. Lumen was created to be used for microservices alongside Laravel, which is used for more user-facing applications. If a project is already using another framework other than Laravel, it would be better to use another microframework for microservices instead of Lumen.