Выбор PHP фреймворка: Laravel глазами Symfony разработчика

Фреймворк — это некий скелет структуры проекта, предоставляющий реализованный функционал «из коробки». Данный функционал позволяет решать наиболее типичные задачи при разработке. Архитектура фреймворка может как реализовывать некий собственный набор паттернов, так и представлять собой реализацию отдельных общеизвестных паттернов. Архитектура Laravel строится вокруг популярного в последнее время принципа Inversion of Control >> Dependency Injection >> Service Container. Этот принцип хорошо знаком разработчикам Symfony, т.к. является краеугольным камнем всей Symfony разработки. Service Container Laravel очень напоминает Symfony Read more

Заглянем под капот Doctrine 2

Пожалуй, я не совру, если скажу, что в экосистеме Symfony наиболее часто используемой ORM является Doctrine. Поэтому изучение этой библиотеки крайне важно для Symfony-разработчика. В данной статье предлагаю заглянуть «под капот» этого Мустанга в мире ORM-ок и выяснить, на базе каких абстракций и паттернов построена эта библиотека. Когда я впервые услышал о Doctrine, это была еще 1-я версия. Докладчик, которого я слушал, жаловался, какая это «бяка» и сколько головной боли она доставляла команде на проекте. Read more

Попросили проверить код, на что смотреть нужно?

Цель данных рекомендаций — снижение сложности восприятия, поддержки, тестирования и расширения кода, написанного разными авторами; она достигается путём рассмотрения серии правил и ожиданий относительно написания PHP-кода. Слова «НЕОБХОДИМО» / «ДОЛЖНО» («MUST»), «НЕДОПУСТИМО» («MUST NOT»), «ТРЕБУЕТСЯ» («REQUIRED»), «НУЖНО» («SHALL»), «НЕ ПОЗВОЛЯЕТСЯ» («SHALL NOT»), «СЛЕДУЕТ» («SHOULD»), «НЕ СЛЕДУЕТ» («SHOULD NOT»), «РЕКОМЕНДУЕТСЯ» («RECOMMENDED»), «МОЖЕТ» / «ВОЗМОЖНО» («MAY») и «НЕОБЯЗАТЕЛЬНО» («OPTIONAL») в этом документе следует понимать так, как это описано в RFC 2119 (и его переводе). 1. Оформление 1.1. Read more

Как работает подход Unit of Work?

Unit of Work — это паттерн определяющий логическую транзакцию т.е. атомарную синхронизацию изменений в объектах, помещённых в объект UoW с хранилищем (базой данных).Если обратиться к исходному описанию этого паттерна у Мартина Фаулера — то видно что объект, реализующий этот паттерн отвечает за накопление информации о том какие объекты входят в транзакцию и каковы их изменния относительно исходных значений в хранилище. Основная работа производится в методе commit() который отвечает за вычисление изменений в сохранённых в UoW Read more

Список бесплатных сервисов для постороения маршрутов

http://www.yournavigation.org/ https://maps.openrouteservice.org/directions?n1=54.556137&n2=45.379028&n3=8&a=55.736389,37.595215,55.481966,46.972046&b=2&c=0&k1=en-US&k2=km&s http://map.project-osrm.org/?z=6&center=49.788357%2C41.616211&loc=55.627996%2C37.727051&loc=43.130556%2C45.538330&hl=en&alt=0 https://router.project-osrm.org/route/v1/driving/37.72705078125,55.62799595426723;45.538330078125,43.13055565187361?overview=false&alternatives=false&steps=false

Заменяем User Story на Job Story

Раньше, я уже писал о проблемах с user story (пользовательскими историями). В те времена я считал, что лучше просто попросить команду обсудить предлагаемые изменения в продукте. Стратегия была хорошей, если команда оказывала помощь, а продукт был уже зрелым. Однако теперь я работаю с новой командой и создаю продукт с нуля. В таком случае перед нами лежит чистый лист и нам непросто прийти к согласию, когда речь заходит о мотивации клиентов, событиях и ожиданиях. На сегодняшний Read more

Макросы в Laravel

Макросы в Laravel — это то, о чём еще сказано недостаточно в рамках фреймворка. Они реально мощные и полезные. За последние год-два я не создал ни одного проекта, где бы не использовал макросы. Если описывать макросы кратко, то это способ расширения метода класса, но без использования наследования, а через замыкание. Это означает, что все экземпляры этого класса будут иметь этот метод. В любом классе фреймворка, который использует трейт Macroable, могут быть применены макросы. В этой Read more

How to Inject New Docker Tag into Docker Compose File

If you follow best practices then you’re tagging each of your Docker images with a unique tag or version whenever it gets updated. These tags might be the git commit hash, a CI/CD Build number or any other value that is usually generated automatically during your build process. You might be running your containers using Docker Compose and a docker-compose.yml file, or maybe you’re running things in AWS Elastic Beanstalk with a Dockerrun.aws.json file. No matter how you’re doing Read more

Laravel – Custom pivot model in Eloquent

Sometimes you may wish to use custom pivot model when working with many-to-many relationships in Eloquent, in order to add some behaviour on top of the core features. There are a few things to consider before you start. First things first: belongsToMany relationship can presented as double hasMany + belongsTo relations. Imagine we have categories of posts and users who can subscribe for multiple categories: User belongsToMany Category // the same as: User hasMany CategoryUser Read more


Любишь мемасики?

Подпишись на мой телеграм-канал!

Открыть
Закрыть