For a project I’m working on I needed to build a lightweight, pragmatic search. In this blogpost I’d like to go over my solution. Searching Eloquent models Imagine you need to provide a search for users. Using Eloquent you can perform a search like this: User::query() ->where(‘name’, ‘LIKE’, «%{$searchTerm}%») ->orWhere(’email’, […]
nginx + fastcgi_intercept_errors = мини-грабли
Есть такая опция у nginx’а, fastcgi_intercept_errors. Она перехватывает ошибки fastcgi и преобразовыает их в ошибки nginx’а.Сегодня около часа потратил на такую ситуацию. nginx + php-fpm. Конфиги адекватные, в барузере 500 Internal Server Error. В nginx/error.log пусто. В php-fpm/error.log пусто. Включил везде debug по-максимуму — в логах пусто. Всё перепроверил на […]
Мутационное тестирование
Юнит тесты помогают нам удостовериться, что код работает так, как мы этого хотим. Одной из метрик тестов является процент покрытия строк кода (Line Code Coverage). Но насколько корректен данный показатель? Имеет ли он практический смысл и можем ли мы ему доверять? Ведь если мы удалим все assert строки из тестов, […]
Что нового в CentOS 8
Недавно состоялся долгожданный релиз дистрибутива CentOS 8, основанного на Red Hat Enterprice Linux 8. Он был создан как бесплатная альтернатива для коммерческого дистрибутива от Red Hat и собран из его исходников, за исключением брендинга и утилит для управления подпиской. Сейчас CentOS очень часто используется на серверах, а также в качестве […]
Обработка исключений в Laravel
В этой статье мы рассмотрим одну из наиболее важных и наименее обсуждаемых функций Laravel web framework — обработку исключений. Laravel поставляется со встроенным обработчиком исключений, который позволяет легко и дружелюбно сообщать об исключениях. В первой половине статьи мы рассмотрим настройки по умолчанию, предоставляемые обработчиком исключений. Фактически, мы рассмотрим класс Handler, […]
Laravel Nova: Adding custom buttons to resource toolbars
If you’ve seen issue 786 on laravel/nova-issues on Github or attempted to add custom buttons to Resources in Laravel Nova you are probably frustrated. I spent a whole day trying to figure this out. But it’s a lot simpler than you think! Laravel Nova is powered by Vue.JS a very […]
Default values for Nova fields
When creating Nova resources or running resource actions, users are always presented with a blank form. All fields are empty and all checkboxes are unchecked. Often there may be values which can be defaulted or prepopulated to save the user time, rather than needing to be reentered every time a […]
How do you log all API calls using Guzzle 6
37 You can use any logger which implements PSR-3 interface with Guzzle 6 I used Monolog as logger and builtin middleware of Guzzle with MessageFormatter in below example. use GuzzleHttp\HandlerStack; use GuzzleHttp\Middleware; use GuzzleHttp\MessageFormatter; use Monolog\Logger; $stack = HandlerStack::create(); $stack->push( Middleware::log( new Logger(‘Logger’), new MessageFormatter(‘{req_body} — {res_body}’) ) ); $client […]
Laravel polymorphic route model binding
ou can use a shared controller for this with some explicit model binding. The following is untested code, it provides the general idea rather than copy and pasteable. Let me know if you run into any issues. Create a new CommentableModel that extends Model Extend Photo and Video from CommentableModel […]
Re-Introducing Eloquent’s Polymorphic Relationships
You’ve probably used different types of relationships between models or database tables, like those commonly seen in Laravel: one-to-one, one-to-many, many-to-many, and has-many-through. But there’s another type of relationship that’s not so common: polymorphic. So what is a polymorphic relationship? A polymorphic relationship is where a model can belong to […]