Column.php 676 Bytes
<?php

namespace ACA\ACF\Configurable;

use ACA\ACF\Configurable;
use ACA\ACF\FieldFactory;

final class Column implements Configurable {

	/**
	 * @var FieldFactory
	 */
	private $field_factory;

	public function __construct( FieldFactory $field_factory ) {
		$this->field_factory = $field_factory;
	}

	public function create( $column_type ) {
		$settings = acf_get_field( $column_type );

		if ( ! $settings ) {
			return null;
		}

		$field = $this->field_factory->create( $settings );

		return [
			self::FIELD      => $field,
			self::FIELD_TYPE => $field->get_type(),
			self::META_KEY   => $field->get_meta_key(),
			self::FIELD_HASH => $field->get_hash(),
		];
	}

}