Статьи
BackendLaravel Система авторизации Laravel, основанная на политиках, предоставляет мощный способ управления контролем доступа в приложениях. В сочетании с middleware маршрутов она предлагает чистый и эффективный метод обеспечения безопасности маршрутов на основе прав пользователей. Рассмотрим, как реализовать авторизацию маршрутов на основе политик с помощью middleware 'can'.BackendLaravel Познакомьтесь с новым методом Cache::flexible()
в Laravel, позволяющим сбалансировать свежесть данных и производительность в приложениях с высокой активностью.ReactJavaScripta11y Мы считаем, что следует чаще использовать хук useId()
. Если вы обнаружили, что не используете его, есть большая вероятность, что ваше приложение или сайт либо недоступны (a11y), либо вы создаёте код, склонный к ошибкам. Позвольте объяснить.JavaScript Удаление дубликатов — распространённая проблема в программировании, возникающая в различных контекстах, например, при очистке данных или обеспечении уникальности записей. Этот вопрос могут задать на собеседовании, поскольку он довольно прост и может подготовить собеседника к более сложным вопросам.FrontendHTML В мире веб-разработки оптимизация времени загрузки страниц имеет решающее значение. Два мощных атрибута тега <script>
— async
и defer
— могут существенно повлиять на производительность сайта. Использование этих атрибутов без их глубокого понимания может негативно сказаться на производительности и привести к ошибкам. Давайте начнём с основ и узнаем, что делают эти атрибуты и когда их следует использовать.JavaScript Разработчик JavaScript, пишущий чистый, эффективный и лаконичный код может значительно сократить время разработки. Понимание ряда удобных сокращений JavaScript может сделать код более читаемым и помочь избежать повторяющихся шаблонов. В статье мы рассмотрим 10 мощных сокращений JavaScript, способных сэкономить часы работы над кодом и повысить производительность.BackendPHP Благодаря поддержке Unicode 16 расширение MBString может работать со всеми новейшими символами Emoji, а также имеет самую актуальную информацию о смене регистра и ширине символов.BackendPHP bcdivmod
может быть использован в случаях, когда необходимо получить частное и остаток от деления, и избавляет от необходимости вызывать функции bcdiv
и bcmod
по отдельности.JavaScript Разница между export default xxx
и export { xxx as default }
в JavaScript может показаться малозаметной, но может повлиять на поведение кода.JavaScript Модули JavaScript — способ организации кода в многократно используемые компоненты, используемые совместно в разных файлах и проектах. Модули можно импортировать и экспортировать с помощью двух различных методов: экспорта по умолчанию и именованного экспорта. Рассмотрим экспорт по умолчанию и причины, по которым следует избегать его использования в модулях JavaScript.BackendLaravelSecurity Ещё один пример того, почему никогда не следует доверять пользовательскому вводу!FrontendCSS Рабочая группа CSS выпустила первый публичный рабочий проект CSS Values and Units Module Level 5. В нем описаны общие значения и единицы измерения, принимаемые свойствами CSS, и синтаксис, используемый для них, а также добавлено несколько интересных новых функций.BackendLaravel Атрибуты PHP — отличный способ добавить метаданные к классам, методам и свойствам. Laravel предоставляет множество атрибутов из коробки, которые можно использовать в приложениях.FrontendCSS В наши дни градиентный текст довольно легко сделать с помощью background-clip: text;
— но это убивает возможность использовать text-shadow
. На помощь приходит SVG.BackendPHP Поскольку все уведомления E_STRICT
были преобразованы в E_NOTICE
начиная с PHP 8.0, в PHP 8.4 константа E_STRICT
объявлена устаревшей.GitTools Команды git switch
и git checkout
используются для изменения веток, но у них есть различия в синтаксисе и поведении. Разберёмся в чём разница между ними.BackendPHP Часто, когда думают о PHPStan, обычно думают об улучшении Type Coverage. На самом деле это лишь малая часть того, на что способен PHPStan. В этой статье рассмотрим, как использовать его для предотвращения регрессий обновления.BackendPHPTesting У фреймворка тестирования Pest много поклонников, в основном из-за элегантного, читабельного «англоязычного» синтаксиса. Я покажу три моих любимых примера синтаксиса expect()
и сравню аналогичные вещи в Pest vs PHPUnit.ReactJavaScriptTypeScript Узнайте о новейшем и одновременно старейшем стандарте React для доступа к данным формы, а также о том, как использовать его с TypeScript.BackendLaravel Существует множество статей с вопросами для собеседования по Laravel, но в основном они звучат как вопросы из викторины.GitTools Узнайте, как восстановить удалённую ветку Git. Познакомьтесь с методиками для начинающих, средних и продвинутых пользователей, использующих Git reflog и историю коммитов, а также с лучшими практиками по предотвращению случайного удаления ветки.BackendLaravel Кэширование запросов к базе данных — мощная техника оптимизации производительности приложений Laravel. Кэшируя часто используемые данные, можно значительно снизить нагрузку на базу данных и ускорить работу приложения. В статье мы рассмотрим, как использовать Laravel метод Cache::tags()
для реализации тонкого контроля над стратегией кэширования.BackendLaravel Laravel хелпер transform()
— мощный, но недооценённый инструмент, способный очистить код при работе с условными модификациями данных. Эта универсальная функция позволяет преобразовывать данные только при соблюдении определённых условий, что делает её идеальной для обработки пользовательского ввода, форматирования ответов API или предоставления значений по умолчанию. Рассмотрим, как эффективно использовать хелпер transform()
в проектах Laravel.BackendLaravel При работе с большими массивами данных в Laravel использование памяти может быстро стать узким местом. Lazy Collection предлагает элегантное решение проблемы, позволяя эффективно работать с большими объёмами данных. Давайте рассмотрим, как использовать эту мощную функцию в приложениях Laravel.GitTools Эта статья — просто сборник материалов и реальных примеров, которые я бы с удовольствием прочитал, когда изучал Git. Это сделало бы процесс обучения более насыщенным, предоставив больше информации не только о том, как, но и когда следует использовать эти команды.NodeJSReact Гидратация относится к JavaScript-фреймворкам, делающим серверный рендеринг HTML интерактивным.NodeJS В экосистеме JavaScript выбор между менеджерами пакетов npm и yarn может существенно повлиять на рабочий процесс разработки. И npm, и yarn широко используются в качестве инструментов, помогающих разработчикам управлять зависимостями в проектах, но каждый из них предлагает уникальные возможности, отвечающие различным потребностям проекта. В статье, посвящённой сравнению npm и yarn, мы рассмотрим их ключевые различия, преимущества и примеры использования, чтобы помочь решить, что лучше для ваших проектов.ReactJavaScriptVite Когда начинаете новый проект React, выбор правильных инструментов может сильно повлиять на рабочий процесс. Хотя такие инструменты, как Webpack, широко используются уже много лет, новые варианты, такие как Vite, предлагают более быстрые и эффективные альтернативы.BackendPHP Узнайте, как реализовать автозагрузку PSR-4 в PHP. Откройте для себя преимущества PSR-4, как настроить его с помощью Composer, а также лучшие практики организации пространств имён в ваших PHP проектах.ReactJavaScript React стала одной из популярных библиотек для создания UI, а с появлением хуков в React 16.8 в распоряжении разработчиков появилось ещё больше мощных инструментов. Один из таких хуков — useEffect
, позволяющий выполнять побочные эффекты в компонентах функций. Рассмотрим хук useEffect
, его использование и лучшие практики.Database Узнайте всё о GROUP BY
в MySQL, от базового до продвинутого использования, с примерами, подводными камнями и лучшими практиками для эффективного объединения данных.SecurityBackend User Agent, часто сокращённо UA, играет важную роль в том, как веб-сервер интерпретирует и отвечает на запросы различных клиентов, таких как браузеры, мобильные устройства и даже боты.FrontendCSS Можно ограничить распространение background-image
элемента с помощью background-clip
. Это означает, что можно применить различные фоны, скажем, к padding
и border
.JavaScript AggregateError
помогает обрабатывать сразу несколько ошибок в JavaScript. Это упрощает управление кодом и делает его более надежным.BackendLaravel Artisan — это интерфейс командной строки Laravel, помогающий оптимизировать процесс разработки. Давайте изучим его возможности и узнаем, как он может повысить производительность.BackendLaravel Как разработчики Livewire, мы всегда ищем способы сделать компоненты более лаконичными и простыми в обслуживании. Атрибут #[Validate]
, появившийся в Livewire v3, предлагает чистый и эффективный способ обработки валидации формы непосредственно в свойствах компонента. В статье мы рассмотрим, как использовать атрибут #[Validate]
для упрощения компонентов Livewire и создания более читабельного кода.BackendLaravel Если фасады в Laravel сбивают с толку, присоединяйтесь и узнайте, как определить сервис, стоящий за любым фасадом, встречающимся во фреймворке.BackendLaravel В мире веб-разработки производительность имеет ключевое значение. Laravel предоставляет утилиту Benchmark, позволяющую разработчикам измерять и сравнивать время выполнения различных фрагментов кода. Этот инструмент неоценим для выявления узких мест и оптимизации производительности приложения. Давайте рассмотрим, как использовать утилиту Benchmark в проектах Laravel.BackendLaravelSecurity Знаете ли вы, что валидатор URL в Laravel позволяет контролировать какие протоколы принимаются? Вот моя рекомендация...BackendPHPTestingLaravel Узнайте, как Pest 3 упрощает архитектурное тестирование с помощью пресетов, позволяя без труда внедрять лучшие практики и поддерживать качество кода в проектах.BackendPHPTestingLaravel Повысьте уровень тестирования PHP с помощью Pest 3. Архитектурные тесты с пресетами, мутации и управление списками задач.BackendLaravelEloquent Laravel предоставляет огромное количество классных возможностей, помогающих улучшить опыт разработки (DX). Но из-за регулярных релизов, стрессов, связанных с повседневной работой, и огромного количества доступных функций легко упустить некоторые менее известные возможности, которые могут помочь улучшить код.BackendPHPComposer Если хотите создать PHP пакет с нуля и поделиться им с другими PHP разработчиками, Composer — это менеджер зависимостей, упрощающий этот процесс! Благодаря Composer PHP имеет одну из лучших экосистем пакетов. Погрузимся в этот процесс и пройдёмся по шагам создания PHP пакета.BackendLaravel Вам известны все правила валидации, доступные в Laravel? Подумайте ещё раз! В Laravel есть множество готовых правил валидации, способных значительно упростить написание кода. Рассмотрим 10 редко используемых правил валидации, о существовании которых некоторые не подозревали.FrontendCSS Современный CSS даёт множество новых, простых способов решения старых проблем, но часто новые функции не только решают старые проблемы, но и открывают новые возможности.JavaScriptTypeScript В каждом языке программирования есть циклы. Циклы выполняют операцию (т. е. часть работы) несколько раз, обычно по одному разу для каждого элемента массива или списка, или просто повторяют операцию до тех пор, пока не будет выполнено определённое условие.BackendPHP Узнайте о новой функции property hooks (хуки свойств), которая будет добавлена в PHP 8.4 выходящем в ноябре 2024 г.FrontendCSS CSS Containment используется для оптимизации и открытия возможностей стилизации путём изоляции элементов от остальной части страницы. Различные значения contain
(size
, paint
, layout
и т. д.) обеспечивают различные преимущества и компромиссы.BackendPHP Узнайте, как использовать новые функции PHP 8.4 array_find
, array_find_key
, array_all
и array_any
. Кроме того, приведены аналоги в Laravel, для достижения тех же результатов.BackendPHP Узнайте, когда следует использовать if
, switch
и match
в PHP для оптимальной эффективности и читабельности кода. Изучите синтаксис, примеры использования и практические примеры.BackendLaravel В Коллекциях Laravel есть хелпер, помогающий работать с массивами данных. Для работы с данными используется подход функционального программирования, и одной из операций, которую можно выполнить, является операция сведенияBackendPHP В PHP я предпочитаю использовать функции массивов, а не циклы foreach
. И хотя синтаксис не такой красивый, как в JavaScript, считаю, что они работают лучше, чем "обычный" цикл.Frontend Компиляция Sass может быть узким местом в сборке, но это больше не так.FrontendCSS Поддержка синтаксиса относительного цвета в CSS теперь повсеместна (вперёд, к взаимодействию!), поэтому рассмотрим некоторые базовые (и всё ещё очень полезные) варианты использования, например, применение альфы к цвету, который у вас есть под рукой.Database Репликация базы данных — это как создание копий важных документов, чтобы иметь резервные копии на случай, если с оригиналом что-то случится. Существуют различные способы создания таких копий, например, одна основная копия (master), которая обновляется, а затем создаются копии (slave) этой обновлённой версии. Другой способ — иметь несколько основных копий (master), обновляемых и совместно использующих эти обновления. Далее рассмотрим различные типы репликации баз данных.Database Рассмотрим как настроить MySQL репликацию master-slave, а также каковы плюсы и минусы репликации master-slave.BackendLaravelDatabase Если говорить о производительности базы данных, то она в первую очередь определяется тем, насколько хорошо база данных справляется с операциями чтения и записи.FrontendCSS Пишите более безопасный CSS, используя @property
, позволяющий определять типы для пользовательских свойств. Узнайте, почему традиционные запасные значения могут не сработать и как функции @property
повышают устойчивость определений пользовательских свойств.Database Ознакомьтесь с новыми возможностями и улучшениями в MySQL 9.0 Community Edition, вышедшем 1 июля 2024 года. Обзор охватывает обновления типов данных, производительности и новых возможностей, ориентированных на современные приложения.BackendPHP В PHP уже давно существует возможность типизировать параметры методов и функций. Добавление типов в массивы (и просто добавление типов в целом) поможет при использовании IDE или статического анализа, а также поможет другим разработчикам в команде понять ваш код. Также это поможет избежать ошибок и сделает код чище и читабельнее.FrontendCSS Однажды я спросил себя: а что, если использовать контейнерные единицы измерения для каждого элемента дизайна? Я задался этим вопросом, отчасти потому, что мне показалось, что ответ может быть таким: ну, тогда всё будет очень хорошо масштабироваться!DevOps Независимо от того, разработчик ли вы, DevOps-инженер, системный администратор, QA или представитель любой другой технической профессии, вы наверняка знакомы с cURL — инструментом командной строки и библиотекой для передачи данных с помощью URL (как описано в документации).FrontendHTMLCSSJavaScript Диалоговые окна — неотъемлемая часть любого пользовательского интерфейса, будь то веб-интерфейс, мобильный или любой другой, существующий на сегодня.DevOpsPHP Производительность PHP кода имеет решающее значение для обеспечения плавной и отзывчивой работы пользователей. Независимо от того, создаёте ли систему управления контентом или платформу электронной коммерции, понимание факторов, влияющих на производительность PHP, и влияния версий PHP необходимо для создания быстрых и эффективных веб-приложений. Давайте разберёмся в ключевых аспектах, влияющих на производительность веб-приложения.ReactJavaScript React продолжает развиваться, предлагая разработчикам мощные инструменты для создания динамичных и эффективных веб-приложений. В предстоящем релизе React 19 появится несколько революционных возможностей, способных перевернуть представление о том, как разрабатывать с React. В этой статье рассмотрим эти новые возможности, подчеркнём их преимущества и то, как они решают существующие проблемы, а также приведём примеры, иллюстрирующие каждую концепцию.BackendPHP MD5 подобен таракану — он живуч и вылезает отовсюду, но ясно одно: необходимо прекратить его использование (и SHA-1 тоже)!FrontendCSS Ознакомьтесь с поведением, о котором следует знать, как браузер вычисляет окончательные значения пользовательских свойств. Непонимание этого процесса может привести к неожиданному или отсутствующему значению, а также к трудностям с поиском и устранением проблемы.BackendLaravel Отпечаток — уникальный узор или характеристика, которая может быть использована для идентификации человека или объекта. Это понятие широко используется в различных областях.ReactJavaScript React, популярная JavaScript-библиотека для создания пользовательских интерфейсов, собирается сделать гигантский прыжок вперёд в своей грядущей версии 19. В преддверии выхода React 19 разработчики по всему миру с нетерпением ждут новых возможностей и улучшений, обещающих произвести революцию в создании веб-приложений.Frontend Popover API предоставляет разработчикам стандартный, последовательный и гибкий механизм для отображения контента всплывающего поверх другого содержимого страницы. Управление всплывающим контентом может осуществляться как декларативно с помощью атрибутов HTML, так и с помощью JavaScript.FrontendHTMLCSSJavaScript В последнее время браузеры стремительно обретают довольно важные возможности. Возможности, для реализации которых могло потребоваться несколько библиотек JavaScript (или CSS), теперь доступны в браузерах из коробки
.BackendPHP Узнайте, как использовать именованные аргументы в PHP, чтобы улучшить читаемость кода. Кроме того, поговорим о некоторых проблемах, о которых следует помнить.DevOps В мире разработки программного обеспечения упрощение работы — это всегда выигрыш. И именно здесь на помощь приходит GitHub Actions. Он как эффективный помощник, выполняющий все повторяющиеся задачи, чтобы можно было сосредоточиться на творческих аспектах. Давайте рассмотрим подробнее, почему GitHub Actions такой полезный инструмент.DevOpsPHP OPCache — надёжный инструмент, повышающий производительность PHP, делающий веб-приложения быстрее и эффективнее.DevOps Копирование папок между локальной и удалённой системами может не относиться к ежедневным задачам, но иногда это необходимо. В этой статье мы рассмотрим практические сценарии использования SSH для копирования папок с упором на команду scp
. Рассмотрим основные способы использования, типичные проблемы и советы, позволяющие сделать передачу файлов более эффективной.BackendLaravelEloquentTesting Рассмотрим, что такое события модели и как их использовать в приложении Laravel. Также рассмотрим, как тестировать события модели и проблемы, на которые следует обратить внимание при их использовании.TypeScriptNodeJS Если необходимо создать npm пакет и гарантировать, что его смогут использовать все желающие, нужно, чтобы он поддерживал CommonJS (CJS) и ECMAScript Modules (ESM). Рассмотрим, как создать такой пакет используя TypeScript.BackendLaravel С выходом Laravel 11 скелет приложения был урезан, чтобы удалить лишние файлы, не требующиеся в каждом проекте. Частью этого изменения стало удаление из исходного кода приложения всех сервис провайдеров, кроме AppServiceProvider
.BackendPHP В PHP 8.4 добавлено несколько функций, которых давно не хватало: array_find()
и её вариации. Назначение array_find()
простое: передайте ей массив и обратный вызов, и получите первый элемент, для которого обратный вызов вернёт true
.BackendPHP Несмотря на то, что HTML 5 существует уже более 16 лет, PHP никогда не поддерживал его должным образом. В PHP есть \DOMDocument
, который теоретически должен поддерживать HTML 4, но на самом деле он уже не совместим с HTML 4.FrontendCSS Понимание CSS свойства display
и его значений важно для создания правильно организованных и привлекательных сайтов.BackendLaravelEloquent В статье рассмотрим локальные и глобальные области запросов. Узнаем, в чем разница между ними, как создавать свои собственные и как писать для них тесты.FrontendCSS Коллекция простых однострочных CSS решений для добавления небольших улучшений на любую веб-страницу.FrontendCSS Наследование в CSS — это действительно суперспособность, и именно оно превращает разработку в Интернете в удовольствие, если вы принимаете его. В этой небольшой статье я собираюсь обратить вас в супер фанатов.BackendLaravel В статье рассмотрим, как регистрировать поддомены для пользователя, команды, компании, какой бы ни была модель. Сначала рассмотрим основы определения поддоменов в маршрутах Laravel, а затем перейдём к практическим действиям.FrontendCSS Каскад и специфичность, которых часто боятся разработчики, на самом деле очень просты, если использовать правильную модель мышления при создании CSS.BackendPHP Использование PHP в июле 2024 года. Каждые полгода я публикую обновлённую информацию о том, какие версии PHP используются в сообществе.BackendPHP Узнайте о девяти магических константах, предоставляемых PHP. Рассмотрим примеры того, что делает каждая из магических констант.FrontendCSS Часто упускаемое из виду CSS свойство mask-image
может быть простым способом привнести немного индивидуальности в вашу работу над веб-дизайном.BackendPHP Узнайте, что такое PHP атрибуты и как их использовать. Также рассмотрим, как создавать собственные PHP атрибуты.FrontendJavaScript Alpine.js — легковесный JavaScript фреймворк. Позволяющий создавать интерактивные пользовательские интерфейсы без написания большого количества JavaScript-кода.BackendLaravel Сегодня погрузимся в мощную возможность Laravel — Фасады. Рассмотрим эту концепцию на практическом и интересном примере: Фасад ImageFilter
.FrontendJavaScript Иногда важно знать, поддерживается ли функция браузером или нет, чтобы можно было что-нибудь предпринять. Возможно, загрузить полифилл или просто выбрать другой подход. В статье рассматриваются новые возможности браузеров и тесты их поддержки браузером.BackendPHP В PHP 8.0 был добавлен WeakMap
— мистическая функция, которую мы никогда не использовали, пока не столкнулись со сложной проблемой, требующей решения.DevOpsLaravel Докеризация Laravel приложения не так проста, как кажется, поэтому сегодня рассмотрим процесс создания Docker-образа для приложения Laravel 11. Для этого настроим полное окружение с помощью Docker Compose, чтобы приложение Laravel было готово к развёртыванию в любой среде.Frontenda11y Все знают, что нельзя использовать aria-hidden
в интерактивных элементах. Но в чём проблема? Я решил выяснить это, чтобы в следующий раз, когда об этом спросят, я мог лучше объяснить.BackendLaravelTesting Узнайте, как можно проверить структуру JSON ответов в Laravel с помощью мощных методов утверждения JSON, доступных в классе TestResponse
в Laravel.BackendLaravel Виртуальные столбцы необходимы, когда требуется добавить в модель столбец, не существующий в базе данных. Это может быть необходимо для таких вещей, как вычисляемые столбцы, или для столбцов, являющихся производными от других столбцов.BackendLaravel Узнайте, как использовать полиморфные модели по типу в Laravel для работы с различными типами параметров в одной таблице базы данных. В статье рассматривается процесс использования полиморфных отношений для работы с различными типами параметров в одной таблице базы данных.TypeScript Объект Proxy
в JavaScript — удобный инструмент, открывающий мир возможностей и позволяющий создавать в приложениях полезное поведение. В сочетании с TypeScript Proxy
расширяет возможности управления и манипулирования объектами и функциями такими способами, о которых вы даже не подозревали. В статье рассмотрим невероятную пользу Proxy на практических примерах.BackendPHP Простота и гибкость делают JSON идеальным выбором для обмена данными, API и веб-сервисов, конфигурационных файлов, хранения данных и сериализации. Однако такая гибкость может привести к проблемам, если структура данных не будет должным образом проверена. Именно здесь на помощь приходит JSON Schema предоставляющая мощный способ проверки структуры и содержимого данных JSON.FrontendHTML Веб формы и поля ввода поддерживают множество дополнительных атрибутов, способных дать подсказку браузеру и улучшить пользовательский опыт заполнения форм в Интернете. Приложив совсем немного дополнительных усилий, можно сделать так, чтобы формы помогали, а не мешали.JavaScript Представьте, что находитесь на шумной вечеринке, и каждый носит на спине определённое число. Ведущий объявляет игру — найдите двух человек, чьи номера складываются в магическое число, и получите приз!DatabaseSQL Статья посвящена продвинутым темам SQL, в ней рассматриваются сложные стратегии оптимизации запросов, усовершенствованные типы join и тонкости операторов SELECTFrontendCSS В современной веб-разработке CSS сброс и нормализация — две важные техники, позволяющие добиться согласованности стилей в разных браузерах.BackendPHPTesting Вдохновлённый сообщением создателя Pest Nuno Maduro о методе ->only()
в PestPHP, я собрал советы и рекомендации для PHP-разработчиков по эффективной изоляции, пропуску и итерации тестов.Database SQL оператор ORDER BY
— мощный инструмент, используемый для сортировки результатов запроса.NodeJS Недавно я узнал о corepack, инструменте, работающем с Node.js и решающем множество проблем с менеджерами пакетов. С этого момента буду использовать его в своём процессе разработки.FrontendCSS Индикатор прогресса прокрутки — довольно простая вещь, которую можно создать с помощью анимации, основанной на прокрутке в scroll()
-стиле. Но мы создадим индикаторы для каждого раздела страницы, используя view()
-стиль.BackendSymfony Считаю, что в каждом приложении Symfony можно уместить сервисный конфиг в 5 строк. Я поделюсь двумя техниками, которые использую последние пару лет для достижения наилучшей архитектуры с наименьшим количеством строк.DatabaseSQL Рассмотрим концепцию NULL
в SQL, его влияние и различные стратегии работы со значениями NULL
.BackendPHP Вызов session_set_save_handler()
с более чем двумя аргументами объявлен устаревшим.FrontendCSS Давайте рассмотрим использование CSS в качестве альтернативы JavaScript для создания простых таймеров. Используем современные свойства CSS, такие, как @property
, @keyframes
, и псевдоэлементы со значениями counter()
.JavaScript Метод Promise.withResolvers()
повышает гибкость, позволяя удалённо разрешать или отклонять промисы, упрощая и оптимизируя асинхронный код.Security HTTPS — повсюду, но HTTP всё ещё остаётся доступным… Как остановить злоумышленников, перехватывающих и понижающих соединения с вашим сайтом?BackendPHPComposer Composer — основной менеджер зависимостей для PHP, и если работаете с PHP, то уже знакомы с такими часто используемыми командами, как composer install
и composer update
. Composer также предоставляет несколько менее известных, но полезных при работе над приложениями в PHP, команд.SSG Сегодня хочу поговорить о нескольких инструментах для предварительного рендеринга HTML. Давайте разбираться!BackendLaravel Валидация — важная часть любого веб-приложения. Она помогает предотвратить уязвимости в системе безопасности, повреждение данных и множество других проблем, которые могут возникнуть при работе с пользовательским вводом.BackendPHP Расширение Intl в PHP 8.4 добавляет новую функцию grapheme_str_split
, разбивающую заданную строку на массив графем.BackendPHP В PHP 8.4 добавлены четыре новые функции массива для поиска и проверки элементов массива с функцией обратного вызова: array_find
, array_find_key
, array_all
и array_any
.BackendLaravel Рассмотрим класс даты Carbon в Laravel и то, как изменить настройки использования этого класса в Laravel, чтобы сделать его иммутабельным.Security Знаете ли вы, какая информация утекает через заголовок Referer, когда ваши пользователи переходят по внешним ссылкам?FrontendHTMLCSS Помните HTML-элемент marquee
? Он устарел, поэтому вряд ли стоит его использовать, когда понадобится что-то вроде горизонтальной автопрокрутки. Вот тут-то и приходит на помощь CSS, потому что в нём есть все необходимые инструменты для реализации этой функции.BackendPHP PHP разработчику, нужно знать множество особенностей языка, чтобы облегчить написание и сопровождение кода. Без явного рассказа о той или иной части языка сложно даже узнать о её существовании, поэтому сегодня поговорим о магических методах, которыми обладают классы, и о том, как их использовать при написании кода.JavaScript В веб-разработке управление асинхронными задачами имеет решающее значение для создания отзывчивых и эффективных приложений. Асинхронные операции, такие как получение данных с сервера или выполнение трудоёмких вычислений, часто требуют возможности отменить или прервать их до завершения. Здесь на помощь приходит AbortController, о котором и пойдёт речь.GitTools Есть несколько способов закоммитить многострочные сообщения в git commit
, всё зависит от личных предпочтений.JavaScript Познакомьтесь с новым ключевым словом using
в JavaScript для более эффективного управления ресурсами, вдохновлённого C# и Rust.FrontendCSS Казалось бы, можно просто установить в CSS transition от 0 к 1 для opacity элемента dialog, но это не работает. Необходимо изучить @starting-style, а также ключевые слова overlay и allow-discrete.FrontendHTMLCSSJavaScript Якорные ссылки — простой способ создать навигацию по странице. Например, в оглавлении можно использовать якорные ссылки для перехода к различным разделам страницы.JavaScript Когда я консультирую клиентов по работе с API, то рекомендую никогда не обращаться к API напрямую.JavaScriptFrontend Document.parseHTMLUnsafe — это новый улучшенный .parseFromStringJavaScript getHTML, setHTML, setHTMLUnsafe, декларативный shadow DOM и очистка.JavaScript Вчера мы рассмотрели ванильные JS Proxy. Сегодня хочу показать, как можно их использовать для создания реактивных сигналов.JavaScript Сегодня рассмотрим JavaScript Proxy: что это такое, как они работают и для чего они могут понадобиться.FrontendJavaScript В предыдущей статье я писал о методе handleEvent()
для работы со слушателями событий в веб-компонентах. Сегодня поговорим о том, как использовать его для обработки нескольких типов событий.BackendPHP Сможем ли отказаться от скобок вокруг ключевого слова new при инстанцировании класса? Узнайте последние новости о статусе этого интересного RFC-предложения PHP 8.4.DevOps Как исправить ошибку SQLSTATE[HY000] [1524] Plugin 'mysql_native_password' is not loaded
, вызванную тем, что MySQL 8.4 больше не подключается по умолчанию плагин mysql_native_password.DevOps Что такое ошибка HTTP 403? Как решить проблему и устранить 403-ю ошибку. Рассмотрим шаги по устранению ошибок и возвращению страниц сайта в онлайн.FrontendCSS Atomic CSS — новый подход к написанию CSS, позволяющий вместо работы с длинными именами классов и сложными селекторами использовать крошечные, одноцелевые, небольшие классы, о чём и пойдёт речь в статье.FrontendCSS Всякий раз, когда публикуется статья о Специфичности в CSS — и, как следствие, о самом Каскаде — я очень радуюсь, ведь это основная концепция языка, которую должен знать каждый. Чем больше статей об этом, тем лучше!Database SQLite не так прост, как кажется на первый взгляд и обладает рядом интересных возможностей.BackendLaravelEloquent Laravel известен своим Eloquent ORM, обычно работающим с реляционными базами данных, такими как MySQL. Но что, если нужно выбрать NoSQL-решение, например MongoDB? В статье мы расскажем как начать работу с MongoDB в Laravel.BackendSymfony В Symfony 7.1 появился новый атрибут MapUploadedFile, позволяющий внедрять загруженные файлы в аргументы контроллера.BackendSymfony Symfony 7.1 добавляет два новых ограничения для проверки MAC-адресов и набора символов, в которых закодировано содержимое.BackendLaravel Невероятно часто встречаются жёстко закодированные домены, используемые для идентификации администраторов, однако это также делает простой задачей повышение привилегий до уровня администратора!FrontendJavaScriptHTML Одна из проблем при выполнении кода в constructor() заключается в том, что иногда элемент создаётся, но вложенный в него HTML ещё не готов.JavaScriptFrontend Часто приходится анализировать множество URL-адресов. Частично для их проверки, а также для нормализации или извлечения определённых частей из URL. API URL в браузерах позволяет это делать, но его эргономика не идеальна.BackendSymfony Symfony 7.1 содержит новый атрибут IsCsrfTokenValid для упрощения логики, необходимой для проверки валидности CSRF-токенов.BackendSymfony В Symfony 7.1 добавлен новый компонент TypeInfo, извлекающий информацию о PHP типе из нескольких элементов (свойства и методы классов, возвращаемые типы функций и методов и т.д.)BackendSymfony Цикл статей, рассказывающих о наиболее важных новых возможностях Symfony 7.1, который выйдет в конце мая 2024 года.BackendPHP Подробнее об атрибуте Override: Override имеет несколько специфических, менее известных вариантов поведения с классами, трейтами и интерфейсами.GitTools В этой статье мы погрузимся в мир подмодулей Git, чтобы лучше понять, как они работают.BackendPHP В процессе рефакторинга и оптимизации легаси кода я столкнулся с несоответствием сигнатур метода, что вызывало проблемы с производительностью.BackendPHP При создании PHP-приложений исключения играют важную роль в обработке ошибок и сбоев, возникающих во время жизненного цикла приложения. Рассмотрим, как использовать пользовательские исключения для улучшения приложений.BackendLaravel Middleware в Laravel играет важную роль в перехвате HTTP-запросов, поступающих в приложение, для применения пользовательской логики, прежде чем будет выполнен какой-либо фактический код приложения. Однако существуют сценарии, в которых вам может потребоваться исключить определённые маршруты или методы из обработки middleware.FrontendJavaScript Вчера мы узнали, как связать дочерний и родительский веб-компонент. Сегодня рассмотрим, как использовать пользовательские события Custom Event.FrontendJavaScript Меня спрашивали, как вложить веб-компоненты друг в друга и передавать информацию от одного к другому. Сегодня мы рассмотрим, как это реализовать.FrontendJavaScript Сегодня мы рассмотрим, как обнаружить и реагировать на изменение атрибутов веб-компонента.FrontendJavaScript Вчера мы изучили различные способы инстанцирования веб-компонента. В статье был упомянут метод жизненного цикла connectedCallback(). Сегодня поговорим об остальных методах жизненного цикла веб-компонентов.FrontendJavaScript Сегодня мы познакомимся с различными способами инстанцирования веб-компонентов (и проблемами, связанными с каждым из этих способов).FrontendCSS В CSS есть свойство aspect-ratio, полностью поддерживаемое примерно с 2021 года. Это свойство может быть очень полезным и помочь там, где нельзя использовать фиксированный размер. Но всё может пойти не так, и в результате получится элемент, не соблюдающий aspect-ratio.FrontendHTMLCSSJavaScript Сегодня рассмотрим одну из моих любимых фич веб-компонентов: прогрессивное улучшение.FrontendJavaScriptHTML Вчера мы рассмотрели, как создать собственный веб-компонент. Сегодня мы изучим, как добавлять опции и настройки.FrontendJavaScriptHTML Давайте рассмотрим, как создать свой первый веб-компонент.DevOpsdocker В этой статье мы рассмотрим два метода копирования файлов или папок в контейнеры Docker и из них.BackendLaravel Если вы новичок в Laravel или PHP, давайте рассмотрим, как можно создать собственные хелперы, автоматически загружаемые Laravel.BackendPHP Property Hooks в PHP становится всё ближе к появлению в PHP 8.4 благодаря подавляющему большинству голосов 34/1. Узнайте о Property Hooks в PHP и синтаксисе, описанном в предложении.FrontendCSS Сегодня мы рассмотрим некоторые из удивительных способов, с помощью которых CSS позволяет выбирать целевые элементы на странице.BackendLaravelTesting Как тестировать ожидаемые исключения, имитировать обработку исключений в Laravel 11 и использовать фасад Laravel Exceptions для утверждения исключений в HTTP-тестах.GitTools Привет! Недавно написал статью о HEAD в git, но задумался, что означает термин "текущая ветвь" или "current branch" в git, и это немного страннее, чем я думал.FrontendCSS Вчера мы выяснили, как работает Flexbox. Сегодня я хочу рассказать о его практическом применении.FrontendCSS Flexbox — способ создания гибких макетов, расположенных в виде столбцов или строк.BackendLaravel Laravel в значительной степени опирается на фасады. Кто-то может подумать, что это антипаттерны. Но я считаю, что при правильном использовании они могут привести к чистому и тестируемому коду. Давайте посмотрим, как это сделать.GitTools Получите свободу в экспериментах, а также уверенность в том, что есть новый, связанный клон репозитория, если эксперимент пойдёт не так.BackendLaravelPHP Пришло время повысить количество раундов bcrypt до 12 (или выше)!FrontendCSS Вчера мы познакомились с основами CSS Grid. Сегодня узнаем, как создать универсальную систему сеток, позволяющую быстрее и проще создавать различные макеты сайтов.FrontendCSS Сегодня мы изучим основы CSS Grid — создания макета на основе Grid. Приступим!BackendLaravel Давайте проверим три опции конфигурации, доступные в рамках Автоматического перехэширования паролей: пользовательские поля, отключение перехэширования и изменение раундов bcrypt.GitTools Вроде бы HEAD — это довольно простая тема, но многие разработчики не уверены, что полностью понимают.BackendLaravel Мы недавно перевели инфраструктуру баз данных с MySQL на Postgres. Это обзор того, как мы использовали конструктор запросов Laravel для миграции данных.DevOps GitHub предоставляет собственные экшены для кэширования в рабочих процессах.GitTools Все мы — используем git каждый день, однако большинство из нас, как будто задержались в 2005 году, используют только основные команды, такие как add, commit, push или pull.BackendLaravel Узнайте, как создавать, выбрасывать и обрабатывать исключения при выполнении запросов к сторонним API.BackendLaravel Использование контроллероподобных классов и Laravel-data для эффективного взаимодействия с API.BackendLaravel Руководство по созданию Объектов Передачи Данных (DTO) для повышения читабельности, эффективности и тестируемости API интеграций в Laravel.BackendLaravel Создание многократно используемого класса API-запроса и клиента.BackendLaravelEloquentSQL TL;DR Используйте EXISTS при проверке наличия записей в SQL вместо COUNT. EXISTS гораздо эффективнее и выходит из цикла, когда найдена первая запись.DevOps Файлы конфигурации PHP-FPM обычно не привлекают к себе особого внимания, пока ничего не происходит. Но что делать, когда это произошло?FrontendCSS В веб-разработке управление крупными CSS проектами сопряжено со значительными трудностями. Важность масштабируемого и поддерживаемого CSS невозможно переоценить для долгосрочного успеха проекта. В статье рассматривается архитектура Inverted Triangle CSS как решение этих проблем, а также даётся глубокое понимание, причины её использования, практические шаги по реализации и сравнение с другими методологиями.BackendLaravel Использование специализированных классов для управления кэшем.BackendPHP В Windows запросы HTTPS, выполняемые с помощью расширения Curl, могут не выполняться, поскольку у Curl нет списка корневых сертификатов для проверки сертификатов сервера. Рассмотрим безопасные и эффективные решения, а также обратим внимание на плохие советы, которые могут сделать PHP-приложения небезопасными.FrontendCSS Рассмотрим CSS свойство text-wrap и то, как с его помощью можно улучшить перенос текста на веб-странице.TypeScript Почему типы в TypeScript не существуют во время выполнения. Как TypeScript компилируется в JavaScript и чем он отличается от других языков с сильной типизацией.BackendLaravel Есть разница между тем, что в Laravel называют фасадами и псевдонимами классов. Давайте рассмотрим, чем они отличаются друг от друга и как они стали так тесно переплетаться в глазах общественности.BackendLaravel В рамках упрощения структуры приложений в Laravel 11 методы Request Authorization и Validation больше не доступны в контроллере — вот как их вернуть.BackendPHP Расширение PHP OpenSSL предоставляет функции шифрования, аутентификации, обмена ключами, хэширования паролей и общего хэширования в PHP. Расширение OpenSSL использует библиотеку OpenSSL для обеспечения этой функциональности.GitTools Когда команда работает над проектом, поддержание кодовой базы в соответствии со стандартами кодирования может оказаться непростой задачей. Возможно, кто-то из членов команды присылает код, не соответствующий установленному стилю кодирования, или вы делаете коммит, исправляющий один компонент, но непреднамеренно ломающий другой. Что можно сделать, чтобы снизить эти риски?FrontendCSS Давайте поговорим о различных способах управления переноса текста на веб-странице. CSS даёт множество инструментов, позволяющих сделать текст таким, каким мы хотим его видеть. Также рассмотрим трюки с использованием HTML и специальных символов.DatabaseSQL JOIN в MySQL — это мощный инструмент, позволяющий объединять данные из нескольких таблиц на основе соответствия критериям.BackendLaravel В Laravel 11 middleware по умолчанию перенесено в сам фреймворк, а конфигурация передаётся через класс bootstrap/app.php.Frontend В веб-разработке понимание внутренней работы Document Object Model (DOM) имеет решающее значение. Два понятия, которые часто встречаются в дискуссиях о DOM, — это Virtual DOM и Shadow DOM.FrontendCSSJavaScript Одно из преимуществ CSS переменных — хранение таких значений, как цвета, размеры и другие элементы дизайна, в одном месте, с последующим использованием их во всей таблице стилей. Мы расскажем о значении CSS переменных и о том, как упростить поддержку и обновление стилей, что позволит повысить навыки фронтенд-разработки.TypeScript Узнайте, как настроить TypeScript для создания приложений Node.js с pnpm, Node.js, TypeScript и ES Modules для удобной разработки.FrontendCSSSass CSS уже не тот, что в 1996 году, и SASS тоже вырос с момента своего создания — какому из них отдать предпочтение сегодня? Мы рассмотрим плюсы и минусы обоих вариантов.DevOpsSymfony Компиляция ресурсов с помощью webpack отнимает много времени. Каждый раз, когда проект собирается в CI, ресурсы приходится компилировать снова и снова.BackendPHP PHP поддерживает объявление типов для параметров функций, возвращаемых значений, свойств классов, констант классов и Enum. Будучи динамически типизированным языком и языком с десятилетиями истории, за прошедшие годы PHP получил ряд улучшений и возможностей.BackendPHP Может быть множество причин, по которым необходимо добавить текст поверх существующего изображения. Для меня основной причиной было добавление заголовка статьи поверх фонового изображения "шаблона" для создания SEO-изображений.JavaScript Рассмотрим самые интересные и ожидаемые функций JavaScript, появление которых запланировано на 2024 год.TypeScript TypeScript с его мощной системой типов предлагает функцию Дженерики, позволяющую разработчикам писать многократно используемый и типобезопасный код. Дженерики позволяют создавать компоненты, способные работать с различными типами, а не с одним.BackendPHP Прекратите использовать приёмы микрооптимизации в PHP, жертвуя читабельностью кода ради мнимого повышения производительности. Более того, перестаньте учить этим трюкам новичков. В этом нет никакого смысла.JavaScript Узнайте, как отключить сообщения "packages are looking for funding" в проекте или глобально.TypeScript Узнайте о важнейших параметрах конфигурации TypeScript и создайте лаконичный файл tsconfig.json для своих проектов с помощью этой шпаргалки.FrontendHTML Хотя мы, как индустрия, в целом отказались от большинства требований XHTML, оформление самозакрывающегося тега, похоже, сохранилось, несмотря на то, что является пережитком спецификации, от которой отказались более 10 лет назад. Люди даже добавляют пробел перед /
, который был добавлен для совместимости с браузерным движком из прошлого тысячелетия.FrontendCSS Я создал несколько примеров сниппетов :has()
, используемых в реальных клиентских проектах.DatabaseSQL SQL запросы — рабочие лошадки, получающие данные, манипулирующие и управляющие ими. Создаёте веб-приложение, управляете бизнес-операциями или проводите сложный анализ данных, SQL запросы — это мост, соединяющий данные с приложением. Поэтому важно, чтобы запросы были не только функциональными, но и оптимизированными для повышения эффективности.BackendPHP В PHP 8.4 функция curl_version
возвращает дополнительный ключ массива feature_list
, содержащий массив функций Curl и информацию о том, поддерживаются они или нет.BackendPHP В PHP 8.4 расширение mbstring добавило функции mb_ucfirst и mb_lcfirst в качестве многобайтовых безопасных альтернатив функциям ucfirst и lcfirst.BackendLaravel Ознакомьтесь с методом "ensure" и узнайте, как с его помощью проверить, что в Коллекциях Laravel существуют элементы только заданного типа данных.BackendPHP В PHP 8.4 добавлены две новые функции http_get_last_response_headers
и http_clear_last_response_headers
, которые можно использовать для получения и очистки HTTP-заголовков последнего ответа HTTP-обёртки, что может заменить историческую переменную $http_response_header
.BackendPHP Обновление PCRE2 в PHP 8.4 содержит ряд изменений, которые могут быть несовместимы с существующими регулярными выражениями или несовместимы с другими версиями движков регулярных выражений.FrontendCSS CSS — это основа, при помощи которой разработчики превращают HTML-документы в визуально привлекательные и функциональные для посетителей веб-сайты. Для фронтенд-разработчика понимание правил, регулирующих CSS, имеет решающее значение для повышения мастерства в оформлении веб-сайтов. В статье рассмотрим концепцию специфичности CSS, разберём её составляющие и покажем, как более глубокое понимание может улучшить навыки стилизации веб-сайтов.BackendLaravel Мы стараемся документировать все возможные изменения. Поскольку некоторые из изменений находятся в малоизвестных частях фреймворка, только часть из них может реально повлиять на ваше приложение. Хотите сэкономить время? Используйте Laravel Shift для автоматизации обновления приложений.BackendLaravel Познакомьтесь с ключевыми стратегиями повышения производительности Laravel-приложений, включая кэширование, эффективное кодирование и оптимизацию баз данных.BackendPHP PHP 8.4: Новости и изменения. PHP 8.4 — это активная ветвь разработки, в которую в настоящее время добавляются новые функции, основные изменения и новые RFC. Релиз запланирован на 21 ноября 2024 год.BackendPHP Расширение Curl предоставляет функциональность libcurl в PHP. Хотя расширение Curl можно скомпилировать с любой поддерживаемой версией libcurl, расширение требует определённую минимальную версию libcurl. Это позволяет расширению гарантировать, что определённая функциональность и API всегда будут доступны.BackendPHP В PHP 8.4 добавлена новая функция request_parse_body
, раскрывающая встроенную в PHP функциональность парсинга HTTP-запросов отличных от POST.BackendPHP Расширения oci8 и pdo_oci8 предоставляют функциональность для использования баз данных Oracle в PHP. Эти расширения опираются на проприетарные библиотеки от коммерческого производителя Oracle.BackendPHP Расширение IMAP в PHP предоставляет функциональность для работы с почтовыми ящиками по протоколу IMAP. Базовая библиотека C, от которой зависит расширение, не получала обновлений с 2018 года.BackendPHP Расширение Pspell предоставляет возможности проверки правописания в PHP с помощью Pspell или Aspell. Зависимости этого расширения не получали обновлений в течение последних нескольких лет, и расширение Pspell было перенесено из ядра PHP в расширение PECL в PHP 8.4.BackendPHP Константа CURLOPT_BINARYTRANSFER
, предоставляемая расширением Curl, в PHP 8.4 объявлена устаревшей. Эта константа не имела эффекта начиная с версии PHP 5.1.2. Уже давно назрела необходимость её удаления.BackendPHP Функция round() округляет значение float до ближайшего целого числа или десятичного значения заданной точности. Она поддерживает тонкую настройку метода округления с помощью дополнительного параметра.BackendPHP В PHP 8.0 была добавлена поддержка компиляции Just-In-Time. По умолчанию JIT отключена, и есть два переключателя, opcache.jit и opcache.jit_buffer_size, контролирующие режим основной функциональности PHP и размер буфера, разрешённый для использования JIT.BackendPHP PHP 8.4: Тип значения констант PHP_ZTS и PHP_DEBUG изменён с int на bool.BackendPHP В PHP 8.4 изменён параметр стоимости bcrypt по умолчанию встроенного в PHP API хеширования паролей.BackendPHP Классы DateTime и DateTimeImmutable в PHP 8.4 и более поздних версиях поддерживают методы getMicroseconds и setMicroseconds для получения и установки количества микросекунд в объектах DateTime/DateTimeImmutable.BackendPHP Функция round() округляет значение float до ближайшего целого числа или десятичного значения заданной точности. Она поддерживает различные режимы округления, а в PHP 8.4 добавлены четыре новых метода округления.BackendPHP Классы DateTime и DateTimeImmutable в PHP 8.4 получили новый метод createFromTimeStamp, создающий экземпляр из заданной временной метки UNIX в виде целого числа или числа с плавающей точкой.BackendPHP В PHP 8.4 добавлены эквиваленты функции mb_
для существующих функций trim
, ltrim
и rtrim
.BackendPHP phpinfo() в PHP 8.4 показывает размер целого числа, поддерживаемого текущей установкой PHP, в битах.FrontendCSS В CSS есть константа infinity
. Когда я впервые узнал об этом, мозг озарило множество абсурдных возможностей. Давайте обсудим! Возможно, найдутся и практические варианты использования.Database Успех высоконагруженных приложений зависит от эффективной работы баз данных, лежащих в их основе. По мере роста сложности SQL-запросов, особенно тех, которые включают в себя сложные соединения и проблемы индексирования, оптимизация запросов приобретает первостепенное значение.FrontendHTMLJavaScript Сегодня я решил, что мы создадим HTML веб-компонент с нуля. Давайте создадим компонент, показывающий и скрывающий текст при переключении кнопки.FrontendCSS С помощью новых CSS атрибутов полосу прокрутки можно стилизовать и скрывать, не влияя на возможность пользователя прокручивать страницу. Мы покажем, как скрыть полосу прокрутки в большинстве браузеров с помощью CSS.BackendPHP Операции конкатенации строк в PHP: 5 способов склеивания строк! Оператор конкатенации .
, интерполяция строк, короткое присваивание, implode()
и str_replace()
BackendPHP Релиз PHP 8.4 запланирован 21 ноября 2024 года. Давайте рассмотрим новые функции и изменения.BackendLaravel Привет, веб-разработчики! Недавно появились новости о Laravel 11, и о новых возможностях, с которыми определённо стоит пообщаться. Если вы увлекаетесь Laravel так же, как и я, наверняка не терпится узнать, что нового появилось и как это облегчит жизнь. Так что давайте погрузимся в тему. И да, сделаем это в непринуждённой манере с большим количеством примеров кода, чтобы было понятно и весело.Frontend В этой статье мы рассмотрим, что такое HTMX, и какие возможности он предоставляет разработчикам.JavaScriptFrontend JavaScript CustomEvent расширяют функциональность встроенной системы событий. Проще говоря, они позволяют программистам создавать и обрабатывать события, уникальные для их приложения, и в этой статье мы расскажем о них всё.TypeScriptJavaScript В этой статье приводится глубокое сравнение и противопоставление TypeScript и его предшественника, стандартизированного ECMA, JavaScript.Database В последнее время SQLite вызывает всеобщий ажиотаж, но действительно ли он может конкурировать с MySQL и PostgreSQL в продакшне веб-приложений?BackendLaravel Узнайте, как проверять входящие данные в приложениях Laravel, начиная с основ и заканчивая более сложными концепциями.BackendLaravel Узнайте, как легко управлять валидацией массива в Laravel, для обеспечения целостности данных в ваших веб-приложениях.BackendLaravel В этой статье мы будем привязывать Google Events к Google Календарям. Давайте рассмотрим, какие параметры нужно отправлять и что они означают.BackendLaravel В этой статье мы рассмотрим, как синхронизировать Google Календари с Laravel приложением, основные параметры для получения API-ресурсов. Создадим и оптимизируем код.BackendLaravel Узнайте о решениях проблемы "Vite manifest not found" в Laravel, включающих установку, настройку среды, очистку кэша и управление ресурсами.BackendSymfony В течение последних недель мы обновляли сайты Symfony, такие, как symfony.com, live.symfony.com и certification.symfony.com, на использование AssetMapper вместо Webpack Encore. В этой статье мы расскажем о том, как это было реализовано.Frontend Один из вопросов, который мне чаще всего задают в течение последнего года… Вы слышали о HTMX? Что вы думаете о нем?GitTools Кто не устал от коммитов "Remove pdb" или "Fix a typo" через несколько минут или часов после коммита чистой фичи? Несколько лет назад я обнаружил в GIT две полезные опции, которые работают вместе: git commit --fixup
и git rebase --autosquash
. С их помощью можно легко объединить небольшие исправления с оригинальной фичей и сохранить ветвь чистой.Frontend Меню "вне холста" — распространённый паттерн в веб-дизайне. Его часто можно увидеть на мобильных сайтах, где вы кликаете на кнопку гамбургер, и меню выдвигается сбоку экрана, обычно перекрывая контент, находящийся за ним.BackendLaravelEloquent Да, вы всё правильно поняли. Нетерпеливая загрузка (Eager loading) может быть вредной, очень вредной. Однако мы часто прибегаем к ней, когда имеем дело со сценарием N+1, думая, что решили проблему, а на самом деле, возможно, сделали её ещё хуже. Каким образом? Давайте посмотрим.JavaScript В этой статье мы рассмотрим фундаментальные концепции функционального программирования на JavaScript и то, как применять их для написания чистого, лаконичного и сопровождаемого кода.BackendSymfony Конфигурация Symfony — одно из тех изменений, которые трудно заметить, пока они не будут удалены в следующей мажорной версии. Тогда приходится гуглить "сообщение об ошибке invalid option id" и надеяться на решение. Не самый лучший способ провести выходные, не так ли?BackendLaravel Использование метода __construct()
для инъекции зависимостей в командах Laravel Artisan может привести к неожиданным последствиям.BackendSymfonySecurity Начиная знакомство с Symfony, часто приходится следовать документации, не всегда понимая значение тех или иных механизмов. В этом контексте стоит поближе рассмотреть токены CSRF, которые на первый взгляд могут показаться дополнительным усложнением, но их роль крайне важна для безопасности приложения. В этой статье я расскажу, почему CSRF-токен так важен, и проиллюстрирую это на примере популярной социальной сети, которая столкнулась с проблемами безопасности из-за недостаточной проверки этих токенов.JavaScript Функции высшего порядка — одна из самых мощных возможностей JavaScript, позволяющая разработчикам писать лаконичный, гибкий и модульный код. Функция высшего порядка — это просто функция, которая либо принимает одну или несколько функций в качестве аргументов, либо возвращает функцию в качестве результата. В этой статье мы рассмотрим, что такое функции высшего порядка, почему они полезны и как использовать их в своём коде.BackendLaravelEloquent Свойство $fillable
в моделях Eloquent может оказаться разумным местом для размещения логики валидации. В конце концов, учитывая, что этот список является практически частью валидации, было бы расточительно не использовать ту же структуру для определения правил соответственно.BackendPHP Рекурсивная функция — это функция, вызывающая саму себя для решения задачи. Этот тип функций часто используется в ситуациях, когда задачу можно разбить на более мелкие, похожие, но всё же более мелкие задачи. Функция продолжает вызывать себя с изменёнными аргументами до тех пор, пока не будет достигнут базовый случай, после чего функция перестаёт вызывать себя и начинает возвращать значения. Итак, все ли рекурсивные функции в PHP нам известны?BackendLaravel Узнайте как создавать и тестировать команды для взаимодействия с Laravel приложением и сервером. Откройте для себя новые советы и рекомендации по написанию команд Artisan, а также по использованию фасада Process в Laravel 10.GitTools Это та статья в блоге, которую я хотел бы получить, когда искал хороший рабочий процесс для ветвления и тегирования пакетов/библиотек с открытым исходным кодом.BackendLaravel Узнайте, как автоматически хэшировать конфиденциальные данные (например, пароли) с помощью каста "hashed" модели Laravel. Также рассмотрим, как проверить правильность хэширования поля.BackendPHP Как эффективно использовать интерфейсы, чтобы сделать PHP-пакет более удобным в работе и более настраиваемым, чем когда-либо прежде.FrontendCSS Рассмотрим CSS-свойство field-sizing
и то, как оно может улучшить удобство взаимодействия с веб формой.JavaScript В этой статье вы узнаете о концепции Тройного C в JavaScript, включающей в себя Currying, Closures и Callbacks.BackendLaravelEloquent Инъекция зависимостей в Laravel — сложная тема, и в основном она используется для сторонних пакетов и некоторых внутренних компонентов. Вы можете использовать её и в своём приложении, но, на мой взгляд, она часто усложняет код больше, чем стоит, и значительно затрудняет отладку.Frontend Когда я начинаю работать с новыми клиентами, одной из первых вещей, которые я люблю делать, это аудит их существующего сайта.FrontendCSS "Именовать вещи сложно", — гласит аксиома программной инженерии, и CSS не является исключением. Здесь собраны некоторые соображения, связанные с именованием пользовательских свойств CSS. Я буду использовать термины "переменная" и "пользовательское свойство" как взаимозаменяемые, поскольку для целей определения того, как их называть, это фактически одно и то же.JavaScript В этой статье мы рассмотрим объектно-ориентированное программирование в JavaScript: Узнайте, как использовать классы, наследование и инкапсуляцию для получения более чистого и эффективного кода в ваших веб-проектах.BackendLaravel В Laravel, если мы хотим, вычислить значение БД на лету, мы часто используем мутаторы. Но мы можем делать это на уровне базы данных с помощью генерируемых виртуальных/хранимых столбцов.BackendLaravel Мне кажется, что это изменение в Laravel 11 потребует гораздо больше неявных знаний о встроенном middleware. Имеет ли это значение? Скорее всего, нет. Но это изменение увеличивает кривую обучения.JavaScript Многие проблемы, связанные с именованием, возникают из-за попыток умничать или создания вещей, которые пытаются сделать слишком много.BackendLaravelSecurity Что это за вредоносная программа, нацеленная на Laravel, и стоит ли вам беспокоиться о своих приложениях?BackendPHP Как убрать за собой в PHP : используйте register_shutdown_function
, __destruct
и try-catch-finally
, чтобы убедиться, что уборка выполняется всегдаFrontendCSS Блочная модель/Box Model CSS — фундаментальная концепция, позволяющая размещать и выравнивать элементы на веб-странице. Владение блочной моделью необходимо для управления отступами, размерами, позиционированием и разработкой макета веб-страницы в целом.BackendSymfony В этой статье мы рассмотрим различные способы установки и использования php-cs-fixer. Мы увидим, что всё не так очевидно, как кажется. Поехали! 😎GitTools Существует несколько способов игнорировать передачу файлов в Git-репозитории из локального в удаленный.BackendLaravel Как создать в Laravel команды, выполняющиеся только в том случае, если они ещё не запущены в другом процессе.BackendPHP compact()
и extract()
— две классические функции PHP: давайте рассмотрим, как они используются сейчас и как их можно модернизировать.BackendLaravel Узнайте, как PHP-пакет spatie/temporary-directory упрощает работу с путями временных файлов в Laravel и других PHP-проектах.BackendPHP Как бы полезно это ни звучало, но nl2br()
может оставить вас уязвимым для межсайтового скриптинга (XSS)… Вместо него лучше использовать CSS!JavaScript Изучите работу движка JavaScript, от разбора кода до оптимизации его производительности, а также такие ключевые техники, как скрытые классы и управление памятью.BackendPHPSecurity Random генерирует криптографически защищённые случайные значения в различных форматах с помощью простого PHP пакета.JavaScript Узнайте, как использовать Fetch API - более простую и удобную альтернативу XMLHttpRequest, основанную на промисах, — с помощью Node.js, Deno и Bun.FrontendCSS Внедрение текучей типографики означает создание текста, адаптирующегося к различным размерам экрана. По мере совершенствования технологий продолжают появляться устройства различных форм и размеров. Как фронтенд-разработчик, вы должны создавать приложения, которые хорошо адаптируются к различным размерам экрана. Дизайн с использованием текучей типографики улучшает пользовательский опыт и доступность; в этой статье мы расскажем как это сделать.JavaScript Нюансы среды выполнения JavaScript и почему каждый опытный специалист должен быть хорошо знаком с ними.Database Оптимизация запросов к MySQL считается актуальной темой среди бэкенд-разработчиков, поскольку ресурсы базы данных имеют решающее значение. Очень важно экономить и избегать перерасхода этих ресурсов. Вот несколько советов для бэкенд-разработчиков по оптимизации запросов:FrontendCSS Сегодня я хочу рассказать о том, как я подхожу к CSS-архитектуре в своих проектах. Давайте покопаемся!FrontendCSS Сегодня я хочу поговорить о бесклассовых и основанных на классах дизайн-системах CSS, бойлерплейтах и фреймворках: чем они отличаются, какой подход я предпочитаю и так далее.BackendSymfony Несмотря на то, что я большой поклонник Symfony, я считаю, что для больших приложений стандартная структура каталогов оставляет желать лучшего.BackendLaravel Хелпер fake() в Laravel — это мощный инструмент для генерации фиктивных данных. Узнайте, как использовать его для заполнения баз данных и прототипов.BackendPHP Null-safe оператор был добавлен в PHP 8.1: это новый объектный оператор, предотвращающий фатальную ошибку и последующую остановку выполнения при вызове метода или свойства со значением null
. Он имеет большую привлекательность, поскольку называется "безопасным" и сокращает количество проверок перед вызовом метода. Однако на практике у оператора nullsafe есть и свои недостатки.FrontendTailwind Tailwind CSS - мой любимый CSS-фреймворк, которым я пользуюсь с 2018 года. Позвольте мне поделиться своими знаниями и соображениями, полученными благодаря многолетнему опыту.Frontend Отдавайте предпочтение SVG, а не PNG, доверяйте браузерам в вопросах уменьшения масштаба, отказывайтесь от непонятных форматов — это полное, исчерпывающее руководство по favicon/фавикон для современного веба. Включает шаги для статического HTML и Webpack.FrontendCSS В этой статье мы рассмотрим использование CSS свойства gap, позволяющее очень просто добавлять пространство между элементами и решающее ряд проблем с вёрсткой, беспокоивших разработчиков на протяжении многих лет.BackendLaravel Laravel предлагает элегантную возможность вызова методов под названием Facades. На первый взгляд, они напоминают статические методы, но это не так! Что за магию творит Laravel?JavaScript JavaScript — универсальный язык программирования, позволяющий разработчикам создавать динамичные и интерактивные веб-приложения. Хотя основная функциональность языка заключается в манипулировании веб-контентом с помощью объектной модели документа (DOM), JavaScript также предоставляет объектную модель браузера (BOM) для взаимодействия со средой браузера.FrontendCSSa11y Состояние фокуса пользователя совершенно не учитывается веб-разработчиками. Представьте себе навигацию по сайту без чёткого указания того, где вы находитесь и с чем взаимодействуете; это сбивает с толку. Именно здесь на помощь приходят CSS-псевдоклассы, такие, как :focus
, :focus-within
и :focus-visible
. Цель этой статьи — пролить свет на важность состояния фокуса в веб-разработке.BackendLaravel Я работал с Laravel и Docker с 2016 по 2022 год. В течение всех этих лет у меня была небольшая проблема, связанная с переменными среды.BackendPHP Как осуществить плавную миграцию от массива к объекту в PHP: используя динамический синтаксис PHP, общий для массивов и объектовBackendSymfonySecurity Подделка межсайтовых запросов (CSRF) - одна из традиционных уязвимостей, с которыми приходится сталкиваться веб-приложениям. Все веб-фреймворки, включая Symfony, поддерживают защиту от CSRF из коробки. Менее известной уязвимостью является Login CSRF, особый вид CSRF-атаки.BackendLaravel Вы можете легко ориентироваться в версиях API Laravel с помощью Версионирования URI, обеспечивая последовательную и надёжную интеграцию даже по мере развития приложения.BackendLaravelSecurity Не раз и не два мы сталкивались с печально известным исключением 'Token Mismatch' в Laravel. Но, бедняга просто заботится о вас, пытаясь защитить от зла 😈, давайте посмотрим...BackendLaravelSecurity [Совет#64] Знаете ли вы разницу между e()
, htmlspecialchars()
и htmlentities()
? Можно ли просто использовать e()
для всего?BackendLaravelEloquentDatabase Вы наверняка слышали, что полагаться на то, что ключи массива сохраняют определённый порядок, опасно. В спецификации JSON эти пары ключ/значение даже определяются как "неупорядоченные". Но, возможно, на практике вы никогда не сталкивались с ситуацией, когда порядок изменялся по сравнению с тем, что вы ожидали.BackendPHP В предыдущей статье мы рассмотрели возможности Value Objects в повышении качества кода, надёжности системы и минимизации необходимости обширной валидации. Теперь давайте погрузимся глубже, чтобы улучшить понимание и использование этого важнейшего инструмента.BackendPHP В мире программирования поддержание чистоты и надёжности кода имеет большое значение. Паттерн Value Objects способен значительно улучшить качество вашего кода, сделав его более надёжным и удобным для сопровождения.DevOps SSH3 — это полный пересмотр протокола SSH, накладывающий его семантику на механизмы HTTP.TypeScript Добро пожаловать в десятую и заключительную часть нашей серии статей о TypeScript! В этой части мы исследуем тонкости работы с сеттерами/геттерами, protected, private/public и static.JavaScriptTypeScript Многие разработчики предпочитают использовать TypeScript из-за его функций проверки типов. Однако это требует дополнительного шага транспонирования, который может быть хлопотным и отнимающим время. В этой статье мы расскажем, как использовать JSDoc, чтобы получить все те же элементы контроля, но писать на обычном JavaScript, что позволяет сократить время разработки и улучшить документацию!TypeScript Добро пожаловать в девятую часть нашей серии статей о TypeScript! В этой части мы углубимся в практику объектно-ориентированного программирования (ООП), уделив особое внимание классам и наследованию.BackendPHP AEGIS — это семейство алгоритмов аутентифицированного шифрования на основе AES, которое быстрее, чем AES-GCM. Расширение Sodium в PHP 8.4 поддерживает алгоритмы шифрования AEGIS-128L и AEGIS256, если расширение Sodium скомпилировано с libsodium 1.0.19 или более поздней версии.BackendPHP Расширение Sodium в PHP 8.4 теперь поддерживает шифры аутентифицированного шифрования AEGIS-128L и AEGIS256. Они значительно быстрее, чем AES-GCM и CHACHA20-POLY1305. В этой статье мы сравним их и объясним, как безопасно шифровать и расшифровывать данные с помощью AEGIS-128L и AEGIS256 на PHP.BackendLaravel Обработка исключений — важнейший аспект разработки веб-приложений, гарантирующий, что ваше приложение сможет изящно справиться с неожиданными ошибками и предоставить пользователям содержательные ответы. Laravel поставляется с надёжной системой обработки исключений, которая позволит вам эффективно справляться с ошибками. В этой статье мы рассмотрим основы обработки исключений в Laravel, а также ключевые концепции.TypeScript Добро пожаловать в восьмую часть нашей серии статей о TypeScript! В этой части мы познакомимся с динамичным ландшафтом типов TypeScript, изучим типы any
, void
, never
, null
и значение строгой проверки null
.BackendLaravelEloquent Я работаю с Eloquent уже более пяти лет, и пришло время поделиться своим очередным багажом трюков. Вы гарантированно узнаете что-то новое!TypeScript Добро пожаловать в седьмую часть цикла статей о TypeScript! В этой части мы сосредоточимся на типизации функций и сигнатур, обеспечивающих функциональность и безопасность типов вашего кода.BackendLaravel При использовании кэширования обещание значительного повышения производительности должно быть сопоставлено с его стоимостью, связанной со сложностью и инфраструктурой. Давайте обсудим доступные варианты, чтобы вы могли использовать наилучшую реализацию для любой ситуации.TypeScript Добро пожаловать в шестую часть нашей серии статей о TypeScript! В этой части мы рассмотрим объединение типов, литеральные типы и размеченное объединение типов, обеспечивающие точность и выразительность в определении типов.BackendPHPSecurity PHP включает несколько очень удобных функций, ориентированных на безопасность, но вы должны знать, как правильно их использовать, иначе рискуете оставить значительную уязвимость, ожидающую своего применения!TypeScript Добро пожаловать в пятую часть нашей серии статей о TypeScript! В этой части мы переключим наше внимание на создание пользовательских типов, перечислений и интерфейсов. Эти мощные конструкции позволяют создавать выразительные и чётко определённые структуры кода.BackendLaravel Добавление второго сервера к вашему приложению может стать отличным способом улучшить его производительность и/или повысить надёжность. Однако при добавлении второго сервера необходимо учитывать несколько моментов.TypeScript Добро пожаловать в четвёртую часть цикла статей о TypeScript! В этой части мы рассмотрим концепции неявных и явных типов, а также утверждения типов.BackendLaravel В Laravel появился новый класс Number, предоставляющий несколько новых хелперов для форматирования чисел.TypeScript Добро пожаловать в третью часть нашего цикла о TypeScript! В этой части мы рассмотрим фундаментальные строительные блоки TypeScript — примитивные и базовые типы.BackendLaravel В PHP есть множество встроенных констант. Некоторые из них полезны при работе с файлами, а некоторые — с целыми числами. Но все они имеют одну общую черту — все они доступны глобально. В этой небольшой статье мы рассмотрим типичные примеры и случаи использования констант в Laravel.TypeScript Добро пожаловать во вторую часть нашей серии статей о TypeScript! В этой части мы проведём сравнение между JavaScript и TypeScript, что поможет вам сделать осознанный выбор при принятии решения о переходе на TypeScript.DevOpsLaraveldocker Краткое руководство, показывающее, как перейти от локальной разработки к продакшену с помощью Docker, включая рабочие процессы развёртывания и CI/CD.TypeScript Добро пожаловать в первую часть серии из десяти частей, посвящённой основам TypeScript. В этой первой части мы рассмотрим компилятор TypeScript (tsc
) и файл конфигурации (tsconfig.json
).BackendPHPTesting Абстрактные классы не могут быть инстанцированы напрямую, что создаёт проблему при тестировании функциональности, реализованной в самом абстрактном классе. В этой статье я поделюсь своим подходом к решению этой проблемы.BackendPHPComposer Сценарии Composer — это очень удобный способ определения команд, которые вы часто используете. Например, у нас есть скрипты composer для запуска тестов, проверки стиля кодирования или обновления хелперов IDE.BackendLaravel В PHP 8 появились атрибуты, которые являются довольно впечатляющими и мощными. В этой статье мы будем использовать их для включения и выключения маршрутов Laravel, насколько это круто?JavaScriptNodeJS Веб-приложениям не всегда нужна запись в файловую систему, но Node.js предоставляет для этого обширный интерфейс прикладного программирования (API). Это может понадобиться, если вы ведёте логи отладки, передаёте файлы на сервер или с сервера, или создаёте инструменты командной строки.BackendLaravelEloquentTesting Если все сделать правильно, ваши тесты будет намного легче поддерживатьBackendSymfony Symfony 6.4 включает новую функцию Profiler, позволяющую исследовать определения рабочих процессов и отображать их в виде визуальной диаграммы.JavaScript В ECMAScript 2023 появились новые функции, призванные улучшить язык и сделать его более мощным и удобным. Новая версия включает в себя интересные функции и новые методы массивов JavaScript, благодаря которым программирование на JavaScript становится более лёгким и приятным. В этой статье мы подробно рассмотрим функциональные возможности новых методов JavaScript на прототипах массивов.BackendLaravelEloquentTesting Почему использование свойства $seed
лучше ручного заполнения базы данных? Просто ли это избавление от необходимости писать несколько строк кода?DevOpsPHP В этой статье рассказывается, как установить или обновить PHP 8.3 на macOS с помощью Homebrew.DevOpsPHP Полное руководство по установке или обновлению PHP 8.3 на Fedora, RHEL, CentOS, Alma Linux, Rocky Linux и другие.DevOpsPHP Полное руководство по установке или обновлению до PHP 8.3 на Ubuntu 22.04 (Jammy), Ubuntu 20.04 (Focal) и Debian 12 (Bookworm), Debian 11 (Bullseye), Debian 10 (Buster).BackendLaravelEloquentTesting Этот совет продолжает начатую вчера тему, связанную с проверкой строгости Eloquent.BackendSymfony В Symfony 6.4 добавлено множество функций для улучшения DX (опыта разработчиков): добавление серверных параметров при клике по ссылкам, определение атрибутов краулера по умолчанию и т.д.FrontendCSS Мы переживаем некий ренессанс CSS: новые возможности, техники, эксперименты и идеи появляются в таком количестве, какого мы не видели со времён "CSS3". Легко почувствовать себя подавленным, когда, кажется, что твоя профессия развивается с бешеной скоростью, но Джефф Грэм (Geoff Graham) считает, что "современный" CSS в 2023 году фактически сделал CSS "проще" в написании.BackendLaravelEloquent Я большой поклонник нового "strict mode" для моделей Laravel. Одна из вещей, которую он помогает отловить, — это ужасный запрос "N+1", вызывающий проблемы с производительностью в продакшене.DevOpsLaravel Nuno Maduro из Laravel core-team объявил о выпуске нового пакета Laravel Pint, представляющего собой "[...] специализированный корректор стиля PHP-кода для минималистов. Pint построен на базе PHP-CS-Fixer и помогает убедиться, что стиль вашего кода остаётся чистым и последовательным".SEOFrontend Как работать с редиректами и каковы последствия их использования — вот несколько вопросов, возникающих в процессе SEO-аудита. Некоторые SEO-эксперты более фаталистично, чем другие, относятся к тому, как редиректы могут повлиять на рейтинг вашего сайта на страницах результатов поисковых систем (SERP).BackendLaravel Раскройте весь потенциал вспомогательных строковых хелперов в Laravel 10 с помощью 10 советов по оптимизации в 2023 году.DevOpsNodeJS В этом руководстве рассказывается о преимуществах запуска приложений Node.js в контейнерах Docker и о том, как создать практичный рабочий процесс разработки.TypeScript TypeScript, статически типизированный надмножество JavaScript, привносит в язык дополнительные статические типы и объектно-ориентированное программирование на основе классов. Две важнейшие концепции, которые вводит TypeScript, — это Перегрузка и Дженерики. Эти возможности повышают гибкость, удобство повторного использования кода и безопасность наших программ.BackendSymfony AssetMapper в Symfony 6.4 содержит огромное количество новых функций: загрузка локальных вендоров, поддержка CSS, более интеллектуальная предзагрузка и многое другое.JavaScript Цепочка прототипов — это механизм в JavaScript, позволяющий объектам наследовать свойства и методы других объектов, имея общий прототип. В JavaScript каждый объект имеет связанный с ним прототип объекта, и эти прототипы образуют цепочку. Когда свойство или метод не найдены в объекте, JavaScript просматривает цепочку прототипов, чтобы найти его в прототипе объекта или в прототипах его предков.BackendSymfony В Symfony 6.4 реализована поддержка числовых кодов ISO 3166-1, улучшено ограничение Type, повышена точность форматирования временных сообщений, улучшена работа утилит фильтрации FinderJavaScript В этой статье я рассмотрю регулярные выражения, также известные как Regex, и попытаюсь убедить вас в том, что их наличие в вашей кодовой базе — плохая идея. Для краткости я не буду пытаться объяснить внутреннюю работу и применение Regex, но постараюсь убедить вас в необходимости их рефакторинга из вашей кодовой базы.JavaScript В программировании, особенно в динамичном и постоянно развивающемся мире JavaScript, путь от новичка до опытного профессионала сопряжён с множеством трудностей и кривых обучения. Один из важнейших выводов, который я вынес из своего богатого опыта, как в качестве интервьюера, так и в качестве интервьюируемого, заключается в огромной важности понимания "почему", стоящего за нашими кодовыми решениями. Именно такое глубокое понимание и способность чётко сформулировать причины каждого решения действительно отличают исключительных специалистов.BackendLaravel Как настроить локальную среду разработки для тестирования классов или утилит пакета в рамках локального проекта Laravel.DevOps Docker — это инструмент, облегчающий создание, развёртывание и запуск приложений с помощью контейнеров. Контейнеры позволяют инженеру упаковать приложение со всеми необходимыми компонентами, например библиотеками и другими зависимостями, и отправить его в виде единого пакета. Это означает, что приложение будет работать на любой другой машине, независимо от настроек, которые могут отличаться от настроек машины, использовавшейся для написания и тестирования кода.PHPBackend PHP 8.3 вышел 23 ноября 2023 года, и, как обычно, вам нужно быть в курсе новых функций и критических изменений, чтобы упростить переход.BackendPHP Команда PHP выпустила PHP 8.3, в котором появились типизированные константы классов, функция json_validate()
, динамическое получение константы класса, атрибут #[Override]
и многое другое.FrontendCSSa11y Иногда требуется, чтобы список отображался не вертикально, а в виде горизонтального списка (как в навигационном меню).Frontend Давайте разберёмся нужны ли бандлеры для сборки JavaScript проектов? Есть ли выгода от пакетирования, или лучше загружать множество небольших js-файлов?BackendLaravel Предотвращение повторных отправок форм и диспетчеризации заданий с помощью атомарных блокировок Laravel.BackendSymfony В Symfony 6.4 добавлено разрешение бейджей безопасности в профилировщике, более безопасные логи безопасности и возможность раздельного определения нескольких паттернов в брандмауэрах безопасности.BackendLaravel Если мы не знаем, как что-то работает, то ещё больше запутываемся, когда что-то ведёт себя не так, как ожидалось.GitTools Git, широко распространённая система контроля версий, позволяет разработчикам эффективно управлять и отслеживать изменения в кодовой базе. Одной из мощных, но иногда недопонимаемых команд является git cherry-pick
. В этой статье рассмотрим git cherry-pick, узнаем её назначение, использование и приведём примеры, раскрывающие суть этой команды.JavaScript Приёмы, которые вы, вероятно, не знали о методе reduce()
BackendLaravelSecurity [Совет #62] Поисковые системы любят просматривать все ваши файлы, поэтому будьте внимательны к тому, что вы оставляете на видном месте.BackendSymfony В Symfony 6.4 добавлено 12 новых интеграций со сторонними сервисами в компоненты Mailer
, Translation
, Notifier
, Webhook
и RemoteEvent
.BackendSymfony DatePoint
является полноценной заменой классов даты/времени PHP, предоставляющей множество утилит, полную интеграцию с компонентом Clock
и улучшенную обработку ошибок.BackendSymfony В Symfony 6.4 вводится новый атрибут AutowireLocator, позволяющий определять локаторы сервисов с помощью PHP атрибутов, а не конфигурационных файлов.FrontendCSS В Chrome 120 включена функция заглядывающей вперёд вложенности.BackendLaravelEloquent Я работаю с Eloquent уже более пяти лет, и пришло время поделиться своим опытом. Пристегните ремни, это будет хорошая поездка!BackendSymfony В Symfony 6.4 добавлены новые возможности в Serializer, такие, как групповые атрибуты на основе классов, нормализация объектов Translatable и детализация ошибок декодирования JSON.BackendLaravel Laravel htmx — это пакет Maurizio Bonani, позволяющий работать с библиотекой htmx. Эта библиотека позволяет получать доступ к современным функциям браузера непосредственно из HTML, а не с помощью JavaScript:BackendLaravel На прошлой неделе я написал в твиттере о том, как выглядят контроллеры в моих приложениях и как я вообще к ним отношусь. Этот твит быстро стал вирусным и привлёк к себе много внимания, но, к сожалению, не по тем причинам. Поэтому в этой статье я хотел бы пролить свет на то, к чему я стремился, и объяснить, каким должен быть (UI) контроллер в целом.BackendLaravel В этой статье мы поговорим о функции, используемой каждым Laravel разработчиком — dd()
. Я покажу различные творческие способы использования dd()
в наших приложениях.BackendSymfony В Symfony 6.4 добавлены новые обработчики Messenger, позволяющие запускать процессы, команды и пинговать URL-адреса.FrontendCSS Выберите оптимизированный перенос текста, для красоты, а не для скорости.FrontendCSSa11y Оптимизация и настройка под пользователей, предпочитающих непрозрачный пользовательский интерфейс.BackendSymfony В Symfony 6.4 реализованы некоторые улучшения, связанные с локалями, такие, как установка локали при отображении содержимого электронной почты и доступ к списку включённых локалей из шаблонов.DevOpsnginx Узнайте эффективные решения для устранения ошибки 503 Service Temporarily Unavailable на Nginx и обеспечения бесперебойной работы веб-сервера.BackendSymfony В Symfony 6.4 добавлены новые тестовые утверждения, связанные с селекторами CSS, компонентом HttpClient и темами электронной почты.FrontendCSS CSS — постоянно развивающийся язык. С каждой итерацией он становится все лучше и лучше. Поэтому важно следить за новейшими возможностями CSS, чтобы использовать их в своих проектах и меньше зависеть от библиотек сторонних разработчиков.FrontendCSS Для frontend-разработчика одним из самых утомительных занятий является определение свойств текстовых элементов для различных размеров экрана с помощью медиа-запроса, что приводит к созданию большого файла css. В этой статье мы расскажем как сделать тексты на сайте отзывчивыми без использования медиа-запроса, тем самым сэкономив время и место.BackendLaravel Определение чистого кода субъективно. Оно часто становится источником горячих споров между разработчиками в Интернете. В этой статье мы рассмотрим возможности Laravel, позволяющие писать меньше кода.BackendLaravel Кодирование — это весело. А вот отладка? …Не очень. Именно поэтому тестирование имеет решающее значение для успеха любого нетривиального проекта. В этой статье я покажу как легко начать тестировать свои Laravel приложения. Давайте растопим лёд раз и навсегда!BackendSymfony В Symfony 6.4 добавлена поддержка переменной среды APP_BUILD_DIR
и обновлены подогреватели кэша для получения параметра build_dir
.JavaScriptNodeJS Вы когда-нибудь сталкивались с проблемой управления различными конфигурациями в Node.js приложениях? Хотелось бы иметь централизованный и организованный способ работы с такими секретами, как ключи API и учётные данные баз данных? Не ищите дальше! На помощь приходят переменные среды. В этой статье мы погрузимся в мир переменных среды в Node.js, рассмотрим их преимущества, примеры использования и лучшие практики эффективного управления ими.FrontendCSS Каскадная таблица стилей (CSS) — это мощный язык стилей, помогающий фронтенд разработчикам оформлять обычные веб-страницы. Однако при использовании этого языка стилей можно допустить ряд ошибок мешающих писать эффективный код. В данной статье рассматриваются некоторые распространённые ошибки и предлагается решение для каждой из них.BackendLaravelEloquent Вот несколько советов и приёмов, которые я узнал на своём пути, помогающих оптимизировать запросы к базе данных в Laravel. Иногда небольшие изменения могут быть очень существенными.FrontendCSSBEM Одним из наиболее распространённых и сложных вопросов, с которыми сталкиваются фронтенд-инженеры, являются соглашения об именовании CSS. С популярностью метода Блок Элемент Модификатор (БЭМ) многие привыкли организовывать свои стили по удобной схеме.BackendSymfony В Symfony 6.4 улучшена функция выхода из системы, что избавляет от необходимости явно определять маршруты выхода из системы в своих приложениях.JavaScript Удаление свойств объекта в JavaScript — не самая интересная задача, но существует множество способов её решения, каждый из которых раскрывает фундаментальный аспект работы JavaScript. В этой статье Juan Diego Rodríguez рассматривает каждый из способов.BackendSymfony В Symfony 6.4 представлен DatePoint, заменяющий PHP-классы даты/времени, предоставляющий множество утилит, полную интеграцию с компонентом `Clock` и улучшенную обработку ошибок.BackendLaravel Одной из интересных особенностей Laravel Nova является возможность выдавать себя за пользователя прямо из панели управления. Это удобно по многим причинам, но я считаю, что когда вы получаете сообщение об ошибке или проблеме и хотите увидеть, что именно видит пользователь, выдача себя за него экономит массу времени, поскольку вы можете увидеть именно то, что видит пользователь.BackendLaravel События в Laravel — это полезное удобство программирования, позволяющее разработчику оповещать, что в программе произошло нечто значимое.JavaScript Давайте будем честными: как часто мы сталкиваемся с кодом, использующим генераторы?BackendSymfony В Symfony 6.4 можно применить атрибут контекста сериализатора ко всему классу, чтобы определить общую конфигурацию контекста для всех свойств класса.JavaScript Когда нам необходимо проверить, содержит ли объект JavaScript определённое свойство, мы можем использовать несколько методов, включая операторы JavaScript, специфические статические методы класса Object, методы экземпляра объекта, методы экземпляра массива и пользовательскую функцию JavaScript.BackendSymfony В Symfony 6.4 появились новые функции Twig для генерации относительных/абсолютных URL, необходимых для имперсонации пользователей.JavaScript Кодирование и декодирование base64 — это распространённая форма преобразования двоичного содержимого для представления его в виде безопасного для веб-приложений текста. Она широко используется для URL данных, таких как встроенные изображения.BackendSymfony В приложениях Symfony система маршрутизации требует, чтобы каждый маршрут имел имя, которое представляет собой произвольную строку, однозначно идентифицирующую маршрут. В дальнейшем это имя используется, например, при генерации URL-адресов на основе определений маршрутов.BackendLaravelEloquent В веб-приложениях могут возникать ситуации, когда необходимо разрешить пользователям удалять данные без их окончательного удаления из базы данных. Например, можно разрешить администратору удалить учётную запись другого пользователя, но при этом сохранить его данные в базе данных на случай ошибки администратора. Это позволит администратору при необходимости восстановить удалённую учётную запись. Именно в этом случае полезно мягкое удаление — soft delete.BackendSymfony В Symfony 6.4 реализована новая возможность запуска подпроцессов с той же конфигурацией, что и их родительские PHP-процессы.FrontendCSS В Интернете существует множество способов переключения между светлыми и тёмными темами. Мы можем использовать JavaScript или медиазапрос prefers-color-scheme в CSS для переключения между темами на основе системных предпочтений пользователя.BackendSymfony Такие браузеры, как Google Chrome, постепенно откажутся от поддержки сторонних файлов cookie, начиная с середины 2024 года. Альтернатива называется CHIPS, что является аббревиатурой "Cookies Having Independent Partitioned State".JavaScript Регулярные выражения могут быть пугающими, но это не так! Узнайте все необходимое о регулярных выражениях и их использовании в JavaScript.JavaScript Утечки памяти можно сравнить с утечками воды в доме: хотя небольшие капли поначалу не кажутся большой проблемой, со временем они могут нанести значительный ущерб.BackendSymfony Symfony 6.4 включает новый профилировщик команд, позволяющий собирать информацию о выполняемых командах в процессе их выполнения, чтобы впоследствии можно было отладить возникшие проблемы.JavaScript Кодировка символов — важнейший аспект разработки JavaScript как на фронтенде, так и на бэкенде. В этой статье мы рассмотрим основы кодирования символов, его важность и то, как оно влияет на отображение данных на веб-страницах. Также обсудим лучшие практики и типичные ошибки, которые помогут вам избежать проблем с кодировкой в своих проектах.Database Расширение традиционной схемы базы данных столбцами NoSQL JSON позволяет сделать схему более понятной. При её использовании база данных будет гарантировать, что все JSON-данные, хранящиеся в столбце, являются валидным JSON. Но можно ли также гарантировать наличие определённых свойств в JSON-документе?JavaScript Когда мы вступаем на путь кодирования на JavaScript, мы сталкиваемся с множеством концепций, и одной из таких интересных концепций является Композиция Функций.Database Статистические расчёты на временном интервале должны учитывать недостающие данные. Вместо того чтобы заполнять недостающие записи в приложении, можно изменить запрос, чтобы делать это напрямую.FrontendCSS Узнайте, как использовать @scope для выбора элементов только в ограниченном поддереве DOM.TypeScript TypeScript, мощная надстройка над JavaScript, завоевал популярность среди разработчиков благодаря сложной системе типизации. Он предлагает два способа определения форм данных: типы и интерфейсы. Но как сделать выбор между ними? Знание тонких различий и вариантов использования очень важно для эффективной разработки. В статье мы рассмотрим типы и интерфейсы, изучим их ключевые различия и практические случаи использования, чтобы вы могли принять взвешенное решение о том, когда использовать каждый из них.BackendPHP Value Objects/Объекты Значения — это фантастическая концепция, которую мы можем использовать для улучшения наших приложений. Они представляют собой небольшие объекты, такие как Money, DateRange, Email или Age, которые мы используем в сложных приложениях. Они являются ключевыми элементами при создании эффективного, понятного и сопровождаемого кода.TypeScript Тип never
в TypeScript очень мало обсуждается, поскольку он не так распространён и не так неизбежен, как другие типы. Начинающий пользователь TypeScript, вероятно, может игнорировать тип never
, поскольку он появляется только при работе с расширенными типами, такими как условные типы, или при чтении их загадочных сообщений об ошибках типов.Database Для значений NULL в nullable столбцах применяется определённый порядок. Поведение базы данных может быть унифицировано или изменено в соответствии с намерениями приложения путём корректировки размещения значений NULL.BackendPHP В последнее время в сообществе PHP разработчиков ведутся дебаты о преимуществах и недостатках Композиции и Наследования. В мире объектно-ориентированного программирования (ООП) существует множество мощных инструментов и концепций, каждая из которых имеет свои сильные и слабые стороны и призвана улучшить читаемость, модульность и возможность повторного использования кода.BackendPHP Массивы — удобный способ организации и передачи данных в PHP-приложениях, но стоит ли это делать? В этой статье я расскажу о минусах злоупотребления использованием ассоциативных массивов и покажу простую альтернативу этому.BackendPHP Недавно мне пришлось решать задачи, требующие знания сырых
функций PHP, таких, как итерация файлов и каталогов. По мере развития все более высоких уровней абстракции мы часто перестаём помнить, как работать на низком уровне. В реальности это имеет множество последствий, особенно с точки зрения производительности.DatabaseSecurity В большинстве приложений ресурсы адресуются в URL по числовым инкрементным идентификаторам. Злоумышленник может легко увеличить идентификатор, чтобы перебрать все записи, собирая все доступные данные. Однако это легко предотвратить.BackendPHP Обход, фильтрация и манипулирование данными с помощью итераторов в PHP. Как создавать пользовательские итераторы и фильтры.DevOps Локальные среды Laravel под Windows, такие, как Vagrant/Homestead, Laravel Sail или Laragon, могут быть очень медленными или ресурсоёмкими. Давайте создадим более нативную установку, которая работает очень хорошо! Нам удалось сократить время выполнения сложных операций с 13 с. до 1,5 с., что составляет прирост около 800%!BackendPHP Включите режим строгой типизации в PHP с помощью declare(strict_types=1). Разберём его последствия на примерах кода.FrontendCSS Я написал A Modern CSS Reset почти 4 года назад, и, да, он не слишком хорошо сохранился. Несколько дней назад я заметил, что на него снова ссылаются, и подумал, что, вероятно, это хорошая идея — опубликовать обновлённую версию.BackendLaravel В Laravel валидация форм является ключевым моментом для обеспечения безопасности и точности пользовательских данных. Компонент FormRequest упрощает эту задачу, поскольку правила валидации хранятся в специальном классе, а не в контроллере. Это также делает код более аккуратным и позволяет использовать специальные функции, связанные с запросом, такие как получение модели или изменение типа данных в поле.BackendPHPComposer Менеджер зависимостей Composer является де-факто способом управления зависимостями в PHP-проектах. Вся современная PHP-разработка немыслима без Composer. Но знаете ли вы, что с помощью Composer можно делать многое, кроме установки и обновления зависимостей?Security Frontend-приложения играют центральную роль в обеспечении бесперебойной работы пользователей. В современной взаимосвязанной сети, где широко распространены сторонние интеграции и API, обеспечение надёжной безопасности имеет первостепенное значение. Нарушение безопасности может привести к краже данных, несанкционированному доступу и ухудшению репутации бренда. В этой статье мы расскажем вам, как использовать CORS и CSP для обеспечения безопасности ваших веб-страниц.Vim Манипулируйте размеров сплитов для получения нужной площади области просмотра.DatabaseSQL Объединять данные с помощью SQL очень просто. Однако иногда очень нужны зависимые соединения, возвращающие лишь небольшое подмножество данных объединённой таблицы. С помощью LATERAL соединения знакомый для каждого цикл может быть воспроизведён в SQL.BackendLaravelEloquent В Laravel фабрики играют важную роль в генерации данных для моделей.BackendPHP Тип null является единичным типом PHP, т.е. имеет только одно значение: null. В этой статье мы рассмотрим все способы работы со значениями null в PHP.BackendLaravel Если вы только начали работать с UUID, то может возникнуть немало вопросов о них. Мы постараемся ответить на наиболее распространённые из них.DatabaseSQL В каждом приложении в какой-то момент появляются дубликаты строк. Очистка часто реализуется в логике приложения, хотя база данных может сделать это с помощью одного запроса, включающего выборку того, какие строки следует оставить.TypeScript TypeScript основывает обнаружение и определение типов на выведении типов (Type Inferences) и аннотациях типов (Type Annotations), и в этой статье мы расскажем о них, чтобы вы могли понять, когда и как их использовать.BackendLaravelEloquent Мягкое удаление записей в Laravel позволяет помечать записи как "удалённые", а не удалять их из базы данных навсегда. Это может быть невероятно полезно при работе с информацией, которую в будущем может потребоваться восстановить. К счастью, Laravel поставляется со встроенной функцией soft delete!BackendPHP Генераторы в PHP позволяют конструировать итераторы без необходимости создания всего массива. Это позволяет значительно сократить потребление памяти.BackendLaravel Laravel предлагает встроенный метод отправки электронной почты из вашего приложения с помощью фасада Mail. Этот метод требует подключения внешнего почтового сервера, например SMTP-сервера Gmail, который мы будем использовать в данной статье.BackendLaravelEloquent В Laravel очень мощный конструктор запросов. Он предлагает богатый набор методов, позволяющих легко и просто писать SQL-запросы.DevOpsnginx Являясь основой многих сайтов с высокой посещаемостью, Nginx зарекомендовал себя как надёжное, высокопроизводительное и гибкое решение для обслуживания веб-контента.FrontendCSS Соглашения об именовании CSS улучшают взаимодействие членов команды при работе над проектами, повышают сопровождаемость и масштабируемость проекта, позволяя разработчикам оптимизировать свои рабочие процессы. В этой статье мы погрузимся в мир соглашений об именовании CSS, покажем практические примеры и преимущества, которые они дают в процессе разработки.BackendLaravel Как использовать несколько баз данных в проекте Laravel и управлять разделёнными записями в базе данных.BackendLaravel Свежий релиз Laravel Sail включает поддержку Bun, быстрой универсальной среды выполнения JavaScript. Узнайте, как начать использовать Bun в своих проектах Laravel уже сегодня.JavaScript Новый View Transitions API предлагает более простой способ анимации между двумя состояниями DOM — даже между загрузками страницы. Это прогрессивное усовершенствование, работающее уже сегодня.BackendPHPFrontendJavaScript Насладитесь быстрым процессом создания зависимостей front-end в ваших PHP-проектах благодаря возможностям управления пакетами Bun.BackendLaravelEloquent Если вы хотите избежать хранения конфиденциальных данных БД (например, номеров паспортов) в виде обычного текста, Laravel может зашифровать их в Моделях Eloquent, просто присвоив им значение encrypted
. Давайте посмотрим, как это работает.BackendLaravel Если вы попытаетесь использовать Livewire 3 со стартовым набором Laravel Breeze, то можете заметить, что ваши компоненты не реагируют на реакцию, а некоторые функции Livewire просто не работают. Причиной может быть Alpine.js, который загружается дважды. Сейчас я покажу вам, как это исправить.BackendLaravelEloquent В Laravel после вставки данных в таблицу базы данных может потребоваться получить ID последней вставленной после создания записи. Этот идентификатор необходим для решения различных задач, таких как перенаправление пользователей на вновь созданный ресурс или выполнение дальнейших операций.BackendLaravel Овладейте искусством создания RESTful API с Laravel благодаря этим лучшим практикам.JavaScript С появлением ES6 итераторы и генераторы были официально добавлены в JavaScript.FrontendCSS CSS развивается быстрее, чем когда-либо. С учётом всех новых возможностей, которые появились — и ещё появятся — после появления Flexbox и Grid несколько лет назад, меняется и способ написания CSS. В этой статье Geoff Graham рассказывает о том, какие функции оказали наибольшее влияние на его нынешние подходы к CSS, а также о тех, которые не оказали (по крайней мере, пока).BackendLaravel В Laravel v10.20 появился совершенно новый метод createOrFirst()
, созданный Tony Messias, который может вызвать некоторое недоумение, поскольку в Laravel уже был метод firstOrCreate()
. В чем же заключаются различия? Зачем нам нужны два метода? Давайте посмотрим...BackendLaravel Паттерн Pending Object играет ключевую роль в Laravel, поскольку используется практически во всех его аспектах. Он обеспечивает исключительный опыт разработчика (DX).FrontendCSS Сдвиги макета CSS означают неожиданное перемещение (или сдвиг) элементов в макете веб-страницы в процессе рендеринга. Это происходит при изменении размеров или положения элементов, что приводит к перетеканию или смещению содержимого на странице. Сдвиги макета могут привести к ухудшению пользовательского интерфейса, так как перемещение может нарушить взаимодействие с пользователем или затруднить чтение, или доступ к содержимому.Vim Для сохранения баланса размера сплитов, используйте команду выравнивания размеров сплитов Ctrl+w =.FrontendCSS Пользовательские свойства CSS, известные как переменные, — это мощная функция, позволяющая разработчикам определять многократно используемые значения в таблицах стилей. Использование пользовательских свойств позволяет значительно повысить удобство повторного использования и сопровождения кода, а также создавать динамические стили для своих веб-проектов. Цель данной статьи — всесторонне объяснить пользовательские свойства CSS и их применение с помощью функции var
.JavaScript Современные веб-пользователи ожидают от одностраничных приложений (SPA) плавных и динамичных эффектов. Однако для создания SPA часто используются сложные фреймворки, такие, как React и Angular, которые могут быть сложны для изучения и работы с ними. Появилась htmx — библиотека, позволяющая по-новому взглянуть на создание динамических веб-приложений, используя такие возможности, как Ajax и CSS-переходы, непосредственно в HTML.JavaScript В этой статье мы рассмотрим практические методы оптимизации JavaScript-файлов, способы решения проблем производительности, связанных с JavaScript-файлами, а также инструменты, помогающие в процессе оптимизации. Вы получите знания, позволяющие повысить скорость работы веб-приложений и обеспечить бесперебойную работу пользователей.FrontendJavaScriptCSSHTML В Интернете пагинация — это способ разбиения больших фрагментов содержимого на более мелкие части. В этой статье мы рассмотрим простой способ разделения содержимого на ряд "страниц" с помощью HTML, CSS и обычного JavaScript.JavaScript Ознакомьтесь с конкретными ситуациями, в которых регулярные выражения оказываются оптимальным решение проблемы.BackendPHP Сериализация — это процесс, в котором принимается часть данных и создаётся хранимое или переносимое представление этих данных.JavaScript Ленивая загрузка — это метод, позволяющий отложить загрузку несущественного содержимого до того момента, когда оно станет необходимым для просмотра пользователем. В отличие от других методов загрузки, при которых все объекты сайта загружаются одновременно при доступе к странице, при ленивой загрузке используется более расчётливый подход. Она откладывает отображение некоторых элементов, таких как изображения, видео и другие мультимедиа, до тех пор, пока пользователь не начнёт активно взаимодействовать с веб-страницей. В этой статье мы расскажем вам, как использовать эту технологию, чтобы пользователи получали больше удовольствия от работы с вашим сайтом.FrontendCSS Рефакторинг кодовой базы должен привести к аналогичной или повышенной производительности и улучшению состояния кодовой базы. В конце концов, если развёртывание обновлённой базы вызовет проблемы с загрузкой или производительностью, это приведёт к снижению трафика и доходов. К счастью, существует множество методов оптимизации, которые можно применить для решения потенциальных проблем с размером файлов и производительностью.BackendLaravelEloquent Sushi — это недостающий драйвер массивов
Eloquent, поскольку иногда хочется использовать Eloquent без работы с базой данных.JavaScript Четыре новых метода Array.prototype
были недавно утверждены в рамках ECMAScript 2023. О том, как их использовать, читайте в этом подробном руководстве.DevOps Иногда возникают ошибки шлюзов, обычно "502 Bad Gateway" или "504 Gateway Timeout". Nginx возвращает эти ошибки, когда посылает запрос PHP, а PHP возвращает ошибку, говорящую, что он не может обработать запрос. Как правило, это НЕ ошибки, возникающие в приложении, а ошибки, возникающие до того.BackendPHP Погрузитесь в это увлекательное руководство по рефакторингу фрагмента кода с использованием функции max
в PHP.BackendLaravel Laravel 11 будет выпущен 12 марта 2024 года. Его разработка продолжается до сих пор. Давайте рассмотрим все значимые новые возможности, о которых мы уже знаем.BackendLaravel Обеспечение безопасности приложения Laravel: защита конфиденциальных файлов, обновление пакетов и Laravel, использование политик, проверка вводимых данных и многое другое.BackendLaravel Хеширование и шифрование — важнейшие концепции безопасности, о которых должен знать каждый веб-разработчик. В этой статье мы рассмотрим, что такое хеширование и шифрование, в чем разница между ними и как их использовать в своих приложениях Laravel.FrontendCSS Логические свойства CSS — эффективный способ управления макетом веб-страниц. С течением времени CSS развивался в соответствии с требованиями современного веб-дизайна, и одним из значительных достижений последних лет стало появление логических свойств CSS. В этой статье мы познакомимся с логическими свойствами CSS, покажем, что они собой представляют, чем отличаются от традиционных (физических) свойств и почему они важны для создания гибких и отзывчивых макетов.Security SameSite — это механизм защиты браузера, определяющий, когда файлы cookie сайта включаются в запросы, поступающие с других сайтов. Ограничения на использование файлов cookie SameSite обеспечивают частичную защиту от различных межсайтовых атак, включая CSRF, межсайтовые утечки и некоторые CORS-эксплойты.FrontendCSS z-index
— свойство, используемое для управления порядком расположения слоёв в документе. Элементы с большим значением z-index
располагаются над элементами с меньшим значением. Подобно тому, как оси x и y на странице определяют расположение элементов по горизонтали и вертикали, z-index
определяет, как они располагаются друг над другом по оси z.FrontendCSS В этой статье мы подробно рассмотрим сам процесс рефакторинга, стратегию инкрементного рефакторинга, визуальное регрессионное тестирование и сопровождение отрефакторенной кодовой базы.BackendLaravel Иногда требуется добавить данные в Request или изменить их перед валидацией. В Laravel для этого есть несколько трюков — метод merge()
.FrontendCSS Рефакторинг CSS — задача не из лёгких: его нужно провести так, чтобы не создать проблем. Сначала необходимо проанализировать существующую кодовую базу, провести аудит состояния CSS-кодовой базы, выявить слабые места, согласовать подход и убедить руководство в необходимости вложения времени и ресурсов в этот процесс.JavaScript Ещё в 2015 году была представлена революционная версия ES6 с множеством функций, широко используемых в современной веб-разработке.FrontendCSS Контейнерные запросы CSS — интересное дополнение к миру CSS. В этой статье мы дадим вам базовое представление о контейнерных запросах CSS и о том, как они работают.JavaScript В этой статье перечислены 10 лучших соглашений об именовании JavaScript, которые должен знать каждый разработчик JavaScript, чтобы писать код, понятный остальным разработчикам.JavaScript Сравнение объектов в JavaScript не так просто, как сравнение примитивных типов данных. В статье рассматриваются пять способов глубокого сравнения объектов в JS.FrontendCSSSCSSSass Миксины SCSS обеспечивают эффективный способ повторного использования CSS-кода. Миксины уменьшают дублирование и улучшают структуру кода за счёт инкапсуляции стилей в блоки многократного использования. Благодаря возможности принимать аргументы, миксины становятся невероятно адаптивными и универсальными. В этой статье мы расскажем о том, как SCSS-миксины улучшают разработку фронтенда, способствуя модульности и согласованности кода, и упрощая написание CSS.DevOps Всесторонний анализ и сравнение лучшего программного обеспечения для веб-серверов. Найдите оптимальное серверное решение, соответствующее именно вашим потребностям в хостинге.DevOps Веб-мастерам и администраторам серверов крайне важно быть в курсе новейших протоколов и технологий. Одной из таких технологий является Transport Layer Security (сокращённо — TLS) 1.3 — последняя версия протокола, обеспечивающего безопасное взаимодействие в компьютерной сети.JavaScriptNodeJS Рассмотрим, как работать с модулями в Node.js, уделяя особое внимание их экспорту и использованию, а также объясняя разницу между module.exports и exports.BackendLaravel Узнайте, как можно использовать WebSockets и Pusher для добавления функциональности реального времени в приложения Laravel.BackendLaravel Недавно Тейлор выложил бета-версию Laravel Folio на YouTube в видеоролике с ключевой конференции Laracon. В настоящее время документация состоит только из файла readme, что отражает простоту пакета. Благодаря своей простоте мы можем легко догадаться о его внутреннем устройстве. Я решил углубиться в эту тему, и в этой статье мы отправимся на поиски его внутренних механизмов.TypeScript Исследуем тип Record в TypeScript, чтобы лучше понять, как он работает. Также рассмотрим примеры его использования, например, использование с дженериками.BackendPHP PHP предоставляет функции parse_ini_string
и parse_ini_file
, которые повторно используют встроенный в PHP синтаксический анализатор, применяемый для собственных конфигурационных файлов PHP на основе INI.BackendLaravelEloquent Как очистить базу данных удалив ненужные данные с помощью встроенной функции Laravel для повышения производительности запросовBackendPHP PHP-функция class_alias()
может создавать псевдоним для заданного класса. Псевдоним ведёт себя точно так же, как и оригинальный класс.FrontendCSS В этой статье мы рассмотрим несколько способов стилизации скроллбара в CSS, в разных браузерах, чтобы вы могли настроить скроллбар по умолчанию в соответствии с вашим брендом или дизайном.BackendPHP В CLI PHP предусмотрена функция линтинга, которая проверяет переданное имя файла на наличие синтаксических ошибок. Это удобно для быстрой проверки PHP-файла или фрагмента перед выполнением.DevOps Для разработчика важно иметь твёрдое представление, что такое интернет и как он работает. Это фундамент, на котором строится большинство современных программных приложений. Чтобы создавать эффективные, безопасные и масштабируемые приложения и сервисы, необходимо хорошо понимать, как работает интернет и как использовать его возможности и связи.BackendPHP PHP поддерживает замену значений PHP INI на переменные окружения с помощью синтаксиса строковой интерполяции PHP. Если указанная переменная окружения недоступна, парсер INI использует пустую строку. В PHP 8.3 этот синтаксис расширен для поддержки объявления запасного/fallback значения, если переменная окружения не установлена.FrontendCSS Со свойствами фона CSS можно сделать очень многое. В этой статье мы рассмотрим, как использовать свойство background-size
для установки размера фонового изображения, а также изучим варианты позиционирования фонового изображения с помощью background-position
.DevOps Если вы читаете эту статью, то, скорее всего, вы использовали систему доменных имён (DNS), даже не подозревая об этом. DNS — фундаментальная часть интернета, которая позволяет нам получать доступ к веб-сайтам и онлайн-услугам, используя вместо цифровых адресов удобные для человека имена. Но как именно она работает? В этой статье я расскажу об основах DNS и о том, как она помогает нам ориентироваться в Интернете.DevOps Сетевое взаимодействие — это основа современных технологий, необходимая для подключения устройств и служб. В этой статье вы узнаете о ключевых понятиях, терминологии и протоколах, которые используются в сетевых технологиях.BackendLaravel В Laravel валидация возвращает ошибку в виде JSON-ответа с сообщениями об ошибке в строгом стандартном формате. Что делать, если вы хотите изменить его на совершенно другую структуру, потому что ваши фронтендеры запрашивают определённые пары ключ-значение?TypeScript Все, что вам нужно знать о TypeScript, в одной удобной шпаргалкеDevOps SSH (Secure Shell) — широко распространённый протокол для безопасного удалённого доступа и управления Linux-серверами. По умолчанию SSH прослушивает порт 22. Изменение порта SSH по умолчанию может обеспечить дополнительный уровень безопасности сервера, затруднив проведение автоматизированных атак или сканирования.BackendLaravel В этом руководстве мы познакомимся с основами Livewire 3, Volt и Folio и создадим простое приложение, в котором будут отображаться эпизоды подкаста Laravel News.TypeScript В TypeScript объект Array поставляется с различными методами, облегчающими работу с массивами, включая метод flatmap().DevOps Мониторинг входов в SSH на Linux-сервере очень важен для обеспечения безопасности системы. Одним из способов информирования об активности входа в систему является настройка оповещений по электронной почте при каждом входе в систему через SSH. В этом руководстве мы покажем Вам, как настроить сервер Linux на отправку уведомлений по электронной почте при входе в систему по протоколу SSH.BackendLaravel Если на сайте представлены документы с большим объёмом текста, например, PDF-файлы, то часто возникает необходимость предоставить пользователям возможность перечисления и поиска в содержимом этих документов.TypeScript TypeScript использует некоторые встроенные операторы JavaScript, такие, как typeof
, instanceof
и оператор in
, которые используются для определения того, содержит ли объект свойство.FrontendCSS Бывают случаи, когда действительно необходимо поддерживать определённое соотношение между шириной и высотой отзывчивых элементов на веб-странице. Долгое время это можно было сделать с помощью различных CSS-трюков. Свойство CSS aspect-ratio
изменило ситуацию: теперь мы можем задавать соотношение сторон элемента в одной строке кода. Давайте рассмотрим, как использовать свойство aspect-ratio
.BackendLaravel Одним из удобных способов информирования пользователей о ваших материалах является создание RSS-канала. Это позволит им подписываться на него с помощью программы чтения RSS. Усилия, затраченные на реализацию этой функции, стоят того, чтобы принять во внимание, поскольку у сайта появится ещё один канал распространения контента.TypeScript Узнайте, как работают фильтры TypeScript, включая фильтры массивов и типов значений, а также как использовать и избегать проблем с защитой типов.BackendLaravelTesting Узнайте, как тестировать правила валидации Laravel с помощью Pest PHP.FrontendCSS В этой статье мы рассмотрим некоторые CSS трюки, которые позволят создать анимацию наведения для раскрытия наших изображений.BackendLaravel Выпуск Laravel 11 запланирован на 12 марта 2024 года, но давайте рассмотрим некоторые из анонсированных новых возможностей.BackendLaravel В этой статье мы покажем вам четыре способа включения файла CSS в проект Laravel, включая прямое подключение из каталога /public, URL CDN, использование Vite и Laravel Mix.BackendLaravel Как легко предотвратить уязвимые действия в вашем Laravel приложении.JavaScript Сегодня мы поговорим о том, как управлять слушателями событий, когда у вас есть несколько сценариев, которые слушают одно и то же событие.BackendLaravel Laravel Folio — новая система автоматической маршрутизации на основе файлов и каталогов. В результате вы получаете каталог страниц; когда на одну из этих страниц попадает URL, она автоматически загружается.BackendLaravel Laravel предоставляет способ аннулирования и выхода
из сеансов активного пользователя на других устройствах без аннулирования сеанса на текущем устройстве.BackendLaravel Использование CSRF-токенов добавляет дополнительный уровень безопасности, подтверждая, что запрос исходит от того же приложения, а не от вредоносного источника. Laravel обеспечивает встроенную защиту от CSRF-атак путём генерации и проверки CSRF-токенов.JavaScript В этой статье мы рассмотрим готовящееся предложение Record / Tuple. Как их создавать, зачем их использовать и чем они отличаются от обычных объектов и массивов?BackendLaravelEloquent Хранение данных JSON в базе данных Laravel обеспечивает гибкое решение для управления динамическими атрибутами или неструктурированными данными.Frontend Существуют различные способы использования веб-хранилищ в веб-приложениях. Front-end разработчики используют современный браузерный API веб-хранилища для создания более персонализированных, эффективных и отзывчивых веб-сайтов. В этой статье мы рассмотрим множество примеров использования, которые помогут вам создавать привлекательные веб-приложения.BackendLaravelEloquent Отношения One-to-Many
— это наиболее распространённый тип отношений, используемый в Laravel Eloquent и ORM в целом.BackendSymfony Symfony 6.4 и Symfony 7.0 будут выпущены одновременно в конце ноября 2023 года. В этой статье рассказывается об их различиях и о том, как выбрать оптимальную версию для своих проектов.BackendLaravel Калеб Порцио, выступая на конференции Laracon, только что выпустил официальную бета-версию Livewire v3! В своём выступлении он продемонстрировал множество новых возможностей, некоторые из которых мы рассмотрим здесь.JavaScriptNodeJS Вы знаете в чём разница между exports и module.exports в Node.js?DevOps Узнайте всё, что нужно знать о HTTP протоколе, на котором работает вся сеть.JavaScript Вчера мы рассмотрели, как определить, когда элемент входит или выходит из области просмотра. Сегодня мы познакомимся с некоторыми подробностями, которые можно получить об этих элементах из объекта IntersectionObserverEntry.BackendLaravel В этом руководстве вы узнаете, как использовать фасад Laravel Process, построенный на основе высокоэффективного компонента Symfony Process, для выполнения команд вне среды Laravel.JavaScript API Intersection Observer можно использовать для наблюдения за элементом и запуска функции обратного вызова, когда он входит или выходит из области просмотра (или из другого элемента).DevOps Объясняем, как установить MySQL 8 сервер на Ubuntu linux 22.04 LTS с помощью APT, создать пользователей, базу данных и настроить сервер.JavaScript Во второй части цикла Кирилл рассматривает полезность примитивных объектов, изучая, как уменьшение их возможностей может быть полезно для вашего проекта.FrontendCSSBEM Следование CSS методологии гарантирует, что все, кто участвует в процессе разработки, говорят на одном языке. БЭМ и SMACSS отличаются друг от друга, но имеют ряд уникальных преимуществ.BackendLaravel Из этого руководства вы узнаете, как использовать возможности Laravel CORS. Узнайте, что это такое, и раскройте его потенциал для беспрепятственного совместного использования ресурсов из разных источников.BackendLaravel В этой статье вы узнаете о некоторых важных возможностях, которые появятся в Laravel Livewire v3.BackendPHP PHP постоянно развивается, и важно быть в курсе последних функций и улучшений. В этой статье представлены 20 функций PHP, которые вы должны знать в 2023 году, каждая из которых проиллюстрирована удобным примером кода.FrontendCSSHTML В современном цифровом ландшафте подход, ориентированный на мобильные решения (mobile-first), приобрёл большое значение в веб-дизайне и разработке. Применяя подход mobile-first в HTML и CSS, вы отдаёте приоритет потребностям мобильных пользователей и обеспечиваете бесперебойную и увлекательную работу вашего сайта на небольших экранах. В этой статье мы расскажем о принципах и преимуществах mobile-first
дизайна и реализации конкретных стратегий в HTML и CSS, чтобы вы могли применить эту методику.FrontendCSS Мы изучим различные подходы к сокрытию элементов веб-страниц с помощью CSS и оценим их производительность.FrontendCSS В статье объясняется и демонстрируется, как использовать два CSS свойства, которые могут помочь при создании отзывчивых макетов — object-fit и object-position.TypeScript Пакет ts-reset решат ряд проблем с типами в TypeScript, подобно кнопке сброса CSS, чтобы избежать ошибок, вызванных ошибками типов.BackendLaravel Одна из типичных проблем с пагинацией возникает, если у вас на странице есть несколько фильтров с GET-параметрами. Как сделать так, чтобы они не исчезали, когда пользователь переходит на страницу /?page=2?
FrontendCSS Предварительная фильтрация набора дочерних элементов перед применением c к ним логики An+B.BackendPHP Давайте улучшим ваш код с помощью более безопасного способа программирования с использованием перечислений PHP, или enum. В этой статье вы узнаете о них всё, что нужно.FrontendCSS Одна из наших любимых функций CSS препроцессора теперь встроена в CSS: вложения правил стиля.BackendLaravel Когда речь идёт об аутентификации в Laravel, существует множество вариантов. Но что использовать, когда речь идёт об аутентификации вашего API?BackendPHP Давайте создадим крошечный движок шаблонов для PHP! Эта статья будет посвящена рендерингу шаблона и отображению данных, которые можно экранировать с помощью htmlspecialchars()
.FrontendCSS В этой статье я расскажу о том, как лучше всего использовать CSS медиа-запросы для достижения отзывчивости сайта.BackendLaravel Для переноса легаси PHP приложения на Laravel, вероятно, потребуется кастомный драйвер хэширования.FrontendCSS В постоянно развивающемся мире веб-разработки, где CSS является ключевым элементом стиля, освоение техники рефакторинга CSS имеет решающее значение для создания эффективных и удобных в обслуживании таблиц стилей. Рефакторинг CSS позволяет оптимизировать код, устранить избыточность и повысить общее качество кода. Применение правильных техник может превратить запутанные таблицы стилей в хорошо организованный, модульный и легко обслуживаемый код. В этой статье мы расскажем вам о техниках рефакторинга CSS.Vim Узнайте как изменить регистр текста внутри шаблона при замене в Vim.DevOps URL-адреса встречаются повсюду. Мы используем их для доступа к веб-сайтам, отправки электронной почты, загрузки файлов и многого другого. Но что такое URL и как он работает? В этой статье мы рассмотрим анатомию URL, различные типы URL, способы кодирования и декодирования URL, разработку и отладку URL, а также некоторые советы по безопасности при использовании URL.Vim Используйте этот трюк для быстрого поиска и замены.DevOpsdockerPostgreSQL В этой статье мы расскажем, как установить и запустить PostgreSQL с помощью Docker. Мы не будем вдаваться в подробности установки Docker, поэтому убедитесь, что он установлен и запущен в вашей системе.Vim Ищите быстрее в Vim благодаря улучшенному рабочему процессу.FrontendHTMLa11y Если вы новичок в веб-разработке, то, возможно, слышали термин "Семантический HTML" и задавались вопросом, что он означает. Проще говоря, Семантический HTML — это использование разметки HTML для передачи смысла содержимого веб-страницы, а не только её внешнего вида.JavaScript Наследование в объектно-ориентированном программировании (ООП) JavaScript — фундаментальная концепция, которая развивалась с течением времени, и в этой статье мы покажем, как она работает и как её использовать.JavaScript В первой части серии Кирилл Мышкин рассказывает о некоторых аспектах JavaScript, помогающих приблизить объекты к примитивным значениям, что позволяет воспользоваться общими возможностями языка, которые обычно не ассоциируются с объектом, такими как сравнение и арифметические операторы.Vim В Vim есть несколько способов повторить последнюю замену.TypeScript Функции-генераторы выглядят как обычные функции, но ведут себя немного иначе, позволяя приостановить и выполнить код в более поздний момент времени.BackendLaravel Итак, чуть более двух лет назад я написал руководство о том, как работать со сторонними сервисами в Laravel. На сегодня это самая посещаемая страниц на моём сайте. Однако за последние два года всё изменилось, и я решил снова обратиться к этой теме.Vim Вы знаете быстрый способ подсчитать количество совпадений в тексте с шаблоном при помощи простого трюка Vim?GitTools Все, что вам нужно знать, в одной удобной шпаргалкеBackendLaravel Мы, как программисты, должны уметь разбивать большие и сложные задачи на более мелкие и простые в управлении фрагменты. Однако иногда оказывается, что с некоторыми из тех небольших повторяющихся фрагментов кода, которые мы извлекли, чтобы уменьшить дублирование (или по какой-то другой причине), приходится взаимодействовать по-разному в зависимости от некоторого внешнего контекста.JavaScript Один из моих любимых трюков
ванильного JS заключается в том, что можно передать несколько селекторов в такие методы селектора JavaScript, как Element.querySelector()
, Element.querySelectorAll()
, Element.closest()
и Element.matches()
.BackendLaravel При разработке в Laravel обращение к значениям конфигурации и конфиденциальной информации из файла .env — обычное дело. В этой статье мы рассмотрим важность использования вспомогательной функции config()
и почему при чтении значений следует избегать использования вспомогательной функции env()
.BackendLaravel Одной из распространённых проблем при переносе легаси PHP-приложения на Laravel является создание миграции базы данных на основе существующей базы данных.FrontendSass Написание CSS имеет решающее значение для создания красивых и функциональных веб-сайтов, но управление CSS может стать сложной задачей по мере роста размеров и сложности сайтов. Вот тут-то и появляются препроцессоры CSS, такие, как Sass. В этой статье вы познакомитесь с Sass и узнаете, как он может упростить рабочий процесс и помочь писать более эффективный и удобный код.TypeScript Дженерики играют решающую роль в программировании, поскольку они позволяют создавать типобезопасные функции без предварительного указания точного типа, но допуская ограничения и проверки типов программистом. В этой статье представлена концепция дженериков, перечислены их преимущества и показано, как их использовать.BackendLaravel Laravel стал одним из самых популярных PHP фреймворков благодаря своим обширным функциям, простоте использования и удобочитаемости. Это отличный выбор для веб-разработчиков, стремящихся создавать надёжные и масштабируемые приложения. Если вы всё ещё сомневаетесь, стоит ли делать решительный шаг, вот три веские причины изучить Laravel.BackendLaravel При проверке форм или API запросов иногда правило для одного поля зависит от значений других полей. В этой статье я покажу четыре различных примера синтаксиса Laravel для достижения этой цели.FrontendCSS Контейнерные запросы позволяют стилизовать элементы в зависимости от доступного пространства. Они позволяют создавать устойчивые адаптивные компоненты.FrontendCSS Узнайте, как Flexbox и Grid позволяют создавать плавно реагирующие макетные сетки без медиа-запросов.DevOpsSecurity Протокол защиты транспортного уровня (TLS) шифрует данные, отправляемые через Интернет, чтобы гарантировать, что перехватчики и хакеры не смогут увидеть, что вы передаёте, что особенно полезно для личной и конфиденциальной информации, такой как пароли, номера кредитных карт и личная переписка. В этой статье объясняется, что такое TLS, как он работает и почему его следует использовать.BackendPHP В PHP 8.3 появилась новая функция: атрибут #[Override]
. Эта функция уже известна в других языках, но позвольте мне объяснить, если вы не знаете, что она делает.JavaScript Сегодня я хотел бы поговорить о том, как обрабатывать вложенные элементы с делегированием событий.DevOpsSQL В этой статье мы рассмотрим, как SQL запросы выполняются механизмом базы данных и как использовать эти знания для оптимизации запросов для повышения производительности и точности.JavaScript Освойте оператор switch: более организованную и лаконичную альтернативу использования нескольких операторов if-elseDevOpsGraphQL В этой статье мы ответим на десять часто задаваемых вопросов о GraphQL, включая разбиение на страницы, управления версиями GraphQL, пакетную загрузку, обработку кэша, загрузку файлов и многое другое.BackendPHP Изучите основы использования часовых поясов в PHP и как сделать лучший выбор из набора функций предлагаемых PHP.TypeScriptJavaScript Цель этой статьи — провести всестороннее сравнение TypeScript и JavaScript, чтобы помочь веб-разработчикам принять обоснованное решение о том, какой язык использовать для проектов.BackendLaravel Добавление пользователя администратора на сайт в продакшене — одна из самых распространённых вещей, которые делаются при первом развёртывание Laravel проекта на сервере. В этой статье я покажу два способа сделать это.SEOFrontend Вы создали замечательный веб-сайт, но как сделать так, чтобы люди могли найти его через поисковые системы? В этой статье мы рассмотрим 10 лучших рекомендаций, чтобы ваша статья не только выделялась, но и хорошо ранжировалась в поисковых системах.BackendPHP В этой мини статье вы узнаете, как создать сервис контейнер для внедрения зависимостей в PHP. Я начну с самого простого контейнера, совместимого с PSR-11, а затем добавлю различные функции, пока у нас не получиться мощный контейнер общего назначения.SSGJAMStack Генераторы статических сайтов (SSGs) популярны и предлагают множество преимуществ, но в этой статье обсуждаются причины, по которым они могут быть неподходящей заменой вашей системе управления контентом (CMS).SSGJAMStack Является ли CSM излишней для вашего следующего приложения? Может ли генератор статических сайтов улучшить производительность, управление и безопасность? Узнайте о преимуществах использования SSG.FrontendCSSBEM Чистый и организованный код имеет решающее значение в современных веб-проектах, и разработчики постоянно ищут способы улучшить удобство сопровождения и организации кода. К счастью, для достижения этой цели существуют различные методы, включая популярную методологию Блок Элемент Модификатор (БЭМ), и в этой статье объясняется, как работает БЭМ и почему вы должны начать его применять.FrontendCSS Новые viewport единицы измерения — интригующая и мощная функция, которую рассматривают для включения в CSS, и эта статья поможет узнать о них и о том, как ими пользоваться.JavaScript Несмотря на то, что тысячи статей об async/await и Promise уже существуют, многие из них оставляют желать лучшего. Поэтому хочу написать свою статью на эту тему.BackendPHP Давайте разберёмся почему возникает ошибка 'Using $this when not in object context' и как её исправить.BackendLaravel Погрузитесь в историю Laravel. Если вы отдалились от Laravel, это подходящее место, чтобы возобновить своё путешествие.BackendPHP Первый альфа-релиз PHP 8.3 уже отмечен и доступен для загрузки и тестирования.BackendLaravel Middleware не является чем-то новым, мы уже давно используем его для различных целей в наших приложениях, от аутентификации до авторизации и не только.BackendLaravelSecurity В этой статье мы рассмотрим, что такое CSP и что он даёт. Затем рассмотрим, как использовать пакет для добавления CSP в Laravel приложении. Также кратко рассмотрим несколько советов по упрощению добавления CSP в существующее приложение.Security В этой статье мы объясним что такое кликджекинг, опишем распространённые примеры атак кликджекинга и обсудим, как защититься от этих атак.Security В этой статье мы рассмотрим внедрение висячей разметки, как работает типичный эксплойт и как предотвратить атаки висячей разметки.Vim Рано или поздно вы заметите, что когда редактируете файлы, Vim создаёт файлы с именами вроде .filename.swp в том же месте, что и редактируемый файл. Эти файлы называются файлами подкачки.Security В этой статье мы разберёмся, что такое слепая SQL-инъекция, объясним различные методы поиска и эксплуатации слепых SQL-инъекций.BackendPHP Файберы представленные в PHP представляют собой элегантный способ имитации параллельной работы. Узнайте больше о том, чем они отличаются от потоков и сопрограмм.BackendSymfony Вышел Symfony 6.3. Как и для любого другого выпуска Symfony, наше обещание обратной совместимости применимо, и это означает, что вы сможете легко обновиться до версии 6.3, ничего не меняя в коде.BackendSymfony Symfony 6.3 включает новый компонент Scheduler тесно интегрирующийся с компонентом Messenger для создания сообщений, которые должны обрабатываться несколько раз по заранее определённому расписанию.BackendLaravel За последний год подход, основанный на action классах, набирает популярность в мире Laravel. Я принял его довольно рано и был большим поклонником этого подхода.BackendLaravel Прочтите о разных подходах, которые можно использовать для получения аутентифицированного пользователя в Laravel проектах. В этой статье рассматривается результат проведённого в Twitter опроса.BackendSymfony Symfony 6.3 обеспечивает полную интеграцию веб-хуков c Mailer и Notifier для абстрагирования от различий в обработке веб-хуков сторонних сервисов.BackendLaravel Laravel — популярный PHP-фреймворк обеспечивающий простой и элегантный способ создания веб-приложений. Одной из особенностей выделяющих Laravel, является его мощная и гибкая система ведения логов/логирование.DevOpsPHPLaravelBackend Если вы запускаете приложения PHP/Laravel в продакшене, есть большая вероятность, что вы используете некоторые из этих вещей:CGI, FastCGI, php-fpm, nginx и Laravel. Как разработчик, я считаю важным понимать хотя бы основы этих компонентов. Итак, давайте разбираться.BackendLaravelSecurity Давайте углубимся и рассмотрим десять наиболее распространённых проблем безопасности, которые я обнаружил во время своих аудитов безопасности Laravel приложений.BackendSymfony Symfony 6.3 включает новый компонент AssetMapper с полной поддержкой карт импорта в качестве альтернативы Webpack Encore.BackendSymfony В Symfony 6.3 улучшен компонент Dependency Injection, добавлена поддержка автоподключения сервисов в виде замыканий и вызываемых методов, генерация адаптеров для функциональных интерфейсов.BackendLaravel Laravel — популярный PHP-фреймворк широко используемый в веб-разработке. Он поставляется со встроенной системой авторизации позволяющей определять контроль доступа для разных пользователей и ролей. Двумя основными компонентами системы авторизации Laravel являются Gate и Policy. В этой статье мы рассмотрим концепцию Gate и Policy Laravel и то, как использовать их для защиты веб-приложений.BackendLaravel Я использовал Google Analytics в течение нескольких лет, и она работала хорошо. Возникает вопрос, зачем я написал свой пакет аналитики.BackendLaravel Как уменьшить количество багов, сделать личную и командную работу более эффективной и улучшить качество кода в целом — Объект-Значение один из подходов для достижения этого.BackendLaravel После профилирования сервис контейнера я узнал, что Laravel приложение создаёт десятки тысяч объектов, которые ему не нужны.FrontendCSS Шпаргалка по CSS селекторам. С подсказками, как выбирать HTML элементы по классу, имени, атрибутам и списку дочерних селекторов.FrontendCSS В дополнение к математическим функциям CSS были добавлены тригонометрические функции sin(), cos(), tan(), asin(), acos(), atan() и atan2(). Эти функции определены в модуле Значения и единицы измерения CSS уровня 4
и доступны во всех браузерах.BackendLaravel Laravel — это популярный фреймворк, который обеспечивает простой и элегантный способ создания веб-приложений. Одной из особенностей, которая выделяет Laravel, является встроенная система обработки ошибок и исключений. В этой статье мы рассмотрим некоторые советы и рекомендации по эффективной обработке исключений в Laravel.BackendSymfony Symfony 6.3 улучшает ограничение Cascade, позволяя обрезать XML параметры, устанавливать службы в тестовом контейнере и улучшает обработку сигналов Console.BackendPHP Прочтите о разнице между замыканиями и стрелочными функциями в PHP. В этой статье рассказывается, что они из себя представляют, чем отличаются, и как вы можете использовать их в своём коде.BackendSymfony Symfony 6.3 улучшает профилировщик с лучшей доступностью, динамическими иконками и кликабельными путями шаблона.DevOpsDatabase Удаление сотен тысяч строк происходит медленно, влияет на производительность и не освобождает выделенное место на диске. Используя секционирование, вы можете сделать это очень быстро, освободив место на диске.BackendSymfony Symfony 6.3 добавляет новые интеграции Notifier для Twitter, Mastodon, LINE, Pushover, PagerDuty и других.BackendSymfony Symfony 6.3 будет включать улучшения DX, такие, как обнаружение невидимых символов в VarDumper, улучшенный дамп YAML дат, параметры сборки сервис контейнера и потоковые JSON ответы.BackendLaravelSecurity В этой статье я покажу как настроить заголовки Content Security Policy с помощью Laravel и Vite. Предполагается, что у вас есть некоторый опыт работы с Laravel и Vite.BackendPHP Прочитайте о том, как вы можете использовать declare(strict_types=1)
для повышения безопасности типов PHP-кода. Мы обсудим, как сделать код более надёжным и избежать принудительного приведения типов, что может привести к ошибкам.BackendSymfony Symfony 6.3 улучшает HTTP-клиент с новым JsonMockResponse, множественными повторными URI, дополнительными настраиваемыми параметрами, улучшениями загрузки файлов и поддержкой шаблонов URI.BackendLaravel Если вы хотите добавить индекс в Laravel миграции и не уверены, существует ли этот индекс, как убедиться, что при выполнении миграции не возникнет ошибок?BackendPython В этом руководстве вы узнаете, когда и ка использовать строку shebang в скриптах Python для их исполнения из Unix-подобной оболочки.Vim Используйте :wa или :qa, чтобы записать всё сразу или закрыть Vim без записи данных.BackendPHP Если кратко изложить суть статьи, то она сводится к одному: Вам просто нужно попробовать Rector. Пусть тесты ломаются, просто запустите его.BackendSymfony Symfony 6.3 включает улучшения DX (developer experience) в глобальной переменной app, компоненте YAML, профилировщике, пулах кэша и функциях дампа.Vim Используйте set hidden, чтобы разрешить скрытие несохранённых буферов в Vim.BackendSymfony Symfony 6.3 представляет новый класс Clock и новый ClockAwareTrait; от также интегрирует компонент Clock в другие функции Symfony.BackendLaravel Важно узнать используемую версию Laravel, прежде чем начать писать код в новом проекте. Есть несколько способов, как узнать используемую версию Laravel.BackendSymfony Symfony 6.3 представляет несколько новых компонентов, упрощающих создание и обработку веб-хуков в ваших приложениях.BackendLaravel В документации по Laravel это не проясняется, что может сбить с толку новичков и привести к нежелательным ошибкам. Узнайте как избежать распространённой ошибки.BackendSymfony Symfony 6.3 добавляет новую функцию для удаления эмодзи из содержимого строки и возможность сжатия всех данных эмодзи для экономии места на диске.BackendLaravel Сейчас Action классы и Вызываемые Контроллеры горячая тема Laravel. В этой статье я объясню, почему считаю вызываемые контроллеры плохой идеей, и объясню архитектурный шаблон, который я создал и назвал AaaS.BackendLaravel Узнайте, как использовать File::json() и Storage::json() в Laravel приложениях для чтения JSON файлов. Так же рассмотрим различия между этими методами и способы улучшения обработки ошибок.BackendLaravel Узнайте как создавать собственные директивы Blade, для упрощения шаблонов Laravel Blade. В статье рассказывается, что такое директивы Blade, как они используются во фреймворке, и как создать собственную директиву.BackendPHP Если вы работаете над унаследованным PHP-проектом, какой может быть стратегия внедрения PHP-CS-Fixer, снижающая риск и приглашающая других разработчиков к сотрудничеству?BackendSymfony Symfony 6.3 улучшает производительность извлечения сообщений перевода, компиляции сервисного контейнера и нормализации/денормализации сериализатора.JavaScript Объект Date в JavaScript представляет момент времени. Хотя у него есть полезные функции, работать с ним сложно. Мы рассмотрим, как создать новый объект Date и, надеюсь, сделать его немного проще в использовании.BackendSymfony Symfony 6.3 включает новый атрибут MapQueryParameter
для сопоставления и проверки отдельных параметров строки запроса с аргументами контроллера.FrontendCSS Более детальный контроль над CSS трансформациями с помощью индивидуальных свойств трансформации элементов translate, rotate и scale.BackendSymfony Symfony 6.3 позволяет перенаправлять пользователей после их программного логина, добавляет поддержку 'Запомнить меня' для JSON логинов и позволяет очищать данные сайта после выхода пользователя.BackendSymfony В Symfony 6.3 добавлена поддержка перечислений в выражениях, деревьях конфигурации и параметрах маршрута.BackendPHP Эти более строгие проверки помогают писать более надёжный и предсказуемый код, выявлять ошибки на ранней стадии и избавиться от потенциальных головных болей в будущем. Хотя к некоторым из этих рефакторингов может потребоваться время для привыкания, они стоят усилий по улучшению качества кода.JavaScript Рассмотрим что такое API и зачем он нужен на примере небольшого магазина. По шагам напишем сценарий получающий данные из реального API и обрабатывающий их.BackendLaravelPHP PHP Атрибуты были добавлены в PHP 8.0, и для многих разработчиков это было неверным названием. Каковы их преимущества и как их использовать?TypeScriptJavaScript Они не всегда являются проблемой. Но ими злоупотребляют, и их часто можно заменить лучшими альтернативами. Вот почему я избегаю их и что я делаю вместо этого...BackendLaravelPHP В каждом Laravel/PHP проекте у вас будет два файла: composer.json и composer.lock. В чём разница между ними? Зачем нужен composer.lock, если есть composer.json.Vim Хотя мы склоняемся к нативной функциональности Vim в этом списке, большинство опытных пользователей Vim в какой-то момент расширяют возможности Vim с помощью любого из тысяч доступных плагинов с открытым исходным кодом. Если вы не живёте и не дышите Vim, вы можете не знать, сколько существует способов установки и управления плагинами, включая встроенный метод, поставляемы с Vim 8.BackendSymfony Symfony 6.3 улучшает обработку секунд в полях даты/времени, обновляет виджеты HTML 5 для даты/времени и позволяет настраивать параметры опции placeholder.Vim Существует множество плагинов для сниппетов и шаблонов для Vim, но вы можете создавать шаблоны файлов без каких-либо плагинов, используя концепцию, которую в Vim называют скелетными файлами.BackendSymfony Symfony 6.3 включает новую команду, которая выводит метаданные сериализатора заданного класса, чтобы помочь отладить любые проблемы с Serializer.BackendLaravel Если у вас есть задания и слушатели, запускаемые в транзакциях базы данных, это может привести к несогласованности данных при откате транзакции. Узнайте как правильно обращаться с ними.BackendSymfony В Symfony 6.3 добавлен метод getPayload() к объекту Request для получения содержимого POST и/или содержимого тела запроса.Security Во второй части нашей серии статей о менеджерах паролей рассматриваются технологии бизнес-уровня для обработки токенов API, учётных данных для входа и т.д.BackendSymfony Symfony 6.3 добавляет совместимость с серверами OpenID Connect с помощью двух новых обработчиков токенов OIDC.Security Первое руководство из серии менеджеров паролей, состоящей из двух частей, помогающих выбрать лучший способ управления своими учётными записями.BackendSymfony Symfony 6.3 включает средство проверки надёжности паролей, чтобы проверить, достигают ли данные пароли определённого уровня безопасности на основе их энтропии.Security При эксплуатации уязвимостей SQL-инъекций часто необходимо собрать некоторую информацию о самой базе данных. Это включает тип и версию программного обеспечения базы данных, а также содержимое базы данных с точки зрения содержащихся в ней таблиц и столбцов.BackendLaravel Некоторое время назад я сделал серию на Youtube под названием Code Reviews. Из этой серии и других обзоров я собрал наиболее распространённые ошибки допускаемые в Laravel новичками.BackendLaravelPHP Атрибуты PHP, заимствованные из концепции аннотаций в других языках, могут добавить вашим перечислениям мощную функциональность.BackendSymfony Symfony 6.3 вводит новый атрибут ValueResolver для явного выбора преобразователя аргументов, для использования в аргументах контроллера.BackendLaravelTesting С выходом PestPHP v2 мы можем тестировать архитектуру наших приложений. В этом руководстве мы рассмотрим как использовать этот плагин.BackendSymfony В Symfony 6.3 представлены два новых атрибута PHP для сопоставления данных входящего запроса Request с типизированными объектами, таким как DTO, и их автоматическая проверка.BackendLaravel Контракты и реализации — это мощные инструменты в Laravel, позволяющие определять стандартный интерфейс и писать код, который можно адаптировать к различным реализациям.BackendSymfony Symfony 6.3 вводит два новых атрибута для настройки кода состояния, заголовков и уровня журнала ваших HTTP исключений.BackendPHPGuidePHP При обсуждении комментирования кода некоторые разработчики говорят, что вы всегда должны писать комментарии. Другие говорят, что код должен быть достаточно чистым и комментироваться только в исключительных случаях. Давайте рассмотрим примеры.BackendSymfony Symfony 6.3 включает новое ограничение NoSuspiciousCharacters, чтобы избежать spoofing атак, основанных на использовании символов, которые отличаются, но внешне выглядят одинаково.BackendSymfony В Symfony 6.3 добавлена поддержка Early Hints, что позволяет браузерам загружать ресурсы, пока серверы всё ещё готовят ответ. Это значительно улучшает воспринимаемую производительность.BackendLaravel В этом примере мы создадим CRUD интерфейс в Laravel 10 и будем использовать PHP 8.2+, Laravel 10, Laravel Breeze и текущую версию Tailwind CSS.DevOpsLaravel В этой статье я подробно расскажу о том, как вы можете автоматизировать развёртывание Laravel приложения на VPS, разумеется, бесплатно.BackendPHP В PHP 8.3 добавлена возможность перезаписи значения readonly свойств при клонировании объекта. Не заблуждайтесь: вы не можете клонировать любой объект и перезаписывать его readonly значения из любого места. Эта функция касается только очень специфического (но важного) пограничного случая.Security Когда приложение уязвимо для SQL-инъекций и результат запроса возвращаются в ответах приложения, можно использовать ключевое слово UNION для извлечения данных из других таблиц базы данных. Это приводит к SQL-инъекции с UNION атакой.Security Эта шпаргалка по SQL-инъекциям содержит примеры полезного синтаксиса, который можно использовать для различных задач, часто возникающих при выполнении атак с помощью SQL-инъекций.Security В этой статье мы объясним, что такое SQL-инъекции (SQLi), опишем несколько распространённых примеров, объясним, как находить и использовать различные виды уязвимостей SQL-инъекций, а также подведём итоги, как предотвратить SQL-инъекции.BackendPython В этой статье вы узнаете о NoneType
— объекте None
, выполняющем роль null
в Python. Этот объект представляет собой пустоту, и его можно использовать для обозначения параметров по умолчанию и даже для того, чтобы показать, когда у вас нет результата. None
— инструмент, позволяющий делать все из ничего!BackendPython В этом кратком и практическом руководстве вы узнаете, когда использовать операторы Python is, is not, == и !=. Вы увидите, что эти операторы сравнения делают под капотом, погрузитесь в некоторые особенности идентификации объекта и интернирования, а также определите пользовательский класс.BackendLaravel Как разработчики, мы часто сопоставляем бизнес процессы с цифровыми процессам, от отправки электронного письма до чего-то довольно сложного. Давайте посмотрим, как взять более сложный процесс и написать чистый и элегантный код.FrontendCSS CSS функция color-mix()
появилась в Chrome 111. В этой статье объясняется, как использовать эту функцию для смешивания цветов в таблицах стилей.BackendLaravelTesting Общая проблема при тестировании заключается не в том, как что-то протестировать, а в том, что вы можете протестировать. Я составил список всего, что мне нравиться тестировать в своих приложениях.BackendLaravel Запросы формы наиболее известны тем, что переносят логику проверки из контроллеров в класс, который будет выполнять предварительную проверку. Они фантастические, и я постоянно опираюсь на них. Что ещё мы можем сделать с запросами форм?BackendLaravel Laravel известен своей элегантностью, простотой и выразительностью. Одной из самых мощных возможностей Laravel являются хелперы. Хелперы массивов Laravel — важный инструмент для разработчиков, работающих с массивами данных.BackendLaravel Хотите написать собственный хелпер в Laravel? Узнайте, как создавать собственные вспомогательные функции (хелперы) с помощью этого руководства.BackendLaravel Иногда мы не хотим, чтобы у пользователей были пароли. Иногда мы хотим отправить волшебную ссылку на адрес электронной почты пользователя, чтобы он кликнул по ней и получил доступ.BackendPython Большинство новичков не знают, как настроить в Python среду разработки, соответствующую последним стандартам, используемым профессиональными программистами. В этом руководстве вы узнаете, как правильно создать полностью работающую среду разработки Python с использованием лучших отраслевых рекомендаций.BackendLaravel Сервис провайдеры это центральный узел начальной загрузки всех приложений Laravel. Ваше приложение, а также все основные службы загружаются через них.DevOpsnginx 502 Bad Gateway обычно возникает, когда Nginx работает, как обратный прокси-сервер и не может подключиться к серверным службам. Это может быть связано со сбоем службы, сетевыми ошибками, проблемами конфигурации и т.д. Рассмотрим пять основных причин возникновения этой ошибки и то, как их исправить.FrontendCSS В мире дизайна маскирование — популярная техника достижения уникальных дизайнерских эффектов. Как дизайнер, я использовал его много раз, но редко использую в Интернете. Думаю, причина, по которой я не использую CSS маски, заключается в поддержке браузеров. Они частично поддерживаются в браузерах blink (Chrome и Edge) и полностью поддерживаются в Safari и Firefox.BackendLaravelTesting Откройте для себя Pest, удобную среду тестирования Laravel. Узнайте как тестировать маршруты и модели Laravel с помощью примеров из этого руководства.BackendLaravel Эта статья перевод страницы документации Laravel о жизненном цикле запроса и приложения обрабатывающего поступивший запрос от сервера.BackendLaravel Структура каталогов Laravel приложения предназначена для обеспечения отправной точки как для больших, так и для малых приложений.BackendLaravel Как веб-разработчикам, нам часто приходится взаимодействовать с API из Laravel приложений. HTTP-клиент Laravel, представленный в седьмой версии — удобная и интуитивно понятная оболочка для Guzzle HTTP библиотеки. В этой статье мы рассмотрим пять полезных приёмов работы с HTTP-клиентом Laravel, которые помогут сделать ваше разработку более эффективной и приятной.Security В этой статье мы разберёмся, что такое CSRF токены, как они защищают от CSRF атак и как потенциально можно обойти эту защиту.FrontendCSSTailwind Tailwind CSS v3.3 уже здесь — он содержит множество новых функций, о которых люди давно просили, и множество новых вещей, о которых вы даже не подозревали.BackendLaravelPHP PHPCS — инструмент cli с открытым исходным кодом обнаруживающий нарушения стилей кода заданного стандарта кодирования, а также предоставляющий автоматические исправления для автоматически исправляемых правил.JavaScript В этом руководстве мы погрузимся в обработку ошибок JavaScript, чтобы вы могли выбрасывать исключения, обнаруживать и обрабатывать собственные ошибки.Security В этой статье мы объясним, что такое заголовок ответа Access-Control-Allow-Origin в отношении CORS и как он является частью реализации CORS.JavaScript Разберёмся как создавать промисы и работать с ними в JavaScript. Рассмотрим цепочки промисов, обработку ошибок и некоторые из новых методов промисов, добавленных в язык.JavaScript Многие языки программирования имеют функцию sleep, которая задерживает выполнение программы на заданное количество секунд. Однако эта функциональность отсутствует в JavaScript из-за его асинхронной природы. В этой статье мы рассмотрим почему это произошло, а затем как реализовать функцию sleep самостоятельно.JavaScript В этой статье мы подробно рассмотрим, как работать с асинхронным кодом в JavaScript. Мы начнём с обратных вызовов, перейдём к промисам и закончим более современными async/await. В каждом разделе будет предложен пример кода, изложены основные моменты, о которых следует знать.JavaScript Как выглядит Fetch API, какие проблемы решает, и какой способ получения удалённых данных с помощью функции fetch() внутри веб-страницы наиболее практичен.JavaScript В JavaScript есть два способа создания функции: функциональное выражение и объявление функции. Мы обсудим когда использовать функциональное выражение, а когда объявление и объясним различия между ними.BackendLaravel При создании веб-приложения часто требуется добавить функцию, позволяющую пользователям загружать файлы. Например, вы можете разрешить пользователям обновлять изображения своего профиля или обмениваться файлами друг с другом.JavaScript Ключевые слова async и await представляют современный синтаксис JavaScript, помогающий обрабатывать асинхронный операции. В этом руководстве мы подробно рассмотрим, как использовать async/await для управления потоком данных.JavaScript Ад обратного вызова реален. Разработчики часто рассматривают обратные вызовы как чистое зло, вплоть до того, что избегают их. Гибкость JavaScript совсем не помогает в этом. Но не обязательно избегать обратных вызовов. Хорошая новость в том, что есть простые шаги спасения от ада обратных вызовов.JavaScript Когда вы начинаете изучать JavaScript, вскоре услышите термин функции обратного вызова
. Обратные вызовы — неотъемлемая часть модели выполнения JavaScript, и важно понимать, что они из себя представляют и как работают.Security В этой статье мы объясним что такое CORS, опишем некоторые распространённые примеры атак основанных на CORS, и обсудим, как от них защититься.Security В этой статье мы объясним, что такое политика безопасности контента, и опишем как использовать CSP для защиты от некоторых распространённых атак.BackendLaravelEloquent Трейты в PHP — мощный функционал позволяющий повторно использовать код в нескольких классах не повторяясь.BackendPHP OpenAI PHP — поддерживаемый сообществом PHP API клиент, позволяющий взаимодействовать с Open AI API.BackendLaravel Ответ от Laravel приложения — это то, что я бы назвал жизненно важным, особенно когда вы создаёте API. Давайте посмотрим, как можно улучшить наши ответы.BackendPHP Начните использовать возможности ИИ уже сегодня. Он позволяет делать разработчикам невероятные вещи, и многие стартапы создают продукты на его основе.Security В этой статье мы разберёмся, что такое Same-origin policy (SOP) - Политика единого источника и как она реализована.BackendLaravel В большинстве Laravel приложений необходимо отправлять уведомления, будь то внутри приложения, по электронной почте или в slack — обычно это уведомления о транзакциях, чтобы предупредить пользователя о каком-либо действии или событии в вашем приложении. Давайте разберёмся, что это такое и как действует.BackendLaravel GitHub Actions — фантастический способ запуска рабочих процессов Continuous Integration, от запуска тестов до статического анализа и многого другого.BackendLaravelEloquent При работе с моделями часто нужно сделать что-то с данными до или после их сохранения в базе данных: изменить формат, обрезать пробелы, вырезать HTML-тэги и так далее.BackendLaravel Независимо от того, используете ли вы Laravel 10, 9 или 8, давайте рассмотрим рекомендации по улучшению кодовой базы в 2023 году.BackendLaravelEloquent При работе с большими набора данных, которые сложно получить или они редко изменяются, для снижения нагрузки на базу данных мы можем использовать кэширование.BackendPHP Что такое PHP-интерфейс? PHP интерфейс определяет контракт, который должен выполнить класс. Если PHP класс — это схема объектов, то интерфейс — это схема классов. Любой класс реализующий данный интерфейс, будет иметь одинаковое поведение с точки зрения того, что можно вызвать, как его можно вызвать и что будет возвращено.BackendPHP Как новичок в программировании, особенно в PHP, вы, возможно, слышали термины классы или объекты. Что такое PHP класс?BackendPHP Важно понимать, что такое PHP функция. Мы разберём, что такое PHP функция, сколько существует PHP функций, и рассмотрим примеры PHP функций.BackendLaravel Дублирование кода — самая болезненная вещь для многих разработчиков, вы думаете, что решили проблему, но есть несколько случаев одной и той же проблемы.BackendLaravelEloquent При работе с Моделями Eloquent обычно используют события, отправляемые в течении жизненного цикла Моделей. Есть несколько разных способов сделать это, и в этой статье я расскажу о них и объясню преимущества и недостатки каждого из них.BackendLaravel Data Transfer Object (DTO) — шаблон, который при правильном использовании может улучшить качество и удобство сопровождения приложения. В этой статье мы узнаем, зачем вы должны использовать DTO в своих приложениях и как это сделать в Laravel.BackendLaravel Файлы маршрутов Laravel могут быть сильно загружены. Однажды вы замечаете, что нужно приложить усилия, для того чтобы найти что-нибудь. Как вы с этим боретесь?BackendPHPDevOps Подробное и краткое руководство по установке и обновлению PHP 8.2 в системах Debian и Ubuntu.BackendPHP PHP продолжает развиваться с новыми критическими изменениями, и хотя это отлично подходит для большинства PHP-приложений, существуют легаси/устаревшие приложения, которые не могут оправдать затрат на их поддержку. Это руководство о том, как продлить срок службы легаси приложений с помощью обновлений безопасности и обслуживания.Security Помимо средств защиты, использующих CSRF токены, некоторые приложения используют HTTP-заголовок Referer, для попытки защититься от CSRF атак путём проверки того, что запрос исходит из собственного домена приложения. Как правило, этот подход менее эффективен и имеет обходные пути.Security Традиционный способ доказать, что вы обнаружили XSS уязвимость, — создать всплывающее окно с помощью функции alert()
. Это не потому, что XSS имеет какое-то отношение к всплывающим окнам; это просто способ доказать, что вы можете выполнять произвольный JavaScript в заданном домене. Вы могли заметить, что некоторые люди используют alert(document.domain)
. Это способ сделать явным демонстрацию на каком домене выполняется JavaScrip код.BackendLaravel Валидация обязательна для любого современного проекта, и в Laravel очень просто начать. Внутри методов контроллера вы можете вызвать метод, передать запрос и массив правил, на соответствие которыми хотите проверить данные.BackendLaravel Pipeline/Пайплайн — одна из малоизвестных возможностей Laravel. Он часто используется в самом фреймворке, например, маршрутизация, но не так много разработчиков его используют. В этой статье я попытаюсь объяснить их и показать несколько примеров.BackendLaravel В этой статье я хотел бы поговорить об объектах-значениях. Если вы не знаете, что это такое, вот краткое введение.BackendLaravelTesting JSON:API предоставляет множество возможностей для фильтрации, сортировки и включения дополнительных данных в запрошенные данные с использованием параметров запроса. Тестирование может быть утомительным, но в этом руководстве я расскажу, как подхожу к тестированию этих конечных точек c PestPHP.Security В этой статье мы объясним различия между XSS и CSRF, и обсудим, могут ли токены CSRF предотвратить XSS атаки.BackendLaravel Создание API в Laravel — это искусство. Вы должны думать не только о доступе к данным и обёртывании Eloquent Моделей в конечные точки API.BackendLaravel Давайте разберёмся, что такое DDD? Что делает Объект-Значение и какие у него преимущества? Как и зачем их использовать в Laravel приложении.BackendLaravel В Laravel есть фантастический контейнер внедрения зависимостей, но многие избегают его. В этой статье я расскажу, как использовать контейнер Laravel, чтобы мой код работал на меня.BackendLaravel С длительными заданиями в Laravel сложно работать. К счастью, есть способы обойти эти проблемы. Давайте рассмотрим несколько решений.BackendLaravel Давайте рассмотрим как установить и настроить PHP Codesniffer с новым Laravel проектом.BackendLaravel Если вы используете привязку модели к маршруту в API Контроллерах и запись не найдена, она автоматически вернёт статус код 404 с сообщением об ошибке, например No query results for model [App\Models\User] 1
. Как это изменить?BackendLaravel Типичная ошибка, которую вижу у разработчиков: использование $date->addDays(1)
, а затем ещё одного $date->addYears(1)
в том же запросе и получение неправильных результатов. Позвольте мне объяснить.BackendLaravelTesting Laravel 9 представил новый способ создания пользовательских правил валидации: вызываемые правила (invokable rules). Это позволяет написать пользовательское правило валидации только с одним методом: __invoke
.BackendLaravelEloquent При подсчёте записей Модели, сгруппированных по типу в отношении, возникает соблазн загрузить в память слишком много запросов к БД или слишком много данных. Есть несколько способов оптимизировать его, давайте рассмотрим пример.Security В этой стать мы опишем некоторые общепринятые принципы предотвращения XSS уязвимостей и способы использования различных распространённых технологий защиты от XSS атак.BackendLaravelEloquent Если у вас есть события Наблюдателя для обновления или удаления записей, важно знать, что они выполняются только при обновлении отдельных записей, а не при массовом обновлении или удалении.BackendLaravel Представьте, что вы хотите показать некие глобальные
данные в Blade: например, количество новых пользователей на этой неделе в верхнем блоке навигации. Не знаете от каких контроллеров будут поступать данные? Вы можете выполнить это действие в Service Provider тремя способами.BackendLaravelEloquent Представьте, что вы хотите загрузить Модель со многими связанными моделями, но отсортировать эти связанные результаты по некоторому столбцу в этой связанной БД. Как это сделать? Давайте сделаем ещё веселее и возьмём пример двухуровневых отношений.BackendLaravel Laravel представляет выразительный минимальный API для компонента Symfony Process, позволяющий удобно вызывать внешние процессы из приложения Laravel.BackendLaravel В выходящем Laravel 10 будет представлен новый слой фасадов Process. Давайте посмотрим зачем он нужен и в чём его преимущества.BackendPHP Абстрактная фабрика — шаблон проектирования, предоставляющий интерфейс для создания семейств связанных или независимых объектов без указания конкретных классов.JavaScript В JavaScript объекты используются для хранения нескольких значений в виде сложной структуры данных.JavaScript Создание и манипулирование URL-адресами в виде строк может казаться безопасным, пока не сложатся общие ошибки. Но у современного JavaScript есть решение для этого, Конструктор URL, делает чтение, запись и изменение URL-адресов более безопасным и чистым.BackendLaravel Давайте выясним действительно ли вам нужно обновлять своё приложение до Laravel 10? Или можно не спешить и сделать это в удобный момент?Security Во время тестирования Отражённого или Сохранённого XSS ключевой задачей является определение контекста XSS: место, где появляются данные и обработка данных приложением.Security В этой статье мы рассмотрим межсайтовый скриптинг на основе DOM (DOM XSS), выясним как найти уязвимости DOM XSS.Security В этой статье мы разберёмся что такое Сохранённые XSS (Stored XSS), рассмотрим влияние сохранённых XSS атак и объясним, как найти сохранённые XSS уязвимости.Security В этой статье мы рассмотрим отражённые межсайтовые сценарии, влияние отражённых XSS-атак и выясним как найти отражённые XSS-уязвимости.Security В этой статье мы объясним, что такое межсайтовые сценарии (XSS), опишем разновидности уязвимостей XSS и разъясним, как найти и предотвратить XSS.BackendPHP Фигурная скобка редко используется как знак препинания, но это один из самых распространённых символов в языках программирования.JavaScriptFrontend Cookie были единственным способом хранения временной и локальной информации, но теперь у нас есть localStorage. Он широко обсуждается и используется во множестве приложений JavaScript. В этой статье мы рассмотрим всё, что нужно знать о localStorage в JavaScript.BackendLaravel Перевод официального руководства по обновлению с Laravel 9 до Laravel 10. Примерное время обновления 10 минут.JavaScriptFrontend Удалите функции таймаута и избавьтесь от связанных с ними багов, вот событие которое действительно нужно: scrollend
.BackendLaravel Представьте работу приложения, в котором каждая конечная точка по-разному возвращает данные об успешных вызовах и вызовах с ошибками. Если это маленькое и простое приложение, поддерживаемое одним человеком, это может быть немного проще. Но если приложение начнёт расти и к команде присоединится больше людей, через некоторое время будет полный хаос для поддержки и улучшения приложения.BackendPHP С PHP версии 8.3 gc_status возвращает дополнительную информацию о сборщике мусора (GC).BackendLaravelEloquent Чтобы добавить запись в базу данных, вы можете использовать один из двух методов Eloquent create()
или Query Builder insert()
.Security В этой статье мы рассмотрим какие есть средства защиты от CSRF уязвимости и как правильно их реализовать на своём сайте для предотвращения уязвимости.BackendLaravel Вы можете столкнуться с ситуацией, когда нужно вернуть одни и те же данные для web и для API. Должно ли это быть в одном или разных контроллерах? Есть несколько способов решения.BackendLaravelEloquent При работе с API часто требуется вернуть ответ Eloquent в формате JSON.Security В этой статье мы объясним, что такое подделка межсайтовых запросов, опишем несколько примеров уязвимостей CSRF и разберём, как предотвратить CSRF атаку.BackendPHP Недавно была выпущена спецификация PHP Standards Recommendation 20, призванная помочь разработчикам использовать общий интерфейс получения системных даты и времени. Это важная рекомендация, если вам необходимо протестировать PHP код, манипулирующий системной датой и временем.BackendLaravel За эти годы я научился пользоваться целым рядом удивительных инструментов используемых для разработки приложений на PHP и Laravel.BackendLaravel В этой статье я расскажу о принципе внедрения зависимостей, так же известном как контейнер Inversion of Control (IoC). Расскажу как Laravel использует его внутри и предлагает эту концепцию разработчикам, чтобы их код был понятным и менее взаимозависимым.BackendLaravel Фасады, их любят или ненавидят. Но они естественная часть того, чем сегодня является Laravel. Фасады Laravel это не совсем фасады, не так ли?BackendLaravel Vite — новый фронтенд инструмент для Laravel. Давайте посмотрим, как перенести Laravel проект с webpack на Vite.BackendLaravel Недавно мы создавали Laravel API для мобильного приложения созданного отдельной командой. Когда пользователь сообщил о проблеме, одним из первых вопросов был Эта ошибка связана с API или мобильным приложением?
В этой статье я поделюсь стратегией ведения лога, которую мы использовали для быстрого поиска причин проблемы.BackendLaravelTesting Из этой статьи вы узнаете, как легко начать автоматизированное тестирование в Laravel.BackendLaravel SOLID. Звучит по-научному, не так ли? Но это просто маркетинг. На самом деле это самая простая вещь во вселенной. Набор принципов популяризованных Робертом С. Мартином.BackendLaravel Laravel Pint — новинка от команды Laravel. Отличная оболочка для PHP CS Fixer, мой любимый инструмент для стандартизации кода.BackendLaravel Продолжаем серию статей о происходящем под капотом, на этот раз о транзакциях базы данных в Laravel. Я не буду повторять всё о том, как вы можете использовать транзакции в Laravel. Если вы не знакомы с темой можете всё найти в официальной документации. Сейчас мы сосредоточимся на том, как эти реализации работают в фоновом режиме, что вызывало головную боль и как этого избежать. Итак, давайте разбираться.BackendPHP В этой статье мы обсудим различия между self::
, static::
и parent::
в PHP. Также расскажем, когда и почему вы можете использовать каждый из них в своём коде.BackendLaravel Коллекции Laravel действительно эффективны для работы с массивами данных. Давайте узнаем, как использовать предоставленные ими методы для улучшения приложений.TypeScript В этой статье мы рассмотрим распространённые типы значений. Это не исчерпывающий список, и в следующих статьях мы рассмотрим другие способы именования и использования типов.BackendLaravel Все мы время от времени совершаем глупые ошибки. Я делюсь этим, чтобы избавить кого-то ещё от небольшого разочарования.BackendLaravel Долгожданный ажиотаж наконец-то закончился, Laravel выпустили консольное приложение с открытым исходным кодом и мы получили его в свои руки. Представляем Laravel Pint...BackendLaravel Если у вас есть Middleware, где его использовать: в файле маршрутов или в Контроллере? Рассмотрим четыре варианта.BackendLaravel Давайте попробуем использовать генераторы для постраничного разбиения всех записей на примере PokeAPI.FrontendCSS CSS — важнейшая часть дизайна любого сайта, но разобраться в тонкостях его использования бывает непросто. Одна из самых важных вещей, которую нужно понять, — это разница между использованием rem и em в CSS и то, зачем/когда следует использовать тот или иной вариант.BackendPHP Редиректы или перенаправления в PHP это просто. Мы рассмотрим их шаг за шагом и я покажу, как избежать некоторых ловушек. Мы узнаем нюансы между 301 и 302 перенаправлением.BackendLaravelEloquent Приготовьтесь повысить уровень Laravel навыков с помощью этого руководства по запросам Eloquent! Вы узнаете всё, что вам нужно знать, от начальных до продвинутых техник.BackendLaravel В этом руководстве вы узнаете о некоторых способах рефакторинга контроллера и использовании сервисов, событий, action классов и многое другое.TypeScript TypeScript — типизированный язык. Однако необязательно указывать тип переменной. TypeScript выводит типы переменных, когда нет доступной явной информации в виде аннотации типов.TypeScript В этой статье мы разберёмся как TypeScript вывод и проверяет тип переменной, используя внутренний логический механизм, называемый Type Assertion - Утверждение Типа.BackendLaravel Фабрики Laravel значительно экономят время при написании тестов. Раньше я создавал фабрики, чтобы каждое свойство модели находилось в состоянии по умолчанию, но в последнее время я переключился на минимальные фабрики по умолчанию. Я объясню причины этого изменения и какие преимущества я обнаружил.BackendLaravelTDDTesting Тестирование или Разработка Через Тестирование (Test-Driven Development) важные и сложные темы программирования. Особенно сложным будет переход от простого написания тестов к TDD.TypeScript Изучение TypeScript часто является путешествием с повторными открытиями. Ваше первоначальное впечатление может быть довольно обманчивым: разве это не способ аннотации JavaScrip, чтобы компилятор помог найти потенциальные ошибки?JavaScriptFrontendBackend Большинство языков программирования имеют концепцию модулей: способ определить функции в одном файле и использовать их в другом.BackendLaravel Если вы никогда не создавали Laravel приложение, позвольте показать вам пошаговое руководство по Laravel с нуля — без особых требований. Следуйте инструкциям, для изучения Laravel.BackendLaravel Недавно я прочитал сообщение на форуме Laracasts с вопросом о валидации периода даты. Решил написать эту статью с возможным решением.BackendPHP Эти три структуры могут сбить с толку новичков в PHP или опытных разработчиков, поэтому давайте рассмотрим, что делает каждая из них и когда их лучше всего использовать.JavaScriptNodeJS Ключевое слово import
используется для импорта привязок, которые экспортируются другим модулем, а функция require()
используется для загрузки модуля в приложении Node.js. Эти два механизма похожи, но у них есть важные отличия о которых вам следует знать. Мы обсудим их в этой статье.BackendToolsDevOps mkcert — невероятный инструмент командной строки с открытым исходным кодом генерирующий доверенные сертификаты, которые можно использовать для включения https на локальных веб-сайтахBackendPHP В PHP 5 ввели объявление типов (также известное как подсказки типов), которые позволяют функциям требовать, чтобы параметры имели определённый тип во время вызова. Если заданное значение имеет неправильный тип, то генерируется ошибка: в PHP 5 — исправимая фатальная ошибка, а в PHP 7 — исключение TypeError.BackendLaravel Миграции необходимы в любом приложение Laravel, использующем базу данных. Я расскажу, что это такое, почему нужно их использовать и как их генерировать.BackendLaravelEloquent Soft delete в Laravel позволяет предотвратить ошибки, не удаляя важные данные из базы данных сразу.BackendLaravel Laravel 10 вышел 14 февраля 2023 года. Его разработка ещё продолжается. Давайте изучим новые функции о которых уже известно.BackendPHP Этот RFC предлагает добавить новые методы строительных блоков
в \Random\Randomizer
, реализующие полезные операции, которые либо многословны, либо очень сложны для реализации в пользовательской среде.BackendLaravel Изучение фреймворка может быть ошеломляющим. Время и практика сделают вас мастером. Вот несколько рекомендаций, которые помогут вам в достижении цели.PHPBackend PHP представляет функции serialize()
и unserialize()
для сериализации любого значения PHP (строки, целые числа, объекты, NULL, массивы, перечисления и т. д.) и восстановление PHP-значения из этого строкового представления.PHPBackend В PHP 8.3 добавлена новая функция названая json_validate
, возвращающая true
или false
в зависимости от того, является ли заданная строка допустимой JSON-строкой.LaravelBackend В этой статье я покажу, как сократить Контроллеры с помощью Сервисных классов, а также различные способы инициализации и внедрения этого Сервиса.LaravelBackend Сервис Контейнер (Контейнер Служб), пожалуй, одна из самых запутанных тем для новичков в Laravel. Официальная документация объясняет его хорошо, но с большим количеством теоретических слов
. Давайте приступим к практике, и я покажу основные практические примеры, которые вам нужно знать.LaravelBackend Довольно часто я вижу людей, которые ищут cron
в контексте Laravel. У фреймворка есть механизм работающий поверх `crontab` в Linux, позвольте показать вам, как это работает.LaravelBackend Чтобы помочь вам узнать больше что происходит в вашем приложении, Laravel предоставляет надёжные службы логирования. Логирование в Laravel основано на каналах
. Каждый канал представляет определённый способ записи информации в лог.LaravelBackend DTO, или Domain Transfer Object, можно использовать для многих целей. С момента выпуска PHP 8 создание этих фантастических классов стало ещё проще.LaravelBackend Наведите порядок в контроллерах с помощью сервисных классовBackendPHP Обычное недоразумение, это различие между DTO и Объект-Значение. И поэтому я искал способ классифицировать эти объекты без ошибок.BackendPHP Когда использовать трейт? Никогда. Для трейта всегда есть лучшая альтернатива. В любом случае на практике я всегда нахожу лучшие альтернативы трейту.BackendPHP Релиз PHP 8.2 запланирован на 8 декабря 2022 года. В этой статье мы рассмотрим новые возможности, улучшения производительности, изменения и что объявлено устаревшим.BackendPHP В PHP 8.2 введён новый способ объявления классов: readonly-классы. Поскольку readonly-классы — просто синтаксический сахар для того, что бы сделать все свойства класса доступными только для чтения, это означает, что те же правила применяются и к readonly-классам.BackendPHP В PHP 8.1 введены readonly-свойства. Они избавляют от множества проблем, но и добавляют новую — запрет на переопределение readonly-свойств клонированного объекта. Давайте разберёмся с решением этой проблемы и найдём обходной путь.BackendPHP PHP 8.1 решает несколько проблем, вводя ключевое слово readonly. Это ключевое слово делает то, что предполагает его название: как только свойство установлено, оно больше не может быть изменено.BackendPHP С момента выхода, в конце 2020 года, PHP 8 изменил правила игры. В этом руководстве я рассмотрю все последние нововведения с реальными примерами того, как я могу их использовать.LaravelBackend Итак, я решил составить список из 20 моих любимых советов, которые я размещал в своих аккаунтах в соцсетях, чтобы все могли познакомиться с ними. Они не размещены в каком-то определённом порядке, но я надеюсь, что вы найдёте хотя бы один новый совет, который окажется полезным.BackendSSG Многие страницы сайтов динамические. Это означает, что содержимое страницы может меняться от сеанса к сеансу в зависимости от того, кто её загружает, вошёл ли он в систему или вышел, а также от ряда других факторов. Если ваш сайт этого не делает, значит, вы имеете дело со статическими страницами.JavaScript При написании кода для web, в конечном итоге вам требуется выполнить некий процесс, который может занять несколько минут. JavaScript не может работать в многозадачном режиме, поэтому нам нужен способ обработки этих длительных процессов.NodeJSJavaScript При преобразовании между Buffer и String может быть указана кодировка символов. Если кодировка не указана, по умолчанию будет использоваться UTF-8LaravelBackend Laravel Socialite — официальный пакет Laravel для аутентификации у провайдеров OAuth. Он поддерживает аутентификацию с помощью Facebook, Twitter, LinkedIn, Google, GitHub и Bitbucket. Но что, если вы хотите использовать другой драйвер?JavaScriptNodeJS Способность понимать Node по-прежнему остаётся важным навыком, если вы фронтэнд разработчик. Deno появился как ещё один способ запуска JavaScript вне браузера, но огромная экосистема инструментов и программного обеспечения Node, означают, что в ближайшее время он никуда не денется.JavaScriptFrontendHTMLCSS Во второй части рассмотрим несколько примеров непосредственного использования веб-платформы в качестве альтернативы некоторым решениям, предлагаемым фреймворкамиJavaScriptFrontend В этой статье подробно рассматривается несколько технических возможностей, которые являются общими для всех фреймворков. Объясняется как они реализуются в различных фреймворках и какова стоимость их применения.JavaScriptFrontendHTML Проверка формы — одна из основных причин использования клиентского JavaScript. Это может предотвратить ошибки ввода пользователя до того, как выше приложение попытается отправить данные на сервер.JavaScript Для настройки статической части класса у нас есть только статические поля. Предложение ECMAScript вводит статические блоки инициализации для классов, которые, грубо говоря, являются для статических классов тем же, чем конструкторы являются для экземпляров.CSSTailwindFrontend Я продемонстрирую 10 лучших функций, предлагаемых в Tailwind CSS v3.0, чтобы вы могли начать использовать их и улучшать свой опыт фронтэнд разработки.SymfonyBackend При создании новых проектов Symfony вы можете начать с bare-bones skeleton или kitchen sink skeleton. Я никогда не использовал kitchen sink skeleton, так как предпочитаю начинать с минимального количества зависимостей и добавлять пакеты только тогда, когда они мне нужны. Symfony делает это безболезненным, так как в большинстве случаев сообщает, какой пакет добавить, когда вы пытаетесь использовать что-то, что ещё не входит в ваш набор зависимостей.LaravelTailwind Настройка Tailwind CSS 3 в проекте Laravel, перевод официальной документации Tailwind.LaravelTailwind В статье мы кратко рассмотрим, что такое Tailwind CSS и почему я считаю его полезным. Затем мы рассмотрим два разных способа настройки Tailwind в Laravel проектах.JavaScript Долгое время приходилось прибегать к обходным путям и библиотекам для создания глубокой/deep копии значения JavaScript. Появилась поддержка глубокого копирования встроенной функций structuredClone()
.LaravelBackend При разработке веб-приложения может возникнуть ситуация, когда вам нужно узнать некоторую информацию о браузере и операционной системе вашего пользователя. В этой статье мы рассмотрим как это сделать.LaravelBackendTDD Тестирование - неотъемлемая часть разработки программного обеспечения. Это даёт уверенность, что код соответствует критериям приемлемости и снижает вероятность ошибок.JavaScript Я вижу много путаницы в отношении неизменяемости/иммутабельности строк и подумал, что сделаю всё возможно, чтобы прояснить, что это значит для запутавшихся.LaravelBackend Контроллеры играют огромную роль в любом проекте основанном на MVC (Model View Controller). По сути, они являются "клеем", который принимает пользовательский запрос, выполняет какую-то логику, а затем возвращает ответ. Если вы когда-либо работали над какими-либо довольно большими проектами, вы замечали, что у вас много контроллеров, и они могут довольно быстро начать превращаться в бардак. В этой статье мы рассмотрим, как можно очистить раздутый контроллер в Laravel.LaravelBackend Стандартные страницы ошибок в Laravel выглядят немного ужасно. В этой статье я покажу, как настроить страницы ошибок. К счастью для нас, в Laravel это очень просто. Мы создадим страницы для 404, 500 и 503 ошибок.NodeJSTools Предположим, что мы сделали обновление, но `npm publish` выдаёт ошибку. Как исправить ошибку: "You cannot publish over the previously published versions"LaravelBackend В веб-разработке важны целостность и точность данных. Поэтому необходимо быть уверенным, что мы пишем код, который безопасно хранит, обновляет и удаляет данные в наших базах данных. В этой статье мы рассмотрим, что такое транзакции базы данных, почему они важны и как начать их использовать в Laravel. Мы так же рассмотрим типичные проблемы связанные с заданиями в очереди и транзакциями баз данных.PHPBackend Недавно я опубликовал статью об улучшении PHP кода с помощью интерфейсов. Она охватывает основы того что такое интерфейс, что он может делать. И как вы можете использовать его сделав свой PHP код более расширяемым и поддерживаемым. Один из вопросов, заданных в комментариях к статье был от разработчиков, которые хотели знать "когда я должен использовать интерфейс вместо абстрактного класса?". Я подумал и решил написать статью, что бы объяснить различия между абстрактными классами и интерфейсами в PHP и дать краткий обзор того, когда вы должны использовать каждый из них.PHPBackend В программировании важно убедится, что ваш код легко читается, поддерживается, расширяется и тестируется. Один из способов улучшить эти факторы — использовать интерфейсы.LaravelBackend Хелперы могут быть полезны в ваших Laravel проектах. Они помогают упростить код в проекте простым и понятным способом. В Laravel есть множество встроенных хелперов.SassFrontend В зависимости от размера проекта над которым вы работаете, вы можете структурировать Sass двумя способами: простым для небольших и более сложным для крупных проектов.GitTools Ошибки. Эти жестокие злодеи не останавливаются даже на прекрасном мире разработки программного обеспечения. Мы не можем избежать ошибок, но мы можем научиться их исправлять! В этой статье будут рассмотрены инструменты, подходящие для повседневной работы с Git.GitTools Независимо от того, насколько вы опытны, ошибки - неизбежная часть разработки программного обеспечения. Но мы можем научиться исправлять их! И это то, что мы рассмотрим в этой серии из двух частей: Руководства по исправлению ошибок с помощью Git.TailwindCSSFrontend В этом году было много шумихи вокруг популярного CSS фреймворка Tailwind. Хочу поделиться мыслями и опасениями по поводу UI этого фреймворка. У меня был небольшой опыт написания utility-first CSS кода, когда я начинал свою карьеру во фронтенде несколько лет назад.JavaScriptFrontendBackend На днях коллега подошёл ко мне со строкой кода, которую нашёл на StackOverflow, и спросил, как это работает. И я подумал, что это отличный пример четырёх концепций от среднего до продвинутого уровня JavaScript, поэтому решил записать и обосновать своё объяснение.HTMLFrontend Семь редко используемых HTML атрибутов, о которых вы возможно не знали.JavaScript Деструктуризация в JavaScript — упрощенный метод извлечения нескольких свойств из массива путем извлечения структуры и разложения её на составные части с помощью присваивания, используя синтаксис, похожий на литералы массива.JavaScript Долгое время XML был предпочтительным форматом данных для обмена между двумя точками. Затем, в начале 2000 года, был представлена JSON как альтернативный формат данных для обмена информацией. В этой статье вы узнаете всё о JSON. Вы поймёте, что это такое, как им пользоваться, и мы проясним несколько заблуждений.CSSFrontend Часто хочется, чтобы был способ избежать возникновения определённой проблемы или поведения CSS. Вы знаете, что контент динамический, и на веб-странице всё может измениться, что увеличивает вероятность возникновения проблемы с CSS или странного поведения.JavaScriptFrontendBackend В JavaScript hoisting позволяет использовать функции и переменные до их объявления. В этой статье мы узнаем что такое hoisting, и как он работает.CSS Проект черновика рабочей группы CSS для Selectors Level 4 включает несколько селекторов псевдоклассов, которые уже поддерживаются в большинстве современных браузеров. В этом руководстве будут рассмотрены те из них, которые имеют наилучшую поддержку, а так же приведены примеры, демонстрирующие как вы можете их использовать уже сейчас.SymfonyBackend Улучшения в Symfony 5.4: более длинные интервалы для компонента RateLimiter; простой способ создания ошибок в компоненте Validator; блокировка файлов при добавлении данных в методе Filesystem; экстрактор метаданных PhpStan для компонента PropertyInfoSymfonyBackend Улучшения в Symfony 5.4: настраиваемый статус-код HTTP для шаблонов из маршрутов; новый метод innerText() в компоненте DomCrawler; рекурсивная поддержка .gitignore в компоненте Finder, и новая команда для отладки переменных окружения.SymfonyBackend Новые улучшения в Symfony 5.4: Строгий режим для ресурсов, улучшения страницы ошибок, исключения каталогов для линтера yaml, новый нулевой класс ULID и новые строковые функции.SymfonyBackend Symfony 5.4 вышел несколько дней назад, но у нас ещё есть записи в блоге об улучшениях основных функций ожидающие своей публикации. В этой публикации мы расскажем об улучшениях добавленных в компонент Serializer.SymfonyBackend Помимо переработанной панели логов, Symfony 5.4 включает другие улучшения связанные с профилировщиком Symfony.SymfonyBackend В Symfony версии 5.4 значительно улучшили компонент Messenger, теперь можно любой класс назначить обработчиком компонента, стало проще получать метаданные воркера и появилась обработка сообщений в пакетном режиме.SymfonyBackend Каждые два года Symfony выпускает новый релиз основной/мажорной версии (изменяется первый номер). Эти выпуски довольно сложно обновить, поскольку они могут нарушать обратную совместимость. Однако, Symfony максимально упрощает процесс обновления. Это означает, что вы можете обновить большую часть своего кода до того, как основная версия будет выпущена в релиз. Это называется "сделать ваш код совместимым с будущим релизом".CSSFrontend Важно иметь постоянное соотношение ширины и высоты изображений и других отзывчивых элементов. Мы много лет использовали в CSS хак с отступами, но сейчас у нас есть встроенная поддержка соотношения сторон в CSS. В этой статье я расскажу, что такое соотношение сторон, как мы его использовали и как это делать по-новому. Конечно, будут варианты использования с подходящими запасными вариантами.CSSFrontend В этой статье я хочу поделиться, тем что я делаю при CSS масштабировании элементов в DevTools браузера.CSSFrontend Мы не можем говорить о веб-разработке, не упоминая Отзывчивый Дизайн. В наши дни это просто данность, и так было уже много лет. Медиа запросы — часть отзывчивого дизайна, и они никуда не денутся. С момента появления медиа-запросов (буквально десятилетия назад) CSS эволюционировал до такой степени, что существует множество трюков, которые могут нам помочь существенно сократить количество медиа-запросов. В некоторых случая я покажу вам, как заменить несколько медиа-запросов только одним CSS объявлением. Эти подходы могут привести к уменьшению объёма кода, упрощению обслуживания и большей степени привязаны к имеющемуся контенту.CSSGridFrontend Если вы когда-нибудь пытались разместить прилипающий элемент в макетной сетке grid и наблюдали, как элемент прокручивается вместе с остальным содержимым, вы могли прийти к выводу, что position: sticky
не работает с CSS Grid.GitTools Команды Git log
и diff
полезны для проверки изменений вашего репозитория. Обе команды принимают диапазоны коммитов в разных форматах, что может сбивать с толку. В этой статье я пролью свет на различия между диапазонами коммитов a b
, a..b
, a...b
.GitTools Не бойтесь команд Git, меняющих историю, а вместо этого воспользуйтесь ими.CSSFrontend Откройте возможности селекторов атрибутов CSS, их синтаксис и практическое применение, включая стилизацию по значению, состоянию и пользовательским атрибутам данных.CSSFrontend Недавно я добавил в этот блог простой визуальный эффект, который мне быстро понравился: когда вы наводите курсор на ссылку, анимированное подчёркивание ссылки раскрывается из центра. Создать этот эффект на удивление легко и не требует добавления каких-либо дополнительных элементов в DOM HTML.CSSGuideFrontend Рассмотрим лучшие способы обработки цветов в CSS, несколько советов по их использованию в дизайн-системе и то, что можно ожидать от цветов в ближайшем будущем.VimToolsHTMLFrontend Мы рассмотрим несколько возможностей Emmet плагина для vim на конкретных примерах, и к концу этой статьи вы будете выдавать html-код, как по волшебству, и вам будет интересно узнать больше!VimTools В этой статье я хотел бы объяснить некоторые вещи о Vim, которые большинство людей не знают. От причин, по которым он был разработан таким, какой он есть. До некоторых замечательных скрытых функций, которые вы, вероятно, (ещё) не используете.GulpTools Ещё одно приятное дополнение к vinyl-fs
, которое появилось в Gulp 4 – это возможность иметь 'сквозные' исходные потоки. Оно делает gulp.src
доступным для записи.JavaScriptTypeScript TypeScript vs JavaScript: В чём разница между TypeScript и JavaScript? JavaScript — язык сценариев, помогающий создавать интерактивные веб-страницы, в то время как Typescript является надмножеством JavaScript.JavaScriptTypeScript Давайте разберёмся чем JavaScript отличается от TypeScript и насколько сильны их различияFrontendCSSBEM При разработке программного обеспечения важно согласовывать общий курс, технологии и методологии. Эти соглашения должны быть результатом обсуждений, знаний, а иногда голосований.