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

Symfony professional developer

Send message

balance: Float 😨
В опасные игры вы играете)

Как раз таки наоборот. При использовании ORM, а точнее UoW в нем, он позволяет обновлять в БД только те сущности и только те поля сущностей которые реально изменились, а не все поля.

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

Дополню, что квадрат является не только частным случаем прямоугольника, но и частным случаем ромба. Поэтому в принципе неправильно рассматривать квадрат как частный случай чего-то. Квадрат это самостоятельная фигура со своими, специфичными только для квадрата, свойствами.

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

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

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

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

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


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


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

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

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


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


Сейчас:


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

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


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

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

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

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


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

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

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

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


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

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

Не понимаю всей этой шумихи с <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 Generics.

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

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


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


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


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

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



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


Пример

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

Information

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