Как стать автором
Обновить
61.88

PHP *

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

Сначала показывать
Период
Уровень сложности

Прикручиваем шаблонизатор Blitz к Laravel

Время на прочтение4 мин
Количество просмотров2.5K

Среди некоторого количества шаблонизаторов для php есть один, который мы долгое время активно использовали и используем в своих проектах. Это Blitz, который являясь расширением, во-первых достаточно быстрый, во-вторых реализует давнюю мечту - максимальное отделение представления от логики.

Пока наши старые проекты были написаны на нативном php, пачке самописного кода и всякого «исторического наследия» проблем особых и не было. Но пришел момент когда некоторые старые куски мы решили переписать «жестко отрефакторить» и заодно влиться во вселенную Laravel. Но для ускорения процесса, перспектива переделать быстро десятки существующих шаблонов на Blade мне показалась такой себе идеей, поэтому надо было как-то прикрутить Blitz к Laravel, желательно в стиле самого Laravel. Ну типа там инсталяция в пару команд и все такое.

С другой стороны, в Blade есть некоторые фичи, которых нет в Blitz, как-то наследование шаблонов через @section/@yeld и внедрение хелперов. И было бы неплохо их добавить, для упрощения дальнейшего перехода на Blade, если будет надо. Сказано – сделано. На коленке за пару-тройку вечеров получился некий адаптер, с которым и хочу ознакомить. Собственно нижележащий текст это вольная попытка озвучить по-русски README.md, где я вообще был лаконичен как никогда

Читать далее

Dependency Injection Containers (DI контейнеры) в Joomla 4

Время на прочтение5 мин
Количество просмотров1.7K

В Joomla 4 используются контейнеры внедрения зависимостей (DI контейнеры, DIC). Эта статья-перевод (из нового портала документации для разработчиков) призвана объяснить, зачем их внедрили и как их использовать в Joomla. DI контейнеры уже давно существуют в экосистеме PHP, например, Symfony представила эту концепцию в 2009 году. Теперь они доступны и в Joomla.

Читать далее

Аскеза Bitrix

Время на прочтение8 мин
Количество просмотров7.2K

Я изучаю Битрикс где-то пару недель. Зачем?.. Хотелось чего-то новенького, тут подвернулась учёба. Даром, с наставниками, с возможным трудоустройством дальше хотя бы на пару месяцев - на испытательный срок. Я ничего заранее про Битрикс не знала, ну кроме термина "Битрикс" и факта, что в каждой второй вакансии по Laravel (мой обычный фреймворк) я на хедхантере вижу строчку Б_ЭТОНАМ_ТОЖЕНАДО.

Ниже попробую описать, чем Битрикс труден при выраженном любопытстве. Ну и, опять же, пару опций намечу, как это вот всё лечить. Вдруг разработчики Битрикса статью увидят? Они симфонисты. Правда, они старый код не трогают (это не точно), пишут второе ядро D7. Собственно про D7 наружный лифт на картинке.

Читать далее

Не сажайте сотрудника для медиамониторингов вручную

Время на прочтение9 мин
Количество просмотров2K

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

Читать далее

Советы по работе с легаси кодом в PHP

Время на прочтение5 мин
Количество просмотров5.5K

Сколько раз, приходя в новую компанию, вы получали в руки “большой комок грязи“, к которому каким-то образом нужно прикручивать новый функционал?

Без документации.
Без контроля версий.
Без какой-либо надежды на душевное равновесие в будущем.

Читать далее

API Вконтакте: автопостинг записей в сообщество Вконтакте

Время на прочтение8 мин
Количество просмотров20K

Сегодня мы с вами рассмотрим скрипт для автопостинга записей с сайта в сообщество Вконтакте. Вы научитесь работать с API вконтакте, создавать свои приложения, писать парсеры для отправки запросов в Вконтакте. Всю работу мы будем прописывать на языке PHP.

Читать далее

Массовая загрузка, обработка и выгрузка изображений в Битрикс на Python3

Время на прочтение11 мин
Количество просмотров12K

В этой статье мы популярно объясняем на собственном опыте как организовать массовую выгрузку, обработку и загрузку фотографий товаров из Bitrix, используя Python и минимальное количество SQL. Для прочтения будет полезно людям, выполняющим схожие задачи, не будучи при этом знакомыми с Битриксом.

Читать далее

Дежавю От Laravel к AdonisJs, или как поменяли исходный код в Матрице

Время на прочтение7 мин
Количество просмотров7K

Привет, Хабр.

Как и все разработчики на php, я тоже иногда сталкивался с NodeJs .
На днях просмотривая фреймворки Node столкнулся на AdonisJs . И после нескольких минут прочтения кодоа я почувствовал себя как в матрице .

Прошла черная кошка, за ней другая, такая же.

А теперь немного про AdonisJs.

Когда дело доходит до разработки веб-приложений, есть десятки фреймворков на выбор. Менее известный, но очень любимый фреймворк — AdonisJs, известный своим красивым кодом и простотой для бэкэнда.

AdonisJs — это узел. js MVC для согласованного, стабильного и выразительного кода. Адонис заботится о многих трудоемких деталях разработки, предлагая стабильную экосистему для серверных веб-приложений.

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

Читать далее

WordPress разработчик. Насколько перспективная профессия?

Время на прочтение3 мин
Количество просмотров29K

Существует устойчивый стереотип о том, что WordPress это только про создание сайтов используя готовые темы и установку плагинов. Но так ли это? Кто же те люди, которые создают те самые плагины и темы? Хочу поговорить про профессию WordPress разработчик и насколько это перспективное направление в 2022 году.

Читать далее

Тюнинг PHP-FPM. Введение

Время на прочтение6 мин
Количество просмотров33K

БОНУС: в нашем подкасте мы обсудили эту тему с экспертом, членом сообщества PHP программистов: https://share.transistor.fm/s/6a8637ba

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

PHP-FPM (или FastCGI Process Manager) имеет по сравнению с mod_php несколько преимуществ, из которых самые очевидные — он более гибок в настройке, и в настоящее время сообщество отдает предпочтение именно этому режиму работы PHP. Однако, если вы используете дефолтную конфигурацию от вашего диспетчера пакетов, то, скорее всего, вы не получите максимум выгоды от его использования.

Читать далее

Pro PHP 8 MVC: Model View Controller Architecture-Driven Application Development — обзор книги и рекомендации

Время на прочтение3 мин
Количество просмотров4.1K

В начале лета 2021 года на свет вышла книга "Pro PHP 8 MVC: Model View Controller Architecture-Driven Application Development" от Кристофера Питта. Это второе издание его книги о том, как работать с паттерном MVC в рамках PHP. 

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

Читать далее

Установка дополнительных версий PHP в VestaCP с помощью Docker

Время на прочтение4 мин
Количество просмотров5.4K

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

Читать далее

Книга «Создаем динамические веб-сайты на PHP. 4-е межд. изд.»

Время на прочтение10 мин
Количество просмотров4.1K
image Привет, Хаброжители! Сложно найти что-то толковое про PHP? Проверенная временем, обновленная в четвертом издании, эта книга помогает начинающим разработчикам научиться всему, что необходимо для создания качественных веб-приложений.

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

Вы получите множество рекомендаций по стилю программирования и процессу разработки ПО от Кевина Татро и Питера Макинтайра. Этот материал, изложенный в доступной и компактной форме, поможет вам овладеть мастерством программирования на PHP. • Общие сведения о том, какой результат можно получить, используя PHP. • Основы языка, включая типы данных, переменные, операторы, управляющие команды. • Функции, строки, массивы и объекты. • Решение распространенных задач разработки: обработка форм, проверка данных, отслеживание сеансовых данных и cookie. • Работа с реляционными базами данных (MySQL) и базами данных NoSQL (например MongoDB). • Генерирование изображений, создание файлов PDF, парсинг файлов XML. • Безопасность скриптов, обработка ошибок, оптимизация быстродействия и другие нетривиальные темы.
Читать дальше →

Ближайшие события

Модульные frond-end блоки — пишем свой пакет. Часть 2

Время на прочтение29 мин
Количество просмотров2.5K

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

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

Читать далее

Модульные front-end блоки – пишем свой мини фреймворк

Время на прочтение37 мин
Количество просмотров7.3K

Доброго времени суток уважаемые читатели хабра. С каждым годом в веб разработке появляется все больше разнообразных решений которые используют модульный подход и упрощают разработку и редактирование кода. В данной статье я предлагаю вам свой взгляд на то, какими могут быть переиспользуемые front-end блоки (для проектов с бэкендом на php) и предлагаю пройти все шаги от идеи до реализации вместе со мной. Звучит интересно? Тогда добро пожаловать под кат.

Читать далее

PHP 8 продолжает развитие опенсорсного языка программирования

Время на прочтение4 мин
Количество просмотров3.8K

Первое за последние годы крупное обновление широко распространенного языка веб-программирования PHP принесло нам новые фичи, которые могут помочь еще больше увеличить его распространенность и востребованность.

На заре эпохи интернета опенсорсный язык программирования PHP был в самом центре всей веб-разработки. Его новый релиз 8.0 стремиться сделать его более актуальным для нового поколения разработчиков.

Увидевший свет 25 лет назад, PHP представляет букву «P» в стеке LAMP (Linux, Apache, MySQL, PHP), который определил первое поколение веб-разработки. В последние годы другие языки, включая Python и JavaScript, начали превосходить PHP в популярности, в то время как новые языки, такие как Go и Rust, также очень быстро развиваются.

Однако PHP не сидит сложа руки, пока другие языки развиваются. PHP 8.0, который стал широко доступен в День благодарения (26 ноября), объединяет в себя ряд новых возможностей, в том числе механизм JIT-компиляции, который повышает производительность по сравнению с предыдущими версиями PHP.

Другие улучшения включают оптимизации языка, которые несомненно принесут пользу разработчикам, включая именованные аргументы и атрибуты.

Читать далее

Пишем плагин GLPI для переоткрытия заявок

Время на прочтение6 мин
Количество просмотров9.6K
Всем привет.

Сегодня речь пойдёт о том, как я написал плагин GLPI для работы с новыми заявками, созданными на основе уже закрытых заявок, а точнее переоткрытии закрытых заявок, если по ним поступают дополнительные запросы от пользователя.
Предыстория

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

Из официальных мануалов — пара ресурсов на readthedocs, плюс мануал, сгенерированный из phpdoc'а.

Из сообщества — чат в телеграме и забугорный форум.
Читать дальше →

Использование RabbitMQ вместе с MonsterMQ часть 2

Время на прочтение5 мин
Количество просмотров2.3K
image
(Изображение взято с официального сайта RabbitMQ)

В первой статье мы написали две программы на PHP, которые используют RabbitMQ: одна посылала сообщения, вторая принимала. В этой статье мы разберём как создать очередь, которая будет распределять задачи, затрачивающие значительное количество времени, среди многих воркеров (обработчиков сообщений).
Читать дальше →

Концепция фильтрации моделей на примере Laravel

Время на прочтение4 мин
Количество просмотров27K
Хочу представить вашему вниманию концепцию организации фильтрации по URL-запросу. Для примера буду использовать язык PHP и фреймворк Laravel.

Концепция


Идея заключается в создании универсального класса QueryFilter для работы с фильтрами.

GET /posts?title=source&status=active

Использую данный пример, мы будем фильтровать посты (модель Post) по следующим критериям:

  • Наличие слова «source» в поле title;
  • Значение «publish» в поле status;
Читать дальше →