Дайджест интересных новостей и материалов из мира PHP № 34 (13 — 26 января 2014)



    Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

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


    Новости и релизы




    PHP


    • RFC: arrayof — Предлагается реализовать небольшое улучшение type hinting для массивов: function foo(Bar[] $bars) {} — каждый элемент массива $bars должен быть типа Bar.
    • RFC: Alphanumeric Decrement — Наряду с инкрементом буквенных строк, предлагается добавить и декримент.


    Инструменты


    • Webception — Веб-интерфейс для запуска Codeception-тестов.
    • RoboTask — Простой современный PHP-инструмент запуска задач, на создание которого автора вдохновили Grunt и Rake.
    • PsySH — Еще одно REPL-решение для PHP. Ранее были также Boris и phpsh.
    • Cockpit — CMS, которую можно легко добавить в любое приложение — plug & play CMS.
    • Rocketeer — Простой и быстрый инструмент развертывания, реализованный на PHP.
    • Poche — Open source инструмент отложенного чтения. Хотите свой Pocket / Instapaper или другой Readability — просто попробуйте Poche.
    • Chrono — Библиотека для работы с датой/временем не зависящая от системных часов.
    • Gush — Консольный инструмент, призванный облегчить жизнь open source контрибьюторов путем автоматизации часто проделываемых операций.
    • Pux — Высокопроизводительный роутер для PHP. Также поставляется с PHP-расширением, благодаря которому производительность можно увеличить еще в два раза.
    • conway-php — Игра «Жизнь», реализованная на PHP.
    • Mammouth — Язык программирования транслируемый в PHP, позволяющий сократить синтаксические конструкции и упростить код. Короче говоря, CoffeeScript для PHP, написанный на JavaScript.
    • DevDocs.io — Отличный ресурс с документацией по веб-инструментам и языкам программирования, включая PHP.


    Материалы для обучения




    Материалы c прошедших конференций




    Занимательное


    • Популярные конвенции кодирования — Space vs. Tab и другая статистика на основе анализа комитов на GitHub.
    • Фу, вы используете PHP? — Достойный ответ разработчиков из MailChimp всем, кто относится к PHP скептически.
    • PHP.XXX — PHP только для взрослых :-).
    • Оранжевые слоники PHP — Ребята из php[architect] запустили кампанию на Kickstarter с целью собрать $1000 на создание и распространение оранжевых PHP-слоников. Меньше чем за сутки им удалось собрать больше $20000! Кампания заканчивается 28 января — успейте заказать своего слоника!


    Быстрый поиск по всем дайджестам
    Предыдущий выпуск
    Zfort Group
    112,00
    Компания
    Поделиться публикацией

    Комментарии 32

      0
      Судя по графикам 3v4l.org (кстати какой-то странный домен как для такого ресурса) с ростом версий PHP, потребление памяти растёт и растёт :(
        0
        у этого ресурса единственный недостаток — домен запомнить вообще невозможно!
          +9
          Почему-же :) это ведь EvAl (от слова evaluate) на хакерском сленге :)
            +1
            Аааа, вот оно что! Спасибо!
          +1
          ну видимо смотря какой код запускать. Скажем на парочке тестовых снипетов потребление памяти версий 5.4+ ниже чем у 5,3, да и производительность выросла. Да и по потреблению памяти php все же еще не самый прожорливый. Да и это вполне себе логичный тренд, учитывая сколько изменений и новых возможностей добавилось в язык.
            0
            Согласен. Лично я готов пожерствовать памятью(в разумных пределах) ради повышения производительности(в смысле потребления ресурсов CPU)
          +6
          RFC: arrayof — Предлагается реализовать небольшое улучшение type hinting для массивов: function foo(Bar[] $bars) {} — каждый элемент массива $bars должен быть типа Bar.

          А это уже наверное по лучше будет, чем писать вечно типо:

          public function sets(array $data)
          {
          foreach($data as $key => $value) {
          if (!$value instanceof \Foo\Bar) { /**… InvalidArgumentException **/ }
          }
          }
            +1
            Как всегда спасибо! Про оранжевые слоники не понял. У автора на видео там и синие есть двух цветов. Что если я не хочу оранжевого, а хочу одного из синих, как мне его заказать?
              0
              Там при заказе указываешь опцию: (помимо остальных) либо одного оранжевого, либо трех разноцветных. Я себе одного заказал =)
              +4
              RFC: Alphanumeric Decrement — был дружно отвергнут голосованием — 20 против, 0 — за.
                +2
                Спасибо за богатую подборку!
                Мне кажется «Ewww» лучше перевести как «Фу» (заголовок статьи о MailChimp)
                  +1
                  Спасибо! Согласен, поправил.
                  +2
                  Короче говоря, CoffeeScript для PHP, написанный на JavaScript.

                  Убило.
                    +3
                    Да и если в случае JS — кофе вполне оправдан, то пых, ну вот наверное один из самых легкочитаемых и удобных языков — смысла в таком сахаре вообще, имхо, никакого…
                      0
                      Ну это дело вкуса. Меня вот обилие $this-> частенько напрягает. Да еще эти обязательные точка с запятой.
                      Ну и после сахарных cs или scala постоянно писать function() {} это такое.
                        +1
                        Есть такое дело, но с другой стороны, пишешь вот на кофе и понимаешь что что-то не то. Если у пыха (жавы, шарпа и проч.) выстраиваются чёткие, элегантные, квадратные структуры, то после кофе — ощущение неопределённой мягкой субстанции, которую непонятно как втыкать и куда вертеть, благодаря отсутствию инкапсуляции js и вообще любых даже визуальных структур (в тайпскрипте же есть private, который ни на что не влияет, судя по скомпиленному результату).

                        Так что в данном случае мы ступаем на тропу холиваров. С одной стороны простота и скорость написания, с другой — легкочитаемость кода.
                          0
                          ну путонисты же живут как-то без приватов, через _
                      0
                      github.com/btwael/mammouth/issues/26

                      Тут человек жалуется что это поделие компилирует 600+ строчек кода 11 минут. Судя по фото — написал проект школьник.
                      0
                      Спасибо!
                        0
                        RFC: arrayof — Предлагается реализовать небольшое улучшение type hinting для массивов

                        Лучше бы array с Traversable объеденили в один type-hint.
                          0
                          Лучше бы взяли: Ctrl + A => Del и сызнова написалиб нормальный лексический анализатор и функции запихнули в неймспейсы. Это уж если говорить о том, что лучше =)
                            0
                            Зачем начинать писать нормальный язык с нуля, а потом всех на него переучивать?
                            Лучше сразу на нормальный всем переходить.
                              0
                              а что переучиваться? Переучиться с array_column() на array::column() и с sort() на array::sort()? Думаю это не сложно будет. Да и переписать однозначно надо.

                              Вопрос, как должен поступить язык в таком случае?
                              ((object)['some' => function(){ echo 42; }])->some();
                              
                              он риторический, пых кидает ошибку, если что, аналогичный код, например на JS, вполне себе работает:
                              ({"some": function(){ alert(42); }}).some();
                              

                              Яж не от балды всё это написал, действительно говняный парсер у php, тут уж ничего не поделаешь.
                                0
                                Причём тут парсер? Может мы под этим термином разное подразумеваем?
                                  0
                                  Грань между терминами «парсер» и «лексер», лично для меня довольно тонка. Возможно я путаю.
                                  0
                                  Какой array_column() на array::column()?
                                  Они в 5.5 воодят расширение password: ru2.php.net/manual/en/intro.password.php
                                  И там глобальные константы PASSWORD_BCRYPT и т.п.
                                    0
                                    Это уже вторая половина эпопеи, которая должна называться:
                                    «PASSWORD_BCRYPT меняем на PasswordApi::HASH_BCRYPT»

                                    И не вводят, а уже ввели давно. На носу 5.6 =)
                                      0
                                      Я просто неудачно использовал оборот в настоящем времени
                                  0
                                  переписать лексер и переписать язык это разные вещи всеже. В php надо переписать парсер, ибо сейчас расширять язык нереально. По поводу объеденения функций в нэймспейсы — это тоже не проблема. Все существующие функции останутся как алиасы с пометкой депрекейтед.
                            0
                              +2
                              Слоник то синий. Тень забыли перекрасить в оранж и рефлекс на тексте.

                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                              Самое читаемое