/** * Record constructor. * * @param DatabaseInterface|null $database */ public function __construct(DatabaseInterface $database = null, TableMetadata $metadata = null) { // Get database layer $this->database = $database; // TODO: !IMPORTANT THIS NEEDS TO BE REMOVED! // FIXME: Dependency resolving if (array_key_exists('__core', $GLOBALS)) { $this->database = $GLOBALS['__core']->getContainer()->get('database'); } // Get current class name if none is passed $this->className = get_class($this); // Get table metadata // FIXME: Dependency resolving $this->metadata = $metadata ?? TableMetadata::fromClassName($this->className); }
/** * {@inheritdoc} */ public function entity($metadata) : QueryInterface { if (is_string($metadata)) { // Remove old namespace $metadata = strpos($metadata, '\\samson\\activerecord\\') !== false ? str_replace('\\samson\\activerecord\\', '', $metadata) : $metadata; $metadata = strpos($metadata, 'samson\\activerecord\\') !== false ? str_replace('samson\\activerecord\\', '', $metadata) : $metadata; // Capitalize and add cms namespace $metadata = strpos($metadata, '\\') === false ? 'samsoncms\\api\\generated\\' . ucfirst($metadata) : $metadata; $this->metadata = TableMetadata::fromClassName($metadata); } else { $this->metadata = $metadata; } $this->flush(); return $this; }