Packager действительно может быть полезен. А в случае свободной лицензии и Opensource можно рассчитывать на багрепорты, фидбек и поддержку другими разработчиками.
Суть в том, чтобы можно было в рамках одного проекта работать над любыми модулями
При разработке Yii3 мы используем yiisoft/yii-dev-tool. Все нужные пакеты yiisoft клонируются в одну папку, из них используемые в пакете/проекте линкуются в vendor/yiisoft/*. Т.о. вне зависимости от того, есть на пакетах версии или нет — в вендоре имеем то, что в локальном гит-репозитории каждого пакета.
Вот переезжали вы на Yii 2 и сломали BC. А на Yii 3 переехать готовы? Планируете? Модули у вас ведь не фреймворко-независимые?
Вот тоже любопытно. Все айтишные позиции без вилки.
На неайтишных позициях в среднем от 24 до 50 тыр.
Также среди позиций значится Стажёр Frontend разработчик (Delphi). Формошлёпить на Delphi, оказывается, ещё актуально!
при сдвиге вправо уходящий бит исчезает, не влияя на оставшиеся биты, а на месте появившегося бита устанавливается бит, соответствующий знаку
Формат хранения чисел в PHP подразумевает, что если левый бит === 1, то число отрицательное. "Шлейф" (надо было мне такое ляпнуть...) из единиц будет только для отрицательных. Из нулей — для положительных.
Не указано, что PHP смещает биты вправо, оставляя шлейф из левого бита. Арифметический сдвиг, а так хотелось бы иметь ещё и логический, да?
Отрицательные числа хранятся не так как описано в статье: не достаточно просто выставить левый бит в единицу. У нас они хранятся в обратном представлении. Для 64бит значение -1 будет представлено в памяти в виде 64 единиц.
Вы забыли про замечательные функции 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' можно было бы и вынести
> как кодировки и волшебные кавычки
Забудьте об этом. Magic quotes выпилили в 5.4, кодировка давно utf8.
> вид тегов тоже зависит от конфиги
Уже нет. Те же short tags уже удалены.
> Боль с кодировками до сих пор, увы, хоть и mbstring на пенсии
Вот только поведения по умолчанию как при mbstring.func_overload=1 не хватало. Мы же не битрикс разрабатываем.
> почти полная невозможность оптимизировать интерпретатор
Оставьте это тому, кто занимается оптимизацией. Результативное движение в эту сторону есть в виде того же jit.
> зачастую приходится детектить фичи
Только не говорите, что вы делаете это вручную. Ещё на этапе установки composer расскажет, чего не хватает. Но если у вас «какой-нибудь бесплатный хостинг», то и проект соответствующего уровня. А значит, наиболее вероятно, хватит того, что предустановлено по умолчанию (в т.ч. апач).
> хаков навроде сложения числа со строкой и умножения строки на единицу
Не делайте так. Меньше хаков — понятнее код.
Вы пробовали tinybutstrong с плагином opentbs?
С помощью этого старичка можно генерировать достаточно сложные офисные документы.
Блоки (таблицы, списки или любая штука для выражения массива) можно генерить с глубокой вложенностью; повторения можно делать даже постранично (по странице на каждый элемент массива); можно вставлять картинки. Также есть и форматирование значений (даты, числа...) и выражения с условиями. Много всего, в общем.
Один недостаток — всё-таки это легаси. Может только по этому на хабре ещё нет статьи про него
Я правильно понимаю, что для асинхронного ввода-вывода в консоль используется расширение POSIX и на винде работать не будет? Если да, то наверное стоит об этом упомянуть в readme
Да, спасибо, я прочитал статью :) Однако я не пишу на VSCode, предпочитаю продукты JetBrains.
Я имел ввиду то, что это не общепринято и не применяется там, где могло бы быть полезным
Было дело, оставлял хэштеги в комментариях, чтобы тематически сгруппировать разные блоки кода. Поменял это для какого-то временного или тестового функционала, код которого мог вызвать вопросы. В таких моменты тоже приходили мысли "почему в комментариях наравне с аннотациями до сих пор нет хэштегов? Щелкнул и нашел все упоминания". Может когда-нибудь и будут :)
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, то число отрицательное. "Шлейф" (надо было мне такое ляпнуть...) из единиц будет только для отрицательных. Из нулей — для положительных.
Статья интересная, но вот пара замечаний:
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'можно было бы и вынестиСам я удалял так:
Есть ли способ удаления окончательно? (без рутования)
> как кодировки и волшебные кавычки
Забудьте об этом. Magic quotes выпилили в 5.4, кодировка давно utf8.
> вид тегов тоже зависит от конфиги
Уже нет. Те же short tags уже удалены.
> Боль с кодировками до сих пор, увы, хоть и mbstring на пенсии
Вот только поведения по умолчанию как при mbstring.func_overload=1 не хватало. Мы же не битрикс разрабатываем.
> почти полная невозможность оптимизировать интерпретатор
Оставьте это тому, кто занимается оптимизацией. Результативное движение в эту сторону есть в виде того же jit.
> зачастую приходится детектить фичи
Только не говорите, что вы делаете это вручную. Ещё на этапе установки composer расскажет, чего не хватает. Но если у вас «какой-нибудь бесплатный хостинг», то и проект соответствующего уровня. А значит, наиболее вероятно, хватит того, что предустановлено по умолчанию (в т.ч. апач).
> хаков навроде сложения числа со строкой и умножения строки на единицу
Не делайте так. Меньше хаков — понятнее код.
С помощью этого старичка можно генерировать достаточно сложные офисные документы.
Блоки (таблицы, списки или любая штука для выражения массива) можно генерить с глубокой вложенностью; повторения можно делать даже постранично (по странице на каждый элемент массива); можно вставлять картинки. Также есть и форматирование значений (даты, числа...) и выражения с условиями. Много всего, в общем.
Один недостаток — всё-таки это легаси. Может только по этому на хабре ещё нет статьи про него
Теперь буду отправлять заказчиков, которые вдруг захотят битрикс, прямо на эту страницу. Но в комментарии.
Я имел ввиду то, что это не общепринято и не применяется там, где могло бы быть полезным
Было дело, оставлял хэштеги в комментариях, чтобы тематически сгруппировать разные блоки кода. Поменял это для какого-то временного или тестового функционала, код которого мог вызвать вопросы. В таких моменты тоже приходили мысли "почему в комментариях наравне с аннотациями до сих пор нет хэштегов? Щелкнул и нашел все упоминания". Может когда-нибудь и будут :)
Кассир из Японии украл деньги с 1300 кредитных карт. Он просто запоминал все цифры
Например вот либа с реализацией PSR стрима