Complex things should be hard to do in application while simple things should be easy.
~Rich Hickey
class Magento_Acl_Resource
{
protected $_resourceProvider;
protected $_resourceFactory;
public function __construct(
Magento_Acl_ResourceProvider $resourceProvider,
Magento_Acl_ResourceFactory $resourceFactory,
$prefix = 'prefix'
) {
$this->_resourceProvider = $resourceProvider;
$this->_resourceFactory = $resourceFactory;
$this->_prefix = $prefix;
}
}
class Magento_Acl_Resource
{
protected $_resourceProvider;
protected $_resourceFactory;
public function __construct(
Magento_Acl_ResourceProvider $resourceProvider,
Magento_Acl_ResourceFactory $resourceFactory,
$prefix = 'prefix'
) {
$this->_resourceProvider = $resourceProvider;
$this->_resourceFactory = $resourceFactory;
$this->_prefix = $prefix;
}
}
class Magento_Acl_Resource
{
protected $_resourceProvider;
protected $_resourceFactory;
public function __construct(
Magento_Acl_ResourceProviderInterface $resourceProvider,
Magento_Acl_ResourceFactory $resourceFactory,
$prefix = "somePrefix"
) {
$this->_resourceProvider = $resourceProvider;
$this->_resourceFactory = $resourceFactory;
$this->_prefix = $prefix;
}
}
<config>
<type name="Magento_Acl_Resource">
<param name="resourceProvider">
<instance type="Magento_Acl_ResourceProvider" />
</param>
</type>
</config>
<config>
<preference for="Magento_Acl_ResourceProviderInterface"
type="Magento_Acl_ResourceProvider" />
</config>
<config>
<virtualType name="customAclResource" type="Magento_Acl_Resource">
<param name="prefix">
<value>someOtherPrefix</value>
</param>
</virtualType>
<type name="Magento_Acl_Builder">
<param name="resource">
<instance type="customAclResource"/>
</param>
</type>
</config>
<config>
<type name="Magento_Acl_ResourceProvider" shared="false" />
</config>
or
<config>
<type name="Magento_Acl_Resource">
<param name="resourceProvider" shared="false" />
</type>
</config>
class Magento_Acl_Resource
{
protected $_resourceProvider;
protected $_resourceFactory;
public function __construct(
Magento_Acl_ResourceProviderInterface $resourceProvider,
Magento_Acl_ResourceFactory $resourceFactory,
$prefix = "someId"
) {
$this->_resourceProvider = $resourceProvider;
$this->_resourceFactory = $resourceFactory;
$this->_prefix = $someId;
}
}
<config>
<type name="Magento_Acl_Resource">
<param name="resourceProvider"
type="Magento_Acl_ResourceProviderProxy" />
</type>
</config>