#Laravel #interview #php
👩💻 12 вопросов для собеседования по Laravel: Работодателю и кандидату
Существует множество статей с вопросами для собеседования по Laravel, но в основном они звучат как вопросы из викторины.
❓ Какая последняя версия Laravel?
❓ Что такое Composer?
❓ Какие файлы маршрутов включены в Laravel?
Ответы на такие вопросы не помогают определить, насколько кандидат подходит для работы в реальных проектах.
Поэтому мы решили составить свой собственный список вопросов.
Мы рассмотрим их с двух сторон:
✅ Как интервьюер: что бы я спросил, если бы нанимал Laravel-разработчика?
✅ Как кандидат: к чему мне готовиться?
🖥 Читать статью
📱 @dev_notes_ru
Существует множество статей с вопросами для собеседования по Laravel, но в основном они звучат как вопросы из викторины.
Ответы на такие вопросы не помогают определить, насколько кандидат подходит для работы в реальных проектах.
Поэтому мы решили составить свой собственный список вопросов.
Мы рассмотрим их с двух сторон:
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1🔥1
#laravel #artisan #tips
💡 Совет по Laravel: Подключение к БД через Artisan
Вам когда-нибудь требовалось быстро подключиться к базе данных через CLI? Для этого есть команда Artisan!🚀
📱 @dev_notes_ru
Вам когда-нибудь требовалось быстро подключиться к базе данных через CLI? Для этого есть команда Artisan!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1👏1
FormDataКогда изучаете, как получить доступ к данным формы в React, исторически вы должны были узнать об управляемых и неуправляемых полях. Позже можете начать использовать сторонние абстракции, такие как Formik или React Hook Form, использующие управляемые и неуправляемые методы под капотом. В любом случае конечной целью является сбор данных формы. В случае с управляемой формой ваши данные — это ваше состояние. В случае с неуправляемой нужно собирать значения формы самостоятельно, и обычно разработчики выбирают для этого рефы.
Все поля форм в React должны быть либо управляемыми, либо неуправляемыми, потому что вы либо добавляете
value в проп, либо нет. FormData, стандарт JavaScript с 2010 года, — это способ доступа к данным формы, независимо от того, управляемая она или неуправляемая, но большинство предпочитает неуправляемую.#React #FromData #JavaScript #TypeScript
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1🔥1
exists() и doesntExist() Однострочная проверка существования без лишних хлопот#laravel #eloquent #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤1🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6🔥1🤣1
expect()У фреймворка тестирования Pest много поклонников, в основном из-за элегантного, читабельного «англоязычного» синтаксиса. Я покажу три моих любимых примера синтаксиса
expect() и сравню аналогичные вещи в Pest vs PHPUnit.В целом, эта тема вызывает много мнений, и синтаксис — это личное предпочтение. На Reddit есть пост годичной давности, где люди выступают против синтаксиса Pest. Но мне он нравится. Позвольте продемонстрировать примеры.
#php #testing #pest #phpunit
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
Чем тестируете 👩💻 ?
Anonymous Poll
57%
PHPUnit
11%
Pest
15%
Другое (Codeception, SimpleTest, PhpSpec и т.д.)
46%
Не тестирую 😑
👍2
При работе с пакетными заданиями лучше всего проверять, не отменен ли пакет перед выполнением задания, и это не обязательно делать вручную, потому что middleware
SkipIfBatchCancelled делает именно это #laravel #middleware #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍1🔥1
Часто, когда думают о PHPStan, обычно думают об улучшении Type Coverage. На самом деле это лишь малая часть того, на что способен PHPStan. В статье рассмотрим, как использовать его для предотвращения регрессий обновления.
Регрессия обновления — это когда в приложении есть функциональность, от которой необходимо отказаться. Это может быть код внутри приложения или код в установленной зависимости.
Часто при попытке выполнить обновление не удаётся сделать всё за один раз. Вместо этого приходится вносить небольшие поэтапные изменения. В то же время не хочется, чтобы другие разработчики продолжали использовать устаревшие методы и свойства. В такой ситуации вызовы новых методов и т. д. являются регрессом в процессе обновления приложения.
#php #PHPStan
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👏1
PipelineЧасто нужно обработать входные данные в несколько этапов, например, применить фильтры запроса или очистить данные в многоступенчатой цепочке. Если столкнулись с подобной ситуацией, воспользуйтесь хелпером
Pipeline #laravel #pipeline #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
defer().Функция
defer(), как следует из названия, позволяет отложить (проще говоря, перенести) выполнение функции или замыкания после того, как ответ будет отправлен обратно клиенту.Это удобно для небольших операций, выполняемых в фоновом режиме, когда назначение задания очереди (Queue Job) может оказаться слишком сложным - например, для отправки уведомлений.
Кроме того, функция`defer()
проверяет код состояния ответа (`2xx), чтобы убедиться в его успешности перед выполнением замыкания.#laravel #defer #php #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👏1
Хотите преобразовать значение длины в значение без единицы измерения?
Из любого значения CSS можно убрать единицу измерения, для получения целого числа!
@property --unitless-val {
syntax: '<integer>';
inherits: true;
initial-value: 0;
}
@property --_u {
syntax: '<length>';
inherits: true;
initial-value: 0;
}
:root {
--val: 25em; /* используем любую единицу измерения длинны (px, em, ex, ch, rem, ...)*/
/* умножаем, затем делим на наибольшее значение, чтобы получить единицу измерения */
--_m: 3.35544e07; /* это значение зависит от браузера */
--_u: calc(var(--val)*var(--_m));
--unit: calc(var(--_u)/var(--_m)); /* = 1em */
--unitless-val: tan(atan2(var(--val),var(--unit))); /* = 25 */
/* В ближайшем будущем можно будет сделать
--unitless-val: calc(var(--val)/var(--unit));
*/
}
/* для Firefox нужно другое значение */
@supports (-moz-appearance: none) {
:root {
--_m: 3.40282e38;
}
}Вы можете подумать, что можно использовать
Infinity в качестве наибольшего значения, но это не сработает, потому что при делении на бесконечность всегда будет получаться 0.Проверено в
px, потому что значение преобразуется в px внутри переменной --_u.#css #hack
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
git switch и git checkout: В чем разницаКоманды
git switch и git checkout используются для изменения веток, но у них есть различия в синтаксисе и поведении. Разберёмся в чём разница между ними.Одна из важнейших особенностей Git — возможность создавать различные ветки и работать в них. Ветки — это как параллельные временные линии проекта, в которых можно работать над различными функциями или экспериментами, не затрагивая стабильный код. Мы перемещаемся между ветками с помощью
git switch или git checkout.#git
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2🔥1
Метод eloquent
orderByRaw() позволяет просто передать сырой запрос для упорядочивания результатов.Например, сортировка по разнице между двумя столбцами.
#laravel #php #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👏1
Все ошибки, предупреждения и уведомления в PHP имеют уровень ошибки, и с помощью функций
error_reporting и set_error_handler PHP приложения могут контролировать, о каких ошибках сообщается, и переопределять поведение обработки ошибок по умолчанию с помощью обратного вызова.PHP имеет широкий диапазон уровней ошибок, причём константа
E_ALL является битовой маской OR всех констант E_, что означает установку сообщения об ошибках или обработчика ошибок для сообщения/обработки всех ошибок, предупреждений и уведомлений.Одним из уровней ошибок, ранее выдаваемых PHP, был
E_STRICT, когда код не был строго корректным, чтобы обеспечить совместимость и дальнейшее развитие. В PHP 7.0 большинство существующих предупреждений E_STRICT были преобразованы в E_NOTICE, а начиная с PHP 8.0 все предупреждения E_STRICT были преобразованы в E_NOTICE.Поскольку все уведомления
E_STRICT были преобразованы в E_NOTICE начиная с PHP 8.0, в PHP 8.4 константа E_STRICT объявлена устаревшей.error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT); // Constant E_STRICT is deprecated
#php #php84 #e_strict #deprecation
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
При проверке форм иногда требуется условно требовать заполнение одного поля, если было заполнено другое. Laravel поставляется с правилом
required_if_accepted, позволяющим сделать именно это #laravel #php #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1👏1
В наши дни градиентный текст довольно легко сделать с помощью
background-clip: text; — но это убивает возможность использовать text-shadow. На помощь приходит SVG.#frontend #css #svg
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1🔥1
Начиная с Laravel v11.23, вы можете выполнять задачи одновременно. Это может ускорить работу, если есть независимые задачи, которые могут выполняться одновременно
#laravel #php #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
Атрибуты PHP — отличный способ добавить метаданные к классам, методам и свойствам. Laravel предоставляет множество атрибутов из коробки, которые можно использовать в приложениях.
Обзор PHP атрибутов Laravel с примерами от Christoph Rumpel.
#laravel #php #attribute
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
В своих приложениях мы часто используем выражение
where(..., 'like', ...). Знаете ли вы, что Laravel поставляется с методом whereLike, позволяющим сделать ещё один шаг вперёд и сделать оператор like нечувствительным к регистру? #laravel #php #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1