Skip to content

Instantly share code, notes, and snippets.

@webdevilopers
webdevilopers / JsonObject.php
Created Apr 15, 2019
UPDATE and INSERT statements with Doctrine DBAL and MySQL JSON type
View JsonObject.php
<?php
class JsonObject
{
/** @var string $result */
private $result;
private function __construct(string $result)
{
$this->result = $result;
@webdevilopers
webdevilopers / DoctrineGutterColorRepository.php
Last active Mar 10, 2019
Using Value Objects as Custom Doctrine DBAL Type as Identifier in Symfony
View DoctrineGutterColorRepository.php
<?php
namespace Sps\DormerCalculation\Infrastructure\Persistence\Doctrine;
use Doctrine\ORM\EntityRepository;
/**
* Class DoctrineGutterColorRepository
* @package Sps\DormerCalculation\Infrastructure\Persistence\Doctrine
*/
@webdevilopers
webdevilopers / DormerType.php
Created Feb 25, 2019
Using Entity as Factory for Value Object
View DormerType.php
<?php
abstract class DormerType implements DormerTypeInterface
{}
@webdevilopers
webdevilopers / OfferFactory_v1.php
Last active Feb 20, 2019
DDD Domain Service vs Domain Factory vs. Double Dispatch
View OfferFactory_v1.php
<?php
final class OfferFactory
{
/** @var ChargeRatesFactory $chargeRatesFactory */
private $chargeRatesFactory;
/** @var PricesCalculator $pricesCalculator */
private $pricesCalculator;
@webdevilopers
webdevilopers / DormerCalculationController.php
Last active Feb 3, 2019
Catching domain exceptions when using value objects with data transformers in Symfony forms
View DormerCalculationController.php
<?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
Prooph Event Sourcing with Symfony Flex
View ResourceProjection.php
<?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
Prevent extra space from line break when adding text at then end of a too small textarea
View placeholder.js
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 Jun 12, 2018
Sending JWT Token in Guzzle POST with LexikJWTAuthenticationBundle
View DefaultController.php
<?php
namespace AppBundle\Controller;
class DefaultController extends Controller
{
/**
* @Route("/gettoken")
*/
public function getToken()
@webdevilopers
webdevilopers / Photo.mongodb.xml
Created Mar 16, 2018
Mapping file uploads with Doctrine MongoDB ODM
View Photo.mongodb.xml
<?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 Mar 12, 2018
Custom Acme namespaces with Symfony Flex
View composer.json
{
"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",
You can’t perform that action at this time.