for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/*
* This file is part of the League\Fractal package.
*
* (c) Phil Sturgeon <[email protected]>
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace League\Fractal;
use League\Fractal\Resource\ResourceInterface;
class ScopeFactory implements ScopeFactoryInterface
{
/**
* @var Manager
private $manager;
public function __construct(Manager $manager)
$this->manager = $manager;
}
* @param ResourceInterface $resource
* @param string|null $scopeIdentifier
* @return Scope
public function createScopeFor(ResourceInterface $resource, $scopeIdentifier = null)
return new Scope($this->manager, $resource, $scopeIdentifier);
* @param Scope $parentScopeInstance
public function createChildScopeFor(Scope $parentScopeInstance, ResourceInterface $resource, $scopeIdentifier = null)
$scopeInstance = $this->createScopeFor($resource, $scopeIdentifier);
// This will be the new children list of parents (parents parents, plus the parent)
$scopeArray = $parentScopeInstance->getParentScopes();
$scopeArray[] = $parentScopeInstance->getScopeIdentifier();
$scopeInstance->setParentScopes($scopeArray);
return $scopeInstance;