#advanced
Анна Филина продолжает развивать тему репозиториев. На этот раз она рассуждает, можно ли использовать репозитории без ORM.
https://afilina.com/learn/design/repos-without-orms
Анна Филина продолжает развивать тему репозиториев. На этот раз она рассуждает, можно ли использовать репозитории без ORM.
https://afilina.com/learn/design/repos-without-orms
👎3
#advanced #doctrine
Новый минорный релиз Doctrine с поддержкой php 8.1 (енамы,
https://www.doctrine-project.org/2022/01/11/orm-2.11.html
Новый минорный релиз Doctrine с поддержкой php 8.1 (енамы,
readonly свойства), виртуальных колонок и многим другим.https://www.doctrine-project.org/2022/01/11/orm-2.11.html
www.doctrine-project.org
New Release: Doctrine ORM 2.11 with Enums, Virtual Columns, Read-Only Properties, Nested Attributes and more - Doctrine: PHP Open…
The Doctrine Project is an open-source PHP project that is home to home to several PHP libraries primarily focused on database storage and object mapping. The core projects are the Object Relational Mapper (ORM) and the Database Abstraction Layer (DBAL) it…
👍4🎉3
#advanced
Один из хардкорных способов избавиться от класса, используемого по всему проекту, при рефакторинге — это убрать его из автозагрузки и под тем же неймспейсом загрузить другой. На эту тему есть плагины для композера, но что если это можно сделать и без них? Автор статьи подробно рассказывает, как этого можно добиться нативными средствами пакетного менеджера.
https://downing.tech/posts/overriding-vendor-classes
Один из хардкорных способов избавиться от класса, используемого по всему проекту, при рефакторинге — это убрать его из автозагрузки и под тем же неймспейсом загрузить другой. На эту тему есть плагины для композера, но что если это можно сделать и без них? Автор статьи подробно рассказывает, как этого можно добиться нативными средствами пакетного менеджера.
https://downing.tech/posts/overriding-vendor-classes
#advanced #phpstan
Интересный плагин для phpstan, который помогает находить несоответствия между вашей доменной моделью и схемой в базе. Статический анализ вышел на новый уровень 💪.
https://github.com/staabm/phpstan-dba
Интересный плагин для phpstan, который помогает находить несоответствия между вашей доменной моделью и схемой в базе. Статический анализ вышел на новый уровень 💪.
https://github.com/staabm/phpstan-dba
GitHub
GitHub - staabm/phpstan-dba: PHPStan based SQL static analysis and type inference for the database access layer
PHPStan based SQL static analysis and type inference for the database access layer - staabm/phpstan-dba
🔥9
#advanced
Надёжный механизм публикации событий с использованием паттерна «transactional outbox».
https://blog.frankdejonge.nl/reliable-event-dispatching-using-a-transactional-outbox/
Надёжный механизм публикации событий с использованием паттерна «transactional outbox».
https://blog.frankdejonge.nl/reliable-event-dispatching-using-a-transactional-outbox/
Frank on Software
Reliable event dispatching using a transactional outbox
Using events in a system is great, but how do you know for sure if you've
reliably dispatched your events? The transportation of events needs to be done
reliably while maintaining overall system consistency, be it eventual or
immediately. In a typical setup…
reliably dispatched your events? The transportation of events needs to be done
reliably while maintaining overall system consistency, be it eventual or
immediately. In a typical setup…
🔥3👍1
#advanced
Значения latency, которые должен знать каждый программист.
https://gist.github.com/hellerbarde/2843375
Значения latency, которые должен знать каждый программист.
https://gist.github.com/hellerbarde/2843375
Gist
Latency numbers every programmer should know
Latency numbers every programmer should know. GitHub Gist: instantly share code, notes, and snippets.
👍6
#advanced #laravel
Недавно релиз Laravel 9 перенесли с 25-го января на 8-е февраля. Тем не менее, релиз уже совсем скоро и пора бы уже обновляться. В Release Notes представлен практически полный список новых фич будущего релиза:
– С этой версии Laravel будет требовать PHP 8.0;
– Обновлены компоненты Flysystem и Symfony Mailer;
– Улучшены акссесоры;
– В аргументах роута можно использовать енамы;
– Группировка роутов по контроллеру;
– Енамы в качестве кастов атрибутов моделей (доступно только для PHP 8.1+);
– Поддержка индексов для полнтекстового поиска;
– И много других мелких изменений.
https://laravel.com/docs/master/releases
Недавно релиз Laravel 9 перенесли с 25-го января на 8-е февраля. Тем не менее, релиз уже совсем скоро и пора бы уже обновляться. В Release Notes представлен практически полный список новых фич будущего релиза:
– С этой версии Laravel будет требовать PHP 8.0;
– Обновлены компоненты Flysystem и Symfony Mailer;
– Улучшены акссесоры;
– В аргументах роута можно использовать енамы;
– Группировка роутов по контроллеру;
– Енамы в качестве кастов атрибутов моделей (доступно только для PHP 8.1+);
– Поддержка индексов для полнтекстового поиска;
– И много других мелких изменений.
https://laravel.com/docs/master/releases
👍5
#advanced #video #spiral
Новости от команды фреймворка Spiral.
https://www.youtube.com/watch?v=VIoGqpn3eyc
Новости от команды фреймворка Spiral.
https://www.youtube.com/watch?v=VIoGqpn3eyc
YouTube
Spiral Ecosystem news #2
После каждого релиза R&D команда Spiral собирается, чтобы обсудить новые фичи вошедшие в релизы наших проектов, а так-же последние новости по Roadrunner, Cycle ORM и Spiral Framework.
👍5
#advanced
Разбираемся, почему
https://www.exakat.io/en/speeding-up-array_merge/
Разбираемся, почему
array_merge может быть медленным и что можно с этим сделать.https://www.exakat.io/en/speeding-up-array_merge/
👍1
#advanced
Матьяс Нобак делится своим мнением о том, что код надо коммитить так, будто его могут случайно задеплоить.
https://matthiasnoback.nl/2022/01/commit-your-code-as-if-it-could-be-accidentally-deployed/
Матьяс Нобак делится своим мнением о том, что код надо коммитить так, будто его могут случайно задеплоить.
https://matthiasnoback.nl/2022/01/commit-your-code-as-if-it-could-be-accidentally-deployed/
matthiasnoback.nl
Commit your code as if it could be accidentally deployed
Consultancy secrets
#advanced #video
Евгений Кувшинов продолжает ликбез по PDO и базам данных. На этот раз он разбирает разницу между
https://www.youtube.com/watch?v=crDvjTUvdi4
Евгений Кувшинов продолжает ликбез по PDO и базам данных. На этот раз он разбирает разницу между
PREPARE и EXECUTE.https://www.youtube.com/watch?v=crDvjTUvdi4
YouTube
PHP, PDO Подготовленные запросы, EXECUTE vs PREPARE Statement
Что такое PREPARE и EXECUTE Statement в чем отличия подготовленных запросов, как с этим работать с PHP и PDO
00:00 Вступление
00:24 EXECUTE и PREPARE
00:50 EXECUTE Statement
03:08 PREPARE Statement
07:09 Пример именованные placeholder
07:53 Пример неименованные…
00:00 Вступление
00:24 EXECUTE и PREPARE
00:50 EXECUTE Statement
03:08 PREPARE Statement
07:09 Пример именованные placeholder
07:53 Пример неименованные…
👍13
#advanced
Список алгоритмов и их реализаций на разных языках программирования, включая PHP. Однозначно будет полезно для общего развития. Не только же json-ы перекладывать.
https://github.com/tayllan/awesome-algorithms
Список алгоритмов и их реализаций на разных языках программирования, включая PHP. Однозначно будет полезно для общего развития. Не только же json-ы перекладывать.
https://github.com/tayllan/awesome-algorithms
GitHub
GitHub - tayllan/awesome-algorithms: A curated list of awesome places to learn and/or practice algorithms.
A curated list of awesome places to learn and/or practice algorithms. - tayllan/awesome-algorithms
🔥6👍1
#advanced
Стратегии кэширования и как выбрать правильную из них для конкретного случая.
https://codeahoy.com/2017/08/11/caching-strategies-and-how-to-choose-the-right-one/
Стратегии кэширования и как выбрать правильную из них для конкретного случая.
https://codeahoy.com/2017/08/11/caching-strategies-and-how-to-choose-the-right-one/
CodeAhoy
Caching Strategies and How to Choose the Right One
Compare the pros and cons of various caching strategies to choose the best one for your use case.
👍1
#advanced #postgres
Сложное объяснение основ устройства индексов в Postgres для тех, кто хочет глубже разобраться в теме.
https://patshaughnessy.net/2014/11/11/discovering-the-computer-science-behind-postgres-indexes
Сложное объяснение основ устройства индексов в Postgres для тех, кто хочет глубже разобраться в теме.
https://patshaughnessy.net/2014/11/11/discovering-the-computer-science-behind-postgres-indexes
👍9
#advanced #video
Познавательное видео про то, почему стоит избегать распределенных транзакций, и чем может помочь паттерн Reservation.
https://www.youtube.com/watch?v=PZm0RQGcs38
Познавательное видео про то, почему стоит избегать распределенных транзакций, и чем может помочь паттерн Reservation.
https://www.youtube.com/watch?v=PZm0RQGcs38
YouTube
Avoiding Distributed Transactions with the Reservation Pattern
Because a long-running business process could last seconds to days, you cannot lock resources within a service using a distributed transaction. So what's the alternative? The real world has a solution, it's a reservation. A reservation allows you to have…
👍1
#advanced #doctrine
Советы по оптимизации гидрации объектов в Doctrine ORM от Окрамиуса.
https://ocramius.github.io/blog/doctrine-orm-optimization-hydration/
Советы по оптимизации гидрации объектов в Doctrine ORM от Окрамиуса.
https://ocramius.github.io/blog/doctrine-orm-optimization-hydration/
ocramius.github.io
Doctrine ORM Hydration Performance Optimization
Hydration is the most expensive operation performed by Doctrine ORM: how do we prevent it from killing our applications?
👍2
#advanced #architecture
Frank De Jonge, автор Flysystem, рассказывает о том, какие типы событий бывают в event-driven системах.
https://blog.frankdejonge.nl/the-different-types-of-events-in-event-driven-systems/
Frank De Jonge, автор Flysystem, рассказывает о том, какие типы событий бывают в event-driven системах.
https://blog.frankdejonge.nl/the-different-types-of-events-in-event-driven-systems/
Frank on Software
The different types of events in event-driven systems
Event-driven systems come in all sorts of shapes and sizes. The obvious commonality is; they all use events to communicate information. These events come in many shapes and sizes, and determining what goes into an event has an immense impact on the design…
👍1
Alex_Yu_System_Design_Interview_An_Insider_s_Guide_Independently.pdf
22 MB
#advanced #book
Книга с подробным обзором сложных вопросов построения архитектур систем, которые могут вам задать на собеседовании в какой-нибудь FAANG.
Книга с подробным обзором сложных вопросов построения архитектур систем, которые могут вам задать на собеседовании в какой-нибудь FAANG.
🔥13👍1