Как стать автором
Обновить
132.45
Рейтинг

PHP

Скриптовый язык общего назначения

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

PHP-Compiler, или ныряем в кроличью нору FFI

Блог компании Конференции Олега Бунина (Онтико)PHPКонференции
Перевод

Однажды Энтони Феррара (Anthony Ferrara) решил скомпилировать PHP в низкоуровневый код, но результат получился слабым. Главной проблемой, с которой он столкнулся, было отсутствие подходящего бэкенда. К лучшему все изменилось после того, как в дело вступил FFI.

Я советую прочитать статью «A PHP Compiler, aka The FFI Rabbit Hole», перевод который вы найдёте под катом.

Читать далее
Всего голосов 29: ↑28 и ↓1 +27
Просмотры4.4K
Комментарии 6

Новости

Показать еще

«Дело было вечером, делать было нечего» или краткая история о сравнении производительности языков программирования

Тестирование IT-системPHPПрограммирование

"Бенч" дело такое... После нескольких дней бездействия начинается ломка, хочется занять себя чем-нибудь. Иногда я отвлекался на pet-проекты, иногда на чтение литератыры... Сейчас же я расскажу о том что случилось во время последнего "режима ожидания".

Меня многие годы волновала производительность ЯП (в основном интересовал PHP). Список ниже, содержал некоторые мои убеждения, до недавнего времени:

- PHP один из самых медленных языков программирования

- Python быстрее PHP

- Ruby быстрее PHP

- C/C++ намного быстрее Python и PHP вместе взятых

- Assembler на порядок быстрее C/C++

Читать далее
Всего голосов 39: ↑24 и ↓15 +9
Просмотры10.4K
Комментарии 79

PHP — я бы купил это за доллар

PHPКарьера в IT-индустрии

Объективно можно сказать, что в настоящий момент PHP не самый сексуальный и клевый язык программирования. Онлайн-школы не стремятся рекламировать курсы по PHP, мы не видим истории успеха, начинающие с фразы «Я взял в руки учебник по PHP», да и вообще идет мнение, что лучше совсем никак, чем быть PHP-программистом (а если слышим про битрикс, то сразу можно на костер). Тем не менее, я не согласен с этим, и расскажу, почему инвестиция времени в ПХП себя окупает.

Я бекенд-разработчик, в своё время работал на Python и Java, а сейчас работаю на PHP.

Читать далее
Всего голосов 43: ↑35 и ↓8 +27
Просмотры16.6K
Комментарии 82

Автоматическая документация по коду для API в Laravel

Разработка веб-сайтовPHPПрограммированиеLaravelПодготовка технической документации

На одном из утренних дэйликов, мобильные разработчики подняли вопрос о том, что документация по API не соответствует действительности. По горячим следам быстро нашли, что действительно есть нестыковки: разработчик пофиксил баг, но не обновил документацию по роуту. Так как такое уже случалось не впервые - была заведена задача на подумать, что можно с этим поделать.

Ждать долго не пришлось, при обновлении на сервере PHP c 7.2 до 7.4 - мы получили страницу с описанием ошибки, вместо документации. Ошибка найдена в библиотеке, которую мы использовали для рендеринга UI документации. ПР на гитхабе был создан быстро, но провисел в статусе open почти неделю. После этого, тикет насчет документации пошел в работу.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Просмотры2.6K
Комментарии 1

Дайджест Joomla за весну 2021

CMSРазработка веб-сайтовPHPJoomla
Из песочницы

Все главные новости из мира Joomla за осень 2020 и весну 2021, в одной статье.

Традиционно наш дайджест обозревает новости, расширения, шаблоны и статьи из мира Joomla. Последний выпуск прошлого года вы можете прочитать здесь.

Читать далее
Всего голосов 9: ↑8 и ↓1 +7
Просмотры1.9K
Комментарии 14

PHP Дайджест № 205 (1 – 15 июня 2021)

Разработка веб-сайтовPHPSymfonyYiiLaravel


Подборка свежих новостей и материалов из мира PHP. В выпуске: первая альфа PHP 8.1.0, Composer 2.1, Symfony 5.3 и другие релизы. Обзор новых предложений для PHP 8.1: Partial Function Application, pipe оператор, readonly свойства. А также порция полезных инструментов, статьи, видео и подкасты.

Приятного чтения!
Читать дальше →
Всего голосов 45: ↑45 и ↓0 +45
Просмотры7.6K
Комментарии 7

Мой штрихкод. Code128

PHP
Из песочницы

Однажды в процессе производственной деятельности появилась необходимость генерации штрихкода по стандарту code128. Появилась в виду того, что имевшаяся в эксплуатации функция (хранимая процедура в базе Oracle) генерировала клёвый, полосатый штрихкод, который однако, читался не во всех случаях. Разработчики в своё время оттестировали её весьма некачественно, но перерабатывать уже не собирались т.к. проект был давно сдан, а потребности в считывании так и не появились.

Первая мысль — поиск готовых библиотек. Навскидку определили критерии — с pl/sql не связываемся, пусть это будет внешний сервис: возможно кусок на javascript для генерации прямо на страничке, либо обращение за картинкой к ближайшему серверу где имеется php. Беглый поиск в интернете показал что тема истоптана весьма плотно. Есть как наколенные поделки уровня лабораторки по программированию, так и мощные библиотеки для всех вариантов кодирования вплоть до qr-кодов. Варианты с JavaScript пришлось отбросить т.к. они во первых практически все «обфусканы» (даже непонятно, то ли для сокращения объема, то ли стыдно исходники показать), во вторых генерируют строку для отображения определенным шрифтом, наличие которого не всегда можно обеспечить на рабочем месте и требует дополнительных обработок для экранирования спецсимволов. Внимательное рассмотрение библиотек и кусков кода на php тоже произвел тягостное впечатление — на первый взгляд всё вроде бы правильно: и классы написаны на все случаи жизни, комментарии в наличии, украшательства типа выбора цвета и рамочек, примеры подготовлены. Начнёшь вникать — хотят либо php самой распоследней версии (на боевых серверах не всегда это получается добыть), либо внутренняя логика не различима совсем, либо штрихкод на выходе получается длиннее ожидаемого. Вот последнее не дало покоя и подтолкнуло к собственной реализации.

Читать далее
Всего голосов 11: ↑9 и ↓2 +7
Просмотры2.9K
Комментарии 9

Браузерные Push-уведомления на Javascript и PHP

PHPJavaScript
Из песочницы

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

В данной статье не будут "размусолены" принципы работы и тонкости Push уведомлений, только код

Читать далее
Всего голосов 9: ↑8 и ↓1 +7
Просмотры5.6K
Комментарии 11

Кто, где, когда: система компонентов для разделения зон ответственности команды

Блог компании BadooРазработка веб-сайтовPHPРазработка мобильных приложенийУправление разработкой

Меня зовут Евгений Тупиков, я ведущий PHP-разработчик в Badoo и Bumble. У нас в команде более 200 бэкенд-разработчиков, которые работают над сотнями модулей и отдельных сервисов в наших приложениях. Но поначалу всё было не так масштабно. В 2006 году это был один проект, над которым работала небольшая команда. Каждый разработчик хорошо понимал, как всё устроено: легко ориентировался в коде, знал, какие есть сервисы и как они взаимодействуют между собой. Однако по мере роста проекта всё больше времени занимал поиск «хранителей знаний» — тех, кто отвечает за ту или иную функциональность и к кому можно обратиться с вопросом или предложением. 

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

Читать далее
Всего голосов 48: ↑48 и ↓0 +48
Просмотры3.5K
Комментарии 8

Ничего лишнего — только хардкор, только технологии

Блог компании Конференции Олега Бунина (Онтико)Разработка веб-сайтовPHPПрограммированиеКонференции

Пообщаться на важные именно для нас темы не только между собой, но и с представителями лучших топовых компаний и проектов в мире PHP — одна из самых главных активностей на конференции. В онлайне это сложно реализовать. Именно поэтому  мы  собираем всех вас вместе 28 июня. Из-за ковидных переносов конференции часть программы  PHP Russia 2021 поменялась. У кого-то из докладчиков изменились планы, и  мы нашли равноценную замену, пришли новые спикеры с неожиданно крутыми темами. В итоге примерно половина докладов были заменены.

Глобальное отличие от прошлой конференции — гибридный формат: она пройдёт одновременно офлайн и онлайн. Онтико сейчас проводит все конференции. В офлайне будет всё, как обычно: четыре зала, общение всех со всеми, обед и бесконечный кофе-брейк, небольшой фуршет с пивом и соками, афтепати и активности на стендах партнеров. Стенды, кстати, будут прикольные. Все партнеры используют PHP, и с ними будет интересно. А афтепати собирают ребята из московского Beer PHP. 

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

Читать далее
Всего голосов 34: ↑31 и ↓3 +28
Просмотры3.2K
Комментарии 1

Зачем нужен static при объявлении анонимных функций?

Разработка веб-сайтовPHPSymfonyYiiLaravel

Буквально на днях пришел вопрос от одного из подписчиков касательно одного из постов моего telegram канала. Его смутил вот такой кусок кода:

usort($firstArray, static function($first, $second) { return $first <=> $second;
});

Вопрос звучал так:

"Зачем делать callback’и в функции сортировки (usort), статическими?"

И я подумал, что это действительно хороший вопрос, на который стоит обратить внимание.

Читать далее
Всего голосов 64: ↑62 и ↓2 +60
Просмотры9.9K
Комментарии 13

Magento 2 UI Components. Часть 2: конфигурация

Блог компании РоссельхозбанкPHPРазработка под e-commerceMagento
Tutorial

Привет! Меня зовут Павел и я Magento 2 бэкенд-разработчик. В прошлой части саги о Magento 2 UI Components мы получили общие сведения о UI-компонентах, их разнообразии, строении и технологиях, лежащих в основе. Сегодня подробно коснемся их конфигурации: значения по умолчанию, XML-конфигурации, выражения в значениях конфигурации, замена шаблонов и JS-компонентов и пр. Погнали!

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Просмотры1.1K
Комментарии 2

Телеграмм-бот для анализа опционов

PHPРазработка мобильных приложенийВизуализация данныхФинансы в IT
Из песочницы

Телеграмм-бот для графического анализа опционов и фьючерсов с расчетом гарантийного обеспечения как меры риска.

Читать далее
Всего голосов 12: ↑10 и ↓2 +8
Просмотры4.9K
Комментарии 4

Уходим в кэш в высоконагруженных системах

Блог компании Конференции Олега Бунина (Онтико)PHPКонференции

Одна из вечных тем — правильная работа с кэшем. Звучит это просто, но на деле в ней очень много подводных камней и особенностей. Ну а когда приходит нагрузка, все становится еще интересней. В кэшировании нет «серебряной пули», а есть набор отработанных техник. И остается лишь подобрать их комбинацию для вашей задачи, используя достоинства и нивелируя недостатки.

На конференции PHP Russia 2021 Павел Паршиков, backend engineer в Авито, представит доклад «Уходим в кэш в высоконагруженных системах». А в этом  интервью мы поговорили о том, хорош ли PHP для растущих в плане нагрузки проектов, и какие его инструменты лучше применять.

Читать далее
Всего голосов 35: ↑32 и ↓3 +29
Просмотры6.2K
Комментарии 0

Как в PHP улучшить читаемость регулярных выражений

Блог компании Mail.ru GroupPHPАлгоритмыРегулярные выражения
Перевод
Tutorial

Регулярные выражения — очень мощный инструмент, однако согласно общепринятому мнению, после того как они написаны, их очень трудно понять, поэтому их поддержка — не самое приятное занятие. Здесь собраны советы, которые помогут сделать из более читаемыми.

PHP использует диалект регулярных выражений PCRE — до версии PHP 7.3, и PCRE2 — в более новых версиях. Поэтому в PHP можно использовать различные продвинутые приемы, помогающие писать читаемые, самодокументируемые и поддерживаемые регулярные выражения. При этом не надо также забывать и о наличии в PHP функций фильтрации переменных, а также семейства функций ctype*, позволяющих валидировать такие распространенные значения как url-ссылки, адреса электронной почты и строки из букв и цифр — вообще без использований регулярный выражений. Во многих IDE есть подсветка регулярных выражений, помогающая их читать, а иногда даже и проверка выражений, с подсказками по их улучшению.

Читать далее
Всего голосов 37: ↑35 и ↓2 +33
Просмотры4.7K
Комментарии 14

Модульный PHP монолит: рецепт приготовления

Блог компании ispringPHPПрограммированиеАнализ и проектирование систем

Статья написана по мотивам моего доклада на митапе. В нем я рассказываю историю того, как мы взяли и не распилили монолит на микросервисы, и что сделали вместо этого.

На тот момент наша команда работала над приложением, начало которому было положено еще в 2009 году не искушенными в архитектуре студентами. К 2018 это уже был типичный big ball of mud (большой ком грязи), или, этакий «монолит-копролит», как выразился один наш коллега. Думаю, многим знакомо.

Читать далее
Всего голосов 27: ↑26 и ↓1 +25
Просмотры4.3K
Комментарии 7

PHP Дайджест № 204 (17 – 31 мая 2021)

Разработка веб-сайтовPHPSymfonyYiiLaravel
Фото: Christian Münch.

В эти две недели core команда PHP активно обсуждала предложение по Partial function Application и в качестве альтернативы Никита Попов предложил более простой синтаксис для получения ссылки на любые функции. Также в уже принятые в PHP 8.1 енумы предлагается добавить статические свойства.

Symfony 6 будет требовать PHP 8.0, а вышедшая Doctrine 2.9 поддерживает указание метаданных в атрибутах вместо PHPDoc.

Еще в выпуске классная статья про регекспы и инструкция по использованию Deployer, а также другие полезные статьи, пачка инструментов, немного видео и подкастов.

Приятного чтения!
Читать дальше →
Всего голосов 51: ↑51 и ↓0 +51
Просмотры8.7K
Комментарии 22

Чистим пхпшный код с помощью DTO

PHPЯ пиарюсьПроектирование и рефакторинг
Из песочницы

При написании нового метода или сервиса мы стараемся его максимально абстрагировать от внешних зависимостей, чтобы новый функционал реализовывал только заложенную ему логику. Об этом, собственно, нам и говорит один из принципов SOLID - Принцип единственной ответственности (single responsibility principle).

Я постоянно встречаю код, где если у метода больше двух входных аргументов, добавляется условный (array $args), что влечет за собой реализацию проверки наличия ключа, либо она отсутствует и тогда увеличивается вероятность того, что метод может закрашиться в рантайме.

Возможно, такой подход в PHP сложился исторически, из-за отсутствия строгой типизации и такого себе ООП. Ведь как по мне, то только с 7 версии можно было более-менее реализовать типизацию+ООП, используя strict_types и type hinting.

Читать далее
Всего голосов 16: ↑16 и ↓0 +16
Просмотры5.4K
Комментарии 44

Наследование шаблонов в ванильном PHP за 35 строк кода?

PHP
Из песочницы

В WordPress шаблоны нативные, что хорошо, - не надо учить дополнительный язык. Но очень хочется наследовать шаблоны как в Twig, а PHP из коробки так не умеет. Вдохновляться было решено библиотекой phpti, в которой нашлось несколько обидных моментов, которые очень захотелось поправить.

Читать далее
Всего голосов 11: ↑10 и ↓1 +9
Просмотры3.9K
Комментарии 10

Принцип подстановки Барбары Лисков (предусловия и постусловия)

PHPПрограммированиеСовершенный кодПроектирование и рефакторингООП
Из песочницы

​Почему у многих возникают проблемы с этим принципом? Если ли более простое объяснение?

​️В данной статье мы НЕ будем рассматривать общие примеры данного принципа, о которых уже есть много материалов (пример с квадратом и прямоугольником или управления термостатами). Здесь мы немного подробнее остановимся на таких понятиях как «Предусловия», «Постусловия», рассмотрим что такое ковариантность, контравариантность и инвариантность, а также что такое «исторические ограничения» или «правило истории».

Интересно...
Всего голосов 22: ↑20 и ↓2 +18
Просмотры6.7K
Комментарии 19

Вклад авторов