Pull to refresh
29
Karma
0
Rating
Пётр Грибанов @ghost404

Symfony professional developer

У Вас проблемы с legacy — значит, Вам повезло! Распил монолита на PHP

Никак. Незачем. Пускай варится в собственном соку и просто предоставляет публичный интерфейс. А если этого недостаточно, то всегда можно сделать адаптер.

Интеграция PHP проекта на GitHub и Scrutinizer

Пользуюсь сервисом уже лет 6-7 и тоже оценка обычно держится в районе 9-10)

Интеграция PHP проекта на GitHub и Scrutinizer

Советую еще посмотреть в сторону статических анализаторов типа PHPStan и Psalm.

Самое интересное в PHP 8

Ясно. Спасибо. Значит продолжаем ждать.

Самое интересное в PHP 8

Ну resource|false это все таки не union тип. Это микс из типа и одного из значений типа. Если говорить о union, то это будет resource|bool, что подразумевает, что true так же является возможным возвращаемым значением. В этом то основная проблема.


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


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

А есть какие-то ссылки подтверждающие, что это планируют именно в PHP 8? Разговор об этом ведется уже много лет, еще со времен PHP 5.4 кажутся, но подвижек я как-то не заметил.

Самое интересное в PHP 8

Мне вот интересно, а в PHP 8 собираюсь ломать обратную совместимость?


Былоб интересно например рассмотреть замену возвращаемого типа данных для функций типа fopen(), fsockopen(), mysql_connect() и т. д. в случае ошибки.


Сейчас:


/**
 * @return resource|false
 */
fopen(/* ... */): mixed

А могло бы быть:


fopen(/* ... */): ?resource

Продуктивное использование PHPStorm

через alt+insert будут создаваться getters and setters в месте куда поставишь курсор

Browser Fingerprint – анонимная идентификация браузеров

Мы не пользуемся Адвордс

Browser Fingerprint – анонимная идентификация браузеров

Спасибо за разъяснение. Мы пользуемся fingerprint и пока без проблем. Будем мониторить ситуацию.


Попробуйте минифицировать js и добавить его к другим скриптам таким как modulestat2.min.js и jquery.ck.js.

Browser Fingerprint – анонимная идентификация браузеров

Вы уверены, что Google блокирует именно fingerprint? Вы уверены в том, что этот nicetraffic не подмешивает ничего лишнего в js который вы подключаете на своем сайте?
Меня например сильно смущает домен вида www.static.nicetraffic.ru и смущает то, что я не могу посмотреть содержимое подключаемых скриптов https://www.static.nicetraffic.ru/fingerprintjs2/fingerprintjs2.js

Web PUSH Notifications быстро и просто

А что, cURL это сложно? Или вы имеете что-то против конкретно PHP?
Приведенный пример легко портируется на любой популярный язык программирования будь то Python, Java, Node.js или Go. Можно и через bash пуши отправлять (пример).

Может, нам слегка успокоиться с JavaScript?

Ну как сказать. Это заметное увеличение объема работ которые ещё должен кто-то оплачивать. Это уже давно не актуально для поисковиков. Для шаринга в соцсеточках достаточно отдать og: теги. Вот и получается, что это нужно для крайне малого процента пользователей с NoScript и сомнительных грабероф. Поправьте меня если я ошибаюсь.


Как уже писали выше, если вы не входите в ЦА, то почему за вас должен платить бизнес? А главное, почему из-за вас должны страдать пользователи из ЦА из-за добавления полифилоф, хуков и прочего? Да и безнес будет компенсировать увеличение расходов за счёт увеличения цен для ЦА.

Может, нам слегка успокоиться с JavaScript?

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

Может, нам слегка успокоиться с JavaScript?

Не понимаю всей этой шумихи с <textarea>. Все WYSIWYG редакторы текста или кода, которые мне когда-либо попадались, начинаются с textarea. То есть, в вёрстке добавляется элемент ввода textarea и после загрузки страницы он переколбашывается js-ом в полноценный WYSIWYG. То есть, по у молчанию у всех WYSIWYG редактором есть совместимость с NoScript. Аналогично с кастомизацией select, input[type=file] и т. д.


Зачем Twitter решил использовать WYSIWYG для сообщений уже другой вопрос.
Первое, что пришло в голову — для оптимизации создания твитта и уменьшения вероятности внесения правок в него после публикации или полный запрет изменения твитта после публикации.
Поясню. Оптимизация показа твитта во всех лентах может привести к удорожанию процедуры публикации твитта и внесение правок в твитт приводит фактически к повторению процедуры публикации твитта только ещё сложнее из-за необходимости найти твитт в других лентах. Цена внесения правок в твитт может измеряться во вполне реальных долларах (лет 8 назад разрабатывал аналог стены ВК для одной соцсети и я имею некоторое представление о вопросе). Поэтому, вполне логичным шагом может быть подключение WYSIWYG с целью оптимизации пользовательского интерфейса и уменьшения собственных расходов.


Медленная загрузка страницы из-за обилия JS это конечно проблема и её надо решать. Во времена IE6 шел разговор о внедрении jQuery в браузеры. С появлением ES6, популяризацией движка Chromium и отказом от старых браузеров необходимость в jQuery резко сократилась. Но появилась новая проблема — фреймворки. Частично проблему решает SPA, и я не думаю, что белый экран у пользователей с NoScript повод отказываться от него.

PHP-Дайджест № 174 (10 – 24 февраля 2020)

Можно попробовать плагин PHP Generics.

PHP-Дайджест № 174 (10 – 24 февраля 2020)

Дженерики можно описать в аннотациях и валедировать psalm или PHPStan. Это конечно не тоже самое, что натив, но лучше чем ничего.

Как организовать скины в Symfony

Вы говорите об использовании одного приложения, одного инстанса на несколько сайтов как в Битрикс? Такой подход был популярен в начале нулевых. Я и сейчас иногда встречаю легаси проекты использующие такой подход.


На мой взгляд, подход с настройкой LESS переменных применим для CMS и готовых движков форумов.


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


Пример
  1. КиноПоиск
  2. Eva.Ru

Бывает брендирование раздела по бренду, производителю, марке авто и т. д.



А бывает брендирование страницы конкретного продукта или группы страниц одного продукта.


Пример

Вот для брендирования может подойти подход описанный в статье. Все стили и шаблоны описываются на фронте и упаковываются в скин. И остается только вопрос — как подключать этот скин или как сроутить скин для сущность.

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

Хм. В моём понимании пользовательский класс коллекции — это класс описывающий набор однородных структур данных и позволяющий осуществить доступ к ним по средствам итерирования экземпляра класса. То есть, это класс в первую очередь реализующий интерфейс Iterator или IteratorAggregate.


Вы делаете акцент на инкапсуляции операций map/reduce и лишь в самом конце упоминаете итерирование. Каждая ли коллекция у вас является итератором? И если нет, то как вы осуществляете доступ к данным в коллекции?


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

PHP дженерики уже сегодня (ну, почти)

Phan и PHPStan не понимают специфичные аннотации psalm.

PHPStan с версии 0.12.x понимает psalm аннотации и поддерживает дженерики

Ускользающий талант: Россия теряет лучших ИТ-специалистов

Безусловно. Есть люди которые едут и не в Германию. Есть те кто едет в Грецию например, Индию, Кубу. А есть иностранцы которые из Европы едут в Россию. Но это же тоже не показатель.

Information

Rating
Does not participate
Location
Россия
Registered
Activity