1. Go to this page and download the library: Download php-ddd/notification library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
php-ddd / notification example snippets
use Exception;
class PurchaseOrder
{
/**
* @var Items[]
*/
private $items = array();
/**
* @var ShippingInformation
*/
private $shippingInformation;
/**
* Check if we can validate the purchase order
*
* @throw Exception an Exception containing the reason why we can't validate the Order
*/
public function canValidate()
{
if (empty($this->items)) {
throw new Exception('There is nothing to purchase.');
}
foreach($this->items as $item) {
if ($item->isProductExpires()) {
throw new Exception(sprintf('The item %s is no longer available.', (string)$item));
}
}
if (!$this->shippingInformation->isComplete()) {
throw new Exception('You should first complete your shipping information');
}
}
}
use PhpDDD\Notification;
class PurchaseOrder
{
/**
* @var Items[]
*/
private $items = array();
/**
* @var ShippingInformation
*/
private $shippingInformation;
/**
* Check if we can validate the purchase order
*
* @param Notification $notification
*
* @return bool whether we can validate this order or not
*/
public function canValidate(Notification $notification)
{
if (empty($this->items)) {
$notification->addError('There is nothing to purchase.');
}
foreach($this->items as $item) {
if ($item->isProductExpires()) {
$notification->addError(sprintf('The item %s is no longer available.', (string)$item));
}
}
if (!$this->shippingInformation->isComplete()) {
$notification->addError('You should first complete your shipping information');
}
return $notification->hasError();
}
}
// Elsewhere
use Exception;
$order = new PurchaseOrder();
// ...
$notification = new Notification();
if (!$order->canValidate($notification)) {
throw new Exception($notification->firstMessage());
}
use PhpDDD\Notification;
class PurchaseOrder
{
/**
* @var Items[]
*/
private $items = array();
/**
* @var ShippingInformation
*/
private $shippingInformation;
/**
* Check if we can validate the purchase order
*
* @param Notification|null $notification
*
* @return bool whether we can validate this order or not
*/
public function canValidate(Notification $notification = null)
{
if (null === $notification) {
$notification = new Notification();
}
if (empty($this->items)) {
$notification->addError('There is nothing to purchase.');
}
foreach($this->items as $item) {
if ($item->isProductExpires()) {
$notification->addError(sprintf('The item %s is no longer available.', (string)$item));
}
}
if (!$this->shippingInformation->isComplete()) {
$notification->addError('You should first complete your shipping information');
}
return $notification->hasError();
}
}
// Elsewhere
$order = new PurchaseOrder();
// ...
if (!$order->canValidate()) {
return;
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.