Skip to content

Instantly share code, notes, and snippets.

View Ocramius's full-sized avatar
🔬
In your repositories, watching your code. Always watching.

Marco Pivetta Ocramius

🔬
In your repositories, watching your code. Always watching.
View GitHub Profile
<?php
declare(strict_types=1);
namespace Test\Feature;
use Shared\Domain\DomainEvent;
use Shared\Domain\EventSourcedAggregateRoot;
use Webmozart\Assert\Assert;
use function array_shift;
@Ocramius
Ocramius / compiler-pass.php
Last active March 16, 2020 07:07
Compiler pass to declare a repository as service for each declared doctrine entity in a symfony application
<?php
final class RegisterRepositoriesForAllEntitiesPass implements CompilerPassInterface
{
/** {@inheritdoc} */
public function process(ContainerBuilder $container)
{
/** @var MappingDriver $metadata */
$metadata = $container->get($this->mappingDriverServiceName());
$entityManagerReference = new Reference('doctrine.orm.entity_manager');
@Ocramius
Ocramius / proposed-dql-inspections.php
Created September 21, 2018 15:15
DQL inspections example/proposal for JetBrains PHPStorm EAP
<?php
class Foo {
private $bar = 'baz';
/** @var Baz @ORM\ManyToOne(targetEntity=Baz::class) */
private $baz;
}
class Baz {
private $tab = 'taz';
@Ocramius
Ocramius / DOCTRINE-ORM-3.x-BC-BREAKS-2018-09-12.txt
Last active September 12, 2018 08:51
Doctrine ORM 3.x BC breaks as per 2018-09-12
[BC] REMOVED: Property Doctrine\ORM\AbstractQuery#$_resultSetMapping was removed
[BC] REMOVED: Property Doctrine\ORM\AbstractQuery#$_em was removed
[BC] REMOVED: Property Doctrine\ORM\AbstractQuery#$_hints was removed
[BC] REMOVED: Property Doctrine\ORM\AbstractQuery#$_hydrationMode was removed
[BC] REMOVED: Property Doctrine\ORM\AbstractQuery#$_queryCacheProfile was removed
[BC] REMOVED: Property Doctrine\ORM\AbstractQuery#$_expireResultCache was removed
[BC] REMOVED: Property Doctrine\ORM\AbstractQuery#$_hydrationCacheProfile was removed
[BC] REMOVED: Method Doctrine\ORM\AbstractQuery#_doExecute() was removed
[BC] REMOVED: Method Doctrine\ORM\ORMInvalidArgumentException::invalidEntityName() was removed
[BC] CHANGED: The parameter $associationMapping of Doctrine\ORM\ORMInvalidArgumentException::newEntityFoundThroughRelationship() changed from array to a non-contravariant Doctrine\ORM\Mapping\AssociationMetadata
@Ocramius
Ocramius / BC-BREAKS.txt
Created August 20, 2018 18:25
doctrine/dbal 2.7.2 -> 2.8.0 Backwards Compatibility (BC) breaks
[BC] CHANGED: Type documentation for property Doctrine\DBAL\Connection#$_conn changed from \Doctrine\DBAL\Driver\Connection to \Doctrine\DBAL\Driver\Connection|null
[BC] CHANGED: Type documentation for property Doctrine\DBAL\Connections\MasterSlaveConnection#$connections changed from \Doctrine\DBAL\Driver\Connection[] to \Doctrine\DBAL\Driver\Connection[]|null[]
[BC] CHANGED: Type documentation for property Doctrine\DBAL\Connection#$_conn changed from \Doctrine\DBAL\Driver\Connection to \Doctrine\DBAL\Driver\Connection|null
[BC] CHANGED: Type documentation for property Doctrine\DBAL\Connection#$_conn changed from \Doctrine\DBAL\Driver\Connection to \Doctrine\DBAL\Driver\Connection|null
[BC] SKIPPED: Provided node "Symfony\Component\Console\Command\Command" is not class, but "interface"
[BC] SKIPPED: Provided node "Symfony\Component\Console\Command\Command" is not class, but "interface"
[BC] SKIPPED: Provided node "Symfony\Component\Console\Command\Command" is not class, but "interface"
[BC] SKIPPED: Provided
@Ocramius
Ocramius / Caddyfile
Last active March 11, 2024 22:14
Example docker + docker-compose + caddy + traefik setup that routes to multiple apps from one exposed HTTP port
:80 {
root /serve
}
services:
- docker:dind
variables:
DOCKER_DRIVER: overlay2
build-test-containers:
image: tiangolo/docker-with-compose
before_script:
- docker info
[BC] REMOVED: Method Doctrine\ORM\ORMException::missingMappingDriverImpl() was removed
[BC] REMOVED: Method Doctrine\ORM\ORMException::namedQueryNotFound() was removed
[BC] REMOVED: Method Doctrine\ORM\ORMException::namedNativeQueryNotFound() was removed
[BC] REMOVED: Method Doctrine\ORM\ORMException::entityMissingForeignAssignedId() was removed
[BC] REMOVED: Method Doctrine\ORM\ORMException::entityMissingAssignedIdForField() was removed
[BC] REMOVED: Method Doctrine\ORM\ORMException::unrecognizedField() was removed
[BC] REMOVED: Method Doctrine\ORM\ORMException::unexpectedAssociationValue() was removed
[BC] REMOVED: Method Doctrine\ORM\ORMException::invalidOrientation() was removed
[BC] REMOVED: Method Doctrine\ORM\ORMException::invalidFlushMode() was removed
[BC] REMOVED: Method Doctrine\ORM\ORMException::entityManagerClosed() was removed
<?php
use Zend\Diactoros\Response;
use Zend\Diactoros\Server;
use Zend\Stratigility\MiddlewarePipe;
use function Zend\Stratigility\middleware;
require 'vendor/autoload.php';
$app = new MiddlewarePipe();
<?php
declare(strict_types=1);
namespace Roave\BetterReflection\SourceLocator\Ast\Parser;
use PhpParser\ErrorHandler;
use PhpParser\NodeTraverser;
use PhpParser\NodeTraverserInterface;
use PhpParser\NodeVisitor\NameResolver;