Одной из самых больших проблем, приближенной к теме Domain Driven Design является большое количество новых идей, моделей и терминов, которые необходимо понимать. Это часто может означать, что тема неприступна или подавляющая, потому что вы чувствуете, как вы тонете в большом количестве информации. Прошлый раз мы рассматривали Domain Model, что это […]
Ubiquitous Language и Bounded Context в DDD
Domain-Driven Design: Tackling Complexity in the Heart of Software Эванса — лучшая книга о проектировании действительно больших enterprise-приложений, что я читал. Видимо это мнение разделяют многие другие разработчики и проектировщики, потому что Entity и ValueObject, Repository и Specification встречаются почти в каждой большой кодовой базе. Но вот незадача, Ubiquitous Language […]
Заглушки Eloquent-отношений для быстрых тестов
Когда вы пишете тесты для модели Eloquent, зачастую нужен доступ непосредственно к базе данных, что бы проверить свой код в боевых условиях. Но иногда функциональность тестирования не зависит от особенностей базы данных. Есть ли способ тестировать данные без отправки в базу данных? Тестирование с базой данныхСкажем так, у нас есть […]
Stubbing Eloquent Relations for Faster Tests
Stubbing Eloquent Relations for Faster Tests When you’re trying to test methods on an Eloquent model, you often need to hit the database to really test your code. But sometimes the functionality you’re testing doesn’t really depend on database features. Is there any way to test that stuff without hitting […]
AN AUTOMAPPER FOR PHP, THE POWERFUL AND SIMPLE SOLUTION FOR MAPPINGS
Did you wonder how to eliminate problems with complexity of mapping, whose are always coming back to you? It concerns a many developers, who are creating backend-layer of web applications. This applies in particular to building an APIs, using Event-Driven architecture with a lot of DTO / VO objects. If […]
Run jQuery in Chrome Console
I’ve run into numerous situations where I need to loop through data on a website that I do not own (typically API documentation) so that I can reformat it and make it usable. For example, AWS Route 53 includes a list of top-level domains (TLDs) in a page with related […]
Laravel class-based Macros
Laravel Macros are a clean way to add pieces of functionality to classes you don’t own (core Laravel components) and re-use them in your projects. It was first introduced in the 4.2 version but it was only recently that I discovered the ability to define class-based macros. So, this is […]
Какая разница между .gitkeep и .gitignore
Пустой файл .gitkeep необходим в случае если необходимо добавить в git пустую директорию (по другому просто не получится — git это не позволяет)Причем подойдет любой файл с любым расширением. Просто .gitkeep это общепринятое соглашение о наименовании, а не git фича.Файл .gitignore позволяет задать исключения для репозитория.Его как привило размещают в […]
Выбор PHP фреймворка: Laravel глазами Symfony разработчика
Фреймворк — это некий скелет структуры проекта, предоставляющий реализованный функционал «из коробки». Данный функционал позволяет решать наиболее типичные задачи при разработке. Архитектура фреймворка может как реализовывать некий собственный набор паттернов, так и представлять собой реализацию отдельных общеизвестных паттернов. Архитектура Laravel строится вокруг популярного в последнее время принципа Inversion of Control […]
Заглянем под капот Doctrine 2
Пожалуй, я не совру, если скажу, что в экосистеме Symfony наиболее часто используемой ORM является Doctrine. Поэтому изучение этой библиотеки крайне важно для Symfony-разработчика. В данной статье предлагаю заглянуть «под капот» этого Мустанга в мире ORM-ок и выяснить, на базе каких абстракций и паттернов построена эта библиотека. Когда я впервые […]