When comparing Yii vs Li3, the Slant community recommends Yii for most people. In the question“What are the best PHP frameworks?” Yii is ranked 8th while Li3 is ranked 10th. The most important reason people chose Yii is:
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.
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 Unified relational and non-relational database API
Lithium has unified the relational and non-relational database APIs into a single one. Being one of the few frameworks to do it.
Pro Robust plugin architecture
Lithium makes use of PHP namespaces to create a powerful plugin architecture. Almost every component of the framework is replaceable.
Pro Fast Bootstrap & Autoloader
This framework loads faster than most due to its class autoloader. It is flexible as well and handles older classes - but requires the developer to define transforms here for naming convention, includes, etc. Many other frameworks use Composer for autoloading and that significantly slows down their bootstrap time because Composer's autoloader is extremely compatible without much developer interaction (it does not require as much involvement for autoloading legacy libraries). So it's a trade-off, speed vs. a little bit of up-front work.
Pro Integrated unit testing
Lithium comes with integrated unit testing. It also has a test dashboard.
Pro Aspect inspired filter system
Lithium's filter system is based on the paradigm of Aspect-oriented programming which aims to increase modularity by separating cross-cutting concerns and helping speed up development.
Pro Great for building an API
Lithium can return JSON and many other formats from the same actions that render templates increasing productivity in many cases. It handles a "type" key in the route which allows it to render various responses with different Content-Types. This is incredibly useful and easy to extend. This combined with closures in routes makes Lithium a very good framework for building a RESTful API.
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 Less than ideal documentation
Documentation is scattered so it takes a little while to learn and figure some things out.
