• Создание сайтов
  • Рекламные компании
  • Продвижение сайтов


PHP-фреймворк Yii


Yii — это высокоэффективный, основанный на компонентной структуре PHP-фреймворк для разработки крупных веб-приложений. Он позволяет максимально применить концепцию повторного использования кода и может существенно ускорить процесс веб-разработки. Название Yii (произносится как Yee или [ji:]) означает простой (easy), эффективный (efficient) и расширяемый (extensible). Фреймворк является бесплатным программным обеспечением и распространяется как «New BSD License».

Основным плюсом Yii можно считать поддержку им объектно-ориентированного программирования (ООП). Следует отметить также высокую скорость работы и развитую техподдержку. Большой набор библиотек помогает создавать полноценное веб-приложение, которое отвечает самым современным стандартам. Это и интегрированное использование Ajax, и встроенная поддержка интернационализации приложений, а также простой инструментарий для работы с базами данных.

В Yii присутствует функционал, значительно повышающий разработку. При этом в нём нет ничего лишнего. Разумеется, требуется некоторое время, чтобы понять, как разрабатывать сайты на данном фреймворке. В Yii имеется возможность подключения множества готовых расширений, а также расширений zend фреймворка.

Yii подходит для разработки веб-приложений с большим потоком трафика, поскольку обладает легковесностью и продвинутыми средствами кэширования. На нем можно разрабатывать форумы, развлекательные порталы, системы электронной коммерции, а также системы управления контентом (CMS).

Yii фреймворк способен работать с разными базами данных, в частности с MySQL, SQLite, PostgreSQL, Oracle. Можно считать это большим плюсом, поскольку, к примеру, если требуется старый сайт (на PostgreSQL) переносить на новый движок, не придется менять базу данных. А код, который занимал бы при обычных условиях 100 строчек традиционного php кода, теперь может быть сокращен до десяти. Происходит это благодаря различным встроенным методам.

Yii — это MVC-фреймворк, также как и большинство других PHP-фреймворков, и его превосходство над другими фреймворками заключается в высокой эффективности, широких возможностях и качественной документации.

Сравнение PHP фреймворков

Framework

MVC

Multiple DBs

ORM

DB Objects

Templates

Caching

Validation

Ajax

Auth Module

Modules

EDP

Delphi for php

Akelos Support MVC

Akelos Support Multiple DB

Akelos Support ORM

Akelos Support DB Objects

Akelos Support Templates

Akelos Support Caching

Akelos Support Validation

Akelos Support Ajax

Akelos Support Auth Module

Akelos Support Modules

Akelos Support Modules

Akelos

Akelos Support MVC

Akelos Support Multiple DB

Akelos Support ORM

Akelos Support DB Objects

Akelos Support Templates

Akelos Support Caching

Akelos Support Validation

Akelos Support Ajax

Akelos Support Auth Module

Akelos Support Modules

-

ash.MVC

ash.MVC Support MVC

-
-

ash.MVC Support DB Objects

ash.MVC Support Templates

-

ash.MVC Support Validation

-

ash.MVC Support Auth Module

ash.MVC Support Modules

-

CakePHP

CakePHP Support MVC

CakePHP Support Multiple DB

CakePHP Support ORM

CakePHP Support DB Objects

-

CakePHP Support Caching

CakePHP Support Validation

CakePHP Support Ajax

CakePHP Support Auth Module

CakePHP Support Modules

-

CodeIgniter

CodeIgniter Support MVC

CodeIgniter Support Multiple DB

-

CodeIgniter Support DB Objects

CodeIgniter Support Templates

CodeIgniter Support Caching

CodeIgniter Support Validation

-
-
-
-

DIY

DIY Support MVC

-

DIY Support ORM

DIY Support DB Objects

DIY Support Templates

DIY Support Caching

-

DIY Support Ajax

-
-
-

eZ Components

-

eZ Components Support Multiple DB

-

eZ Components Support DB Objects

eZ Components Support Templates

eZ Components Support Caching

eZ Components Support Validation

-
-
-
-

Fusebox

Fusebox Support MVC

Fusebox Support Multiple DB

-
-
-

Fusebox Support Caching

-

Fusebox Support Ajax

-

Fusebox Support Modules

-

PHP on TRAX

PHP on TRAX Support MVC

PHP on TRAX Support Multiple DB

PHP on TRAX Support ORM

PHP on TRAX Support DB Objects

-
-

PHP on TRAX Support Validation

PHP on TRAX Support Ajax

-

PHP on TRAX Support Modules

-

PHPDevShell

-
-
-
-

PHPDevShell Support Templates

-
-

PHPDevShell Support Ajax

PHPDevShell Support Auth Module

PHPDevShell Support Modules

-

PhpOpenbiz

PhpOpenbiz Support MVC

PhpOpenbiz Support Multiple DB

PhpOpenbiz Support ORM

PhpOpenbiz Support DB Objects

PhpOpenbiz Support Templates

-

PhpOpenbiz Support Validation

PhpOpenbiz Support Ajax

PhpOpenbiz Support Auth Module

-
-

Prado

Prado Support MVC

Prado Support Multiple DB

Prado Support ORM

Prado Support DB Objects

Prado Support Templates

Prado Support Caching

Prado Support Validation

Prado Support Ajax

Prado Support Auth Module

Prado Support Modules

Prado Support EDP

QPHP

QPHP Support MVC

QPHP Support Multiple DB

-

QPHP Support DB Objects

QPHP Support Templates

-

QPHP Support Validation

QPHP Support Ajax

QPHP Support Auth Module

QPHP Support Modules

QPHP Support EDP

Seagull

Seagull Support MVC

Seagull Support Multiple DB

Seagull Support ORM

Seagull Support DB Objects

Seagull Support Templates

Seagull Support Caching

Seagull Support Validation

Seagull Support Ajax

Seagull Support Auth Module

Seagull Support Modules

-

Symfony

Symfony Support MVC

Symfony Support Multiple DB

Symfony Support ORM

Symfony Support DB Objects

-

Symfony Support Caching

Symfony Support Validation

Symfony Support Ajax

Symfony Support Auth Module

Symfony Support Modules

-

WACT

WACT Support MVC

WACT Support Multiple DB

-

WACT Support DB Objects

WACT Support Templates

-

WACT Support Validation

-
-

WACT Support Modules

-

WASP

WASP Support MVC

-
-

WASP Support DB Objects

WASP Support Templates

-

WASP Support Validation

WASP Support Ajax

WASP Support Auth Module

WASP Support Modules

-

Yii

Yii Support MVC

Yii Support Multiple DB

Yii Support ORM

Yii Support DB Objects

Yii Support Templates

Yii Support Caching

Yii Support Validation

Yii Support Ajax

Yii Support Auth Module

Yii Support Modules

Yii Support EDP

Zend

Zend Support MVC

Zend Support Multiple DB

Zend Support ORM

Zend Support DB Objects

-

Zend Support Caching

Zend Support Validation

Zend Support Ajax

Zend Support Auth Module

Zend Support Modules

-

ZooP

ZooP Support MVC

ZooP Support Multiple DB

-

ZooP Support DB Objects

ZooP Support Templates

ZooP Support Caching

ZooP Support Validation

ZooP Support Ajax

ZooP Support Auth Module

-
-
  • MVC: Отображает поддержку фреймворком Model-View-Controller архитектуры.
  • Multiple DB’s: Отображает возможность работы фреймворка с несколькими базами данными, переключаясь между ними без изменения кода программы.
  • ORM: Отображает поддержку фреймворком шаблона проектирования object-record mapper, более известного как ActiveRecord.
  • DB Objects: Отображает поддержку фреймворком объектов базы данных, например TTable в Delphi for php.
  • Templates: Отображает наличие в фреймворке движка шаблонов. В Delphi for php это Smarty Template.
  • Caching: Отображает поддержку фреймворком кеширования объектов.
  • Validation: Отображает поддержку фреймворком встроенных валидаторов.
  • Ajax: Отображает поддержку фреймворком встроенных модулей Ajax.
  • Auth Module: Отображает поддержку фреймворком встроенных модулей авторизации.
  • Modules: Отображает поддержку фреймворком различных модулей, таких как RSS feed parser, PDF модуль и т.д..
  • EDP: Отображает поддержку фреймворком событийного программирования.

Сравнение PHP-фреймворков по скорости

Ниже приведен график, сравнивающий наиболее популярные фреймворки по скорости:

Сравнение PHP фреймворков по скорости

 

 

YII 1.0.2

Codeigniter 1.7.0

Zend 1.7.3

CakePHP 1.2.1

Prado 3.1.3

Symfony 1.2.2

rpc with apc.png

673

206

83

79

75

50

rpc without apc.png

93

79

38

29

24

18

Сравнение происходило по критерию RPC (request per second, запросов, обрабатываемых в секунду), с включенным и выключенным APC (Alternative PHP Cache). Значение RPC НЕ значит, что это предел пользователей, которые могут быть одновременно обслужены сервером. Этот параметр показывает, сколько ответов вы получите, если будете непрерывно обновлять страницу в своем браузере (например, 650 раз в секунду, для фреймворка YII).

RPC — критерий достаточно показательный, хотя и зависящий от производительности сервера и его конфигурации. Но так как испытания проводились на одной машине, сравнение можно считать справедливым.

Смотрите также:

Рассказ об истории службы асессоров
Оптимизация изображений
Что нужно размещать на главной странице с точки зрения SEO?
Секреты успешного SEO: операционное планирование
Как не попасть под фильтры с неуникальными описаниями и отзывами