Yii vs Symfony 2
Monday, February 20, 2012 7:22:51 AM
Документация
Yii 1.1.10: Полная русская и английская докуменация
Symfony 2: Полная английская и не полная русская документация, как по Symfony так и по ORM
Парадигма http://habrahabr.ru/qa/16766/
Yii 1.1.10: MVC (ServiceLocator)
Symfony 2: Dependency Injection (IoC-контейнер framework)
Cache
Yii 1.1.10 http://www.yiiframework.com/doc/guide/1.1/en/caching.data:
- данные (по условиям)
- запросы
- модели (ActiveRecord)
- фрагменты
- страницы
- страницы http://symfony.com/doc/current/book/http_cache.html
- модели http://www.doctrine-project.org/projects/orm/1.2/docs/manual/caching/pl#caching
ORM
Yii 1.1.10 http://www.yiiframework.com/doc/guide/1.1/en/database.overview:
- ActiveRecord
- Scopes
- Relations Native(belongsTo, hasOne, OnetoMany, ManytoMany)
- Migrations
- DateMapping
- Repositories, Filters (очень не удобные по сравнению со Scopes и предназначены для статичного фильтра, а не для динамичных запросов) http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/filters.html
- Relations Collection interface(One-To-One, One-To-Many, Many-To-One, Many-To-Many)
- Migrations
Безопасность
Yii 1.1.10:
- Role Based Access Control (принцип подходит для создания системы с динамическим созданием ролей) http://www.yiiframework.com/wiki/136/getting-to-understand-hierarchical-rbac-scheme/
- Validating http://www.yiiframework.com/doc/guide/1.1/en/form.model#declaring-validation-rules
- URI Tokens - CSRF http://www.yiiframework.com/wiki/274/how-to-validate-csrf-token-with-session/
- Можно прикрутить Twig http://habrahabr.ru/blogs/yii/72125/)
- Access Control Lists http://symfony.com/doc/2.0/book/security.html
- Validating http://symfony.com/doc/2.0/book/forms.html#adding-validation
- URI Tokens - CSRF http://symfony.com/doc/2.0/book/forms.html#csrf-protection
Routing
Yii 1.1.10:
- Autorouting http://www.yiiframework.com/doc/guide/1.1/en/basics.controller#route
- GET by default
- Configure REST http://www.yiiframework.com/doc/guide/1.1/en/topics.url
Symfony 2:
- Only configurable REST http://symfony.com/doc/2.0/book/routing.html
Резюме
Система прав в Sf2 не в отличие от Yii не подходит для систем, где необходимо динамически создавать роли. Работа с DB в Yii более простая, но не такая гибкая как в Sf2, где введена абстракция между полями модели и полями в DB.
Система кеширования, чуть более продвинутая в Yii.
Sf2 IoC-контейнер, при чем не в классическом понимании, а IoC-контейнер без указания типа контейнера, что нарушает принцип SOLID(Принцип разделения интерфейса) и ООП(Инкапсуляция). Как мне кажется, это попытка сделать на web-ориентированном языке framework для разработки Enterprise приложений, без учета специфики цикла работы web-приложения.
Просто ссылочки на разные сравнения
http://www.cmsmagazine.ru/library/items/programming/php-frameworks-compare/
http://baron.su/archives/272-PHP_frejmvorki_sravnenie_Yii,_Kohana_KO3,_CodeIgniter_CI,_OnPHP,_Symfony2.html
http://paul-m-jones.com/archives/1222
http://habrahabr.ru/blogs/php/50341/
Цитаты
Originally posted by "http://habrahabr.ru/blogs/symfony/132211/#comment_4389512":
Symfony очень удобный и производительный фреймворк. Даже метафреймворк. На его базе можно создавать множество различных приложений. В том числе и фреймворков. Например, Silex.
Есть просто некоторые вещи, которые неудобно делать. А именно, проекты где контент меняется в зависимости от авторизации пользователя. Причем когда этого контента много. Как в случае с хабром. И то это проблема больше реализации кэша, чем самого Symfony. Ничто не мешает написать свою оболочку.
