Рубрика «yii2» - 2

Часть 1. Сервер

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

Почему для подключения к GraphQL-серверу была выбрана библиотека Apollo сказать сложно, так как аналогов для работы с GraphQL я не встречал. Изначально библиотека, как и вся ее документация заточена под React, а вся информация об интеграции с Polymer ограничивается лишь ссылкой на компонент в разделе Integrations. Таким образом, если вы работаете с React, вам и карты в руки. Все примеры, твики и хуки именно для него.

Читать полностью »

Недавно была статья про Yii, где в комментариях обсуждали специфичные для Yii компоненты, в частности GridView и ActiveForm, и фреймворк Laravel. Я подумал, а почему бы и нет.

composer create-project laravel/laravel
...
composer require yiisoft/yii2

Что из этого получилось, читайте под катом. Потребовалось написать пару небольших обвязок и сконфигурировать определенным образом, но в целом все работает — и грид, и формы. Также есть небольшой обзор существующих аналогов для Laravel.
Читать полностью »

в 16:10, , рубрики: laravel, php, symfony, yii, yii2, ооп

Yii, вероятно, самый популярный PHP фреймворк на просторах СНГ.
Многие годы он был замечательным инструментом и помогал нам зарабатывать на хлеб с маслом.
Но стоит ли начинать на нем новые проекты в 2017-м? Я задумался.

Читать полностью »

image

Хочу поделиться историей разработки своего приложения. Идея приложения возникла 1,5 года назад, начало разработки было положено в феврале 2017 года и завершено всё в июне 2017 года.
Читать полностью »

Альтернативная организация проекта на Yii2 - 1 Как предлагается создавать проект на Yii2 сейчас? Выбираете шаблон проекта: basic или advanced, форкаете себе, потом пишете и комитите туда. Бам! Случилась копипаста, ваш проект и шаблон теперь развиваются отдельно. Вам не получить исправлений, внесенных, в шаблон, а в yii2-app-basic, естественно, не возьмут доработок специфических для вашей задачи. Это проблема номер один.

Как расширяется проект на Yii2? Выбираете подходящие расширения и подключаете их с помощью композера. Находите пример конфига этого расширения в README и копипастите в конфиг своего приложения. Оопс… Опять копипаста. Вылазящяя разными боками, в том числе таким: в большом проекте используется много расширений — конфиг приложения становится огромным и просто нечитаемым. Это проблема номер два.

Как эти проблемы связаны? Первая решается так: выделяем переиспользуемый код и превращаем в расширение. И снова здравствуйте: у расширения есть свой конфиг — получили вторую проблему.

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

Хочу поделиться своим вариантом решения этих проблем.

Читать полностью »

Вышла новая версия плагина для yii2. Основой упор был сделан на работу с базой данных, и для использования всего функционала необходимо создать подключение к базе данных.

После создания подключения начнет работать auto complete таблиц и колонок в следующих случаях:

  • Методы ActiveQuery (ActiveRecord::find())
  • Методы ActiveRecord, которые предполагают ввод condition
  • Методы внутри миграций
  • Методы внутри кастомного ActiveQuery
  • В методе ActiveRecord:relations()

Кроме auto complete сущностей базы данных плагин помогает работать с параметризированными запросами: генерирует массив параметров и проверяет его правильность.

Так же плагин проверяет Читать полностью »

В новой версии yii2support для phpStorm появилось автодополнение для массивов, используемых в Yii повсеместно для инициализации объектов. Массивы принимает как конструктор базового класса Object, так и метод Yii::createObject. Это очень удобный функционал, удобство которого было ограничено отсутствием поддержки в IDE. Теперь это проблема решена, и работает не только автодополнение, но и всплывающая помощь, переходы на декларацию и обратно, переименование свойств, исправление опечаток.
Читать полностью »

Архитектура Enterprise на Yii2. Абстракция, инверсия зависимости, инкапсуляция бизнес-логики и управление изменчивостью - 1 Большинство сайтов в вебе работают исключительно с простой информацией: страница, статья, категория статей. При генерации HTML, на стороне сервера происходят некоторые простые процессы: подключение к базе, получение статьи по ID, привязка к статье комментариев и т.д.

Однако, с развитием Интернета и бизнеса в нем, на сайте нередко начинают происходить сложные бизнес-процессы, для которых никакие CMS не предназначаны.

Пример бизнес-процессов:

  • Применить промокод
  • Отменить заказ
  • Рассчитать размер вознаграждения продавцу

Разработчики сайтов, как правило, не видят никаких таких процессов более высокого уровня и продолжают работать на низком уровне как знают: с таблицами БД и прочими примитивами. Все это размазано тонким слоем по всей системе: в контроллере, в модели, в футере сайта. Рано или поздно, система становится такой большой, что уже не помещается в разум одного разработчика-создателя и проект начинает рассыпаться.Читать полностью »

Сначала я написал пространное предисловие к этому тексту, а потом удалил его. В общем, этот текст для тех, кто как и я, любит сначала сделать, а потом уже разбираться с тем, что же он такое сделал. Чтобы собрать нижеизложенную информацию мне пришлось три дня усиленно рыться в различных источниках. Так что, надеюсь кому и пригодится. Это годная шпаргалка.

1. Устанавливаете Yii2 Basic на сервер, как написано в документации. Описано там всё четко и по делу, добавить мне нечего.

Разве что вот: локально на OpenServer поставилось без сучка, без задоринки. А вот удаленно, на KVM Ubuntu 16.04 с 1Gb оперативки Composer-у не хватило памяти. Бился часа два, так и не осилил. Благо, что с локального сервера на удаленный, сайт можно легко перенести простым копированием.

2. Повторюсь, установка — basic (допустим, в папку /www/site/basic, но далее мы для простоты изложения будем вести отсчет именно от папки basic в которую вы создали проект, как рекомендуется в руководстве).

Папку basic/web сразу устанавливаете как DocumentRoot — как это сделать, тоже есть в официальном руководстве на русском языке.
Читать полностью »

в 17:24, , рубрики: debug, php, profiling, yii, yii2

Состоялся релиз 2.0.8 расширения Debug для фреймворка Yii 2.0. В него вошли два багфикса и 6 улучшений, включающих новые панели и существенные улучшения старых.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js