Обновить
4K+
12
Алексей@roxblnfk

PHP Developer

22
Рейтинг
5
Подписчики
Отправить сообщение

Mail.ru Group, наверное? VK это вроде как тоже их детище. Во всяком случае финансово.

Mail.Ru Group переименовали в VK

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


Суть в том, чтобы можно было в рамках одного проекта работать над любыми модулями

При разработке Yii3 мы используем yiisoft/yii-dev-tool. Все нужные пакеты yiisoft клонируются в одну папку, из них используемые в пакете/проекте линкуются в vendor/yiisoft/*. Т.о. вне зависимости от того, есть на пакетах версии или нет — в вендоре имеем то, что в локальном гит-репозитории каждого пакета.


Вот переезжали вы на Yii 2 и сломали BC. А на Yii 3 переехать готовы? Планируете? Модули у вас ведь не фреймворко-независимые?

А могли бы просто вписать старое Я в новый быстрый овал...

Вот тоже любопытно. Все айтишные позиции без вилки.
На неайтишных позициях в среднем от 24 до 50 тыр.
Также среди позиций значится Стажёр Frontend разработчик (Delphi). Формошлёпить на Delphi, оказывается, ещё актуально!

Попробуйте задетектить это с помощью phpgrep. Должно получиться просто и быстро. Заодно можете сделать PR в общий список инспекций для этой утилиты.

Цитата из вики:


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

Формат хранения чисел в PHP подразумевает, что если левый бит === 1, то число отрицательное. "Шлейф" (надо было мне такое ляпнуть...) из единиц будет только для отрицательных. Из нулей — для положительных.

> printf("%064b \n %064b", PHP_INT_MAX, PHP_INT_MAX >> 2);
0111111111111111111111111111111111111111111111111111111111111111
0001111111111111111111111111111111111111111111111111111111111111

> printf("%064b \n %064b", PHP_INT_MIN, PHP_INT_MIN >> 2);
1000000000000000000000000000000000000000000000000000000000000000
1110000000000000000000000000000000000000000000000000000000000000

> var_dump(1 === ( (1 << 63) >> 63 ));
bool(false)

Статья интересная, но вот пара замечаний:


  1. Не указано, что PHP смещает биты вправо, оставляя шлейф из левого бита. Арифметический сдвиг, а так хотелось бы иметь ещё и логический, да?
  2. Отрицательные числа хранятся не так как описано в статье: не достаточно просто выставить левый бит в единицу. У нас они хранятся в обратном представлении. Для 64бит значение -1 будет представлено в памяти в виде 64 единиц.
  3. Вы забыли про замечательные функции decbin(), dechex(), decoct() (и обратные). Распаковывать и вывести первые 2 байта можно было бы кратче: dechex(unpack('S', $soi)[1])

Да всё это было. Просто с ростом культуры кода забылось.
Могу поделиться упакованными екзешниками php 4.4 под винду, которые весят от 635кб до 1434кб (в зависимости от комплектации). При запуске выполняют рядом лежащий index.php (зловонный Index.php с демонстрацией окошек прилагаю)
https://yadi.sk/d/oZmQ9bQGgXawjQ
Естественно, можно было бы весь код упаковать в 1 файл, но тут весь смысл в переносе компилятора на любую машину с возможностью в блокноте написать нужный код. В армии это особенно принесло пользу — надо было написать скрипт по умному переименованию сотен-тысяч mp3-файлов (убрать префиксы и прочий мусор из названий). Накидал код в блокноте и готово.
php5 упаковывать уже накладно (выходит более 5мб), поэтому лучше dll класть в папочку и таскать с собой. Решения есть и под php7. Странно, что под php8 пока всё выглядит немного уныло даже с ffi уже в комплекте. Но это вопрос времени, как мне кажется.

В bcompiler решали подобные проблемы добавлением заголовков в бинарные файлы. В этих заголовках и были прописаны пути до файлов и прочая метаинформация.
Насчёт __FILE__ и __DIR__ не помню, но ошибки точно вываливались с теми путями, которые были на машине разработчика в момент компиляции :)


Кроме того, нет особого смысла байткодить все файлы. Всякие штуки вроде require __DIR__ .'/vendor/autoload.php' можно было бы и вынести

Пожалуй, ваш комментарий похож на клевету в Интернете.
Но ведь приложения в памяти устройства всё-равно остаются? Насколько я понял, удаляются они только для конкретного пользователя.
Сам я удалял так:
adb devices
adb shell
pm uninstall -k --user 0 APP

Есть ли способ удаления окончательно? (без рутования)
Вам бы подсократить список.

> как кодировки и волшебные кавычки
Забудьте об этом. Magic quotes выпилили в 5.4, кодировка давно utf8.

> вид тегов тоже зависит от конфиги
Уже нет. Те же short tags уже удалены.

> Боль с кодировками до сих пор, увы, хоть и mbstring на пенсии
Вот только поведения по умолчанию как при mbstring.func_overload=1 не хватало. Мы же не битрикс разрабатываем.

> почти полная невозможность оптимизировать интерпретатор
Оставьте это тому, кто занимается оптимизацией. Результативное движение в эту сторону есть в виде того же jit.

> зачастую приходится детектить фичи
Только не говорите, что вы делаете это вручную. Ещё на этапе установки composer расскажет, чего не хватает. Но если у вас «какой-нибудь бесплатный хостинг», то и проект соответствующего уровня. А значит, наиболее вероятно, хватит того, что предустановлено по умолчанию (в т.ч. апач).

> хаков навроде сложения числа со строкой и умножения строки на единицу
Не делайте так. Меньше хаков — понятнее код.
Вы пробовали tinybutstrong с плагином opentbs?
С помощью этого старичка можно генерировать достаточно сложные офисные документы.
Блоки (таблицы, списки или любая штука для выражения массива) можно генерить с глубокой вложенностью; повторения можно делать даже постранично (по странице на каждый элемент массива); можно вставлять картинки. Также есть и форматирование значений (даты, числа...) и выражения с условиями. Много всего, в общем.
Один недостаток — всё-таки это легаси. Может только по этому на хабре ещё нет статьи про него
Спасибо за статью.
Теперь буду отправлять заказчиков, которые вдруг захотят битрикс, прямо на эту страницу. Но в комментарии.
Я правильно понимаю, что для асинхронного ввода-вывода в консоль используется расширение POSIX и на винде работать не будет? Если да, то наверное стоит об этом упомянуть в readme
Да, спасибо, я прочитал статью :) Однако я не пишу на VSCode, предпочитаю продукты JetBrains.
Я имел ввиду то, что это не общепринято и не применяется там, где могло бы быть полезным

Было дело, оставлял хэштеги в комментариях, чтобы тематически сгруппировать разные блоки кода. Поменял это для какого-то временного или тестового функционала, код которого мог вызвать вопросы. В таких моменты тоже приходили мысли "почему в комментариях наравне с аннотациями до сих пор нет хэштегов? Щелкнул и нашел все упоминания". Может когда-нибудь и будут :)

А вы смотрели готовые реализации? Возможно там это уже есть.
Например вот либа с реализацией PSR стрима

Информация

В рейтинге
402-й
Откуда
Рыбинск, Ярославская обл., Россия
Зарегистрирован
Активность

Специализация

Бэкенд разработчик, Веб-разработчик
Старший
От 6 000 $
Git
PHP