Библиотека пхпшника | 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
Версионная миграция структуры базы данных через PHP атрибуты

Исчерпывающий гайд, который описывает подход к созданию миграций и определения структуры базы данных в фреймворке Laravel с использованием классов моделей, атрибутов PHP и специальных команд. Автор предлагает использовать атрибуты PHP для определения полей, индексов, отношений и других характеристик таблицы внутри класса модели. Вместе с этим он представляет механизм миграций, который позволяет легко вносить изменения в структуру базы данных.
🥱5👍2🤔2👾1
Объекты значений в PHP 8: расширенное использование

Этот материал является частью цикла статей про объекты-значения, как и вчерашний пост. Он занимается пониманием и использованием объектов-значений (Value Objects), классифицируя их на три основных типа: Простые, Сложные и Композитные.

1️⃣Простые объекты-значения: Они инкапсулируют единственное значение, представляя основные концепции в предметной области. В статье используется пример объекта-значения Age, включая рекомендации, такие как соблюдение принципа единственной ответственности, неизменяемость, валидация, строковое представление и метод для проверки равенства.

2️⃣Сложные объекты-значения: Они обрабатывают более сложные структуры или несколько атрибутов, моделируя более богатые концепции в предметной области. Статья иллюстрирует это на примере объекта-значения Coordinates, представляющего географические координаты. Здесь акцент делается на структурированном представлении, валидации, значимом строковом представлении и методе для проверки равенства.

3️⃣Композитные объекты-значения: Они объединяют несколько простых или сложных объектов-значений в единый комплексный объект, представляя более сложные концепции в предметной области. Примером служит композитный объект-значение Address, состоящий из улицы, города и почтового индекса. Здесь рекомендации включают композицию, абстракцию, значимое строковое представление и метод для проверки равенства.

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

Кроме того, рассмотрены альтернативы исключениям, представляя концепцию Either и объединенные типы (Union Types) в PHP 8.0 для обработки ошибок. Оба подхода предоставляют гибкость управления результатами, где Either предлагает структурированный метод, а объединенные типы соответствуют философии «позвольте ему быстро завершиться».
👍6
Для чего используется функция header()?

Функция header() в PHP используется для отправки HTTP-заголовков из сервера в браузер.

Основные случаи использования функции header() в PHP включают:

1. Установка статуса и заголовков ответа сервера:
В этом примере функция header() устанавливает статус ответа на «200 OK» и тип содержимого на «application/json».

2. Управление кешированием:
В этом примере функция header() устанавливает заголовки, которые предотвращают кеширование страницы в браузере.

3. Перенаправление пользователя на другую страницу:
В этом примере функция header() выполняет перенаправление пользователя на указанный URL.

4. Установка cookie:
В этом примере функция header() устанавливает cookie с именем «name» и значением «value», а также указывает срок и путь доступа к cookie.

Важно отметить, что функция header() должна быть вызвана до вывода любого другого содержимого на страницу, чтобы гарантировать успешное отправление заголовков.

#вопросы_с_собеседований
👍14🥱7🔥41
Восхождение на Эверест в шлепанцах: путь в PHP в качестве разработчика Python

Описывается опыт решения задачи изучения и реализации PHP для проекта печатающего API с использованием помощника по кодированию на искусственном интеллекте по имени Cody. Задача заключалась в том, чтобы в ограниченные сроки перевести функциональный API из Python в PHP.

Внимание акцентируется на эффективности использования Коди для генерации каркаса кода PHP на основе выбранных сегментов кода Python. Автор хвалит функцию автозаполнения, исправления кода и общую скорость процесса кодирования при использовании Коди. В статье также затрагивается предпочтение автора Коди перед ChatGPT-4 из-за его способности навигации и ответа на вопросы относительно всего кодовой базы, предоставляя контекст и понимание.
👍52
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🤘 Особенности работы в ИТ: информация из первых рук

👨‍💻 Недавно мы проводили среди вас опрос, а теперь делимся интересными выводами обо всех аспектах работы в ИТ.

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

💬 Пишите в комментариях другие темы, о которых вам хотелось бы узнать👇
👍5😁4🥱21
Юнит-тесты в Laravel на примере

Рассматривается опыт тестирования программного обеспечения, призывая читателей попробовать его сами, изучив тесты в известных открытых проектах. В фокусе — модульное тестирование FileSystems в Laravel. Обсуждаются особенности теста, использующего PHPUnit и Mockery framework для создания мок-объектов. Подробно описываются ключевые моменты, такие как создание временной директории, инициализация объекта Filesystem, тестирование операций с файлами и директориями, работа с LazyCollection, проверка исключений, добавление макросов, а также другие аспекты. Автор выражает надежду, что материал поможет читателям улучшить навыки в тестировании программного обеспечения.
👍41🔥1
#дайджест #phpdevjob

Вакансии недели для Москвы 👨🏻‍🏫

Middle PHP-разработчик в КСК ЭКСПЕРТ
Москва. Разработка ПО.
Подробнее

Middle+ PHP backend developer в Чек-Ап Онлайн
Москва. IT платформа управления бизнесом.
Подробнее

PHP / Laravel Developer в KingBoost
Москва. Разработка ПО.
Подробнее

PHP developer в КОМПОТ
Москва. Разработка и поддержка IT-проектов для крупных компаний.
Подробнее

PHP-программист в SVK.Digital
Москва. Разработка цифровых продуктов.
Подробнее

Понравились вакансии?
❤️ — да
🤔 — нет
6🤔2👍1
Super-Linter

Комбинация линтеров, которую можно установить как GitHub Actions. Это может быть полезно, если у вас есть многоязычные проекты.
🤔21
Как работает Garbage Collector? Когда есть смысл вызвать?

Garbage Collector (GC) — это механизм в PHP, который автоматически освобождает память, занятую объектами, которые больше не используются в программе. Он следит за объектами в памяти и удаляет те, на которые нет ссылок или которые больше не доступны из текущего контекста программы.

GC работает путем использования алгоритма подсчета ссылок. Каждый раз, когда создается объект, счетчик ссылок на него увеличивается, и если нет ссылок на объект, счетчик уменьшается. Когда счетчик становится равным нулю, объект считается мусором и подлежит удалению GC.

При вызове GC есть несколько моментов, которые могут быть полезны:

1. Когда вы закончили использовать большой объем памяти, который является временным. Например, если вы обрабатываете большие файлы или создаете множество объектов в цикле, вызов GC после завершения таких операций поможет освободить память.

2. Когда у вас есть длительное время выполнения скрипта и вы опасаетесь, что память может исчерпаться. Хотя GC автоматически выполняет свою работу, вызов GC в явном виде может помочь освободить память раньше, чем это произойдет автоматически.

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

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

#вопросы_с_собеседований
😁93
Стратегии кэширования в Laravel

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

В целом стратегия включает в себя оптимизацию кода перед тем, как обращаться к кэшированию. Затем рассматриваются различные уровни кэширования в Laravel:

1️⃣DNS и кэширование HTML уровня хостинга: Этот подход включает кэширование на уровне DNS и хостинга с использованием служб, таких как Cloudflare, Amazon Cloudfront или Varnish. Обсуждаются плюсы и минусы данного метода.

2️⃣Кэширование HTML в Laravel: Этот уровень предполагает кэширование HTML внутри приложения Laravel, обеспечивая больший контроль. Речь идет о пакетах, таких как Page Cache от Joseph Silber и ResponseCache от Spatie, вместе с их ограничениями.

3️⃣Встроенное кэширование в Laravel: Рассматриваются встроенные механизмы кэширования Laravel, такие как Environment Configuration Caching, Route Caching, View Caching и Laravel Cache, а также их области применения.

4️⃣Мемоизация: Представлено понятие мемоизации как кэша, действующего в течение одного запроса. Приведены примеры мемоизации на уровне класса PHP и на уровне всего приложения с использованием пакета Once от Taylor Otwell.

5️⃣Кэширование запросов к базе данных: Предлагается кэширование запросов к базе данных с использованием инструментов кэширования Laravel, с акцентом на оптимизацию запросов в первую очередь.

Обсуждается важность сброса кэша для предотвращения устаревших данных, а также рассматриваются стратегии, такие как вытеснение кэша. Подчеркивается необходимость разделения постоянного и изменчивого кэширования данных в зависимости от их жизненного цикла.
👍5🎉42
Изучение Middleware в Laravel 11

В Laravel 11, выход которого назначен на первый квартал 2024 года убирают Http Kernel.

В новой версии Laravel, файл Kernel.php больше не используется, и настройка middleware происходит через новый файл bootstrap/app.php. Этот файл теперь включает в себя вызовы методов, таких как withMiddleware(), где можно добавлять, изменять и удалять middleware для различных групп, а также использовать алиасы.

Здесь представлены примеры использования нового подхода, а также сомнения автора относительно того, стоили эти изменения усилий, учитывая увеличение кривой обучения.
4🤔3😁1
Айтишники пожаловались на снижение доходов

«Коммерсант» со ссылкой на результаты опроса Российской ассоциацией электронных коммуникаций (РАЭК). 34,9% респондентов заявили о снижении доходов.

А вы лично ощутили, что ваши доходы упали за последний год?

🤔 — да, доходы снизились
❤️ — доходы только выросли
👍 — ничего не изменилось
84🤔61👍43🌚1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🍊Подборка лучших статей «Библиотеки программиста» за декабрь: сохраняй в заметки, чтобы не пропустить #самыйсок

🛠️ 17 суперинструментов для разработки фронтенда
🏃 Самоучитель по Go для начинающих: часть 3 + часть 4
 🔟🏢 ТОП-10 российских IT-работодателей
📁💡Где программисту взять идеи для портфолио
🐍📋 F-строки в Python для интерполяции и форматирования строк
🤖 Машинное обучение: что это такое и как оно работает
🌎 ТОП-10: рейтинг лучших зарубежных работодателей в IT
🐍🤖✍️ Документирование кода и проектов на Python с помощью ChatGPT
📈 Обзор рынка труда в ИТ: III квартал 2023 года
🐍⚙️ Python или Rust: что выбрать для анализа данных и машинного обучения
🧠🧩 Зачем айтишнику психолог?
🐍🧫 Создаём игру «Жизнь» Джона Конвея на Python
👨‍🎓 14 бесплатных ресурсов, которые пригодятся каждому разработчику
✍️ Почему отсутствие технической документации убьёт ваш проект?
👨‍💻 Вопросы для подготовки к собеседованию по JavaScript. Часть 1
🎄🎁 10 абсурдных подарков программисту на Новый год
😺🐙 Как разобраться в Git: краткая инструкция для джунов
🔥 12 признаков выгорания или как понять, что вам пора в отпуск
⚙️📕 Ответы на вопросы для самопроверки из книги «Тестирование Дот Ком» Романа Савина
🏦⚠️ Борьба с ошибками разработки ПО в финтехе
4🥱3
Обзор Symfony за 2023 год

Это обзор достижений Symfony в 2023 году и планы на 2024 год. В статье подчеркивается благодарность за поддержку сообщества и рассматриваются следующие ключевые моменты:

Релизы: Symfony выпустил три новых основных версии: Symfony 6.3 в мае и Symfony 6.4 (LTS) и Symfony 7.0 в ноябре. Также было опубликовано 58 обслуживаемых версий в восьми различных ветках. Требования к PHP были повышены до версии 8.2 для Symfony 7.0.

Блог и статьи: Было опубликовано 311 блогов, включая 49 статей «Новое в Symfony», поясняющих новые функции Symfony 6.3 и 6.4/7.0. Также было 52 публикации «Неделя Symfony».

События и конференции: Организовано четыре конференции, включая SymfonyCon в Брюсселе, на котором собралось более 1,200 человек. Заявлены планы на проведение конференций в 2024 году, включая SymfonyOnline, SymfonyLive Paris и SymfonyCon Vienna.

Symfony Components: Компоненты Symfony превысили 20 миллиардов загрузок в 2023 году. В этот год были выпущены новые компоненты, такие как Scheduler, Webhook and RemoteEvent, AssetMapper, а также новые пакеты для интеграции с приложениями, отправляющими электронные письма, SMS и др.

Другие важные новости: Введена сертификация Symfony 7, опубликован последний релиз Twig 2, Symfony завершил многолетнюю работу по добавлению всех типовых объявлений PHP в код Symfony, и другие события и обновления.
👍102
Как использовать cURL в PHP

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

Здесь предоставляются пошаговые инструкции по использованию cURL в PHP, начиная с установки библиотеки libcurl, проверки активации cURL в PHP и написания простого примера cURL-запроса.

Далее приводятся примеры команд cURL в PHP для различных типов запросов, таких как GET, POST, сохранение данных в файл, базовая аутентификация, отправка JSON данных, использование заголовков и прокси.

В конце описываются преимущества использования cURL в PHP, такие как интеграция с веб-приложениями, автоматизированная обработка данных, обработка ошибок, динамическая настройка запросов и управление сеансами. Также упоминается Guzzle как современная альтернатива cURL в PHP.
7😁6🌚1
DomPDF в Laravel 10

Здесь представлено пошаговое руководство по интеграции библиотеки domPDF в проект на Laravel. Описаны этапы создания нового проекта, установки пакета domPDF, настройки Laravel, публикации конфигурации, создания контроллера для обработки PDF, формирования Blade-представления для содержимого PDF, определения маршрута и тестирования приложения с использованием сервера разработки Laravel.

Также подчеркивается гибкость и возможности использования domPDF в Laravel для генерации динамичных PDF-документов, таких как счета или отчеты, с подробными настройками. Завершается руководство призывом к исследованию потенциала domPDF в проектах Laravel.
👍10🥱61