7 причин выбрать Yii 2 Framework

  1. 1. Простота установки
  2. 2. Использует современные технологии
  3. 3. Высоко Расширяемый
  4. 4. Поощряет тестирование
  5. 5. Упрощает безопасность
  6. 6. Сократить время разработки
  7. Заключение

В конце прошлого года SitePoint опубликовал статья выделение лучших фреймворков PHP. За четвертым номером была привязана структура Yii (произносится Yee ). В то время самой последней доступной версией фреймворка была 1.1.14. Недавно был выпущен Yii 2.0, так что вы можете начать использовать его в производстве.

Пока мы делали покрыть это недавно когда он все еще находился в статусе RC, он только достиг полной версии релиза, и мы чувствуем, что пришло время вернуться к этой теме с некоторыми причинами выбора ее среди альтернатив.

1. Простота установки

Для веб-разработчиков время - деньги, и никто не хочет тратить свое драгоценное время на сложный процесс установки и настройки.

Установка выполняется с использованием Композитор , Если вам нужно описание процесса установки, Sitepoint недавно опубликовал отличную статью Вот , Я предпочитаю использовать базовый шаблон приложения, даже если у моего сайта есть отдельный фронтальный и внутренний компоненты. Вместо этого я предпочитаю использовать модуль для серверной части моих сайтов. (Модули Yii лучше всего описать как мини-приложения, которые находятся внутри вашего основного приложения).

Примечание . Многие из ссылок на каталоги в последующих примерах используют структуру каталогов из простого шаблона.

2. Использует современные технологии

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

Все классы имеют пространство имен, что позволяет вам воспользоваться их автозагрузчиком, совместимым с PSR-4. Это означает, что в том числе Yii's HTML вспомогательный класс так же прост, как:

используйте yii \ helpers \ Html;

Yii также позволяет вам определять псевдонимы, чтобы упростить ваши пространства имен. В приведенном выше примере этот оператор использования загрузит определение класса, которое по умолчанию находится в каталоге / vendor / yiisoft / yii2 / helpers. Этот псевдоним определен в BaseYii класс по строке 79:

public static $ aliases = ['@yii' => __DIR__];

Сам фреймворк устанавливается с помощью Composer, как и его расширения. Даже процесс публикации расширений так же прост, как создание собственного composer.json, размещение вашего кода на Github и размещение вашего расширения на Packagist.

3. Высоко Расширяемый

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

Сначала я бы создал файл в каталоге app \ components с именем View.php и добавил следующее:

пространство имен приложение \ компоненты; Представление класса extends yii \ web \ View {public $ bodyId; / * Yii позволяет добавлять магические методы-получатели, предваряя имена методов с помощью «get» * / public function getBodyIdAttribute () {return ($ this-> bodyId! = '')? 'id = "'. $ this-> bodyId. '"': ''; }}

Затем в моем основном файле макета (app \ views \ layouts \ main.php) я добавил бы следующее к тегу body моего HTML:

<body <? = $ this-> BodyIdAttribute? >>

И, наконец, я бы добавил следующее в свой основной файл конфигурации, чтобы Yii знал, чтобы использовать мой расширенный класс View вместо его собственного значения по умолчанию:

return [// ... 'component' => [// ... 'view' => ['class' => 'app \ components \ View']]];

4. Поощряет тестирование

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

Расширение Codeception упрощает настройку приложения во время тестирования. Просто отредактируйте предоставленный файл /tests/_config.php, чтобы настроить тестовое приложение. Например:

return ['components' => ['mail' => ['useFileTransport' => true,], 'urlManager' => ['showScriptName' => true,], 'db' => ['dsn' => ' mysql: host = localhost; dbname = mysqldb_test ',],],];

Используя эту конфигурацию, произойдет следующее:

  1. Любые электронные письма, отправленные во время ваших функциональных и приемочных тестов, будут записаны в файл, а не отправлены.
  2. URL-адреса в ваших тестах будут иметь формат index.php / controller / action, а не / controller / action
  3. Ваши тесты будут использовать вашу тестовую базу данных, а не вашу производственную базу данных.

Специальный модуль для Yii Framework также существует в Codeception. Он добавляет несколько методов в класс TestGuy, которые помогут вам работать с Активная запись (Yii's ORM) во время функциональных испытаний. Например, если вы хотите проверить, успешно ли в вашей регистрационной форме был создан новый пользователь с именем пользователя «testuser», вы можете сделать следующее:

$ I-> amOnPage ( 'регистрация'); $ I-> fillField ('username', 'testuser'); $ I-> fillField ('password', 'qwerty'); $ I-> нажмите ( 'Register'); $ I-> seeRecord ('app \ models \ User', array ('name' => 'testuser'));

5. Упрощает безопасность

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

Yii приходит с Безопасность компонент приложения, который предоставляет несколько методов, помогающих создать более безопасное приложение. Некоторые из более полезных методов:

  • generatePasswordHash : Генерирует безопасный хеш из пароля и случайной соли. Этот метод создает случайную соль для вас, а затем создает хеш из предоставленной строки, используя PHP крипта функция.
  • validatePassword : Это сопутствующая функция для generatePasswordHash, которая позволяет вам проверить, соответствует ли введенный пользователем пароль вашему сохраненному хешу.
  • generateRandomKey : Позволяет создать произвольную строку любой длины

Yii автоматически проверяет действительный токен CSRF для всех небезопасных методов HTTP-запросов (PUT, POST, DELETE) и генерирует и выводит токен при использовании ActiveForm :: начать () метод для создания вашего тега формы открытия. Эту функцию можно отключить, отредактировав основной файл конфигурации и включив в него следующее:

return ['components' => ['request' => ['enableCsrfValidation' => false,]];

Для защиты от XSS Yii предоставляет еще один вспомогательный класс HtmlPurifier , Этот класс имеет единственный статический метод с именем процесс и отфильтрует ваш вывод, используя популярная библиотека фильтров с таким же именем.

Yii также включает готовые классы для аутентификации и авторизации пользователей. Авторизация делится на два типа: ACF (фильтры контроля доступа) и RBAC (управление доступом на основе ролей).

Более простым из них является ACF, и он реализуется путем добавления следующего к поведения метод вашего контроллера:

используйте yii \ filters \ AccessControl; class DefaultController extends Controller {// ... public function поведения () {return [// ... 'class' => AccessControl :: className (), 'only' => ['create', 'login', ' view '],' rules '=> [[' allow '=> true,' actions '=> [' login ',' view '],' role '=> ['? ']], [' allow '= > true, 'actions' => ['create'], 'role' => ['@']]]]; } // ...}

Предыдущий код сообщает DefaultController, что позволяет гостевым пользователям получать доступ к входу в систему и просматривать действия, но не действие создания. (? это псевдоним для анонимных пользователей, а @ относится к аутентифицированным пользователям).

RBAC - это более мощный метод определения того, какие пользователи могут выполнять определенные действия в вашем приложении. Он включает создание ролей для ваших пользователей, определение разрешений для вашего приложения, а затем включение этих разрешений для их предполагаемых ролей. Вы можете использовать этот метод, если хотите создать роль модератора и разрешить всем пользователям, назначенным на эту роль, утверждать статьи.

Вы также можете определить правила, используя RBAC, которые позволяют вам при определенных условиях предоставлять доступ к определенным аспектам вашего приложения. Например, вы можете создать правило, которое позволяет пользователям редактировать свои собственные статьи, но не те, которые были созданы другими.

6. Сократить время разработки

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

Один из самых мощных из этих инструментов называется «Gii». Gii - это веб-инструмент для создания кода, который позволяет быстро создавать шаблоны кода для:

  • модели
  • Контроллеры
  • формы
  • Модули
  • расширения
  • Действия и представления CRUD-контроллера

Gii легко настраивается. Вы можете установить его для загрузки только в определенных средах. Просто отредактируйте файл веб-конфигурации следующим образом:

if (YII_ENV_DEV) {// ... $ config ['modules'] ['gii'] = ['class' => 'yii \ gii \ Module', 'allowIPs' => ['127.0.0.1', ' :: 1 ']]}

Это гарантирует, что Gii будет загружаться только тогда, когда для переменной среды Yii задано значение development , и что он будет загружаться только при доступе через localhost.

Теперь давайте посмотрим на модель генератора:

Имя таблицы использует виджет typeahead, чтобы попытаться угадать, с какой таблицей связана ваша модель, и все поля имеют всплывающую подсказку, которая напоминает вам, как их заполнять. Вы можете предварительно просмотреть код, прежде чем попросить Gii его сгенерировать, и все шаблоны кода будут полностью настраиваемыми.

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

yii перенести / создать create_user_table

Это создаст новый шаблон миграции в {appdir} / migrations, который выглядит примерно так:

<? php use yii \ db \ Schema; class m140924_153425_create_user_table extends \ yii \ db \ Migration {public function up () {} public function down () {echo "m140924_153425_create_user_table не может быть возвращен. \ n"; вернуть ложь; }}

Допустим, я хотел добавить несколько столбцов в эту таблицу. Я бы просто добавил следующее к методу up:

public function up () {$ this-> createTable ('user', ['id' => Schema :: TYPE_PK, 'username' => Schema :: TYPE_STRING. 'NOT NULL', 'password_hash' => Schema :: TYPE_STRING. 'NOT NULL'], null); }

И затем, чтобы убедиться, что я могу отменить миграцию, я бы отредактировал метод down:

public function down () {$ this-> dropTable ('user'); }

Создание таблицы будет просто включать команду в командной строке:

./yii мигрировать

и удалить таблицу:

./yii мигрировать / вниз

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

Все компоненты кэша Yii простираются от юй / кэширование / Cache , который позволяет вам выбрать любую систему кэширования, которую вы хотите, используя общий API. Вы даже можете зарегистрировать несколько компонентов кэша одновременно. В настоящее время Yii поддерживает кэширование базы данных и файловой системы, а также APC, Memcache, Redis, WinCache, XCache и Zend Data Cache.

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

return [// ... 'component' => [// ... 'db' => [// ... 'enableSchemaCache' => true, 'schemaCacheDuration' => 3600, 'schemaCache' => 'cache ',],' cache '=> [' class '=>' yii \ caching \ FileCache ',],],];

Наконец, в Yii есть инструмент командной строки, облегчающий минимизацию внешних ресурсов. Просто запустите следующую команду для создания шаблона конфигурации:

./yii asset / template config.php

Затем отредактируйте конфигурацию, чтобы указать, какие инструменты вы хотите использовать для минимизации (например, Closure Compiler, YUI Compressor или UglifyJS). Сгенерированный шаблон конфигурации будет выглядеть так:

<? php return ['jsCompressor' => 'java -jar compiler.jar --js {from} --js_output_file {to}', 'cssCompressor' => 'java -jar yuicompressor.jar --type css {from} -o {to} ',' bundles '=> [//' yii \ web \ YiiAsset ', //' yii \ web \ JqueryAsset ',],' target '=> [' app \ config \ AllAsset '=> ['basePath' => 'path / to / web', 'baseUrl' => '', 'js' => 'js / all- {hash} .js', 'css' => 'css / all- { hash} .css ',],],' assetManager '=> [' basePath '=> __DIR__,' baseUrl '=>' ',],];

Затем выполните эту консольную команду для выполнения сжатия.

yii asset config.php /app/assets_compressed.php

И наконец, отредактируйте файл конфигурации вашего веб-приложения, чтобы использовать сжатые ресурсы.

'component' => [// ... 'assetManager' => ['bundles' => require '/app/assets_compressed.php']]

Примечание. Вам нужно будет загрузить и установить эти внешние инструменты вручную.

Заключение

Как и любой хороший фреймворк, Yii помогает быстро создавать современные веб-приложения и следить за их эффективностью. Это подталкивает вас к созданию безопасных и тестируемых сайтов, выполняя за вас большую работу. Вы можете легко использовать большинство его функций в точности так, как они предоставляются, или вы можете изменить каждую из них в соответствии со своими потребностями. Я действительно призываю вас проверить это для вашего следующего веб-проекта!

Вы пробовали Yii 2? Вы будете? Дайте нам знать!

Похожие

11 главных причин потери SEO трафика при редизайне сайта
У меня не хватает пальцев, чтобы сосчитать, сколько компаний пришло ко мне ПОСЛЕ потери поискового трафика, ПОСЛЕ редизайна сайта. Иногда я все еще могу им помочь, иногда
Как установить метатеги HTML с помощью Angular 4
Метатег HTML предоставляет метаданные о документе HTML. Метаданные не отображаются на странице, но могут обрабатываться машиной. Мета-элементы обычно используются для указания описания страницы, ключевых слов, автора, последнего изменения и других метаданных. Метаданные могут использоваться браузерами (как отображать контент или перезагружать страницу), поисковыми системами (ключевыми словами) или другими веб-сервисами. Мета-теги играют важную роль в SEO. В
5 причин, почему свежий контент важен для вашего сайта и SEO
Ваш сайт является живым, дышащим существом в Интернете. Каждое обновление, которое вы вносите в свой веб-сайт, как только оно «вживую» в Интернете, играет роль в его взаимодействии с посетителями, клиентами и мощными поисковыми системами. Тем не менее, статический веб-сайт без каких-либо обновлений может рассматриваться поисковыми системами как «мертвая» сущность - без жизни и ничего нового. К счастью, ваш часто обновляемый веб-сайт предлагает поисковым системам пристанище для свежего
Как облачный хостинг влияет на SEO
Когда дело доходит до повышения видимости вашего бизнеса и привлечения большего количества клиентов, внедрение стратегий поисковой оптимизации для веб-сайта вашего бизнеса является одним из лучших способов сделать это. Asides SEO инструменты Еще одним технологическим решением, которое быстро становится популярным для бизнеса, является облачный хостинг, и все больше и больше предприятий переходят на него. Если вы переходите
Ключевые слова из длинного хвоста: 10 причин использовать их для вашей SEO-кампании
Ключевые слова могут быть с коротким или длинным хвостом . Ключевые слова с коротким хвостом - это короткие фразы, имеющие общее значение, например, «мужская обувь». Их
SEO мертв, контент жив
Возможно, вы слышали заголовки в течение 2013 года: « SEO мертв? » Эксперты по поисковому маркетингу все еще работают, чтобы выяснить, как изменения алгоритма
Найти больше преимуществ, недостатков
Сайты социальных закладок стали любимыми среди блоггеров в наши дни. Если вы думаете, что социальные сети не имеют такой же досягаемости, как раньше, подумайте еще раз. Социальные закладки привлекают трафик к блогам, когда пользователи разных социальных сетей делятся интересными видео и сообщениями со своими друзьями. Прежде чем мы перейдем к преимуществам и недостаткам социальных закладок, мы должны понять, что такое социальные закладки. Социальные закладки - это не что
4 бесплатных инструмента SEO Checker, которые не сосут [видео]
[Ниже приведена отредактированная стенограмма вышеприведенного видео] Сегодня я собираюсь показать вам четыре бесплатных SEO-шашки, которые не отстой. Я проверил более 20 из них, так что вам не нужно. Я вполне уверен, что вы, вероятно, не слышали о некоторых из этих инструментов - давайте погрузимся и проверим их. Нам нужен веб-сайт для тестирования этих инструментов, так что я нахожусь в Blues City Deli здесь, в Сент-Луисе - это немного сэндвич-заведения на местном уровне.
Уникальный контент
Краткое объяснение: Уникальный контент - это термин, который относится к поисковая оптимизация (SEO) , Это означает, что контент является оригинальным и не дублируется нигде. Уникальный контент играет ключевую роль в поисковом рейтинге, потому что поисковые алгоритмы высоко оценивают уникальный контент и могут оштрафовать сайты за публикацию дублированный контент
Как избежать SEO катастрофы во время редизайна сайта
Редизайн сайта или переход на новую CMS требует много планирования и кропотливой работы. Это также может иметь катастрофические последствия, если вы не примете надлежащие меры предосторожности SEO. Если все сделано правильно, процесс должен быть в основном безболезненным. Если все сделано неправильно, редизайн может иметь катастрофические последствия. Мы все знаем невероятная
SEM или SEO? Узнайте, что наиболее эффективно для вашего бизнеса
SEO и SEM - две основные концепции в стратегиях цифрового маркетинга . Однако эти термины могут иногда вносить некоторую путаницу, особенно когда речь идет об определении того, что лучше для вашей компании или как использовать

Комментарии

Вы бы предпочли выбрать результат, который заработал его путь из-за релевантности, а не платить за их место?
Вы бы предпочли выбрать результат, который заработал его путь из-за релевантности, а не платить за их место? Похоже, что на сайте будет больше шансов найти то, что вы ищете. В отчете от SimilarWeb пользователи на рабочем столе нажимали на результаты органического поиска 94,95% времени и платили только 5,05% времени. [su_frame align = ”center”]
Почему стоит выбрать WebFX для услуг электронной коммерции SEO?
Почему стоит выбрать WebFX для услуг электронной коммерции SEO? WebFX не является типичным агентством SEO для электронной коммерции. Мы - компания с полным спектром услуг цифрового маркетинга, которая увлечена тем, что мы делаем, и это проявляется в наших партнерских отношениях с процветающими предприятиями электронной коммерции из различных отраслей. Хотите узнать больше о том, почему WebFX является лучшим выбором для SEO услуг электронной коммерции? ДЕСЯТИЛЕТИЕ
Как вы знаете, кому доверять и какие вопросы задавать во время первого контакта, чтобы убедиться, что это именно та компания, которая должна управлять вашим присутствием в Интернете?
Как вы знаете, кому доверять и какие вопросы задавать во время первого контакта, чтобы убедиться, что это именно та компания, которая должна управлять вашим присутствием в Интернете? В этом посте я дам вам ответы на все ваши вопросы, основываясь на моем 18-летнем опыте работы в Интернете. Чтобы все исправить с самого начала, я запускаю свой собственный SEO компания Вот уже несколько лет, но цель этого поста не в том,
Кроме того, время наших менеджеров по работе с клиентами лучше потратить на активную работу по SEO, чем на форматирование шрифтов и таблиц, верно?
Кроме того, время наших менеджеров по работе с клиентами лучше потратить на активную работу по SEO, чем на форматирование шрифтов и таблиц, верно? Результат? Тот 500-страничный отчет, на сборку которого ушло более семи дней, теперь я могу скомпилировать примерно за два часа. Какая экономия времени! Как мы это сделали? В первую очередь мы используем базы данных в сочетании с приложением ASPPDF. Это инструмент, который позволяет создавать документы PDF на лету из кода ASP. Это
Как правильно выбрать партнера?
Как правильно выбрать партнера? По сути, реселлер SEO будет действовать как третье подразделение вашего агентства. Это отношения, которые выходят за рамки аутсорсинга; Вы будете сотрудничать с реселлером, чтобы справиться с важной частью бизнеса вашего клиента. Плохое SEO не только влияет на рейтинг; он может получить сайт, исключенный из Google. Выбирая реселлера SEO, обратите внимание на следующие вещи: 1. Ищите отзывы / отзывы от реальных людей
Соблазнительно выбрать убедительный заголовок для вашего поста в блоге, но разве вы используете правильные ключевые слова в теге заголовка?
Соблазнительно выбрать убедительный заголовок для вашего поста в блоге, но разве вы используете правильные ключевые слова в теге заголовка? Тег заголовка является одним из наиболее важных факторов для ранжирования страницы в результатах поиска . Используйте ключевые слова как можно быстрее в любом заголовке, чтобы поисковая система быстро понимала, что такое ваш текст. Мета-описание не помогает странице сортировать, но влияет на
Но действительно ли Google видит эти данные о посещениях и использует их в результатах поиска?
Но действительно ли Google видит эти данные о посещениях и использует их в результатах поиска? Ну ... ты скажи мне. Вот результаты поиска из моего дома (в 30 минутах ходьбы от Mozplex) на Google.com в США, браузер инкогнито с поиском «проводника по ключевым словам»: Я проверял других, и у всех,
Какой размер экрана использует Google для определения максимального размера для мобильных устройств и компьютеров?
Какой размер экрана использует Google для определения максимального размера для мобильных устройств и компьютеров? Ответ: Подобные пробелы абсолютно не проблема. Для нас это большая проблема, если в первую очередь все это реклама для других сайтов. Где на самом деле вы попадаете на эту страницу, вы хорошо думаете, почему, почему я здесь оказался, нет ни одного контента, который я искал, на самом деле не видно на сцене. Так что это скорее проблема,
Использует ли логотип якорный текст?
Использует ли логотип якорный текст? Большинство тем WordPress выводят заголовок вашего сайта в заголовок и связывают его с домашней страницей. Когда вы загружаете логотип для замены простого заголовка сайта, якорный текст все равно должен содержать название вашего сайта. Некоторые темы просто вставят изображение в ссылку, и тогда вы в конечном итоге создадите ссылку на свою домашнюю страницу без какого-либо якорного текста на всех своих страницах. Вы можете проверить это, используя
Почему стоит выбрать Infyways для Joomla SEO Services?
Почему стоит выбрать Infyways для Joomla SEO Services? Используя прогрессивные инструменты и технологии SEO от Joomla от Infyways, вы можете поднять свой бизнес и веб-сайты на новый уровень. Благодаря нашему обширному опыту в умных SEO-технологиях Joomla и четкому пониманию вашего бизнеса, мы можем предоставить вам желаемый рейтинг и посещаемость сайта, чтобы вы могли мгновенно развивать свой бизнес. Точно так же мы помогли многим компаниям и достигли высших позиций в Google и других
Что мы анализируем во время SEO-аудита?
Что мы анализируем во время SEO-аудита? У каждого сайта есть свои особенности, но в нашем общем подходе к анализу вашего сайта мы отдаем приоритет следующим моментам: Внутренние технические критерии: Блокирующие или штрафующие факторы, такие как неправильная разметка или неправильная информационная архитектура. Внутренние семантические критерии: Используете ли вы набор слов, адаптированный к вашим

This-> BodyIdAttribute?
Потому что вы пишете автоматизированные тесты для всех ваших приложений, верно?
Вы пробовали Yii 2?
Вы будете?
Вы бы предпочли выбрать результат, который заработал его путь из-за релевантности, а не платить за их место?
Почему стоит выбрать WebFX для услуг электронной коммерции SEO?
Хотите узнать больше о том, почему WebFX является лучшим выбором для SEO услуг электронной коммерции?
Как вы знаете, кому доверять и какие вопросы задавать во время первого контакта, чтобы убедиться, что это именно та компания, которая должна управлять вашим присутствием в Интернете?
Кроме того, время наших менеджеров по работе с клиентами лучше потратить на активную работу по SEO, чем на форматирование шрифтов и таблиц, верно?