HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/sdo/sdoschoonmaak.nl/app/KommaApp/Kms/Core/Entities/KmsFrontEntity.php
<?php
///**
// *
// *
// * @author      Komma <info@komma.pro>
// * @copyright   (c) 2012-2016, Komma
// */
//
//namespace App\KommaApp\Kms\Core\Entities;
//
//use App\KommaApp\Kms\Core\Attributes\Attribute;
//use Illuminate\Database\Eloquent\Model;
//use Validator;
//
//abstract class KmsFrontEntity extends Model{
//
//    protected static $entityAttributesData = [];
//
//    protected $entityAttributes;
//
//    public function __construct(array $attributes = array())
//    {
//        $this->parseEntityAttributesData();
//        parent::__construct($attributes);
//    }
//
//    /**
//     * Get the title for the KmsEntity
//     * @return string
//     */
//    abstract public function getEntityTitle();
//
//    /**
//     * Parse the attribute values on fill ing the KmsEntity
//     * @param array $attributes
//     * @return $this
//     */
//    public function fill(array $attributes)
//    {
//        parent::fill($attributes);
//        $this->parseEntityAttributesData();
//        return $this;
//    }
//
//    public function save(array $options = array())
//    {
//        $this->transformEntityAttributesValues();
//        return parent::save($options);
//    }
//
//    /**
//     * Create a list with KmsAttribute Objects, based on self::$entityAttributes
//     * @return array
//     */
//    public function parseEntityAttributesData()
//    {
//        $errorMessages = $this->validateAttributes()->messages();
//
//        $entityAttributes = [];
//        foreach($this::$entityAttributesData as $attributeKey => $attribute)
//        {
//            $this->fillable[] = $attributeKey; // Make the fields in self::$entityAttributes mass assignable
//            $value = $this[$attributeKey]; // Get the values for the fields
//            $options = isset($attribute['options']) ? $attribute['options'] : []; // Get the options for the fields
//            $errors = $this->isDirty() ? $errorMessages->get($attributeKey) : []; // Get the error messages for the fields if $this is filled
//            $entityAttributes[] = new $attribute['type']($attributeKey, $value, $options, $errors);
//        }
//        return $this->entityAttributes = $entityAttributes;
//    }
//
//    /**
//     * Transform the values in the attributes for saving (eg. Hashing)
//     */
//    public function transformEntityAttributesValues()
//    {
//        foreach($this->entityAttributes as $attribute)
//        {
//            if(isset($this[$attribute->key]))
//            {
//                // If the value returned by getValue == null: get the original value
//                if($value = $attribute->getValue() != null)
//                {
//                    // Use value in the $attribute
//                    $this[$attribute->key] = $attribute->getValue();
//                }else{
//                    // Use original value
//                    $this[$attribute->key] = $this->getOriginal($attribute->key);
//                }
//            }
//        }
//    }
//
//    /**
//     * Getter for $this->entityAttributes
//     * @return mixed
//     */
//    public function getEntityAttributes()
//    {
//        return $this->entityAttributes;
//    }
//
//    public function validateAttributes()
//    {
//        $values = $rules = $messages = [];
//        foreach($this::$entityAttributesData as $attributeKey => $attribute)
//        {
//            if(isset($attribute['options']['validation']))
//            {
//                //TODO: This branch should be deprecated in favour of the else, when we are done rewriting the attributes in a real OOP way
//
//                $values[$attributeKey] = $this[$attributeKey];
//                $rules[$attributeKey] = $this->parseRules($attribute['options']['validation']['rules']);
//                foreach ($attribute['options']['validation']['messages'] as $messageKey => $message)
//                {
//                    $messages[$attributeKey . '.' . $messageKey] = $message;
//                }
//            } elseif(is_a($attribute, Attribute::class))
//                $validationSet = $attribute->getValidationSet();
//                //TODO: Continue implementing this
//            }
//        }
//        return Validator::make($values, $rules, $messages);
//    }
//
//    protected function parseRules($rules)
//    {
//        $rules = str_replace('[,id]', ','.$this->id, $rules);
//        $rules = str_replace('[id]', $this->id, $rules);
//        return $rules;
//    }
//
//}