Eu verifiquei o magento2, existem dois tipos de parâmetros que podem ser enviados para
método around
\Closure $proceed
exemploaroundSave(\Magento\Catalog\Model\Product $subject, \callable $proceed)
\callable $proceed
exemploaroundSave(\Magento\Catalog\Model\Product $subject, \Closure $proceed)
Agora minha pergunta:
- O que é diferente entre fechamento e callable?
- Por que usar definimos o tipo dois tipos diferentes para o parâmetro $ continue?
- Para que servem esses parâmetros de dois tipos?
Alguém pode descrevê-lo detalhes
Respostas:
Você tem uma resposta aqui: https://stackoverflow.com/a/29730810/4629261
http://php.net/manual/en/class.closure.php
http://php.net/manual/en/language.types.callable.php
No documento do Magento, eles sugerem o uso de [callable]
http://devdocs.magento.com/guides/v2.0/extension-dev-guide/plugins.html#defining-a-plugin
fonte