Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
11.3K subscribers
1.34K photos
20 videos
26 files
4.03K links
Все самое полезное для пхпшника в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/bca892d6

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
Как делиться своими TwigComponent с командой

Здесь рассматриваются шаги и лучшие практики по созданию, документированию и распространению ваших Twig-компонентов, чтобы сделать их доступными для всей команды разработчиков.
#дайджест #phpdevjob

Вакансии PHP разработчиков уровня Junior

▪️PHP-developer
Удаленка. Офис в Москве. UREMONT — агрегатор страхования
Подробнее

▪️PHP-программист
Москва. Флекскор — система управления сайтами
Подробнее

Вакансии PHP разработчиков уровня Middle

▪️PHP-разработчик
Москва. Д-проджект — создание и продвижение веб-проектов
Подробнее

▪️Fullstack разработчик
Томск. BlaBlaCar — международный онлайн-сервис поиска автомобильных попутчиков
Подробнее

Вакансии PHP разработчиков уровня Senior

▪️Backend developer
Москва. PUSK — IT, интернет-маркетинг
Подробнее

▪️Backend-разработчик
Удаленка. Офис в Нижнем Новгороде. АДЕПТ — разработчик ПО для строительной отрасли
Подробнее

Понравились вакансии?
❤️ — да
🤔 — нет
🤔5👍1
#хочу_спросить

Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
👏1🎉1
Как использовать новую команду Symfony Maker для работы с GitHub Webhooks

Статья описывает, как использовать новую команду Symfony Maker для работы с веб-хуками GitHub. Веб-хуки — это распространенный способ взаимодействия внешних сервисов с вашим приложением. Они похожи на подписчика событий: удаленный сервис объявляет список шагов в своем жизненном цикле (например, для github: открыта проблема, сделан комментарий к PR и т.д.), и для каждого из этих шагов он отправляет событие с соответствующими данными.

Symfony 6.3 представил компоненты Webhook и RemoteEvent. Компонент Webhook упрощает создание конечной точки и проверку запроса, в то время как RemoteEvent обеспечивает передачу полезной нагрузки события через Messenger и обработку ее RemoteEventConsumer, где будет жить ваша логика.

Чтобы установить эти компоненты, выполните:
$ composer require symfony/webhook

После установки компонента, чтобы создать новый веб-хук, выполните:
$ symfony console make:webhook

Создатель попросит вас указать имя веб-хука, которое будет использоваться для генерации URL веб-хука.
Как масштабировать PHP-приложение, чтобы оно выдерживало высокую нагрузку, и каковы некоторые связанные с этим проблемы?

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

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

#вопросы_с_собеседований
3👍1
Автоматизируйте резервное копирование баз данных с помощью Laravel

В этом гайде показан пошаговый процесс автоматизации резервного копирования баз данных с помощью Laravel, в частности с использованием пакета spatie/laravel-backup.
4🤔2👏1😢1🥱1
Версионирование API в Laravel-приложениях

Версионирование API — важная и зачастую сложная задача, у которой скорее всего нет какого-то универсального решения. Здесь показан один из возможных подходов в приложениях на базе Laravel.
🔥10
💬 Час для экзистенциальных размышлений: на что вы бы тратили своё время, если бы вам не нужны были деньги?

👇Пишите в комментарии👇

#интерактив
👍4
Dolt

Dolt — это база данных SQL, которую можно форкать, клонировать, разветвлять, мерджить, пушить и вытаскивать, как репозиторий Git.

Подключиться к Dolt можно так же, как к любой базе данных MySQL, чтобы читать или изменять схему и данные.

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

Или используйте Git-подобный интерфейс командной строки для импорта CSV-файлов, фиксации своих изменений, отправки их на удаленное хранилище или слияния изменений коллег. Все команды, которые вы знаете для Git, работают точно так же и в Dolt.
🤔17👍3
🎓 Продвинутый SQL: секреты профессионалов

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

Читать статью

#туториал
👍2
Проверка структуры JSON-ответа в Laravel

При написании тестов для ответов API в Laravel может быть полезно проверить структуру ответа. Есть метод assertJson(), который можно использовать для проверки значений JSON в заданном тестовом ответе

Для проверки общей структуры всего ответа можно использовать assertJsonStructure(). Однако, если в будущем добавится новый ключ, этот тест продолжит проходить. Если требуется большая точность, возможно, потребуется использовать assertExactJson()

Если вам нужно убедиться, что в ответе присутствуют определенные свойства, assertJsonStructure() может дать вам уверенность, что вся структура содержит ожидаемые свойства. Если же вам нужны более обширные утверждения относительно структуры JSON, вы также можете использовать утверждения whereType() и whereAllType().
🔥51👍1
Профилирование PHP (Laravel) приложений с xhprof.

Здесь вы научитесь выявлять узкие места(ботлнеки) в ваших приложениях. Основное внимание уделено профилированию кода, что помогает определить неэффективные участки кода. В статье приводится пример использования инструментов профилирования, таких как xhprof и Buggregator, которые позволяют анализировать производительность и выявлять проблемные зоны.
Что такое type hinting, как работает, зачем нужен?

Type hinting в PHP — это возможность указывать ожидаемые или допустимые типы данных для параметров функций и функций-обратного вызова (callback). Он используется для определения типов аргументов функций и возвращаемых значений.

Type hinting выполняется при помощи объявления типа данных перед именем параметра функции или функции-обратного вызова.

В данном случае мы указываем, что параметры $a и $b должны быть целочисленного типа (int), а функция должна возвращать тоже целочисленное значение. Если будет передан несоответствующий тип данных, то PHP выдаст ошибку.

Type hinting в PHP имеет следующие преимущества и цели:

1. Увеличение надежности и безопасности кода: Type hinting позволяет контролировать типы данных, которые принимаются и возвращаются функциями, что может помочь предотвратить ошибки типизации и некорректное использование функций.

2. Улучшение понимания кода: Type hinting делает код более читаемым и понятным, особенно при работе в команде. Видя ожидаемые типы данных в объявлениях функций, другие разработчики легко могут понять, какие данные ожидаются для правильного использования функции.

3. Интеграция со средами разработки: Многие среды разработки, такие как PhpStorm, могут использовать информацию о типах данных для предоставления подсказок и автодополнения, что упрощает разработку и ускоряет процесс написания кода.

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

#вопросы_с_собеседований
😁8👍41
Использование фабрик Eloquent с провайдеров данных PHPUnit

Существует несколько способов работы с фабриками Laravel в функциональных тестах, например, создание модели во время setUp(), когда вы хотите использовать ее для нескольких тестов, или непосредственно в отдельном тестовом примере. Если же вы хотите провести тестирование с использованием различных данных, вам лучше обратиться к провайдерам данных PHPUnit с моделями Eloquent.
👍21
Привет, друзья! 👋
Мы готовим статью о типичных ошибках начинающих разработчиков. И нам очень нужна ваша помощь! 🙏
Поделитесь своим опытом и мнением в комментариях:
С какими сложностями вы сталкивались в начале своего пути в разработке?
Какие ошибки допускали и как их исправляли?
Что помогло вам быстрее расти профессионально?
Самые интересные и полезные советы мы обязательно включим в статью, а их авторов упомянем в публикации! 😊
Когда вы работаете с приложением Laravel, вы, вероятно, работаете с большим количеством электронных писем. Например, каждый раз, когда создается новый пользователь, ему будут отправляться письма с приветствием и подтверждением. Есть много таких случаев, когда будут отправляться письма. Поэтому в тестовых окружениях не имеет смысла использовать разные адреса электронной почты для разных целей.

А что, если мы могли бы использовать только один адрес электронной почты, и все письма приложения будут отправляться на этот адрес? Во фасаде Mail есть метод alwaysTo(), где вы можете указать глобальный адрес, на который будут отправляться все письма приложения.

Вы можете настроить это в методе boot AppServiceProvider вашего приложения, как показано ниже. Как вы можете понять, мы можем настроить это для всех сред, кроме производственной, и все будет работать! Другим способом можно сделать это, установив универсального получателя, указав параметр to в файле config/mail.php следующим образом.
8👍3😁1👾1
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Мастеринг путей к файлам PHP: Упрощение структуры вашего проекта

Статья обсуждает пути к файлам в PHP и как правильно их использовать. Она охватывает следующие темы:

🔸Абсолютные и относительные пути к файлам:
Абсолютный путь указывает полное местоположение файла в файловой системе, начиная от корневого каталога. Он всегда одинаков, независимо от текущего рабочего каталога (CWD).
Относительный путь указывает местоположение файла относительно текущего рабочего каталога или другого каталога. Он использует одинарную точку (.) для текущего каталога и двойную точку (..) для родительского каталога.

🔸Примеры использования путей: Примеры абсолютных и относительных путей для подключения файла connection.php из различных файлов проекта.

🔸Разделители каталогов в PHP: использование прямого слэша (/) и обратного слэша () в путях, а также их кроссплатформенная поддержка.

🔸Функции для работы с путями в PHP:

basename(): Возвращает имя файла из пути.
dirname(): Возвращает имя каталога из пути.
realpath(): Преобразует относительный путь в абсолютный.
glob(): Находит пути, соответствующие заданному шаблону.
file_exists(): Проверяет существование файла или каталога.
👍3