# tablepress/3.4/libraries/vendor/PhpSpreadsheet/Shared/Escher/DgContainer/SpgrContainer.php

TablePress – Tables in WordPress made easy, version 3.4. 77 lines.

- Page: https://pluginprobe.com/plugins/tablepress/3.4/code/libraries/vendor/PhpSpreadsheet/Shared/Escher/DgContainer/SpgrContainer.php
- Raw: https://pluginprobe.com/plugins/tablepress/3.4/raw/libraries/vendor/PhpSpreadsheet/Shared/Escher/DgContainer/SpgrContainer.php
- Modified: 2025-08-26T04:06:14+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/tablepress/3.4/code/libraries/vendor/PhpSpreadsheet/Shared/Escher/DgContainer/SpgrContainer.php#L10-L20`.

```php
<?php

namespace TablePress\PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer;

class SpgrContainer
{
	/**
	 * Parent Shape Group Container.
	 */
	private ?self $parent = null;

	/**
	 * Shape Container collection.
	 *
	 * @var mixed[]
	 */
	private array $children = [];

	/**
	 * Set parent Shape Group Container.
	 */
	public function setParent(?self $parent): void
	{
		$this->parent = $parent;
	}

	/**
	 * Get the parent Shape Group Container if any.
	 */
	public function getParent(): ?self
	{
		return $this->parent;
	}

	/**
				 * Add a child. This will be either spgrContainer or spContainer.
				 *
				 * @param mixed $child child to be added
				 */
				public function addChild($child): void
	{
		$this->children[] = $child;
		$child->setParent($this);
	}

	/**
	 * Get collection of Shape Containers.
	 *
	 * @return mixed[]
	 */
	public function getChildren(): array
	{
		return $this->children;
	}

	/**
	 * Recursively get all spContainers within this spgrContainer.
	 *
	 * @return SpgrContainer\SpContainer[]
	 */
	public function getAllSpContainers(): array
	{
		$allSpContainers = [];

		foreach ($this->children as $child) {
			if ($child instanceof self) {
				$allSpContainers = array_merge($allSpContainers, $child->getAllSpContainers());
			} else {
				$allSpContainers[] = $child;
			}
		}
		/** @var SpgrContainer\SpContainer[] $allSpContainers */

		return $allSpContainers;
	}
}

```
