Skip to content

Instantly share code, notes, and snippets.

@dadamssg
Last active November 2, 2015 10:38

Revisions

  1. dadamssg revised this gist Jul 13, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion 3_PhoneNumber.orm.yml
    Original file line number Diff line number Diff line change
    @@ -4,4 +4,4 @@ Acme\Project\Model\User\Value\PhoneNumber:
    value:
    type: string
    column: phone_number
    nullable: true
    nullable: false
  2. dadamssg revised this gist Jul 13, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion 3_PhoneNumber.orm.yml
    Original file line number Diff line number Diff line change
    @@ -4,4 +4,4 @@ Acme\Project\Model\User\Value\PhoneNumber:
    value:
    type: string
    column: phone_number
    nullable: false
    nullable: true
  3. dadamssg revised this gist Jul 13, 2015. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions 2_User.orm.yml
    Original file line number Diff line number Diff line change
    @@ -11,7 +11,7 @@ Acme\Project\Model\User\Entity\User:
    type: datetime
    column: registered_at
    embedded:
    email:
    class: Acme\Project\Model\User\Value\Email
    phoneNumber:
    class: Acme\Project\Model\User\Value\PhoneNumber
    columnPrefix: false
    nullable: true # <--- new option
  4. dadamssg revised this gist Jul 13, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion 2_User.orm.yml
    Original file line number Diff line number Diff line change
    @@ -14,4 +14,4 @@ Acme\Project\Model\User\Entity\User:
    email:
    class: Acme\Project\Model\User\Value\Email
    columnPrefix: false
    nullable: true
    nullable: true # <--- new option
  5. dadamssg revised this gist Jul 13, 2015. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions 1_PhoneNumber.php
    Original file line number Diff line number Diff line change
    @@ -1,8 +1,8 @@
    <?php

    namespace Acme\Project\Domain\User\Value;
    namespace Acme\Project\Model\User\Value;

    use Acme\Project\Domain\Core\Validation\Assert;
    use Acme\Project\Model\Core\Validation\Assert;

    final class PhoneNumber
    {
  6. dadamssg revised this gist Jul 13, 2015. 3 changed files with 0 additions and 0 deletions.
    File renamed without changes.
    File renamed without changes.
    File renamed without changes.
  7. dadamssg revised this gist Jul 13, 2015. 2 changed files with 24 additions and 0 deletions.
    7 changes: 7 additions & 0 deletions PhoneNumber.orm.yml
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,7 @@
    Acme\Project\Model\User\Value\PhoneNumber:
    type: embeddable
    fields:
    value:
    type: string
    column: phone_number
    nullable: false
    17 changes: 17 additions & 0 deletions User.orm.yml
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,17 @@
    Acme\Project\Model\User\Entity\User:
    type: entity
    table: user
    id:
    id:
    type: guid
    generator:
    strategy: none
    fields:
    registeredAt:
    type: datetime
    column: registered_at
    embedded:
    email:
    class: Acme\Project\Model\User\Value\Email
    columnPrefix: false
    nullable: true
  8. dadamssg revised this gist Jul 13, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion PhoneNumber.php
    Original file line number Diff line number Diff line change
    @@ -26,6 +26,6 @@ public function __construct($phoneNumber)
    */
    public function __toString()
    {
    return $this->value;
    return $this->value ?: ''; // required because doctrine disables the constructor when creating
    }
    }
  9. dadamssg created this gist Jul 13, 2015.
    31 changes: 31 additions & 0 deletions PhoneNumber.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,31 @@
    <?php

    namespace Acme\Project\Domain\User\Value;

    use Acme\Project\Domain\Core\Validation\Assert;

    final class PhoneNumber
    {
    /**
    * @var string
    */
    private $value;

    /**
    * @param string $phoneNumber
    */
    public function __construct($phoneNumber)
    {
    Assert::string($phoneNumber, "Invalid phone number.");

    $this->value = $phoneNumber;
    }

    /**
    * @return string
    */
    public function __toString()
    {
    return $this->value;
    }
    }