When comparing Yii vs Fat-Free Framework, the Slant community recommends Fat-Free Framework for most people. In the question“What are the best PHP frameworks?” Fat-Free Framework is ranked 3rd while Yii is ranked 8th.
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 Simple development set up
Pro Lightweight without losing functionality
The framework is very lightweight and fast. Even though it's pretty light, it still does not lose a lot of functionality.
Pro Shortened development time
Building an application that processes a URL (display a page, submit a form, invoke Ajax, etc.) requires very little code and can be achieved very quickly. Allows developers to focus on the application itself and not the plumbing.
Pro Easy to get started
After you download the framework it is very simple to get an app up and running very quickly. Makes it easy for newer PHP and web app developers to start using a MVC framework.
Pro Very stable
You know those frameworks that have updated 5 times during your own development phase? Well, F3 sees one or two updates per year. Never had any issues updating or upgrading. F3 just works.
Pro ORM supports sql, nosql, and jig
Pro Highly modular
Virtually everything is modular. You can choose which modules and libraries to include and to keep the framework as lightweight as possible.
Pro FREE structure
Pro No canned coding/directory structure
Freedom to structure your projects' directories and codes as you wish.
F3 is a non-opinionated framework : you are entirely free to use the files/API/assets structure that you love.
Following a minimalistic approach, F3 tends to avoid adding code and structure that are not strictly necessary, while focusing on what really matters : coding your solution; actually you learn F3 while implementing/coding your project/webapp
Pro Multiple view engines
Default view engine is superb and can also work with varieties of PHP view engines including Twig.
Pro Vibrant community behind the framework
The community is responsive and helpful in clarifying the aspects of the framework.
Pro Very little spin up time
The time to go from knowing nothing about Fat-Free to getting a project completed is very reduced compared to other bulky frameworks.
Pro Comprehensive documentation and API reference
Concise and to the point documentation. Includes many examples and complete API reference.
Pro Unit testing toolkit
Pro No composer, curl or dependency injectors
You download a zip file and use it by placing require(); statement. No need to use composer, curl or any dependency injector which sometime become a great pain.
Pro Very little not included by default
In a framework that's so small, it puts the rest to shame.
Pro Self documenting code
Pro Good documentation
With many examples which are easy to follow by new users.
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 Community is a bit small, so if you get stuck you have trouble finding answers via google
Searching for "fat-free minification" on google sometimes doesn't give you the "right" answer.
Con Backward incompatible within minor version
There are serious incompatibilities even between minor versions (eg. between 3.6.0 and 3.6.2). Developers exhibit complete lack of understanding what is versioning of product (and which changes should be integrated in which versions), which makes this framework unsuitable for serious work. Development is slow, stable versions are rare and not treated seriously.
Con Default ORM doesn't support joins
The default ORM for this framework is missing some features such as joins. But it's important to keep in mind that it's a small plugin, only 23KB in size which still can be replaced with a larger ORM if needed.
An alternative the drop in f3-cortex ORM which is popular, and supported by the community, which supports Joins and much more.
Con Need more example of working code and directory structures and usage with JS and CSS frameworks
Con Abandoned
The project has been abandoned since 2016. (not abandoned since 2019 with multiple new releases)
Con The default template engine is "home made"
Con Lack of video tutorials
While there is a great user guide, compared to other established PHP frameworks, there is a relative shortage of video and written step-by-step tutorials for newbies to learn this framework.
