Как масштабировать PHP-приложение, чтобы оно выдерживало высокую нагрузку, и каковы некоторые связанные с этим проблемы?
Для масштабирования PHP-приложения можно использовать горизонтальное масштабирование, при котором несколько экземпляров приложения могут работать на разных серверах за балансировщиком нагрузки. Это поможет справиться с высокой нагрузкой. Одной из проблем является обеспечение согласованности данных в нескольких экземплярах приложения.
Другая задача — обеспечить эффективную связь между экземплярами приложения и гарантировать, что каждый экземпляр имеет достаточно ресурсов, чтобы справиться с нагрузкой. Для снижения нагрузки на серверы можно также использовать методы кэширования и оптимизации.
#вопросы_с_собеседований
Для масштабирования PHP-приложения можно использовать горизонтальное масштабирование, при котором несколько экземпляров приложения могут работать на разных серверах за балансировщиком нагрузки. Это поможет справиться с высокой нагрузкой. Одной из проблем является обеспечение согласованности данных в нескольких экземплярах приложения.
Другая задача — обеспечить эффективную связь между экземплярами приложения и гарантировать, что каждый экземпляр имеет достаточно ресурсов, чтобы справиться с нагрузкой. Для снижения нагрузки на серверы можно также использовать методы кэширования и оптимизации.
#вопросы_с_собеседований
❤3👍1
Автоматизируйте резервное копирование баз данных с помощью Laravel
В этом гайде показан пошаговый процесс автоматизации резервного копирования баз данных с помощью Laravel, в частности с использованием пакета spatie/laravel-backup.
В этом гайде показан пошаговый процесс автоматизации резервного копирования баз данных с помощью Laravel, в частности с использованием пакета spatie/laravel-backup.
DEV Community
Automate your database backups with Laravel: A comprehensive guide
👋 Hello everyone! 🚀 Today, we'll explore how to automate database backups using Laravel. 📁 The...
❤4🤔2👏1😢1🥱1
Версионирование API в Laravel-приложениях
Версионирование API — важная и зачастую сложная задача, у которой скорее всего нет какого-то универсального решения. Здесь показан один из возможных подходов в приложениях на базе Laravel.
Версионирование API — важная и зачастую сложная задача, у которой скорее всего нет какого-то универсального решения. Здесь показан один из возможных подходов в приложениях на базе Laravel.
Хабр
Версионирование API в Laravel-приложениях
Версионирование API – важная и зачастую сложная задача, у которой скорее всего нет какого-то универсального решения. Рассказываю об одном из возможных подходов в приложениях на базе Laravel. Впрочем,...
🔥10
💬 Час для экзистенциальных размышлений: на что вы бы тратили своё время, если бы вам не нужны были деньги?
👇Пишите в комментарии👇
#интерактив
👇Пишите в комментарии👇
#интерактив
👍4
Dolt
Dolt — это база данных SQL, которую можно форкать, клонировать, разветвлять, мерджить, пушить и вытаскивать, как репозиторий Git.
Подключиться к Dolt можно так же, как к любой базе данных MySQL, чтобы читать или изменять схему и данные.
Функциональность контроля версий реализована в SQL с помощью системных таблиц, функций и процедур.
Или используйте Git-подобный интерфейс командной строки для импорта CSV-файлов, фиксации своих изменений, отправки их на удаленное хранилище или слияния изменений коллег. Все команды, которые вы знаете для Git, работают точно так же и в Dolt.
Dolt — это база данных SQL, которую можно форкать, клонировать, разветвлять, мерджить, пушить и вытаскивать, как репозиторий Git.
Подключиться к Dolt можно так же, как к любой базе данных MySQL, чтобы читать или изменять схему и данные.
Функциональность контроля версий реализована в SQL с помощью системных таблиц, функций и процедур.
Или используйте Git-подобный интерфейс командной строки для импорта CSV-файлов, фиксации своих изменений, отправки их на удаленное хранилище или слияния изменений коллег. Все команды, которые вы знаете для Git, работают точно так же и в Dolt.
GitHub
GitHub - dolthub/dolt: Dolt – Git for Data
Dolt – Git for Data. Contribute to dolthub/dolt development by creating an account on GitHub.
🤔17👍3
Forwarded from Библиотека джависта | Java, Spring, Maven, Hibernate
🎓 Продвинутый SQL: секреты профессионалов
Рассказываем о сложных стратегиях оптимизации запросов, продвинутых типах соединений и тонкостях использования SELECT.
Читать статью
#туториал
Рассказываем о сложных стратегиях оптимизации запросов, продвинутых типах соединений и тонкостях использования SELECT.
Читать статью
#туториал
👍2
Проверка структуры JSON-ответа в Laravel
При написании тестов для ответов API в Laravel может быть полезно проверить структуру ответа. Есть метод assertJson(), который можно использовать для проверки значений JSON в заданном тестовом ответе
Для проверки общей структуры всего ответа можно использовать assertJsonStructure(). Однако, если в будущем добавится новый ключ, этот тест продолжит проходить. Если требуется большая точность, возможно, потребуется использовать assertExactJson()
Если вам нужно убедиться, что в ответе присутствуют определенные свойства, assertJsonStructure() может дать вам уверенность, что вся структура содержит ожидаемые свойства. Если же вам нужны более обширные утверждения относительно структуры JSON, вы также можете использовать утверждения whereType() и whereAllType().
При написании тестов для ответов API в Laravel может быть полезно проверить структуру ответа. Есть метод assertJson(), который можно использовать для проверки значений JSON в заданном тестовом ответе
Для проверки общей структуры всего ответа можно использовать assertJsonStructure(). Однако, если в будущем добавится новый ключ, этот тест продолжит проходить. Если требуется большая точность, возможно, потребуется использовать assertExactJson()
Если вам нужно убедиться, что в ответе присутствуют определенные свойства, assertJsonStructure() может дать вам уверенность, что вся структура содержит ожидаемые свойства. Если же вам нужны более обширные утверждения относительно структуры JSON, вы также можете использовать утверждения whereType() и whereAllType().
Laravel News
Asserting a JSON Response Structure in Laravel - Laravel News
Learn how you can test the JSON structure of responses in Laravel using powerful JSON assertion methods available in Laravel's TestResponse class.
🔥5❤1👍1
Профилирование PHP (Laravel) приложений с xhprof.
Здесь вы научитесь выявлять узкие места(ботлнеки) в ваших приложениях. Основное внимание уделено профилированию кода, что помогает определить неэффективные участки кода. В статье приводится пример использования инструментов профилирования, таких как xhprof и Buggregator, которые позволяют анализировать производительность и выявлять проблемные зоны.
Здесь вы научитесь выявлять узкие места(ботлнеки) в ваших приложениях. Основное внимание уделено профилированию кода, что помогает определить неэффективные участки кода. В статье приводится пример использования инструментов профилирования, таких как xhprof и Buggregator, которые позволяют анализировать производительность и выявлять проблемные зоны.
Хабр
Профилирование PHP (Laravel) приложений с xhprof. Учимся искать ботлнеки
Привет, PHP-шники! Вам знакомо то чувство, когда ваш PHP-код отрабатывает за дофига миллисекунд, а иногда и секунд, и вы не можете понять, в чём дело и где тот говнокод, который я (или не я, а мой...
Что такое 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 будет пытаться выполнить приведение типов, что может привести к непредсказуемому поведению программы.
#вопросы_с_собеседований
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👍4❤1
Использование фабрик Eloquent с провайдеров данных PHPUnit
Существует несколько способов работы с фабриками Laravel в функциональных тестах, например, создание модели во время setUp(), когда вы хотите использовать ее для нескольких тестов, или непосредственно в отдельном тестовом примере. Если же вы хотите провести тестирование с использованием различных данных, вам лучше обратиться к провайдерам данных PHPUnit с моделями Eloquent.
Существует несколько способов работы с фабриками Laravel в функциональных тестах, например, создание модели во время setUp(), когда вы хотите использовать ее для нескольких тестов, или непосредственно в отдельном тестовом примере. Если же вы хотите провести тестирование с использованием различных данных, вам лучше обратиться к провайдерам данных PHPUnit с моделями Eloquent.
Laravel News
Using Eloquent Factories With PHPUnit Data Providers - Laravel News
Using data providers with feature tests can pose a problem because they run before Laravel is bootstrapped. Let's look at how to use Eloquent factories within PHPUnit data providers.
👍2❤1
Привет, друзья! 👋
Мы готовим статью о типичных ошибках начинающих разработчиков. И нам очень нужна ваша помощь! 🙏
Поделитесь своим опытом и мнением в комментариях:
❓С какими сложностями вы сталкивались в начале своего пути в разработке?
❓Какие ошибки допускали и как их исправляли?
❓Что помогло вам быстрее расти профессионально?
Самые интересные и полезные советы мы обязательно включим в статью, а их авторов упомянем в публикации! 😊
Мы готовим статью о типичных ошибках начинающих разработчиков. И нам очень нужна ваша помощь! 🙏
Поделитесь своим опытом и мнением в комментариях:
❓С какими сложностями вы сталкивались в начале своего пути в разработке?
❓Какие ошибки допускали и как их исправляли?
❓Что помогло вам быстрее расти профессионально?
Самые интересные и полезные советы мы обязательно включим в статью, а их авторов упомянем в публикации! 😊
Когда вы работаете с приложением Laravel, вы, вероятно, работаете с большим количеством электронных писем. Например, каждый раз, когда создается новый пользователь, ему будут отправляться письма с приветствием и подтверждением. Есть много таких случаев, когда будут отправляться письма. Поэтому в тестовых окружениях не имеет смысла использовать разные адреса электронной почты для разных целей.
А что, если мы могли бы использовать только один адрес электронной почты, и все письма приложения будут отправляться на этот адрес? Во фасаде Mail есть метод alwaysTo(), где вы можете указать глобальный адрес, на который будут отправляться все письма приложения.
Вы можете настроить это в методе boot AppServiceProvider вашего приложения, как показано ниже. Как вы можете понять, мы можем настроить это для всех сред, кроме производственной, и все будет работать! Другим способом можно сделать это, установив универсального получателя, указав параметр to в файле config/mail.php следующим образом.
А что, если мы могли бы использовать только один адрес электронной почты, и все письма приложения будут отправляться на этот адрес? Во фасаде 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(): Проверяет существование файла или каталога.
Статья обсуждает пути к файлам в PHP и как правильно их использовать. Она охватывает следующие темы:
🔸Абсолютные и относительные пути к файлам:
Абсолютный путь указывает полное местоположение файла в файловой системе, начиная от корневого каталога. Он всегда одинаков, независимо от текущего рабочего каталога (CWD).
Относительный путь указывает местоположение файла относительно текущего рабочего каталога или другого каталога. Он использует одинарную точку (.) для текущего каталога и двойную точку (..) для родительского каталога.
🔸Примеры использования путей: Примеры абсолютных и относительных путей для подключения файла connection.php из различных файлов проекта.
🔸Разделители каталогов в PHP: использование прямого слэша (/) и обратного слэша () в путях, а также их кроссплатформенная поддержка.
🔸Функции для работы с путями в PHP:
basename(): Возвращает имя файла из пути.
dirname(): Возвращает имя каталога из пути.
realpath(): Преобразует относительный путь в абсолютный.
glob(): Находит пути, соответствующие заданному шаблону.
file_exists(): Проверяет существование файла или каталога.
👍3
Что вас больше всего раздражает в работе?
Anonymous Poll
26%
глупые вопросы от коллег и клиентов
45%
созвоны
35%
работа с документами и отчётами
15%
презентации
14%
планирование
16%
написание рабочих писем
10%
собственно сами рабочие задачи
10%
свой вариант (напишу в комментариях)
Composer Diff
Библиотека, которая генерирует отчет об изменениях в пакетах в формате Markdown, сравнивая файлы composer.lock. По умолчанию сравнивает с последними зафиксированными изменениями.
Библиотека, которая генерирует отчет об изменениях в пакетах в формате Markdown, сравнивая файлы composer.lock. По умолчанию сравнивает с последними зафиксированными изменениями.
GitHub
GitHub - IonBazan/composer-diff: Compares composer.lock changes and generates Markdown report so you can use it in PR description.
Compares composer.lock changes and generates Markdown report so you can use it in PR description. - IonBazan/composer-diff
👍1
❗️Вакансии «Библиотеки программиста» — ждем вас в команде!
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉 авторов в наше медиа proglib.io
👉 контент-менеджеров для ведения телеграм-каналов
Подробности тут.
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов👾
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
Подробности тут.
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов
Please open Telegram to view this post
VIEW IN TELEGRAM