Рубрика «yii»

PHP-Дайджест № 143 (1 – 12 ноября 2018) - 1

Свежая подборка со ссылками на новости и материалы. В выпуске: принят PSR-18, статистика версий PHP от Packagist, анонсы митапов и карта митапов, PHP 7.3.0RC5 и другие релизы, порция полезных инструментов, о будущем PHP-дайджеста, и многое другое.
Приятного чтения!

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

Для того чтобы быстро поднять рабочее окружение существует много способов. Один из них — поднять все необходимые сервисы в Docker-контейнерах. Чтобы ускорить создание новых проектов на Yii-framework я написал такую небольшую инструкцию, которую используют разработчики в нашей команде.

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

В yii по умолчанию используется шаблонизатор для view чистый php. К сожалению, это может привести к ошибкам экранирования вывода. Разработчик выводимый контент должен экранировать, используя Html::encode(), либо аналог. Обычно, для поиска подобных ошибок, пентестер забивает во все возможные поля форм код вида:

<script>alert(document.cookie);</script>

Потом проходиться по всему проекту и смотрит что упало. Но иногда бывает, что форма выводиться не полностью. Если же атрибуты будут посланы явно отдельным запросом Post, то будут загружены в модель. Либо сейчас заполнить атрибут через форму пользователь не может, и все хорошо, а через месяц форма меняться, параметр становиться доступен для редактирования, и где-то в совсем другой части проекта проявляется XSS.
Читать полностью »

Вступление

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

Я хотел бы поделиться рецептом того, как можно создавать подобные модули на примере реализации модуля меню. Для примера я буду использовать шаблон приложения Yii2 App Basic, но вы можете адаптировать всё под свой шаблон, если он отличается от базового.

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

PHP-Дайджест № 139 (3 – 17 сентября 2018) - 1

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.3 RC 1, PhpStorm 2018.3 EAP, Laravel 5.7 и другие релизы, HHVM прекращает поддержку PHP, типизированные свойства в PHP, порция полезных инструментов, видеозаписи докладов, и многое другое.
Приятного чтения!

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

PHP-Дайджест № 138 (20 августа – 2 сентября 2018) - 1

Свежая подборка со ссылками на новости и материалы. В выпуске: последняя бета PHP 7.3, Laravel Nova, сайт с идеями для следующих версий PHP, новости о Yii 3, порция полезных инструментов, видео, и многое другое.
Приятного чтения!

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

PHP-Дайджест № 137 (6 – 20 августа 2018) - 1

PHP 7.3.0 Beta 2 и другие релизы, предложение из PHP Internals, порция полезных инструментов, видеозапись «Пишем блокчейн на PHP», и многое другое.
Приятного чтения!

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

Начало

Одна поддерживаемая нашей компанией учетно-отчетная система начала очень быстро разрастаться в количестве хранимых данных. Система написана на PHP с использованием фреймворка Yii2. Изначально отчеты строились через библиотеку PhpSpreadsheet, которая пришла на смену, уже давно ставшему deprecated, PhpExcel.

Среди разного вида отчетности был один очень крупный – фактически полный набор всех хранящихся в БД данных должен выгружаться в одну excel-таблицу. На начальном этапе проблем не возникало, но когда объем стал превышать многие сотни тысяч записей, то скрипт формирования выгрузки стал отваливаться в timeout limit.Читать полностью »

PHP-Дайджест № 136 (24 июля – 6 августа 2018) - 1

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.3.0 Beta 1, PhpStorm 2018.2, Composer 1.7 и другие релизы, принят стандарт PSR-17, обзор Yii 3.0, альтернативная реализация Fiber API для асинхронных приложений, порция полезных инструментов, и многое другое.

Приятного чтения!

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

PHP-Дайджест № 135 (9 – 23 июля 2018) - 1

В выпуске: PHP 7.3 alpha 4, ReactPHP 1.0 LTS и другие релизы, свежее предложение «Namespace Visiblity for Class, Interface and Trait» из PHP Internals, ведеозаписи докладов и вебинаров, порция полезных инструментов, и многое другое.
Приятного чтения!

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