Intro
PHP有眾多框架可供選擇,本篇大致會以Laravel 5、Yii 2、CodeIgniter 3做舉例與對照。
Router
Features |
CodeIgniter 3 |
Yii 2 |
Laravel 5 |
Router |
有 |
有 |
有 |
Controller預設路由 |
有 |
有 |
– |
Action arguments轉譯成URI |
有 |
– |
– |
Database/Model
Features |
CodeIgniter 3 |
Yii 2 |
Laravel 5 |
PDO |
支援 |
支援 |
支援 |
Query Builder |
有 |
有 |
有 |
ORM/Active Record |
– |
Active Record |
Eloquent |
Read & Write Splitting |
– |
有 |
有 |
Relations |
– |
有 |
有 |
Validation |
– |
有 |
有 |
Timestamps Behavior |
– |
有 |
有 |
Eager Loading |
– |
有 |
有 |
Junction Table |
– |
有 |
有 |
Soft Deleting |
– |
– |
有 |
Query Scopes |
– |
– |
有 |
CodeIgniter 3 ORM yidas/codeigniter-model
View/Template
Features |
CodeIgniter 3 |
Yii 2 |
Laravel 5 |
View |
有 |
有 |
有 |
Template Layout |
– |
有(Pure PHP) |
Blade pattern |
Template Engine |
– |
不需要 |
Blade |
Asset Manager
Features |
CodeIgniter 3 |
Yii 2 |
Laravel 5 |
Asset |
– |
有 |
– |
Asset Bundle |
– |
有 |
– |
Asset internal copy |
– |
支援 |
– |
DI (Dependency Injection)
Features |
CodeIgniter 3 |
Yii 2 |
Laravel 5 |
DI pattern |
– |
有 |
有 |
Container |
– |
Container |
Service Container |
Provider |
– |
Service Locator |
Service Provider |
Container Singleton |
– |
支援 |
支援 |
Central Provider |
– |
Application Component註冊 |
Provider Config註冊 |