Skip to content

Instantly share code, notes, and snippets.

@webdevilopers
webdevilopers / DoctrineGutterColorRepository.php
Last active March 14, 2022 11:23
Using Value Objects as Custom Doctrine DBAL Type as Identifier in Symfony
<?php
namespace Sps\DormerCalculation\Infrastructure\Persistence\Doctrine;
use Doctrine\ORM\EntityRepository;
/**
* Class DoctrineGutterColorRepository
* @package Sps\DormerCalculation\Infrastructure\Persistence\Doctrine
*/
@webdevilopers
webdevilopers / DormerType.php
Created February 25, 2019 18:28
Using Entity as Factory for Value Object
<?php
abstract class DormerType implements DormerTypeInterface
{}
@webdevilopers
webdevilopers / OfferFactory_v1.php
Last active February 20, 2019 11:11
DDD Domain Service vs Domain Factory vs. Double Dispatch
<?php
final class OfferFactory
{
/** @var ChargeRatesFactory $chargeRatesFactory */
private $chargeRatesFactory;
/** @var PricesCalculator $pricesCalculator */
private $pricesCalculator;
@webdevilopers
webdevilopers / DormerCalculationController.php
Last active February 3, 2019 11:03
Catching domain exceptions when using value objects with data transformers in Symfony forms
<?php
namespace Acme\DormerCalculation\Infrastructure\Symfony\DormerCalculationBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Acme\DormerCalculation\Infrastructure\Symfony\DormerCalculationBundle\Form\DormerCalculation as CalculationForm;
use Acme\DormerCalculation\Domain\Model\DormerCalculation\Command\CalculateDormerCommand;
use Symfony\Component\Form\FormError;
@webdevilopers
webdevilopers / ResourceProjection.php
Last active May 20, 2018 11:36
Prooph Event Sourcing with Symfony Flex
<?php
namespace Acme\Infrastructure\Projection\Resource;
use Prooph\Bundle\EventStore\Projection\ReadModelProjection;
use Prooph\EventStore\Projection\ReadModelProjector;
use Acme\Domain\Model\Resource\Event\PhotoUploaded;
use Acme\Domain\Model\Resource\Event\ResourceAcquired;
/**
@webdevilopers
webdevilopers / placeholder.js
Last active May 8, 2018 10:55
Prevent extra space from line break when adding text at then end of a too small textarea
function placeholder2text(textElementId, text)
{
var textElement = document.getElementById(textElementId);
if(textElement.createTextRange && textElement.caretPos)
{
var caretPos = textElement.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
textElement.focus();
}
@webdevilopers
webdevilopers / DefaultController.php
Last active March 23, 2022 15:58
Sending JWT Token in Guzzle POST with LexikJWTAuthenticationBundle
<?php
namespace AppBundle\Controller;
class DefaultController extends Controller
{
/**
* @Route("/gettoken")
*/
public function getToken()
@webdevilopers
webdevilopers / Photo.mongodb.xml
Created March 16, 2018 12:36
Mapping file uploads with Doctrine MongoDB ODM
<?xml version="1.0" encoding="UTF-8"?>
<doctrine-mongo-mapping xmlns="http://doctrine-project.org/schemas/odm/doctrine-mongo-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://doctrine-project.org/schemas/odm/doctrine-mongo-mapping
http://doctrine-project.org/schemas/odm/doctrine-mongo-mapping.xsd">
<document name="Acme\Domain\Model\Photo\Photo" collection="photos">
<field fieldName="_id" id="true" />
<field fieldName="galleryId" type="string" />
<field fieldName="description" type="string" />
@webdevilopers
webdevilopers / composer.json
Created March 12, 2018 16:13
Custom Acme namespaces with Symfony Flex
{
"type": "project",
"license": "proprietary",
"require": {
"php": "^7.1.3",
"ext-iconv": "*",
"symfony/console": "^4.0",
"symfony/flex": "^1.0",
"symfony/framework-bundle": "^4.0",
"symfony/lts": "^4@dev",
@webdevilopers
webdevilopers / OfferNumberGenerator.php
Created March 3, 2018 09:27
Making domain services testable
<?php
namespace Sps\Intranet\Domain\Model\Offer;
use Sps\Intranet\Domain\Model\Partner\PartnerId;
use Sps\Intranet\Infrastructure\Projection\Mongo\OfferReadModelFinder;
/**
* Class OfferNumberGenerator
* @package Sps\Intranet\Domain\Model\Offer