Помощник сколерозу

Deja Vu

Subscribe to RSS feed

Sticky post

Yii vs Symfony 2

, ,

Не так давно, я хотел перейти с Yii на более серьёзный framework, коим для себя считал Symfony 2. Но после сравнения передумал. Теперь Yii для меня более чем серьёзный инструмент.

Документация
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)
  • фрагменты
  • страницы
Symfony 2:


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
Symfony 2:


Безопасность
Yii 1.1.10:
Simfony 2:


Routing
Yii 1.1.10:

Symfony 2:

Резюме
Система прав в 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. Ничто не мешает написать свою оболочку.


Изучить дома, что бы написать путное приложение

Web Future

, ,

Новый мой фаворит.

, , ,

Недавно открыл для себя новую IDE: Sublime Text.
Где же он раньше был?

Скачать: http://www.sublimetext.com/download

Расширения, искать и ставить лучше через менеджер пакетов:

Достоинства:
  1. Быстрый даже на огромных проектах
  2. Поддержка разметки и автодополнения огромного кол-ва языков
  3. Плагины для всех возможных SVC
  4. Консоль команд прям в редакторе
  5. Кроссбраузерность
  6. Встроенный скриптовый язык на Python
  7. Скролл с отображением миниатюры всего файла (очень удобная функция)


Подправил под себя тему Dark Soul, сделал вкладки квадратными.
Если кому нужно - обращайтесь.

JavaScript Singleton pattern

, , ,

На одном собеседовании у меня попросили реализовать паттерн singleton через new на JS.
Т.к. было много волнения моего, я и не мог подумать, что просили всего лишь написать:

Singleton = new function () {}


По мне, так это не является реализацией паттерна singleton ... но суть не в том. О том что просили написать "так"(см выше), я узнал лишь после того, как реализовал этот паттерн через new по свеому:

function Singleton() { 
   var singleton = {}; 
   Singleton = function () { return singleton; } 
   return singleton; 
}

new Singleton() === new Singleton() // true


Забавно, но вот это разное понимание паттерна, повысило мой skill level -))

Debian services

/etc/init.d
apt-get install sysv-rc-conf
or
apt-get install sysvconfig

LNP

, ,

NGINX
http://wiki.nginx.org/Install:

For Ubuntu 10.04 and newer:
sudo -s  
nginx=stable # use nginx=development for latest development version  
add-apt-repository ppa:nginx/$nginx  
apt-get update   
apt-get install nginx

If you get an error about add-apt-repository not existing, you will want to install python-software-properties.

For other Debian/Ubuntu based distributions, you can try the lucid variant of the PPA which is the most likely to work on older package sets.
sudo -s
nginx=stable # use nginx=development for latest development version
echo "deb http://ppa.launchpad.net/nginx/$nginx/ubuntu lucid main" > /etc/apt/sources.list.d/nginx-$nginx-lucid.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C300EE8C
apt-get update 
apt-get install nginx


-----------------------------
php5-fpm
http://www.zagirov.name/debian-testing-install-php5-fpm/:
wget http://snapshot.debian.org/archive/debian/20100801T150833Z/pool/main/p/php5/php5-fpm_5.3.3-1_amd64.deb 
dpkg -x php5-fpm_5.3.3-1_amd64.deb fpm 
dpkg -e php5-fpm_5.3.3-1_amd64.deb fpm/DEBIAN/


Исправляем в файле fpm/DEBIAN/control
sed -i 's/php5-common (= 5.3.3-1)/php5-common (>= 5.3.3-1)/g' fpm/DEBIAN/control

Теперь можно собрать пакет обратно и поставить его.
dpkg -b fpm/ php5-fpm_5.3.3-1_amd64_patched.deb 
dpkg -i php5-fpm_5.3.3-1_amd64_patched.deb