Estoy desarrollando una API usando el framework CakePHP 3. Ahora estoy enviando una solicitud GET del cliente POSTMAN. El usuario pasará una clave API en el encabezado. 
Quiero buscar este encabezado en mi función de controlador.
Así es como se ve mi controlador
namespace Api\Controller; use Cake\Auth\DefaultPasswordHasher; use Api\Controller\AppController; use Cake\Cache\Cache; use Cake\Http\ServerRequest; class ApiController extends AppController { public function initialize() { parent::initialize(); $this->loadComponent('RequestHandler'); } public function myinfo() { if($this->request->is('get')) { $key = $this->request->getHeaderLine('Authorization'); $this->set('key', $key); } $this->set('_serialize', ['key']); } } El error que recibo es: HeaderLine is not a function
También probé algunas opciones más:
$acceptHeader = $this->request->getHeader('Authorization');pero esto también arrojó un error similar. El encabezado no es una función.
Referencia: Enlace
Versión de CakePHP: 3.3.5
Como dijo @ndm en los comentarios de OP, el último ejemplo en el documento vinculado debería resolver su problema. Está utilizando una versión anterior a la 3.4, por lo que debe utilizar:
// Prior to 3.4.0 $key = $this->request->header('Authorization');Consulte el documento para leer el encabezado HTTP
Here mencionó que "Le permite acceder a cualquiera de los encabezados HTTP_* que se usaron para la solicitud". Significa que solo lee encabezados http como
También mencionó que "Si bien algunas instalaciones de apache no hacen accesible el encabezado de Autorización, CakePHP lo hará disponible a través de métodos específicos de apache según sea necesario".
Entonces para la solución
Todos tienen diferentes configuraciones oscuras que puede modificar para anular este comportamiento, pero deberá determinar exactamente qué módulo tiene la culpa.
Puede solucionar este problema pasando el encabezado directamente a PHP a través de env:
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1Consulte también: Zend Server Windows: el encabezado de autorización no se pasa al script PHP